在介绍完App的启动流程后,我们发现,其实就是启动一个App的首页。
接下来我们看App内部页面的跳转(即**子Activity的启动过程**)。
从ActivityA跳转到ActivityB,其实可以把ActivityA看作是Launcher,那么这个跳转过程,和App的启动过程就很像了。
有了前面的分析基础,会发现,这个过程不需要重新启动一个新的进程,所以可以省略App启动过程中的一些步骤,流程简化为:
* 1)ActivityA向AMS发送一个启动ActivityB的消息。
* 2)AMS保存ActivityB的信息,然后通知App,你可以休眠了(onPaused)。
* 3)ActivityA进入休眠,然后通知AMS,我休眠了。
* 4)AMS发现ActivityB所在的进程就是ActivityA所在的进程,所以不需要重新启动新的进程,所以它就会通知App,启动ActivityB。
* 5)App启动ActivityB。
不想看上述文字的,看我画的这个图:
![](http://images2015.cnblogs.com/blog/13430/201705/13430-20170519230735275-563343566.png)
整体流程我就不多说了,和上一篇文章介绍的App启动流程是基本一致的。
以上的分析,仅限于ActivityA和ActivityB在相同的进程中,如果在Manifest中指定这两个Activity不在同一个进程中,那么就又是另一套流程了,但是整体流程大同小异。
**附录**:
附一张老罗分析子Activity的启动过程流程图
![](https://box.kancloud.cn/bf747abf762d871d049ae0a5f7758338_1524x1996.jpg)
- 前言
- Android 热补丁技术——资源的热修复
- 插件化系列详解
- Dex分包——MultiDex
- Google官网——配置方法数超过 64K 的应用
- IMOOC热修复与插件化笔记
- 第1章 class文件与dex文件解析
- Class文件解析
- dex文件解析
- class与dex对比
- 第2章 虚拟机深入讲解
- 第3章 ClassLoader原理讲解
- 类的加载过程
- ClassLoade源码分析
- Android中的动态加载
- 第4章 热修复简单讲解
- 第5章 热修复AndFix详解
- 第6章 热修复Tinker详解及两种方式接入
- 第7章 引入热修复后代码及版本管理
- 第8章 插件化原理深入讲解
- 第9章 使用Small完成插件化
- 第10章 使用Atlas完成插件化
- 第11章 课程整体总结
- DN学院热修复插件化笔录
- 插件化
- 热修复
- Android APP开发应掌握的底层知识
- 概述
- Binder
- AIDL
- AMS
- Activity的启动和通信原理
- App启动流程第2篇
- App内部的页面跳转
- Context家族史
- Service
- BroadcastReceiver
- ContentProvider
- PMS及App安装过程