zygote 进程启动过程 面试 笔记

本文详细梳理了Android系统中Zygote进程的启动步骤,包括创建AppRuntime、初始化Java虚拟机、注册JNI方法、运行ZygoteInit的main方法以及启动SystemService进程等关键环节。Zygote作为孵化器,通过fork方式创建应用程序进程和服务进程,预先加载类和资源,以提高系统效率。
摘要由CSDN通过智能技术生成

面试总结

Zygote 进程启动共做了如下几件事:

1、创建AppRuntime 并调用其start方法,启动Zygote进程

2、创建java虚拟机并为java虚拟机注册JNI方法

3、通过JNI调用ZygoteInit 的main 函数进入Zygote的Java框架层

4、通过registerZygoteSocket 方法创建服务器端Socket,并通过runSelectLoop方法等待AMS的请求来创建新的应用程序进程

5、启动SystemService进程

//#################################分割线 #################################################

Zygote 概述

Android系统中DVM(Dalvik虚拟机)和ART、应用程序进程以及运行系统的关键服务的SystemService进程都是由Zygote进程来创建的,我们称之为孵化器。

它通过fock的形来创建应用程序进程和SystemService进程,由于Zygote进程在启动时会创建DVM或者ART,因此通过fock而创建的应用程序进程和SystemService进程可以在内部获取一个DVM或者ART的实例副本

//#################################分割线 #################################################

Zygote 进程启动过程时序图

在这里插入图片描述

Zygote 进程都是通过fock自身来创建子进程

//######

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值