Android-系統(tǒng)-啟動流程

概述

  • Android系統(tǒng)基于Linux內(nèi)核,所以Android系統(tǒng)啟動時涡贱,首先要初始化Linux內(nèi)核巧勤;
  • 整體流程分為三部分:BootLoader;Linux Kernel湾揽;Android Kernel瓤逼;

流程

BootLoader
  • 開機(jī)時系統(tǒng)開始供電笼吟,硬件電路會產(chǎn)生一個確定的復(fù)位時序(CPU時最后一個被復(fù)位的硬件)库物;正確完成復(fù)位后,CPU開始執(zhí)行第一條指令贷帮,這條指令地址是固定戚揭,由CPU制造商指定,指向的就是BootLoader程序撵枢,BootLoader作用是裝載真正的系統(tǒng)軟件民晒;
Linux Kernel
  • Linux Kernel初始化時執(zhí)行的操作包括:初始化各種硬件,包括內(nèi)存锄禽,網(wǎng)絡(luò)接口潜必,顯示器,輸入設(shè)備等沃但;然后建立各種內(nèi)部數(shù)據(jù)結(jié)構(gòu)磁滚,用于內(nèi)存管理,線程調(diào)度等宵晚;
Android Kernel
  • 1.啟動第一個進(jìn)程Init(初始化進(jìn)程)垂攘;
  • 2.啟動守護(hù)進(jìn)程
    • 啟動USB守護(hù)進(jìn)程(usbd)來管理USB連接;
    • 啟動Android Debug Bridge守護(hù)進(jìn)程(adbd)來管理ADB連接淤刃;
    • 啟動Debug守護(hù)進(jìn)程(debuggerd)來管理調(diào)試進(jìn)程的請求(包括內(nèi)存轉(zhuǎn)換)晒他;
    • 啟動無線接口守護(hù)進(jìn)程(rild)來管理無線通信;
  • 3.啟動第一個Zygote進(jìn)程
    • 在啟動Linux守護(hù)進(jìn)程的同時逸贾,還需要啟動Zygote陨仅;
    • Zygote主要功能包括
      • 初始化第一個Dalvik/Art虛擬機(jī)實例,包括Framework共享類和共享資源的加載铝侵;
      • 開啟Socket服務(wù)端監(jiān)聽灼伤,創(chuàng)建虛擬機(jī)實例來管理應(yīng)用程序的進(jìn)程(包括SystemServer);
    • Java層有個相關(guān)類ZygoteInit哟沫,在main函數(shù)中饺蔑,會調(diào)用preload(包括類和資源);如果Zygote啟動參數(shù)中要求啟動SystemServer嗜诀,那么會調(diào)用forkSystemServer猾警,啟動SystemServer進(jìn)程孔祸;
  • 4.初始化runtime進(jìn)程
    • runtime進(jìn)程主要功能包括
      • 初始化ServiceManager,并注冊ServiceManager发皿,Binder驅(qū)動以它為Binder服務(wù)的管理器崔慧;
      • 請求Zygote啟動SystemServer;
  • 5.啟動SystemServer
    • 啟動原生系統(tǒng)服務(wù)穴墅,主要包括Surface Flinger和Audio Flinger惶室,并注冊到ServiceManager;
    • 啟動Android管理服務(wù)玄货,并注冊到ServiceManager皇钞;
    • Java層有個相關(guān)類SystemServer,SystemServer.run方法用來啟動服務(wù)松捉,包括:
      • BootstrapService
      • CoreService
      • OtherService
  • 6.啟動第一個應(yīng)用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末夹界,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子隘世,更是在濱河造成了極大的恐慌可柿,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丙者,死亡現(xiàn)場離奇詭異复斥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)械媒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門目锭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人滥沫,你說我怎么就攤上這事岖常≡蒹荩” “怎么了获雕?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵聋丝,是天一觀的道長。 經(jīng)常有香客問我缀辩,道長臭埋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任臀玄,我火速辦了婚禮瓢阴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘健无。我一直安慰自己荣恐,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著叠穆,像睡著了一般少漆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硼被,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天示损,我揣著相機(jī)與錄音,去河邊找鬼嚷硫。 笑死检访,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仔掸。 我是一名探鬼主播脆贵,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嘉汰!你這毒婦竟也來了丹禀?” 一聲冷哼從身側(cè)響起状勤,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤鞋怀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后持搜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體密似,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年葫盼,在試婚紗的時候發(fā)現(xiàn)自己被綠了残腌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡贫导,死狀恐怖抛猫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孩灯,我是刑警寧澤闺金,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站峰档,受9級特大地震影響败匹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜讥巡,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一掀亩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧欢顷,春花似錦槽棍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽外里。三九已至,卻和暖如春特石,著一層夾襖步出監(jiān)牢的瞬間盅蝗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工姆蘸, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留墩莫,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓逞敷,卻偏偏與公主長得像狂秦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子推捐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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