八年 Android 开发,从码农到架构师分享我的技术成长之路,共勉
而到达中级就需要付出一些努力了,需要了解更多知识,可以仿照开源库去造轮子练习。中级工程师要能够熟练完成功能研发。需要的技能有:
熟悉 SOLID 基础设计原则,掌握 23 种设计模式。
对于研发语言特性 java/kotlin 有深入理解,如反射、动态代理、apt 等。
对 android 架构有基础了解,对 apk 结构和打包原理有深入了解。
对于 android 各个版本特性有基本了解,如 MD 设计、权限管理、doze 模式等。
熟练掌握各种研发调试工具,如 git、gradle、mat、layout inspector 等。
掌握 Handler\AsyncTask 原理,熟悉多线程开发。
对绘页面制原理有初步理解,能够实现一个复杂自定义控件。
能够熟练掌握开源库的使用,如图片库(Glide\Fresco)、网络库(Volley\okhttp\Retrofit)、工具(Dagger\RxJava\EventBus)等。
熟悉图片优化常用方法,避免编写内存泄漏的代码。
高级
如果到达中级,那么恭喜你已经可以应付大部分情况了。但要能更进一步,就需要深入理解 android 系统的运行原理,达到融会贯通,可以作为 android 端上的架构师。需要的技能有:
掌握 java 高级特性,如 JUC、线程池、NIO\BIO 等;掌握 jvm 虚拟机知识,如内存模型、GC 原理、类加载机制、线程模型等。
对 android 运行环境有深入理解,理解 android 沙盒机制,掌握 AIDL 原理及 Binder 通信原理,了解 app 和 activity 启动原理。
掌握热修复原理,各大厂商方案的优缺点。
对于 android 事件分发有深入理解,重点掌握触摸事件机制。
深入理解 android 绘制原理,理解 VSYNC 和 surface 机制和窗口原理。
深入理解 android 动画原理,包括补间动画和属性动画。
对于 android 安全机制有基本认知,理解 android 安全原理。
深入理解端上设计范式思想,如 mvc\mvp\mvvm\clean-arch 等。
理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。
对新技术敏感,理解掌握下一代架构 dynamic feature 等。
至此,android 端研发你已经炉火纯青,能够面对各种情况,达到泰山崩于前
而色不变的境界。如果还想继续前进,就需要突破技术栈,从更高架构层次考虑问题。
资深
而到了资深层次,技术栈已经不再是阻碍。能够从更高层面看待问题,理解整个系统的设计,作为系统架构师的角色存在。
理解微服务、SOA 思想,对于后端开发有一定涉猎。
了解前端研发工具和思想,知道 vue react 等研发框架。
深入理解跨端技术,如 phonegap、weex/RN flutter、小程序快应用等。
学习路线及学习分享
对于很多初级 Android 工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对 Android 开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。同时我经过多年的收藏目前也算收集到了一套完整的学习资料以及高清详细的 Android 架构进阶学习导图及笔记免费分享给大家,希望对想成为架构师的朋友有一定的参考和帮助。
######对 Android 进阶,架构方面感兴趣的朋友,转发关注后加群Android架构设计(185873940)可免费获取学习资料!
关于以上的技术选型,这都有整理好的资料包括高级技术大纲以及一套系统全面的 Android 进阶视频,还有有各种大佬技术面试心得和资料免费分享,欢迎大家踊跃关注,免费领取资料。
评论