首页 > 科技 > 这个标星 2.3k+ 的项目带你 Android 源码分析从入门到放弃

这个标星 2.3k+ 的项目带你 Android 源码分析从入门到放弃



上次写了一篇

Android 开发者的福利,介绍几款看源码的工具

,这篇文章主要介绍了三款看 Android 源码的工具,后台有很多同学留言问,有没有分析源码的。

分析源码的文章也很多,但大多数文章不够系统,不够全面。

今天推荐的这个项目是 Android open source project analysis,该项目从 Android 系统六层架构(应用框架层、进程通信层、系统服务层、Android运行时层、硬件抽象层、Linux内核层)进行了全面分析,而且作者的分析思路我也很认同。

作者的分析思路:

Android 是一个庞大的系统,Android Framework 只是对系统的一个封装,里面还牵扯到 JNI、C++、Java 虚拟机、Linux 系统内核、指令集等。面对如此庞大的系统,我们得有一定的章法去阅读源码,否则就会只见树木不见森林,陷入卷帙浩繁的细节与琐碎之中。

不要去记录那些 API 调用链,绘制一个序列图理清思路即可,Android Framework 中有很多复杂的 API 调用链,你去关注这些东西,用处不大。你需要学会的是跟踪调用链和梳理流程的 技巧,思考一下作者是怎么找到关键入口的,核心的实现在什么地方。

要善于思考,要多问为什么,面对一个模块,你要去思考这个模块解决了什么问题,这个问题的本质是什么,为什么这么解决,如果让我来写,我会怎么设计。事实上不管是是计算机还是 手机,从 CPU、到内存、到操作系统、到应用层,看似纷繁复杂,但问题的本质无非就是这么几种:时间片怎么分配?线程/进程怎么调度?通信的机制是什么?只是在不同的场景下加了具体的优化,但问题的本质没有改变,我们要善于抓住本质。

要善于去粗存精,Android Framework 也是人写的,有精华也有糟粕,并不是每行代码你都需要问个为什么,很多时候没有那么多为什么,只是当时那种情况下就那样设计了。但是对于关键函数我们要去深究它的实现细节。

说的太好了。

源码分析目录如下:

点击阅读原文,查看更多更详细内容。

开源项目地址: https://github.com/sucese/android-open-source-project-analysis

开源项目作者:苏策

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/294093.html