Android深度探索第四章主要是源代码的下载和编译。要下载Android源代码首先需要配置Android源代码下载环境(1.创建一个用于存放下载脚本文件的目录;2.下载repo脚本文件;3.创建用于存放Android晕代码的目录;4.初始化;5.开始下载Android源代码)。介绍了Android源代码目录结构(/bootable这个目录下存放 android 部分启动相关代码,包括 android 的 recovery模式,一般用于进行 OTA 升级,由 C++ 编写,可以看到用于显示的ui.cpp和安装的install.cpp, 模式入口为recovery.cpp 的 main。/build这是android源码中编译核心所在地,把这个目录下的所有mk搞清楚,android的编译体系就基本了如指掌了。 /external这是android存放外部工具组件的地方,以文件夹为单一模块,最终编译出来的有可执行文件,jar 包,动静态库,东西比较混杂, google已经移植了很多工具在这里面,如果自己想移植一些模块进 android 系统,可以加在这里,写好Android.mk,在上面提到的 device.mk 中加入 PRODUCT_PACKAGES 变量中 。/frameworks android 的运行框架集合,包含系统运行的各种服务框架,向 app 层提供 api ,根据 JNI 机制或者 socket 往下层调用,也可使用 hw_get_module 调用到 hardware 层的 module。/hardware硬件抽象层,描述对 linuxkernel 中的相关驱动模块的具体操作,而在 kernel 中的驱动模块只拥有通用操作接口,比如设置寄存器值, IO 拉高拉低,但是具体设置什么值,拉高拉低的时序都写在 hardware 层相对应的 module 中,这就是 google 对于硬件驱动的商业保护。/ril android 电话系统的 ril 驱动文件目录。/system android系统底层的文件系统,应用组件,包含一些系统库,以及启动的配置文件。)最后进行编译即可。