android 学习笔记 Activity 和service 的启动过程
2013-06-02 20:46
363 查看
Service
这样,Android系统在新进程中启动服务的过程就分析完成了,虽然很复杂,但是条理很清晰。它通过三次Binder进程间通信完成了服务的启动过程,分别是:
一. Step 1至Step 7,从主进程调用到ActivityManagerService进程中,完成新进程的创建;
二. Step 8至Step 11,从新进程调用到ActivityManagerService进程中,获取要在新进程启动的服务的相关信息;
三. Step 12至Step 20,从ActivityManagerService进程又回到新进程中,最终将服务启动起来。
Activity
整个应用程序的启动过程要执行很多步骤,但是整体来看,主要分为以下五个阶段:
一. Step1 - Step 11:Launcher通过Binder进程间通信机制通知ActivityManagerService,它要启动一个Activity;
二. Step 12 - Step 16:ActivityManagerService通过Binder进程间通信机制通知Launcher进入Paused状态;
三. Step 17 - Step 24:Launcher通过Binder进程间通信机制通知ActivityManagerService,它已经准备就绪进入Paused状态,于是ActivityManagerService就创建一个新的进程,用来启动一个ActivityThread实例,即将要启动的Activity就是在这个ActivityThread实例中运行;
四. Step 25 - Step 27:ActivityThread通过Binder进程间通信机制将一个ApplicationThread类型的Binder对象传递给ActivityManagerService,以便以后ActivityManagerService能够通过这个Binder对象和它进行通信;
五. Step 28 - Step 35:ActivityManagerService通过Binder进程间通信机制通知ActivityThread,现在一切准备就绪,它可以真正执行Activity的启动操作了。
这里不少地方涉及到了Binder进程间通信机制,相关资料请参考Android进程间通信(IPC)机制Binder简要介绍和学习计划一文。
这样,应用程序的启动过程就介绍完了,它实质上是启动应用程序的默认Activity,在下一篇文章中,我们将介绍在应用程序内部启动另一个Activity的过程,即新的Activity与启动它的Activity将会在同一个进程(Process)和任务(Task)运行,敬请关注。
Android系统在新进程中启动自定义服务过程(startService)的原理分析
http://blog.csdn.net/luoshengyang/article/details/6677029
Android应用程序启动过程源代码分析
http://blog.csdn.net/luoshengyang/article/details/6689748
这样,Android系统在新进程中启动服务的过程就分析完成了,虽然很复杂,但是条理很清晰。它通过三次Binder进程间通信完成了服务的启动过程,分别是:
一. Step 1至Step 7,从主进程调用到ActivityManagerService进程中,完成新进程的创建;
二. Step 8至Step 11,从新进程调用到ActivityManagerService进程中,获取要在新进程启动的服务的相关信息;
三. Step 12至Step 20,从ActivityManagerService进程又回到新进程中,最终将服务启动起来。
Activity
整个应用程序的启动过程要执行很多步骤,但是整体来看,主要分为以下五个阶段:
一. Step1 - Step 11:Launcher通过Binder进程间通信机制通知ActivityManagerService,它要启动一个Activity;
二. Step 12 - Step 16:ActivityManagerService通过Binder进程间通信机制通知Launcher进入Paused状态;
三. Step 17 - Step 24:Launcher通过Binder进程间通信机制通知ActivityManagerService,它已经准备就绪进入Paused状态,于是ActivityManagerService就创建一个新的进程,用来启动一个ActivityThread实例,即将要启动的Activity就是在这个ActivityThread实例中运行;
四. Step 25 - Step 27:ActivityThread通过Binder进程间通信机制将一个ApplicationThread类型的Binder对象传递给ActivityManagerService,以便以后ActivityManagerService能够通过这个Binder对象和它进行通信;
五. Step 28 - Step 35:ActivityManagerService通过Binder进程间通信机制通知ActivityThread,现在一切准备就绪,它可以真正执行Activity的启动操作了。
这里不少地方涉及到了Binder进程间通信机制,相关资料请参考Android进程间通信(IPC)机制Binder简要介绍和学习计划一文。
这样,应用程序的启动过程就介绍完了,它实质上是启动应用程序的默认Activity,在下一篇文章中,我们将介绍在应用程序内部启动另一个Activity的过程,即新的Activity与启动它的Activity将会在同一个进程(Process)和任务(Task)运行,敬请关注。
Android系统在新进程中启动自定义服务过程(startService)的原理分析
http://blog.csdn.net/luoshengyang/article/details/6677029
Android应用程序启动过程源代码分析
http://blog.csdn.net/luoshengyang/article/details/6689748
相关文章推荐
- Android 7.0 ActivityManagerService(4) 启动Activity的过程:三
- Android应用程序的Activity启动过程简要介绍和学习计划
- Android应用程序的Activity启动过程简要介绍和学习计划
- 老罗的Android之旅——Android应用程序的Activity启动过程简要介绍和学习计划
- Android 应用的安装与启动过程(学习笔记)
- Android应用开发学习笔记之启动另外一个Activity
- 【学习笔记】Android中的Activity启动模式
- android开发艺术探索 学习笔记(二) Activity的启动模式
- android学习--Activity及应用启动过程
- Android 7.0 ActivityManagerService(4) 启动Activity的过程:三
- Android应用程序的Activity启动过程简要介绍和学习计划
- [Android新手学习笔记09]-活动Activity启动模式
- Android应用程序的Activity启动过程简要介绍和学习计划
- Android 7.0 ActivityManagerService(2) 启动Activity的过程:一
- Android应用程序的Activity启动过程简要介绍和学习计划
- Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析
- Android应用程序的Activity启动过程简要介绍和学习计划
- Android应用程序的Activity启动过程简要介绍和学习计划 .
- Android应用程序的Activity启动过程简要介绍和学习计划
- Android应用程序的Activity启动过程简要介绍和学习计划