Android zygote启动流程详解
对zygote的理解在Android系统中,zygote是一个native进程,是所有应用进程的父进程。而zygote则是Linux系统用户空间的第一个进程――init进程,通过fork的方式创建并启动的。作用zygote进程在启动时,会创建一个Dalvik虚拟机实例,每次孵化新的应用进程时,都会将这个Dalvik虚拟机实例复制到新的应用程序进程里面,从而使得每个应用程序进程都有一个独立的Dalvik虚拟机实例。zygote进程的主要作用有两个:启动SystemServer。启动流程启动入口Zygote进程在init进程中,通过解析init.zygote.rc配置文件,以service(服务)的方式启动并创建的。以init.zygote32.rc为例来看下:脚本讲解这段脚本要求 init 进程创建一个名为 zygote 的进程,该进程要执行的程序是“/system/bin/app_process”。并且为 zygote 进程创建一个 socket 资源 。在app_process的main函数中会依据该参数决定执行ZygoteInit还是Java类。
用户评论