我有一个想法, 可能有点争议性吧, 就是应用层开发的同学, 其实不用过份关注这些底层的东西. 不是说底层的东西不重要, 重要, 但你得用得上才重要. 你要是开发插件化或是想给apk中加点渠道信息等等, 那了解dex结构很有用; 但要是你不是, 那了解dex结构就没太大必要. 所以我的思路是: 先尽量了解应用层app的开发, 开发涉及到了底层的东西再去研究. 否则app开发的东西就已经足够研究多年仍觉得了解得不多
底层我自己了解不深. 但作为应用层开发, 其实要了解的东西很多, 多到你每天都在学习都不够. 我就列出几项仅供大家参考吧.
- [UI] 如何绘制自定义View
- [UI] 如何做漂亮的动画
- [UI] 如何根据手势做漂亮的动画
- [架构] 哪些架构比较好, 为什么好; (自己也要去思考, "好"的标准是什么 )
- [架构] 思考现有代码中哪些地方不好, 我们可以有怎么优化它. 优化它后能提升什么东西.
- [架构] 思考现有代码中是不是有重复代码. 如何优化它
- [架构] 思考现有代码中是不是有大量if-else链, 如何优化它
- [测试] 如何做好单元测试? (比如如何测试单例, 如何Mock复杂的类, 怎么的代码是好测试的代码
- [测试] 如何做好集成测试?
- [测试] 如何做好自动化测试?
- [性能] 关注某一块性能, 就要先了解如何能得知"如何测试这一块的性能好还是不好"
- [性能] 在上面的基础上, 找资料去优化性能 (这一块可能就用得上一些底层的东西, 我建议研究)
- [工具] 打包工具熟悉吗,? 具体到Android上, 我是从ant, maven, gradle一路走过来的. Gradle现在是主流了. 那就有必要了解, 如何定制一些特定需求的打包, 如打入渠道信息, 如apk名字要定制; 甚至更高级的特性, 如何用来帮助我们提升开发效率; ....
- [工具] 思考现有项目中, 是不是有比较麻烦的地方. 我能自己写个小工具来帮助项目提升工作效率吗?
- [他山之石] 学习一些优秀的开源库, 这会帮助到你进阶
- [新版本] 每次大版本更新, 都有变动. 我们可能要被迫修改些东西, 有时甚至以前的小技巧再也没用了, 现在要重新写.
- [安全] 现在的应用安全吗? 黑客可以怎么攻击它? 我要怎么防范它. 这一块的东西, 根据我的观察, 是大多数Android应用开发最欠缺的.
- [英文] 提升些英文, 看英文资料会有帮助
- ....
真的, 要学的东西太多太多了. 我一个2011年就开始做Android的开发都觉得自己学得还不够. 说出我的想法, 和大家讨论, 和大家共勉.
另注: 上面的都是针对应用层app开发. 对于Android底层开发就没这么适用了.
|