最详细的Activity启动流程分析,本文转自:http://www.cloudchou.com/android/post-788.html

 概述

Android中启动某个Activity,将先启动Activity所在的应用。应用启动时会启动一个以应用包名为进程名的进程,该进程有一个主线程,叫ActivityThread,也叫做UI线程。

本系列博客将详细阐述Activity的启动流程,这些博客基于Cm 10.1源码研究。

  • 深入理解Activity启动流程(二)--Activity启动相关类的类图
  • 深入理解Activity启动流程(三)--Activity启动的详细流程1
  • 深入理解Activity启动流程(三)--Activity启动的详细流程2
  • 深入理解Activity启动流程(四)--Activity Task的调度算法

Activity启动时的概要交互流程

用户从Launcher程序点击应用图标可启动应用的入口Activity,Activity启动时需要多个进程之间的交互,Android系统中有一个zygote进程专用于孵化Android框架层和应用层程序的进程。还有一个system_server进程,该进程里运行了很多binder service,例如ActivityManagerService,PackageManagerService,WindowManagerService,这些binder service分别运行在不同的线程中,其中ActivityManagerService负责管理Activity栈,应用进程,task。

Activity启动时的概要交互流程如下图如下所示(点击图片可看大图):

用户在Launcher程序里点击应用图标时,会通知ActivityManagerService启动应用的入口Activity,ActivityManagerService发现这个应用还未启动,则会通知Zygote进程孵化出应用进程,然后在这个dalvik应用进程里执行ActivityThread的main方法。应用进程接下来通知ActivityManagerService应用进程已启动,ActivityManagerService保存应用进程的一个代理对象,这样ActivityManagerService可以通过这个代理对象控制应用进程,然后ActivityManagerService通知应用进程创建入口Activity的实例,并执行它的生命周期方法。

后续博客将介绍Activity的详细启动流程。

更多相关文章

  1. Android音量相关知识总结(三)调节音量流程梳理
  2. Android两种杀掉进程方式总结(System.exit()和Process.killProce
  3. Android(安卓)面试精华题目总结
  4. Android(安卓)Notifications通知
  5. android camera API1调用camera HAL3流程学习总结
  6. Android关机流程解析---从reboot说起
  7. android 跨应用启动/绑定Service && aidl
  8. 深入了解Android(安卓)任务和进程
  9. Android(安卓)应用初始化及窗体事件的分发

随机推荐

  1. Android(安卓)Studio 错误: 非法字符: '
  2. Android 动态加载(三) - 类的加载流程源码
  3. Android Layout属性笔记
  4. 《Android 从初学者入门到成为高手 视频
  5. Android使用fitsSystemWindows属性实现–
  6. Android圆形水波纹按钮的实现(Ripple)
  7. Android技能树 — 排序算法基础小结
  8. android 写 xml时,加layout与不加的区别(如
  9. android:RecyclerView局部刷新那点事~
  10. Android开发工具——ADB(Android(安卓)De