android系统启动时会加载bootloader,之后会boot(kernel),之后会加载文件系统ramdisk,这里面包括加载的system,userdata,init.c,init.rc等,在解析init.rc 时会解析
service servicemanager/system/bin/servicemanager 会执行servicemanager.java servicemanager.cpp 会启动一个守护进程,
zygote /system/bin/app-process-xzygote/system/bin --zygote --start -system-server 会执行frameworks/base/cmds/app-process/ app -main.cpp(main()) ------------>
AndroidRuntime.cpp(start())----------------->JNI invoke-------------------------->ZygoteInit.java(main())--------------------------------->JNI----------->Systemserver VM--------> systemserver.java
到Systemserver .java时会首先执行main()方法,在main()方法里会调用init1(),init1()方法里会调用com-android-server-systemservice.cpp 会调到 system- init.cpp (完成了SurfaceFlinger的实例化等)---------------------------