Android AMS原理分析

2021-10-23 20:23:49 字數 678 閱讀 3486

ams(activitymanagerservice)本質上就是乙個aidl,通過他呼叫系統的底層服務,載入activity、service四大元件。

系統版本:android10.0(29)

各個版本具體的執行過程可能存在差異,但是總體的流程還是一樣的,都是需要兩次aidl,來和系統進行互動。

下面就來分析**執行流程

startactivity

(new

intent

(mainactivity.

this

,mainactivity.

class))

;

從上面這行**開始:下面是依次執行的流程圖

tips:了解ams的執行流程,才能方便對外掛程式化開發的理解,比如在執行第一次iactivitytaskmanager呼叫startactivity()時候,系統會檢測activity是否註冊過,因為外掛程式未安裝,所以這時候就需要將外掛程式中的activity替換成我們自定義的**proxyactivity,方便騙過系統。第二次就是在activitythread$h呼叫handlemessage()處理訊息的時候,將proxyactivity外殼去掉,還原成原來外掛程式中的activity。因此就是在兩次aidl之間進行外掛程式化開發。但是因為android不同版本系統之間存在差異,所以就需要不斷的相容修改,工作量還是很大的。

Android AmS 中比較重要的幾個系統常量

android ams 中比較重要的幾個系統常量 以下截圖來自 android核心剖析 max activities 20 20是大部分手機的數字,可能部分手機將這個數字改了的.通過sony l36h 驗證,的確是20個。也就是說,多個應用程式,開啟多個頁面,再回到第乙個應用程式的時候,所有頁面都是...

原理分析 煙氣分析儀工作原理

煙氣分析儀的工作原理常用兩種,一種是電化學工作原理,另一種是紅外工作原理。目前市場上的可攜式煙氣分析儀通常是這兩種原理相結合,電化學煙氣分析儀一般有德國菲索 德國mru德國德圖,國產的有天虹嶗應等,紅外煙氣分析儀廠家一般有德國mru,德國西門子等。以下是這兩種煙氣分析儀的工作原理介紹 電化學氣體感測...

fork原理分析

note4 首先必須有一點要清楚,函式的返回值是儲存在暫存器eax中的。其次,當fork返回時,新程序會返回0是因為在初始化任務結構時,將eax設定為0 在fork中,把子程序加入到可執行的佇列中,由程序排程程式在適當的時機排程執行。也就是從此時開始,當前程序 為兩個併發的程序。無論哪個程序被排程執...