Android AMS——APP启动流程(三)

         Android 应用启动方式主要有两种 , 冷启动和热启动。

  • 冷启动:后台没有应用进程 , 需要先创建进程 , 然后启动 Activity ;
  • 热启动:后台有应用进程 , 不创建进程 , 直接启动 Activity ;

        其实,还有一种温起动的方式,就是用户按了返回键退出应用,随后又从新启动,可是活动的进程是有驻留在后台的。这里为了分析完整的启动流程,我们主要分析冷启动流程。

一、启动流程

        Zygote 进程在 App 层中孵化出的第一个进程是 Launcher 进程,即手机的桌面APP。Zygote还会孵化出 Browser、Email、Phone 等 AP P进程,每个 APP 至少运行在一个进程上。所有 APP 进程都由 Zygote 进程 fork 生成。

1、启动APP进程

        点击 Launcher 桌面程序的 APP 图标,Launcher 程序会调用 startActivity() 函数,通过 Binder 跨进程通信,发送消息给 system_server 进程。在 system_server 进程中,由 AMS 通过 socket 通信告知 Zygote 进程 fork 出一个子进程(APP进程)。

2、开启APP主线程

猜你喜欢

转载自blog.csdn.net/c19344881x/article/details/133269478