安卓系统启动流程(四)-(2)zygote

本文介绍了Zygote进程的功能,包括创建Java虚拟机、加载系统资源、启动SystemServer进程和后续启动普通应用程序。还阐述了涉及的文件及具体过程,如读取zygotexx.rc、运行app_main.cpp等,最后总结了初始化Java虚拟机、加载资源、注册Zygote socket和启动SystemServer进程等要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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进程

==========================================

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值