手机启动时进程流程(init.rc/zygote等)

image.png

先看一下应用进程的创建流程:

    1. AMS通过调用Process.start()来创建应用进程
    1. 在Process.start()里面通过ZygoteProcess的zygoteSendArgsAndGetResult与Zygote进程(Zygote是谁?它是进程孵化大师,创建之初就使用zygoteServer.registerServerSocketFromEnv创建zygote通信的服务端;然后还通过调用forkSystemServer启动system_server;然后是zygoteServer.runSelectLoop进入循环模式)建立Socket连接,并将创建进程所需要的参数发送给Zygote的Socket服务端
      Zygote进程的Socket服务端(ZygoteServer)收到参数后调用ZygoteConnection.processOneCommand() 处理参数,并 fork 进程
    1. 然后通过RuntimeInit的findStaticMain()找到ActivityThread类的main方法并执行
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容