透析Activity启动流程(一)-Activity启动的概要流程
2018-03-12 20:55
309 查看
Activity启动时的概要流程
首先我们先了解下开启一个Activity时会发生什么:用户从Launcher程序点击应用图标可启动应用的入口Activity,Activity启动时需要多个进程之间的交互,Android系统中有一个zygote进程专用于孵化Android框架层和应用层程序的进程。还有一个system_server进程,该进程里运行了很多binder service,例如ActivityManagerService,PackageManagerService,WindowManagerService,这些binder service分别运行在不同的线程中,其中ActivityManagerService负责管理Activity栈,应用进程,task。同时启动某个Activity,将先启动Activity所在的应用。应用启动时会启动一个以应用包名为进程名的进程,该进程有一个主线程,叫ActivityThread,也叫做UI线程。
Activity启动时的概要交互流程如下图如下所示:
用户在Launcher程序里点击应用图标时,会通知ActivityManagerService启动应用的入口Activity,ActivityManagerService发现这个应用还未启动,则会通知Zygote进程孵化出应用进程,然后在这个dalvik应用进程里执行ActivityThread的main方法。应用进程接下来通知ActivityManagerService应用进程已启动,ActivityManagerService保存应用进程的一个代理对象,这样ActivityManagerService可以通过这个代理对象控制应用进程,然后ActivityManagerService通知应用进程创建入口Activity的实例,并执行它的生命周期方法。
透析Activity启动流程(二)-Activity启动时涉及到的相关类
相关文章推荐
- 《转》深入理解Activity启动流程(一)–Activity启动的概要流程
- 透析Activity启动流程(三)-Activity启动的详细流程2
- 深入理解Activity启动流程(一)–Activity启动的概要流程
- Activity启动时的概要交互流程
- 深入理解Activity启动流程(一)–Activity启动的概要流程
- 深入理解Activity启动流程(一)–Activity启动的概要流程
- Activity启动流程概要
- 透析Activity启动流程(三)-Activity启动的详细流程1
- Android系统应用框架篇:Activity启动流程(二)
- Activity的启动流程
- Activity启动流程
- Activity启动流程
- Android源码解析四大组件系列(四)---Activity启动详细流程
- Activity启动流程
- Android Activity启动流程源码解析
- Android 框架研究:(一)框架概要 —— 1.3 启动流程的分析
- Activity启动流程分析
- 《Android中级工程师》Activity启动流程
- Android系统应用框架篇:Activity启动流程(三)
- Activity启动流程