应用程序进程启动过程

应用程序进程简介

要想启动一个应用程序,首先要保证这个应用程序所需要的应用程序进程已经启动。AMS 在启动应用程序时会检查这个应用程序需要的应用程序进程是否存在,不存在就会请求 Zygote 进程启动需要的应用程序进程。Zygote 的 Java 框架层中会创建一个 Server 端的 Socket,这个 Socket 用来等待 AMS 请求 Zygote 来创建新的应用程序进程。Zygote 进程通过 fork 自身创建应用程序进程,这样应用程序进程就获得了 Zygote 进程在启动时创建的虚拟机实例。当然,在应用程序进程创建过程中除了获取虚拟机实例外,还创建了 Binder 线程池和消息循环,这样运行在应用程序进程中的应用程序就可以使用 Binder 进行进程间通信以及消息处理了。

启动过程

启动过程可以分为两步:

  1. AMS 发送启动应用程序进程请求

    AMS 如果想要启动应用程序进程,就需要向 Zygote 进程发送创建应用程序进程的请求,AMS 会通过调用 startProcessLocked 方法向 Zygote 进程发送请求。

  2. Zygote 接收请求并创建应用程序进程

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 系统启动后,我们就比较关心应用程序是如何启动的 1.应用程序进程概述 要想启动一个应用程序,首先要保证这个应用程序...
    凯玲之恋阅读 344评论 0 1
  • 相许会再续,会相欠,欠今生,还来世。人事少许情,又留人间多少爱… 过来人知过来事,便不会执迷不悟,...
    刘晓车阅读 382评论 0 2
  • 俺就在 你的身旁 已为你瘦了啊 从山那边 到这方 这一路上 俺对你的呵护 跟这感动围巾的风一样 但你 感动了吗 下...
    本无痕阅读 489评论 71 83
  • 女儿国国王给唐僧送别,落日撒下余晖,他身骑白马,只说了一句,“若有来生。” 小时候在电视上看到国王与唐僧告别时,女...
    庄主说阅读 675评论 0 2
  • 陈晓卿总导演的《风味人间》更新了,一时间,迎来了又一次如潮水般的好评。 什么原因呢?因为陈晓卿是一位纪录片导演,而...
    书生号贺阅读 235评论 0 2