迁移自本人cnblog旧文:
刚入行Android系统开发两年,发现在项目维护和需求开发的时候仅仅考虑快速解决,而没有深入理解其设计思想和思考高效稳定的解决方法,毕竟framework修改直接影响系统的稳定性,任何问题的修改,需要慎重。随着项目的开展和积累,越发觉得需要深入学习理解framework的设计,下面是网上和相关书籍总结的学习思路,仅仅在此汇总下。
一、阅读Android源码的术与道:
1、Android源码的道
Android的功夫,在Android之外。要想“理解”而非单纯的“知道”,想“学习”而非单纯的“记诵”。必备基础:信息检索能力、编程语言(C\C++、Java)、计算机系统知识、设计模式、JVM,多线程设计
2、Android源码的术
针对每一个模块本身的职责,询问更细节的实现,永远记住,先有的问题,之后才有的代码。代码实现是新鲜的,但是有了之前的铺垫和对问题的预期,它们的出现才是可理解的。
总结:先理解模块对应的要解决的“问题”是什么,再去给问题找解决方案的思路去理解源码;
理解源码的功夫不止在Android本身,也要提高Android之外的姿势水平。
二、Framework需求开发与维护注意点
1、需求开发
1) 相关功能的现有模块需要非常熟悉,否则会有非常大的风险
2 )所写代码尽量与已有类似的代码保持风格一致
3 )必要的注释,写代码的时候认为代码的意图貌似是理所当然,但是当别人看你的代码或者过一段时