💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
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在进程内和进程外的启动过程。