Android App啟動(dòng)流程

Read The Fucking Source Code

引言

App的啟動(dòng)流程就是Activity的生命周期嗎佣谐?
也對(duì),但是這種理解太淺顯了

大道至簡(jiǎn)(Android Q — API 29)

頂層視角:具體到每一次IPC調(diào)用


抽絲剝繭

Step1:Launcher點(diǎn)擊啟動(dòng)乃秀,向AMS請(qǐng)求
Step2:AMS向Launcher進(jìn)程發(fā)送Pause
Step3:Launcher處理Pause后,反饋Pause給AMS
Step4:AMS向Zygote進(jìn)程發(fā)起新進(jìn)程創(chuàng)建請(qǐng)求
Step5:Zygote進(jìn)程創(chuàng)建新進(jìn)程妓忍,新進(jìn)程啟動(dòng)
Step6:新進(jìn)程啟動(dòng)唱星,向AMS發(fā)送應(yīng)用啟動(dòng)準(zhǔn)備請(qǐng)求
Step7:AMS處理啟動(dòng)數(shù)據(jù),反饋啟動(dòng)給新進(jìn)程
Step8:新進(jìn)程收到啟動(dòng)信號(hào)跌造,執(zhí)行Create杆怕、Start、Resume后壳贪,反饋Resume給AMS
Step9:AMS處理接收到的Resume
Step10:新進(jìn)程執(zhí)行完Resume后陵珍,會(huì)將一個(gè)IdleHandler添加到消息隊(duì)列,等待消息隊(duì)列空閑時(shí)违施,發(fā)送ActivityIdle給AMS
Step11:AMS處理接收到的ActivityIdle互纯,發(fā)送Stop給Launcher進(jìn)程
Step12:Launcher進(jìn)程收到Stop,處理Stop事務(wù)

千絲萬縷

?scheduleTransaction(ClientTransaction) 參考:【 Android ClientTransaction

Activity啟動(dòng)流程

?

問題思考

在子線程中可以更新UI嗎磕蒲?

  • 這個(gè)要看更新時(shí)機(jī)伟姐,因?yàn)榫€程檢查是在ViewRootImpl中的checkThread中進(jìn)行的收苏,在ViewRootImpl創(chuàng)建前就可以在子線程更新UI亿卤。
  • 那么ViewRootImpl是在什么時(shí)候創(chuàng)建的呢愤兵?是在Activity的onResume后創(chuàng)建的,所以在onResume前排吴,在子線程更新UI是沒有問題的秆乳。

?

小編的擴(kuò)展鏈接

《Android 視圖模塊 全家桶》
?

優(yōu)秀博客參考

代碼講解透徹/圖示清晰—Gityuan全家桶
最好的時(shí)序圖—分析Android中應(yīng)用的啟動(dòng)流程
Android應(yīng)用啟動(dòng)流程分析
Android APP 啟動(dòng)流程簡(jiǎn)析
總結(jié)activity啟動(dòng)過程中View,ViewRootImpl關(guān)系
ActivityStackSupervisor钻哩,ActivityStack屹堰,ActivityRecord,TaskRecord的關(guān)系

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末街氢,一起剝皮案震驚了整個(gè)濱河市扯键,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌珊肃,老刑警劉巖荣刑,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異伦乔,居然都是意外死亡厉亏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門烈和,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爱只,“玉大人,你說我怎么就攤上這事招刹√袷裕” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵疯暑,是天一觀的道長(zhǎng)训柴。 經(jīng)常有香客問我,道長(zhǎng)缰儿,這世上最難降的妖魔是什么畦粮? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮乖阵,結(jié)果婚禮上宣赔,老公的妹妹穿的比我還像新娘。我一直安慰自己瞪浸,他們只是感情好儒将,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著对蒲,像睡著了一般钩蚊。 火紅的嫁衣襯著肌膚如雪贡翘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天砰逻,我揣著相機(jī)與錄音鸣驱,去河邊找鬼。 笑死蝠咆,一個(gè)胖子當(dāng)著我的面吹牛踊东,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播刚操,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼闸翅,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了菊霜?” 一聲冷哼從身側(cè)響起坚冀,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鉴逞,沒想到半個(gè)月后记某,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡华蜒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年辙纬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叭喜。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贺拣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捂蕴,到底是詐尸還是另有隱情譬涡,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布啥辨,位于F島的核電站涡匀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏溉知。R本人自食惡果不足惜陨瘩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望级乍。 院中可真熱鬧舌劳,春花似錦、人聲如沸玫荣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)捅厂。三九已至贯卦,卻和暖如春资柔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撵割。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工贿堰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人睁枕。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓官边,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親外遇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容