叢林(從零)探秘,揭開Android啟動(dòng)的神秘面紗

android啟動(dòng)的流程非常復(fù)雜,如果用語言描述繞幾下就暈了,所以最好的方式還是看圖說話,小編我嘔心瀝血繪制了一張淺顯易懂的流程圖,重在說明Android啟動(dòng)過程中,UI視圖是怎么建立的,比較適合初中級(jí)人員。圖略大,需要放大看,基本每一步都有說明。

當(dāng)然,作為高級(jí)開發(fā)人員,如果還需要更全面細(xì)致的流程可以參考下圖,這個(gè)是我在網(wǎng)上找的,具體來源忘記了:

這張圖基本上該有的都有了。。。

另外,對(duì)于涉及到的幾個(gè)關(guān)鍵類,需要做一些解釋說明:

ActivityManagerServices:簡稱AMS,服務(wù)端對(duì)象,負(fù)責(zé)系統(tǒng)中所有Activity的生命周期,主要負(fù)責(zé)系統(tǒng)中四大組件的啟動(dòng)、切換、調(diào)度及應(yīng)用進(jìn)程的管理和調(diào)度等工作,其職責(zé)與操作系統(tǒng)中的進(jìn)程管理和調(diào)度模塊相類似,因此它在Android中非常重要,它本身也是一個(gè)Binder的實(shí)現(xiàn)類。(廣播的注冊(cè)實(shí)際上是注冊(cè)到ActivityManagerServices中的)

ActivityThread:App的真正入口。當(dāng)開啟App之后,會(huì)調(diào)用main()開始運(yùn)行,開啟消息循環(huán)隊(duì)列,這就是傳說中的UI線程或者叫主線程。與ActivityManagerServices配合,一起完成Activity的管理工作

ApplicationThread:用來實(shí)現(xiàn)ActivityManagerService與ActivityThread之間的交互。在ActivityManagerService需要管理相關(guān)Application中的Activity的生命周期時(shí),通過ApplicationThread的代理對(duì)象與ActivityThread通訊。

ApplicationThreadProxy:是ApplicationThread在服務(wù)器端的代理,負(fù)責(zé)和客戶端的ApplicationThread通訊。AMS就是通過該代理與ActivityThread進(jìn)行通信的。

Instrumentation:每一個(gè)應(yīng)用程序只有一個(gè)Instrumentation對(duì)象,每個(gè)Activity內(nèi)都有一個(gè)對(duì)該對(duì)象的引用。Instrumentation可以理解為應(yīng)用進(jìn)程的管家,ActivityThread要?jiǎng)?chuàng)建或暫停某個(gè)Activity時(shí),都需要通過Instrumentation來進(jìn)行具體的操作。

ActivityStack:Activity在AMS的棧管理,用來記錄已經(jīng)啟動(dòng)的Activity的先后關(guān)系,狀態(tài)信息等。通過ActivityStack決定是否需要啟動(dòng)新的進(jìn)程。

ActivityRecord:ActivityStack的管理對(duì)象,每個(gè)Activity在AMS對(duì)應(yīng)一個(gè)ActivityRecord,來記錄Activity的狀態(tài)以及其他的管理信息。其實(shí)就是服務(wù)器端的Activity對(duì)象的映像。

TaskRecord:AMS抽象出來的一個(gè)“任務(wù)”的概念,是記錄ActivityRecord的棧,一個(gè)“Task”包含若干個(gè)ActivityRecord。AMS用TaskRecord確保Activity啟動(dòng)和退出的順序。如果你清楚Activity的4種launchMode,那么對(duì)這個(gè)概念應(yīng)該不陌生。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容