zoukankan      html  css  js  c++  java
  • Android系统启动流程(二)解析Zygote进程启动过程

    1.Zygote简介

    在Android系统中,DVM(Dalvik虚拟机)、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也将它称为孵化器。它通过fock(复制进程)的形式来创建应用程序进程和SystemServer进程,由于Zygote进程在启动时会创建DVM,因此通过fock而创建的应用程序进程和SystemServer进程可以在内部获取一个DVM的实例拷贝。 
    关于init启动zygote我们在上一篇文章已经提到了,这里就不赘述了,这篇文章主要分析Android7.0 Zygote的启动流程。

    2.AppRuntime分析

    3.Zygote的Java框架层

    上文我们通过JNI调用ZygoteInit的main函数后,Zygote便进入了Java框架层,此前没有任何代码进入过Java框架层,换句换说Zygote开创了Java框架层。 

    4.Zygote进程总结

    Zygote启动流程就讲到这,Zygote进程共做了如下几件事: 
    1.创建AppRuntime并调用其start方法,启动Zygote进程。 
    2.创建DVM并为DVM注册JNI. 
    3.通过JNI调用ZygoteInit的main函数进入Zygote的Java框架层。 
    4.通过registerZygoteSocket函数创建服务端Socket,并通过runSelectLoop函数等待ActivityManagerService的请求来创建新的应用程序进程。 
    5.启动SystemServer进程。

  • 相关阅读:
    获取配置文件
    windows下多tomcat部署
    tomcat是否有必要配置环境变量(摘)
    js删除map中元素
    HDU-3440 House Man
    HDU-1534 Schedule Problem
    POJ-1364/HDU 1531 King
    POJ-1275/HDU-1529 Cashier Employment
    POJ-1201/HDU-1384 Intervals
    HDU-5780 gcd
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/6213431.html
Copyright © 2011-2022 走看看