关于android启动分析的文章 是拜读柯元旦老师的android内核剖析 与 邓凡平老师的深入理解android 自己读源码按图索骥的成果。
在这里感谢 两位老师的不辞辛劳把知识奉献出来与大家分享!
android是基于linux的所以dalvik虚拟启动必须通过服务或是通过某个程序来启动
android的dalvik虚拟机是通过cpp程序来启动
程序名为:/framworks/base/cdms/app_process/app_main.cpp app_main 在编译的时候 被定义成了app_process
android.mk:
LOCAL_MODULE:= app_process
所以在init.rc里面 是通过下边的这段配置来启动app_main的
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
socket zygote stream 666
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
直接看app_main的main函数吧
int main(int argc, const char* const argv[])
{
// These are global variables in ProcessState.cpp
mArgC =