安卓开发者中心!为什么Flutter能最好地改变移动开发?已拿到offer

最近跟我的一些读者交流,有一位读者的经历让我记忆深刻:

“有一次和大学同学聚会,和几个在BAT的同学聊了聊技术,发现自己在创业公司这几年,完全是吃老本的状态,没有什么机会精进技术,同样是工作了三年,和同学的差距越来越大”

我继续问他,他说真正让他受打击的是这个月的一次面试。

“面的是一个大厂,面试官问了很多问题,一大半的问题我都是一知半解,回答上来问题也是特没底。

大概回顾了这场面试:上来先是问了Java基础知识,自定义view,算法等等,这部分我还算准备的充分。第二部分开始复杂了,主要是底层、NDK、设计模式、调优方面的问题,像是如何检测一段代码的执行时间?滑动不流畅怎么处理??

我之前工作上经历的少,加上自己技术储备浅薄,到这部分时我就感觉自己快凉了。面试到最后,问了mvvm架构相关的,当时已经懵了,我只记得一个问题:让你做一个项目,怎么选择mvvm架构和MVP架构?我。。。。“

面完后他说,觉得自己在技术上欠了很多债,最惨的是,在这之前他根本不知道。

听了这位读者的经历,于是有了今天这篇文章。很多工作了1-3年的Android人,想够一够 3w月薪的岗位,但在底层技术上却有很大的问题:

毕业几年,表面上用过很多技术,但都没能深入学习,一年的工作经验,干了好几年。结果就是遇到实际问题时无从下手,最终还是走着普通工程师的道路,和高手的距离越来越远。

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

这期间很多面试经验,正直现在面试季节,分享给大家。有想法和问题的欢迎在评论区留言。

扫描二维码关注公众号,回复: 12682925 查看本文章

正文

1.面试问得最多的是自定义 View 基本每家都问!

主要问 View 的绘制流程,自定义View的步骤。有时会涉及到细节;比如 PhoneWindow 实例是在哪个类哪个方法中实例化的?Selector 是怎么实现的?View 动画是怎么实现的?为什么移动后点击事件还在原来的位置?

2.Android 系统源码部分(这是大厂特别喜欢问到的)

事件拦截和分发

进程间的通信方式

应用的创建启动流程

Handler 是怎么导致内存泄露的

第三方库的源码,Glide、OkHttp 和 Retrofit 问得比较多,MVC,MVP和 MVVM 开发模式优缺点。

常用设计模式理解问得也多,大公司 Binder 驱动和虚拟机方面问得比较多。

3.数据结构和算法,Java 的常用集合和实现原理

比如 ArrayList ,LinkedHashMap 的实现原理,缓存淘汰策略,红黑树和二叉树,最短路径规划,海量数据筛选,很荣幸的是面试官目前还没有要我手写算法!

4.性能优化

如何检测一段代码的执行时间?

界面卡顿如何修复?

滑动不流畅怎么处理?

50fps 有什么办法可以提高到 60fps?

内存泄露怎么检测?

leakcanay 的原理?

5.线程和线程池,

wait() 和 sleep() 的区别?

同步锁

线程池的参数详解?AsyncTask 源码参数详解?

我能记得的大概就这些了。最后还啰嗦一下,有很多公司标明了,你必须要会 C 和 C++, OpenGL 或 OpenCv 或音视频编解码!这里要小心,我写的是熟悉,因为像音视频和 OpenCv 图像处理这些方面,没做个6、7年最好不要写精通!

来上海感觉学历真的很重要,大公司都要求本科以上,而且要能查的。如果没有学历这是个硬伤了,除非技术很强,或者有内推的话也会看情况而论。

小公司面试官一般不会问你细节,但大公司面试官都会抓细节,所以细节要清楚,概念不能模糊,但一个问题有些细节部分可能面试官也不太了解,如果你都能说出来那就不错了,所以面试就是谁面死谁的问题了。还有不要起争执,态度谦虚,心里敬佩人家。我们就是来聊聊,并不是来讨要工作的。

最后

下面是辛苦给大家整理的学习路线,有需要的可以点击这里免费获取

BF%E9%AB%98%E8%96%AA%EF%BC%81.md)
[外链图片转存中…(img-tN3xNF4q-1614684394793)]

猜你喜欢

转载自blog.csdn.net/a120464/article/details/114292462