zgyote进程功能
1.创建java虚拟机
2.加载系统资源
3.启动SystemServer进程
4.后续过程的启动普通的应用程序
涉及文件及具体过程
对应文件为 /frameworks/base/cmds/app_process/App_main.cpp
1.读取zygotexx.rc
2.运行app_main.cpp(对于的二进制)
3.初始化zygote :
两种模式:zygote模式/applicaiton模式
最后runtime.start 启动虚拟机。
4.AndroidRuntime.cpp
============
5.最后反射调用ZygoteInit的main函数
启动startSystemServer
调用 frameworks/base/core/jni/AndroidRuntime.cpp start方法;
通过jni进入
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
ZygoteInit.java的registerZygoteSocket方法
=========================
总结下我认为比较重要的几点
1.初始化java虚拟机
2.加载一部分资源
3.注册Zygote socket为后面创建进程做准备(run SelectLoop)
4.启动SystemServer进程
==========================================