谢邀
看了一下这个问题,对于题主说的一些问题有些不同的看法.
看书大家喜欢一次性看完,这个包括我自己都是有这样的习惯,但是对于Android Framework来说,整个Framework体系的庞大真的不建议所有模块都想要全部吃掉.在Framework这边做定制化开发一年多,感觉自己也就对于WM, AM, View, Activity相关的部分理解的比较深入.感觉还是从工作涉及的部分出发比较好.如果没有特别的侧重,可以先从Activity, View, Window整个创建机制和逻辑结构入手,对于APP开发也会提升很多.
关于应该看什么参考方面,我自己是看老罗CSDN的Android之旅,深入理解Android.虽然这些内容基于的Android版本还是比较老,有些在Android新版本实现转移了位置甚至整体改变了思路,但是Android这么长时间整个的框架基本没有太多的变化.对照现有的代码,如果有条件的话有一台可以运行AOSP的设备自己做实验,相信对于Android Framework的学习可以增速很多.
看题主是从应用往Framework过度的,可以自己指定一些计划来学习,比如:
Activity的生命周期是怎么实现的, (Activity, AMS, ActivityThread相关)
系统是如何添加一个顶级View或者Window的(WMS, Window, ViewRootImpl相关)
Activity,app是如何进行切换的,后台Activity如何恢复到前台(AMS, ActivityStack, ActivityStackSupervisor相关)
RecentTask是怎么管理的(AMS, ASSupervisor)
........
怎么看Android代码方面,如果仅仅只是期望能看代码,而且电脑是在Windows环境,SourceInsight确实是一个不错的选择,网上相关的配置也比较多,不做赘述.也有一个在线的平台AndroidXRef可以看代码,支持关键字跳转,在线看看也挺方便.
不过如果想要自己能够编译一套Android代码,同时真机调试.最好的选择是在Linux环境下进行,同时去https://source.android.com/source/requirements.html 按照教程下载编译一套代码(整个过程时间可能非常长,一般代码有大几十GB).IDE环境方面,我自己是用Intellij来看的,因为官方支持生成idea的module(mmm development/tools/idegen),导入到intellij也比较方便.而intellij看方法的Hiearchy调用,打断点调试都非常爽. |