高级
对于高级Android开发工程师,就不仅限于功能和业务开发,还需要深入理解Android系统的运行原理,达到融会贯通,部分可够作为Android端架构师。这一阶段的人大多工作5-8年,具备开源库设计能力,同时对于Android系统的运行原理也比较了解。
-
掌握java高级特性,如JUC、线程池、NIOBIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。
-
对Android运行环境有深入理解,理解Android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。
-
掌握热修复原理,各大厂商方案的优缺点。
-
对于Android事件分发有深入理解,重点掌握触摸事件机制。
-
深入理解Android绘制原理,理解VSYNC和surface机制和窗口原理。
-
深入理解Android动画原理,包括补间动画和属性动画。
-
对于Android安全机制有基本认知,理解Android安全原理。
-
深入理解端上设计范式思想,如mvcmvpmvvmclean-arch等。
-
理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。
-
对新技术敏感,理解掌握下一代架构dynamic feature等。
如果达到这一水平,恭喜你,你已经超过70%左右的人,但是如果要再进一步,比如架构中/开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。
专家
作为Android开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。
-
理解微服务、SOA思想,对于后端开发有一定涉猎。
-
了解前端研发工具和思想,知道vue react等研发框架。
-
深入理解跨端技术,如phonegap、weex/RN flutter、小程序快应用等。
我这里有一份Android中高级进阶的成长曲线图,里面涉及到的都是现在市场主流技术,大家可以参考针对自己的实际情况进行学习。
最后
不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知。懂的越多的时候你才会发现懂的越少。
如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大。
在我学习的过程中,最开始是在网上找了很多资料,毕竟这些资料是我们开始最快速的学习方法,这里我放上我这些年在网上收集到的资料,然后再以我的工作经验给大家总结一下,让你们少走些弯路,提取一些目前互联网公司最主流的Android开发架构技术,希望能帮助到大家!
【Android进阶学习视频】、【全套Android面试秘籍
】点击【GitHub】地址查看免费领取方式!
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
【算法合集】
【延伸Android必备知识点】
【Android部分高级架构视频学习资源】
Android必备知识点】**
【Android部分高级架构视频学习资源】