Android源码学习
Android源码
下载
2018-2-4
直接使用清华大学的镜像【注意不能使用VMware + Ubuntu + 共享文件夹的方式,主要英文共享文件夹不支持linux某些文件】
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
目录结构
2018-2-5
http://blog.****.net/itachi85/article/details/54695046
详细目录结构
http://blog.****.net/ieearth/article/details/64930164
编译
从网上下载的android源码不包括u-boot和linux内核,需要下载对应的版本,然后在编译。
android启动流程
2018-2-6
Android 的底层基于 Linux Kernel,因此从启动流程来看,先启动 Linux Kernel,然后才启动 Android Framework,最后进入应用程序 Launcher,也就是看到的主界面。
Linux内核启动
http://blog.****.net/yanshazi/article/details/50187315
以上分析基于 linux-4.4.52内核,至此,linux内核分析完毕。
Android Framework启动
2018-2-7
上面说的开启“/init”进程,而这个在根目录下的init可执行文件,可能是android源码中的/system/core/init/init.cpp文件编译出来的。
http://blog.****.net/yanshazi/article/details/50224149
为了学习AIL,读者可以到自己Android手机的根目录寻找init.rc文件,最好下载到本地以便查看,如果有编译好的Android源代码,在<Android源代码根目录>out/target/product/generic/root目录也可找到init.rc文件。
ServiceManager, Zygote, ActivityManagerService 和 PackageManagerService 等系统服务已经启动起来,
其中,android7.1.1版本的ServiceManager对应的启动脚本是/system/etc/init/servicemanager.rc
应用程序 Launcher启动
也就是最终会看到的 Android 桌面的启动。
http://blog.****.net/yanshazi/article/details/50287479