一张图理解根activity的启动过程

image.png

如上图,我们其实可以从连接或者绑定的角度(连接或者绑定的意思就是两个对象互相持有引用),即一个根activity的启动过程其实就是App进程与AMS的连接与绑定,而现在的已知条件有三个

  • Launcher与AMS绑定
  • AMS与Zygote绑定
  • Zygote可以创建App进程
    所以答案就很简单了通过传递原理,Launcher->AMS->Zygote->App,最后APP其实可以拿到AMS的引用了类似TCP连接我们就知道了(地址:端口)了,然后就可以建立连接了。连接建立后AMS便可以通知APP进程正式启动activity
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。