【Android】圖文解密Android ActivityManagerService

1、簡介

ActivityManagerService(AMS)是一個很重要的系統服務,下面首先從類圖來了解一下AMS及Activity的大家族,幾個核心的類已用顏色區分。

在這裏插入圖片描述

2、啓動

AMS在SystemServer中啓動,時序如下圖,可以看到Home是在AMS的systemReady中啓動的。

在這裏插入圖片描述

3、Lifecycle

Activity的Lifecycle是一個很重要的概念,如下圖。

在這裏插入圖片描述

Activity的Lifecycle的更多說明可參考:https://developer.android.com/guide/components/activities/activity-lifecycle。

Fragment與Activity的Lifecycle稍有不同,如下圖。

在這裏插入圖片描述

Fragment的詳細說明可參考:https://developer.android.com/guide/components/fragments。

4、Task&Stack

Activity的管理有個Task&Stack的概念,可以簡單理解爲Activity分組,表示了Activity間的關係,相關的類包括TaskRecord、ActivityStack、ActivityRecord,如下圖。

在這裏插入圖片描述

Task&Stack相關的說明可參考:https://developer.android.com/guide/components/activities/tasks-and-back-stack。

5、Recents

Android可以查看最近的Activity,然後從中打開某一個Activity或者關閉它們,這個功能是SystemUI的一部分,詳見:https://developer.android.com/guide/components/activities/recents。

6、多窗口

Android N開始支持多窗口,即分屏模式下的兩個Activity同時出現,或者畫中畫模式,用法詳見:https://developer.android.com/guide/topics/ui/multi-window。

7、Widget

Widget,即小插件,常在Home界面,可以不用打開App而處理一些事情,用法詳見:https://developer.android.com/guide/topics/appwidgets/overview。

8、快捷方式

快捷方式,即Home上的快捷方式,如何添加快捷方式,可從xml中配置,也可從java中添加,詳見:https://developer.android.com/guide/topics/ui/shortcuts/。

9、鏈接

鏈接,就是在一個地方打開另一個地方的東西,詳見:https://developer.android.com/guide/topics/ui/shortcuts/。

10、startActivity

startActivity是一個經常用到的東西,一般有兩種方式,一種是通過Activity直接啓動,另一種是通過Context啓動Activity。Android提供了兩種監控、攔截Activity的方式,一種是ActivityMonitor,另一種是ActivityController。下圖展示了從Activity中啓動的流程。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章