Android源碼——Activity組件的啟動過程

來源:互聯網
上載者:User

標籤:

Activity啟動過程

 

Launcher啟動MainActivity的過程主要分為6個步驟:

一、Launcher向ActivityManagerService發送一個啟動MainActivity的處理序間通訊請求;

二、ActivityManagerService首先將MainActivity的資訊儲存下來,再向Launcher組件發送一個進入中止狀態的處理序間通訊請求;

三、Launcher進入中止狀態後,向ActivityManagerService發送一個已經進入中止狀態的處理序間通訊請求;

四、ActivityManagerService啟動一個新的應用程式進程

五、新的進程啟動完畢,ActivityManagerService發送一個啟動完成的處理序間通訊請求到ActivityThread;

六、ActivityThread將MainActivity組件啟動起來。

 

 

子Activity在進程內啟動過程

一、MainActivity向ActivityManagerService發送一個啟動SubActivity處理序間通訊請求;

二、ActivityManagerService儲存SubActivity組件資訊,再向MainActivity發送進入中止狀態的處理序間通訊請求;

三、MainActivity進入中止狀態,並將狀態返回給ActivityManagerService;

四、ActivityManagerService將SubActivity儲存的組件發送給應用程式,將SubActivity啟動起來。

 

一個Activity組件是在已經存在的應用程式進程中啟動,還是在新的應用程式進程中啟動,取決於以下兩個因素:

Activity組件的的使用者ID;

Activity組件的android:process屬性。

 

Task用來將一系列相關的Activity組件整合到一起,共同完成一個業務功能。這些Activity可以在不同的進程中,這使得Activity組件的重用性強。

 

以上內容閱讀《Android系統原始碼情景分析》第7章《Activity組件的啟動過程》總結。

Android源碼——Activity組件的啟動過程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.