2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > [Android]Activity启动过程

[Android]Activity启动过程

时间:2020-08-20 11:51:54

相关推荐

[Android]Activity启动过程

Android系统启动加载流程:

参考图

Linux内核加载完毕启动init进程init进程fork出zygote进程zygote进程在ZygoteInit.main()中进行初始化的时候fork出SystemServer进程SystemServer进程开启的时候初始化ActivityThreadActivityManagerService(其它还有PowerManagerServiceDisplayManagerServicePackageManagerService)启动LauncherLauncher本质上也是一个App,继承自Activity

App与AMS通过Binder进行IPC通信

启动一个Activity

客户端:ActivityManagerProxy --> Binder驱动 --> ActivityManagerService:服务器

ActivityThread

老板,虽然说家里的事自己说了算,但是需要听从AMS的指挥Instrumentation

老板娘,负责家里的大事小事,但是一般不抛头露面,听一家之主ActivityThread的安排,每个Activity都有一个Instrumentation引用,整个进程只有一个Instrumentation实例ActivityManagerProxy

ActivityManagerNative.getDefault().startActivity获取ActivityManagerProxy对象通过Binder IPC与AMS通信AMS

真正启动一个Ativity(ActivityStackSupervisor,ActivityStack

Resume一个Activity

客户端:ApplicationThread <-- Binder驱动 <-- ApplicationThreadProxy:服务器

AMSApplicationThreadProxy

ApplicationThreadProxy对象通过Binder IPC与客户端通信。ApplicationThreadHandlerActivityThreadActivity

调用onResume方法

AMS(SystemServer进程)与zygote通过Socket进行IPC通信

参考:/zhaokaiqiang1992/article/details/49428287

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。