越来越多的人在提“移动端的下半场”、“Android 开发的焦虑”之类的,也有人在喊“技术天天在变,学也学不完”,“昨天 Kotlin 今天 Flutter”。其实我却认为,如果你技术达到了一定程度,你无需太过在意这些。
移动端真正进入下半场了吗?于我看来并没有,最多说“Android 技术的探索”进入了下半场,而整个市场还是乐观的。以前是 BAT 的天下,而近两年出来越来越多的独角兽:头条、抖音、拼多多、快手、小猿搜题等,这些公司的业务都在移动端上,他们需要招聘更多的移动端人才。如果真要说下半场,只能说很多小型创业公司在退出市场,这确实会导致很多入门工程师失业,但这也说明了这个行业在更加规范。
而且,对于 Android 工程师而言,这更是个好的时代。互联网下沉,那么下沉市场里的用户是使用 Android 多还是 iOS 多,大家都清楚。
那么,对于工程师而言需要做什么才能存活呢?很简单,要么转行,要么提高。我相信,一个技术不错的工程师,不但无需焦虑,而且在这个时代,能够拥有稳定的职业生涯和丰厚的收入。
面经分享
阿里一面
1.自我介绍
2.做过哪些项目,用过哪些技术
3.四大组件
4.activity生命周期
5.启动模式
6.线程状态
7.网络协议(每一层、还有TCP和UDP)
8.会不会网络编程
9.handler
10.JVM,内存模型那些
11.GC机制(有哪些方法哪些问题)
12.项目中的数据库
13.HashMap、HashTable、ConcurrentHashMap1
14.反问环节
阿里二面
1.自我介绍
2.TCP和UDP以及应用场景(三次握手四次挥手也是基本上都会问的)
3.算法题:字符串根据字典分割的问题。一开始给的解决方法时间复杂度太高,一直要求优化。
4.介绍做过的项目,沿着项目一直问下去(重点问遇到的问题以及解决的方式)
5.Binder通信机制
6.React Native跟原生开发的优劣
7.View事件分发机制和View绘制原理
8.反问,聊天环节
追问比较多,但没有很难的地方,没有什么我一个字也答不上来的。
阿里三面
1.自我介绍
2.广播和 EventBus 的区别?
3.搭建一个自己的图片加载框架思路,怎么做
4.Bitmap的内存计算方式、高效加载
5.Binder的通信过程?Binder的原理?与其他IPC方式的优缺点?
6.handler 的底层实现原理
7.RxJava各种操作符,设计思想。
8.卡顿优化,原理,操作
9.做过哪些优化?怎么实现,遇到哪些问题,怎么解决
10.提问交流环节
阿里四面
1.看过多少源码
2.网络协议okhttp中的缓存机制,dex加载流程,组件化的原理;
3.MVC MVP MVVM原理和区别
4.如果让你实现一个调试器,你会怎么设计?静态调试?动态调试呢?
5.热修复、插件化、组件化
6.Android Framework源码
7.你都用过哪些设计模式?说说当时具体的场景。为什么你要用方法工厂,另外两种呢?
8.kotlin、flutter区别优缺点,掌握多少
9.有什么想要问我的
阿里五面(hr)
1.项目
2.规划
3.马上要项目汇报了,PPT出问题了,你会怎么办
4.薪资
5.提问环节
最后
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。有**【Android架构视频+BATJ面试专题PDF+核心笔记等资料】**。希望能够帮助到大家提升技术。
高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
- 以上进阶BATJ大厂学习资料可以免费分享给大家,需要完整版的朋友,【点这里可以看到全部内容】。
进阶BATJ大厂学习资料可以免费分享给大家,需要完整版的朋友,【点这里可以看到全部内容】。**