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时会

本文深入探讨了Android系统启动过程,从bootloader到SystemServer,详细阐述了ServiceManager和服务的启动流程。在SystemServer的init2阶段,各种核心服务如Activity Manager、Power Manager等依次启动。Android Framework服务涉及java层、JNI层和硬件抽象层,部分服务通过JNI接口与硬件交互。添加新服务可直接在java层、添加jni层或硬件抽象层接口。
最低0.47元/天 解锁文章
658

被折叠的 条评论
为什么被折叠?



