學(xué)習(xí)筆記| (六)Android系統(tǒng)架構(gòu)

image.png
image.png

一、系統(tǒng)架構(gòu)

image.png
1.1 應(yīng)用層:

主要是一些系統(tǒng)應(yīng)用以及一些非系統(tǒng)應(yīng)用,用于與用戶直接進(jìn)行交互的

1.2應(yīng)用框架層:

對(duì)開(kāi)發(fā)人員提供一些開(kāi)發(fā)的API,包括一些系統(tǒng)應(yīng)用;其中包括一些Managers:
Activity Manager、Location Manager、Package Manager、Notification Manager、Resource Manager 、Window Manager、Content Providers 、View System

1.3系統(tǒng)運(yùn)行庫(kù)層(Native)
  • C/C++程序庫(kù)
    能被Android 系統(tǒng)中的不同組件所使用,并通過(guò)應(yīng)用程序框架為開(kāi)發(fā)提供服務(wù)
    Sqlite

  • Android 運(yùn)行時(shí)庫(kù)
    又分為核心庫(kù)ART(Android Runtime,Android5.0后取代了Dalvik虛擬機(jī));
    ART > DVM >JVM

①相比于 JVM,DVM(Dalvik 虛擬機(jī))是專(zhuān)門(mén)為移動(dòng)開(kāi)發(fā)定制的,因?yàn)樗试S在有限的內(nèi)存內(nèi),同時(shí)允許多個(gè) Dalvik虛擬機(jī)的實(shí)例,并且每一個(gè)Dalvik應(yīng)用作為一個(gè)獨(dú)立的Linux進(jìn)程執(zhí)行,而獨(dú)立的進(jìn)程可以防止在虛擬機(jī)崩潰的時(shí)候所有程序都被關(guān)閉;

②DVM中的應(yīng)用每次運(yùn)行的時(shí)候,都需要通過(guò)JIT(Just In Time)即時(shí)編譯器,將字節(jié)碼轉(zhuǎn)換為機(jī)器碼,這樣使得運(yùn)行的效率降低;

③ART中,系統(tǒng)在安裝應(yīng)用時(shí)會(huì)進(jìn)行一次預(yù)編譯AOT(Ahead of Time),將字節(jié)碼預(yù)先編譯成機(jī)器碼存儲(chǔ)在本地,這樣每次運(yùn)行的時(shí)候都不需要執(zhí)行編譯了,運(yùn)行效率大大提高;

1.4硬件抽象層(HAL)

位于操作系統(tǒng)內(nèi)核層和硬件電路層之間的接口層,目的在于將硬件抽象化,為了保護(hù)硬件廠商的知識(shí)產(chǎn)權(quán),隱藏了特定平臺(tái)的硬件接口細(xì)節(jié),為操作系統(tǒng)提供虛擬硬件平臺(tái),使其具有硬件無(wú)關(guān)性,可在多個(gè)平臺(tái)上進(jìn)行移植;

1.5Linux內(nèi)核層(Linux Kernel)

Android核心系統(tǒng)服務(wù)基于 Linux內(nèi)核層,在此基礎(chǔ)上又添加了部分Android專(zhuān)用的驅(qū)動(dòng)。系統(tǒng)的安全性、內(nèi)存管理、進(jìn)行管理、網(wǎng)絡(luò)協(xié)議棧、驅(qū)動(dòng)模型等都依賴于該內(nèi)核;

二、源碼閱讀:

1.在線閱讀:

http://androidxref.com/

image.png

點(diǎn)擊版本進(jìn)入對(duì)應(yīng)的頁(yè)面,比如8.0:
比如在framework中搜索 MediaPlayer.java


image.png
image.png
2.本地閱讀:

下載源碼到本地后,可以使用Android Studio、Eclipse、Sublime、Source Insight(推薦)

這里使用Source Insight
http://www.cnblogs.com/dakewei/p/7993613.html

下資源碼:
https://pan.baidu.com/s/1ngsZs

image.png
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 兩姐妹,姐姐經(jīng)營(yíng)拔罐減肥,性格潑辣,就像劉爽歌里唱得那樣:姐姐不好惹,把姐惹惱了吃不了全兜著。妹妹經(jīng)營(yíng)美容美甲,妹...
    三石育兒閱讀 492評(píng)論 3 11
  • 好吧,小編承認(rèn),昨天有些搏了,但在最后也提醒大家投注風(fēng)險(xiǎn)的事情了,那么今天的單子就穩(wěn)一點(diǎn)咯。 復(fù)盤(pán)表: 周二競(jìng)彩0...
    球秘閱讀 262評(píng)論 0 0
  • 打開(kāi)終端執(zhí)行 然后重啟command + option + esc 重啟 Finder 或者使用「Shift + ...
    Smallwolf_JS閱讀 223評(píng)論 0 0

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