哪個(gè)網(wǎng)站做衣服的線上營銷策略
Android進(jìn)階:一口氣讀完《Android進(jìn)階解密》 - 掘金
Android AMS(Activity Manager Service)實(shí)現(xiàn)的功能
**管理應(yīng)用程序的生命周期:**啟動、停止、暫停、恢復(fù)和銷毀應(yīng)用程序。
**控制應(yīng)用程序的啟動順序:**確保應(yīng)用程序以正確的順序啟動,以避免沖突。
**維護(hù)應(yīng)用程序狀態(tài):**跟蹤應(yīng)用程序的當(dāng)前狀態(tài)(如正在運(yùn)行、已暫停等)。
**管理應(yīng)用程序權(quán)限:**授予和撤銷應(yīng)用程序的權(quán)限。
**處理應(yīng)用程序間通信:**允許應(yīng)用程序通過 Binder IPC 機(jī)制進(jìn)行通信。
**提供應(yīng)用程序信息:**提供有關(guān)已安裝應(yīng)用程序的詳細(xì)信息,例如其名稱、版本和權(quán)限。
**優(yōu)化內(nèi)存使用:**管理應(yīng)用程序的內(nèi)存使用,以防止內(nèi)存泄漏和系統(tǒng)崩潰。
**處理低內(nèi)存情況:**當(dāng)系統(tǒng)內(nèi)存不足時(shí),終止低優(yōu)先級的應(yīng)用程序以釋放內(nèi)存。
**提供調(diào)試和診斷工具:**允許開發(fā)人員調(diào)試和診斷應(yīng)用程序問題。
AMS 交互的模塊
**WindowManagerService (WMS):**管理應(yīng)用程序窗口。
**PackageManagerService (PMS):**管理已安裝的應(yīng)用程序。
**ContentProviderManagerService (CPMS):**管理內(nèi)容提供程序。
**InputManagerService (IMS):**管理輸入事件。
**NotificationManagerService (NMS):**管理通知。
**AlarmManagerService (AMS):**管理鬧鐘。
**JobSchedulerService (JSS):**管理作業(yè)調(diào)度。
**ConnectivityManagerService (CMS):**管理網(wǎng)絡(luò)連接。
**BatteryManagerService (BMS):**管理電池信息。
**SensorManagerService (SMS):**管理傳感器。
**LocationManagerService (LMS):**管理位置信息。
WindowManagerService與AMS有哪些交互,實(shí)現(xiàn)了哪些業(yè)務(wù)邏輯?
WindowManagerService (WMS) 與 Activity Manager Service (AMS) 的交互
WMS 和 AMS 密切交互,以管理 Android 設(shè)備上的應(yīng)用程序窗口。以下是它們交互的一些關(guān)鍵方面:
**AMS 通知 WMS 創(chuàng)建窗口:**當(dāng) AMS 啟動一個(gè)應(yīng)用程序時(shí),它會通知 WMS 創(chuàng)建一個(gè)窗口來顯示應(yīng)用程序的 UI。WMS 負(fù)責(zé)管理窗口的生命周期,包括創(chuàng)建、顯示、隱藏和銷毀窗口。
**WMS 通知 AMS 窗口狀態(tài)更改:**當(dāng) WMS 的窗口狀態(tài)發(fā)生更改時(shí)(例如,窗口獲得或失去焦點(diǎn)),它會通知 AMS。這使 AMS 能夠相應(yīng)地更新應(yīng)用程序的狀態(tài)(例如,暫?;蚧謴?fù)應(yīng)用程序)。
**AMS 控制窗口的顯示順序:**AMS 負(fù)責(zé)控制窗口的顯示順序。它決定哪些窗口應(yīng)該在前臺顯示,哪些窗口應(yīng)該在后臺顯示。WMS 根據(jù) AMS 的指示管理窗口的堆疊順序。
**WMS 執(zhí)行 AMS 的窗口操作:**AMS 可以向 WMS 發(fā)出命令來執(zhí)行各種窗口操作,例如: * 創(chuàng)建窗口 * 銷毀窗口 * 移動窗口 * 調(diào)整窗口大小 * 更改窗口屬性
**WMS 提供窗口信息:**WMS 可以向 AMS 提供有關(guān)窗口的信息,例如: * 窗口的當(dāng)前狀態(tài) * 窗口的尺寸和位置 * 窗口的透明度 * 窗口的輸入焦點(diǎn)
實(shí)現(xiàn)的業(yè)務(wù)邏輯
WMS 和 AMS 之間的交互實(shí)現(xiàn)了以下業(yè)務(wù)邏輯:
**應(yīng)用程序窗口管理:**WMS 創(chuàng)建、管理和銷毀應(yīng)用程序窗口,確保應(yīng)用程序 UI 正確顯示。
**窗口狀態(tài)跟蹤:**WMS 跟蹤窗口的狀態(tài),并通知 AMS 任何狀態(tài)更改。這使 AMS 能夠相應(yīng)地更新應(yīng)用程序的狀態(tài)。
**窗口顯示控制:**AMS 控制窗口的顯示順序,確保前臺應(yīng)用程序的窗口始終可見。
**窗口操作執(zhí)行:**WMS 執(zhí)行 AMS 發(fā)出的窗口操作命令,允許 AMS 動態(tài)控制應(yīng)用程序窗口。
**窗口信息提供:**WMS 向 AMS 提供有關(guān)窗口的信息,使 AMS 能夠做出明智的決策并管理應(yīng)用程序窗口。
總之,WMS 和 AMS 之間的交互對于管理 Android 設(shè)備上的應(yīng)用程序窗口至關(guān)重要。它使 AMS 能夠控制窗口的顯示和行為,而 WMS 負(fù)責(zé)執(zhí)行這些操作并提供有關(guān)窗口狀態(tài)的信息
窗口不直接在 Activity 中創(chuàng)建和管理,而是使用 WindowManagerService (WMS) 進(jìn)行管理的主要原因如下:
1. 解耦應(yīng)用程序和窗口系統(tǒng): WMS 將應(yīng)用程序與底層窗口系統(tǒng)解耦。這允許應(yīng)用程序?qū)W⒂谄錁I(yè)務(wù)邏輯,而無需擔(dān)心窗口管理的復(fù)雜性。
2. 集中式窗口管理: WMS 提供了一個(gè)集中式機(jī)制來管理所有應(yīng)用程序窗口。這確保了窗口的一致性、堆疊順序和資源分配。
3. 跨進(jìn)程邊界: WMS 作為一個(gè)獨(dú)立的系統(tǒng)服務(wù)運(yùn)行,與應(yīng)用程序進(jìn)程隔離。這允許它管理來自不同應(yīng)用程序的窗口,而無需擔(dān)心進(jìn)程崩潰或安全問題。
4. 性能優(yōu)化: WMS 針對窗口管理進(jìn)行了優(yōu)化,可以高效地創(chuàng)建、銷毀和管理窗口。它還處理窗口動畫和過渡,以提供流暢的用戶體驗(yàn)。
5. 安全性: WMS 充當(dāng)應(yīng)用程序和窗口系統(tǒng)之間的安全邊界。它可以驗(yàn)證應(yīng)用程序?qū)Υ翱诓僮鞯恼埱?#xff0c;并防止惡意應(yīng)用程序訪問或修改其他應(yīng)用程序的窗口。
6. 兼容性: WMS 提供了一個(gè)跨不同 Android 設(shè)備的標(biāo)準(zhǔn)化接口來管理窗口。這確保了應(yīng)用程序在各種設(shè)備上的一致行為。
7. 可擴(kuò)展性: WMS 是一個(gè)可擴(kuò)展的系統(tǒng),允許添加新功能和特性,例如多窗口模式、畫中畫模式和窗口動畫。
8. 調(diào)試和診斷: WMS 提供了調(diào)試和診斷工具,允許開發(fā)人員識別和解決窗口管理問題。
總之,使用 WMS 來管理窗口而不是在 Activity 中直接創(chuàng)建和管理窗口提供了許多好處,包括解耦、集中管理、性能優(yōu)化、安全性、兼容性、可擴(kuò)展性和調(diào)試能力。
AMS和WMS之間定義了哪些通信接口
AMS 和 WMS 之間定義了以下通信接口:
1. IWindow
允許 WMS 與應(yīng)用程序窗口進(jìn)行交互。
提供創(chuàng)建、銷毀、移動、調(diào)整大小和獲取窗口屬性等方法。
2. IWindowManager
允許 AMS 與 WMS 進(jìn)行交互。
提供創(chuàng)建、銷毀、移動、調(diào)整大小和獲取窗口屬性等方法。
還提供控制窗口顯示順序、獲取窗口列表和設(shè)置窗口標(biāo)志等方法。
3. IAppOpsService
允許 WMS 查詢和修改應(yīng)用程序操作權(quán)限。
例如,WMS 可以檢查應(yīng)用程序是否具有在其他應(yīng)用程序之上繪制窗口的權(quán)限。
4. IPermissionController
允許 WMS 查詢和修改應(yīng)用程序權(quán)限。
例如,WMS 可以檢查應(yīng)用程序是否具有訪問特定窗口屬性的權(quán)限。
5. IActivityManager
允許 WMS 與 AMS 進(jìn)行交互。
提供啟動、停止、獲取和修改應(yīng)用程序活動狀態(tài)的方法。
6. IActivityTaskManager
允許 WMS 與 AMS 進(jìn)行交互。
提供創(chuàng)建、銷毀、移動和調(diào)整任務(wù)大小的方法。
7. IDisplayManager
允許 WMS 與 DisplayManagerService (DMS) 進(jìn)行交互。
提供獲取和修改顯示屬性的方法。
8. IInputManager
允許 WMS 與 InputManagerService (IMS) 進(jìn)行交互。
提供處理輸入事件和管理輸入設(shè)備的方法。
9. IStatusBarManager
允許 WMS 與 StatusBarManagerService (SBS) 進(jìn)行交互。
提供控制狀態(tài)欄可見性和行為的方法。
10. INotificationManager
允許 WMS 與 NotificationManagerService (NS) 進(jìn)行交互。
提供控制通知可見性和行為的方法。
這些接口通過 Binder IPC 機(jī)制進(jìn)行通信。AMS 和 WMS 使用這些接口來交換有關(guān)窗口、應(yīng)用程序和設(shè)備狀態(tài)的信息,并協(xié)調(diào)窗口管理操作。