Android10.0 Activity啟動流程

話語不多 ,整個順序流程方便自己以后查看.


開始有Activity的startActivity()開始.

Activity.java


這兩個方法最終會調(diào)用


Instrumemtation.java

這里有Activity類 改調(diào)用了Instrumemtation類中execStartActivity()

這里的ActivityTaskManager.getService()進(jìn)入后可以發(fā)現(xiàn)它時一個aidl調(diào)用,所以可以看出來其實一個應(yīng)用中的AActivity啟動BActivity其實是進(jìn)程間通信


ActivityTaskManagerService是IActivityTaskManager的實現(xiàn)類.


所以這里調(diào)用的其實是ActivityTaskManagerService類中的startActivity()


之后調(diào)用startActivityAsUser()


調(diào)用 下面方法中需要注意的是這里有個setMayWait()方法和最終的execute()


這里的setMayWait()方法 將mRquest.myWait 設(shè)置為true 為之后做準(zhǔn)備




其中g(shù)etActivityStartController()中返回的是ActivityStartController


ActivityStartController類中的obtainStarter()


這里有個mFactory 看導(dǎo)入的包 可以看到是來自ActivityStarterFactory進(jìn)入該類.



可以看到這個類是個接口? 需要找到Factory的實現(xiàn)類? 剛好該類的下方有一個DefaultFactory是Factory的實現(xiàn)類 而且搜索后暫時只找到了這一個 看一下 找到對應(yīng)的obtain方法



obtain()方法中的 mStarterPool 是一個同步池


這個同步池是處理activity頻繁創(chuàng)建和跳轉(zhuǎn)的一個機(jī)制

最終調(diào)用的還是ActivityStarter中的excute()方法


在上面mRquest.myWait? 被設(shè)置成了true 所以在這里 會調(diào)用startActvityMyWait()方法

在startActvityMyWait()這個方法里最終會調(diào)用startActivity()這個方法


之后


調(diào)用重載方法 startActivity()

在該方法中

繼續(xù)調(diào)用重載方法startActivity()


在startActivityUnchecked()方法中有





ActivityStack中的方法

在resumeTopActivityInnerLocked()中


mStatckSupervisor

ActivityStackSupervisor 類中? 在startSpecificActivityLocked中 找到realStartActivityLocked()


在realStartActivityLocked()方法中.

有兩個重要的部分!!!

第一個是增加了callBack? 后面很有用


LaunchActivityItem 是ClientTransactionItem的子類

第二個?執(zhí)行啟動activity任務(wù)


LaunchActivityItem.obtain() 方法



ClientLifecycleManager中scheduleTransaction()


ClientTransaction類中的

ClientTransaction類中的mClient

需要找到IApplicationThread的實現(xiàn)類? 搜尋后找不到? (可以網(wǎng)上查些資料) IApplicationThread是在ActivityThread的內(nèi)部類

在ActivityThread類中.




ActivityThread.this.sheduleTransaction指的是ActivityThread的父類中的方法



ClientTransactionHandler的實現(xiàn)類 是ActivityThread 所以給sendMessage()在ActivityThread中尋找




進(jìn)入TransactionExecutor 類中的execute()



回到之前代碼中查找callbacks是哪里來的?

在執(zhí)行啟動actvity時加入了callback 即 LaunchActivityItem


?這里的execute()是LaunchActivityItem執(zhí)行的.

LaunchActivityItem.java

可以看出client即為 ClientTransactionHandler


ClientTransactionHandler.java中 可以看出是一個abstract 方法 需要調(diào)用其子類中的方法

ActivityThread即為其子類,所以查找ActivityThread類中的handleActivity()

ActivityThread中handleLaunchActivity()




ActivityThread

ActivityThread中performLaunchActivity()方法中有



Instrumentation中 callActivityOnCreate()

進(jìn)入Activity中performCreate()




?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末招刹,一起剝皮案震驚了整個濱河市厉亏,隨后出現(xiàn)的幾起案子杜跷,更是在濱河造成了極大的恐慌额港,老刑警劉巖敬辣,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異君仆,居然都是意外死亡最爬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門汪疮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來峭火,“玉大人,你說我怎么就攤上這事智嚷÷敉瑁” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵盏道,是天一觀的道長稍浆。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么粹湃? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任恐仑,我火速辦了婚禮,結(jié)果婚禮上为鳄,老公的妹妹穿的比我還像新娘裳仆。我一直安慰自己,他們只是感情好孤钦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布歧斟。 她就那樣靜靜地躺著,像睡著了一般偏形。 火紅的嫁衣襯著肌膚如雪静袖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天俊扭,我揣著相機(jī)與錄音队橙,去河邊找鬼。 笑死萨惑,一個胖子當(dāng)著我的面吹牛捐康,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播庸蔼,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼解总,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姐仅?” 一聲冷哼從身側(cè)響起花枫,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掏膏,沒想到半個月后劳翰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壤追,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年磕道,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片行冰。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡溺蕉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出悼做,到底是詐尸還是另有隱情疯特,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布肛走,位于F島的核電站漓雅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜邻吞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一组题、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抱冷,春花似錦崔列、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至耿眉,卻和暖如春边翼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸣剪。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工组底, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人筐骇。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓斤寇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拥褂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

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