Java教程

AMS系列- 应用启动流程

本文主要是介绍AMS系列- 应用启动流程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

上一篇 ams启动流程

概述

  1. Launcher点击应用图标:
  2. binder进入ATMS,为应用第一个act创建ActivityRecord,找到其ActivityStack,将ActivityRecord插入到所在TaskRecord的合位置,最后执行ActivityManagerInternal::startProcess
  3. 进入AMS,请求创建应用进程:这个过程创建了ProcessRecord对象,并处理保存了进程所需各种信息,最后通过Process.start()请求创建应用进程
  4. Zygote创建应用进程,通过socket与zygote进程通信,fork出应用进程
  5. 应用进程主线程-执行ActivityThread的main():在应用主线程中,执行ActivityThread的main
  6. 进入系统进程,绑定应用进程,创建应用Application,将应用进程绑定到ATMS中,由他们管理
  7. 回到应用进程,创建应用第一个Activity,执行了attach() 和onCreate()

注:AMS和ATMS服务都是在系统进程-system server进程中。
所以,整个过程 进程变化是:Launcher进程(binder)->systemserver进程(socket)->zygote进程(socket)->应用进程(binder)->systemserver进程(binder)->应用进程

这篇关于AMS系列- 应用启动流程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!