app_process: 总结(6)
概述app_process是由frameworks\base\cmds\app_process编译而来,是启动java世界的入口程序。在开机过程中,经由app_process启动的进程有:zygote进程system_server进程zygote进程作用启动system_server进程,也即system_process裂变app进程,为每个app其他socket事务处理zygote三个部分zyg
·
概述
app_process是由frameworks\base\cmds\app_process
编译而来,是启动java世界的入口程序。
在开机过程中,经由app_process启动的进程有:
- zygote进程
- system_server进程
zygote进程作用
- 启动system_server进程,也即system_process
- 裂变app进程,为每个app
- 其他socket事务处理
zygote三个部分
zygote运行分为三个主要部分:
1、app_process创建虚拟机,设置虚拟机属性
2、进入java世界,加载资源
3、裂变进程:启动system_server、启动app
活动图如下:
在代码中未看到新的进程创建新的虚拟机,按照fork机制,子进程直接继承父进程资源。在源码中有类ZygoteHooks(android-8.0.0_r1\libcore\dalvik\src\main\java\dalvik\system\ZygoteHooks.java),在进程fork后都会调用nativePostForkChild,这部分待了解,通知到哪里?做了什么?这或许和子进程继承父进程的虚拟机有关。
更多推荐
已为社区贡献4条内容
所有评论(0)