做安卓开发已经有三年了,已经跨越了中级阶段 但是由于自己不够勤奋,一直停留在高级守门员的水平 实话来讲,今年和去年这两年,没有太大进步,只零零散散学了写东西,没有学成什么系统的知识和技能
框架原理,自定义控件,NDK这些,很早就会了,但却没有哪一样算的上精通的 基本都是懂原理,能看,能改的水平,我相信很多人应该和我一样,比不学无术的要好点,但是也没什么突出的成就
这些东西,如果只是入门的话,可能一周就可以学会,但要是达到一个精通水平,还是离不开大量实践的 这里总结一下这方面的高级指标,以便提醒自己,掌握的还都只是皮毛
技术框架
- 了解第三方框架的原理,真实阅读过,不是靠猜测自以为
- 自己动手,编写一个同样功能的技术框架
- 编写技术框架对应的IDE插件,比如Lombok,GreenDao这些框架,他们除了实现功能之外,还有配套的gradle插件,idea插件
- 如果要沿着这个方向发展,希望以后能够发布自己的框架,起码要达到这些条件
系统源码
- 了解安卓系统的整体架构和功能模块划分
- 阅读和理解Framework主要模块源码
- 完整掌握某个主要功能模块的框架体系,比如安卓自带了音视频框架,蓝牙开发框架,如果工作或行业和这方面相关,可以深入学习
- 能够自己修改和编译系统源码,烧录镜像
自定义控件
- 真正掌握控件绘制原理,清楚了解每个方法负责的功能。能够不经思考,随口讲出整个流程,遇到问题需求时,能够快速判断需要自定义哪些绘制方法
- 熟练掌握画笔画布的使用方法,熟练掌握自定义测量的方法,熟练掌握自定义布局的方法,熟练掌握各种动画的自定义方法
- 真正掌握事件传递机制,清楚了解每个方法负责的功能。熟练自定义手势,熟练使用各种手势辅助类,能够自己实现复杂的手势交互需求
- 灵活运行绘制原理和事件传递机制,完成实际功能。比如常见的滑动控件,拖拽控件,动画控件,应当可以自己实现
- 发布自己的开源控件,功能和实用性,质量应当和Google的Material库中的主要控件相当
NDK
- 熟练掌握NDK全套知识,JNI,JNA,Makefile,CMakeLists等
- 能够熟练修改C/C++源码
- 能够熟练解决编译过程中出现的,NDK版本兼容问题,C/C++源码版本兼容问题
- 熟练掌握各种主流应用库的编译和功能定制,比如FFMpeg,x264等
由于这些都不是我们日常工作中每天都接触的内容,想要达到真正熟练的地步,其实都不容易,必须要付出大量的业余时间,一定要有毅力和明确的方向