美文网首页
Application的创建,Task的创建,以及activit

Application的创建,Task的创建,以及activit

作者: 没风的地方 | 来源:发表于2021-03-28 18:50 被阅读0次

Application的启动

1 launcher 的应用图标被点击。
2 调用Instrumentation.execStartActivity(this,mMainThread.getApplicationThread(), …) 创建ApplicationThread并调用ActivityManager.getService() .startActivity。
3 ActivityManager.getService() .startActivity(ApplicationThread,…)使用ApplicationThread开启。
4 ActivityManager.getService()使用ServiceManager.getService获取实例,如下:
final IBinder b=ServiceManager.getService(Context.ACTIVITY_SERVICE);
//2. aidl 获取AMS
final IActivityManager am = IActivityManager.Stub.asInterface(b);

5 进入第3步的startActivity方法,一连串调用之后,创建了ActivityStack。
6 然后调用ActivityStack的resumeTopActivityInnerLocked。
7 然后调用ams的startProcessLocked。
8 然后调用startViaZygote方法。
9 然后调用zygoteSendArgsAndGetResult,zygote使用参数fork子进程。

Task的创建

Task是栈,先进后出,每个应用都有一个对应的Task,用来存放Activity

Activity的启动和声明周期的管理

启动方式

相关文章

网友评论

      本文标题:Application的创建,Task的创建,以及activit

      本文链接:https://www.haomeiwen.com/subject/mdgphltx.html