Activity是Android應用程序的四大組件之一,它負責管理Android應用程序的用戶界面。一個應用程序一般會包含若干個Activity組件,每一個Activity即組件負責一個用戶界面的展現,它們可能運行在同一個進程中,也可能運行在不同的進程中。運行在不同進程中的Activity組件通過Binder進程間通信機制來協作完成應用程序的功能。由此可見, Android應用程序的組件化程度是非常高的, 它可以將運行在不同進程中的Activity組件組織在一起形成自己的功能。在本章中,我們通過分析Activity組件的啟動過程來理解它們在Android應用程序中的組織形式。
根據[意圖(Intent)](http://www.hmoore.net/alex_wsc/android/432707)的顯示與隱式(可參考Google官網介紹[Intent 和 Intent 過濾器](https://developer.android.com/guide/components/intents-filters.html#Building)或者總結的[譯文](http://www.hmoore.net/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應用程序的顯示過程