AMS WMS PMS總結

AMS主要功能:

ActivityManagerService 簡稱AMS,AMS是Android中最核心的服務,主要負責系統中四大組件的啓動、切換、調度及應用進程的管理和調度等工作。還負責啓動或殺死應用程序的進程。

功能包括:

  • 統一調度所有應用程序的Activity的生命週期
  • 啓動或殺死應用程序的進程
  • 啓動並調度Service的生命週期
  • 註冊BroadcastReceiver,並接收和分發Broadcast
  • 啓動併發布ContentProvider
  • 調度task
  • 處理應用程序的Crash
  • 查詢系統當前運行狀態

AMS的工作流程:
AMS的工作流程,其實就是Activity的啓動和調度的過程。可以見Activity的啓動流程總結

AMS的設計思想
AMS也用到了設計思想,主要是代理模式。

根據上圖我們可以看出,ActivityManagerProxy和ActivityManagerNative都實現了IActivityManager,ActivityManagerProxy就是代理部分,ActivityManagerNative就是實現部分,但ActivityManagerNative是個抽象類,並不處理過多的具體邏輯,大部分具體邏輯是由ActivityManagerService承擔,這就是爲什麼我們說真實部分應該爲ActivityManagerService。

WMS主要功能:

負責功能包括:

  • 爲所有窗口分配Surface。客戶端向WMS添加一個窗口的過程,其實就是WMS爲其分配一塊Surface的過程,一塊塊Surface在WMS的管理下有序的排布在屏幕上。Window的本質就是Surface。
  • 管理Surface的顯示順序、尺寸、位置。
  • 管理窗口動畫。
  • 輸入系統相關:WMS是派發系統按鍵和觸摸消息的最佳人選,當接收到一個觸摸事件,它需要尋找一個最合適的窗口來處理消息。

WMS工作流程:
1.窗口大小和位置(X軸和Y軸)的計算過程
2.窗口的組織方式
3.輸入法窗口的調整過程
4.壁紙窗口的調整過程
5.窗口Z軸位置的計算和調整過程
6.Activity窗口的啓動窗口的顯示過程
7.Activity窗口的切換過程
8.Activity窗口的動畫顯示過程

WMS的設計思想:
WMS的設計思想就是利用了橋接模式。


PWS主要功能:

PackageManagerService(簡稱 PMS),是 Android 系統核心服務之一,處理包管理相關的工作,常見的比如安裝、卸載應用等。PMS是系統服務,那麼應用層肯定有個PackageManager作爲binder call client端來供使用,但是這裏要注意,PackageManager是個抽象類,一般使用的是它的實現類:ApplicationPackageManager。因此PackageManager功能的具體實現還是ApplicationPackageManager這個實現類。

負責功能包括:

  • 提供一個應用程序的所有信息(ApplicationInfo)
  • 提供四大組件的信息
  • 查詢permission相關信息
  • 提供包的信息
  • 安裝、卸載APK

參考:https://blog.csdn.net/ljx1400052550/article/details/115518631

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