文章插图
前言移动研发火热不停 , 越来越多人开始学习Android开发 。但很多人感觉入门容易成长很难 , 对未来比较迷茫 , 不知道自己技能该怎么提升 , 到达下一阶段需要补充哪些内容 。市面上也多是谈论知识图谱 , 缺少体系和成长节奏感 , 特此编写一份android研发进阶之路 , 希望能对大家有所帮助 。
这篇文章里 , 我们只谈技术 , 不谈软技能 。
在这里我把攻城狮分成初级、中级、高级和资深四个阶段 , 分别对研发设计能力、工具使用、系统原理和架构等作出要求 。
初级我对初级研发攻城狮的定义是掌握基础的android知识 , 能够独立完成一个功能 。这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到 。
需要的技能有:
- 掌握android 四大组件知识 , 深入了解相关生命周期;对于Application、Fragment、Intent也必须掌握 。
- 掌握android 基本布局和控件的属性和使用 , 常用布局有LinearLayoutRelativeLayoutConstraintLayout等 , 控件有TextViewImageViewRecyclerViewScrollView等 。
- 对android的资源访问使用有基本了解 , 了解android针对不同国家、语言、屏幕、API的适配原理 。
- 掌握android系统服务和工具类的使用 , 对网络访问和数据库操作有基本认知 。
- 熟练掌握研发工具 , 如IDE、模拟器、网络代理、日志等 。
- 熟悉SOLID基础设计原则 , 掌握23种设计模式 。
- 对于研发语言特性JAVA/kotlin有深入理解 , 如反射、动态代理、apt等 。
- 对android架构有基础了解 , 对apk结构和打包原理有深入了解 。
- 对于android各个版本特性有基本了解 , 如MD设计、权限管理、doze模式等 。
- 熟练掌握各种研发调试工具 , 如git、gradle、mat、layout inspector等 。
- 掌握HandlerAsyncTask原理 , 熟悉多线程开发 。
- 对绘页面制原理有初步理解 , 能够实现一个复杂自定义控件 。
- 能够熟练掌握开源库的使用 , 如图片库(GlideFresco)、网络库(VolleyokhttpRetrofit)、工具(DaggerRxJavaEventBus)等 。
- 熟悉图片优化常用方法 , 避免编写内存泄漏的代码 。
- 掌握java高级特性 , 如JUC、线程池、NIOBIO等;掌握jvm虚拟机知识 , 如内存模型、GC原理、类加载机制、线程模型等 。
- 对android运行环境有深入理解 , 理解android沙盒机制 , 掌握AIDL原理及Binder通信原理 , 了解app和activity启动原理 。
- 掌握热修复原理 , 各大厂商方案的优缺点 。
- 对于android事件分发有深入理解 , 重点掌握触摸事件机制 。
- 深入理解android绘制原理 , 理解VSYNC和surface机制和窗口原理 。
- 深入理解android动画原理 , 包括补间动画和属性动画 。
- 对于android安全机制有基本认知 , 理解android安全原理 。
- 深入理解端上设计范式思想 , 如mvcmvpmvvmclean-arch等 。
- 理解架构演进 , 有良好的分层和拆分思路 , 掌握模块化、插件化、动态部署等 。
- 对新技术敏感 , 理解掌握下一代架构dynamic feature等 。
资深而到了资深层次 , 技术栈已经不再是阻碍 。能够从更高层面看待问题 , 理解整个系统的设计 , 作为系统架构师的角色存在 。
- 理解微服务、SOA思想 , 对于后端开发有一定涉猎 。
- 了解前端研发工具和思想 , 知道vue react等研发框架 。
推荐阅读
- 如何学习Android studio?
- Android网络编程-TCP/IP协议
- 特斯拉有望官宣电池技术大突破 这个概念最受益
- 能够以假乱真、媲美实时光线追踪的AMD显卡新技术—动态全局光照
- 苦丁茶加工技术工艺介绍
- 中小型研发团队对于架构的选择与思考
- Android视频技术探索之旅:美团外卖商家端的实践
- 汽车之家|技术工程师的金三银四,没有消失
- 茶叶做青工艺技术介绍
- 5G使用了什么技术,网速怎么这么快?