5-8: System Server之applicationInit()
2016-04-06 15:28:56 0 举报
System Server是Android系统的核心组件,负责启动和管理系统级服务。在System Server中,applicationInit()方法是一个关键步骤,它主要完成以下任务:1. 创建Binder线程池,用于处理跨进程通信;2. 加载系统服务并启动它们;3. 初始化各种系统属性和资源;4. 启动各种系统服务的消息循环。applicationInit()方法的执行过程涉及到许多复杂的操作,如解析init.rc文件、创建Zygote进程等。总之,applicationInit()方法为Android系统的正常运行奠定了基础,确保了各种系统服务的顺利启动和运行。
作者其他创作
大纲/内容
m = cl.getMethod(\"main\
applicationInit()
此处抛出的异常,会被本进程的catch语句接住,在那里才会执行SystemServer类的main()函数。示意图如下:
还有一点需要说明一下,fork出的SystemServer进程在跳转到catch语句后,会执行SystemServer类的main()函数,而其他情况下,fork出的应用进程在跳转的catch语句后,则会执行ActivityThread类的main()函数。这个ActivityThread对于应用程序而言非常重要,但因为和本篇主题关系不大,我们就不在这里展开讲了。
nativeZygoteInit();
if (pid == 0)
redirectLogStreams();
frameworks\\base\\core\\java\\com\\android\\internal\\os\\ZygoteInit.java
commonInit();
RuntimeInit.zygoteInit()
closeServerSocket();
handleSystemServerProcess(parsedArgs);
SystemServer进程
frameworks\\base\\core\\java\\com\\android\\internal\\os\\RuntimeInit.java
0 条评论
下一页