Activity是Android应用程序的四大组件之一,它负责管理Android应用程序的用户界面。一个应用程序一般会包含若干个Activity组件,每一个Activity即组件负责一个用户界面的展现,它们可能运行在同一个进程中,也可能运行在不同的进程中。运行在不同进程中的Activity组件通过Binder进程间通信机制来协作完成应用程序的功能。由此可见, Android应用程序的组件化程度是非常高的, 它可以将运行在不同进程中的Activity组件组织在一起形成自己的功能。在本章中,我们通过分析Activity组件的启动过程来理解它们在Android应用程序中的组织形式。
根据[意图(Intent)](https://www.kancloud.cn/alex_wsc/android/432707)的显示与隐式(可参考Google官网介绍[Intent 和 Intent 过滤器](https://developer.android.com/guide/components/intents-filters.html#Building)或者总结的[译文](https://www.kancloud.cn/alex_wsc/android/433595)),Activity组件的启动方式分为显示和隐式两种。对于显式启动的Activity组件来说,我们必须事先知道用来实现它们的类的名称;而对于隐式启动的Activity组件来说,我们只需要知道它们的组件名称即可,而不需要知道它们是由哪一个类来实现的。无论是显式启动的Activity组件,还是隐式启动的Activity组件,它们的启动过程都是类似的,唯一的区别在于系统是根据类名还是组件名称来找到它们。但是从软件工程的角度来看,隐式启动Activity组件可以减少Android应用程序组件间的依赖,因此,本章主要分析Activity组件的隐式启动过程。
接下来,我们首先通过一个应用实例来说明一个Activity组件的启动过程,然后分析应用程序根Activity的启动过程,最后分析应用程序子Activity在进程内和进程外的启动过程。
- 第一章 准备知识
- 第二章 硬件抽象层
- 第三章 智能指针
- 第四章 Logger日志系统
- 第五章 Binder进程间通信系统
- 第六章 Ashmem匿名共享内存系统
- 第七章 Activity组件的启动过程
- 7.1 Activity组件应用实例
- 7.2 根Activity组件的启动过程
- 第八章 Service组件的启动过程
- 第九章 Android系统广播机制
- 第十章 Content Provider组件的实现原理
- 第十一章 Zygote和System进程的启动过程
- 第十二章 Android应用程序进程的启动过程
- 第十三章 Android应用程序的消息处理机制
- 第十四章 Android应用程序的键盘消息处理机制
- 第十五章 Android应用程序线程的消息循环模型
- 第十六章 Android应用程序的安装和显示过程
- 16.1 Android应用程序的安装过程
- 16.2 Android应用程序的显示过程