進(jìn)階解密1 | Android系統(tǒng)結(jié)構(gòu)

讓我們將事前的憂慮,換為事前的思考和計(jì)劃吧!

整整一個(gè)三月,投了很多家,面試機(jī)會(huì)很少,目前還是0 實(shí)習(xí)Offer,要加油(? ?_?)?

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

Android系統(tǒng)分為五層,從上到下依次是:應(yīng)用層,應(yīng)用框架層,系統(tǒng)運(yùn)行庫(kù)層,硬件抽象層,Linux內(nèi)核層。

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

應(yīng)用層 System Apps

手機(jī)上自帶的軟件,比如相機(jī),音樂播放器等,我們可以在代碼中去調(diào)用。

應(yīng)用框架層 Java API Framework

四大組件,Notification,Resource,Window等,平常用的比較多的。

系統(tǒng)運(yùn)行庫(kù)層

  1. C/C++程序庫(kù),OpenGL ES 3D繪圖函數(shù)庫(kù),SQLite數(shù)據(jù)庫(kù)引擎,SSL安全套接層等
  2. Android運(yùn)行時(shí)庫(kù),
    • 核心庫(kù):提供Java語(yǔ)言核心庫(kù)大多數(shù)功能,開發(fā)者可以使用Java語(yǔ)言來編寫Android應(yīng)用。
    • ART/DVM:允許在有限的內(nèi)存中運(yùn)行多個(gè)虛擬機(jī)實(shí)例,每個(gè)實(shí)例作為一個(gè)獨(dú)立的Linux進(jìn)程。獨(dú)立的進(jìn)程保證了系統(tǒng)的穩(wěn)定性。

ART和DVM區(qū)別:DVM每次運(yùn)行,字節(jié)碼都需要即時(shí)編譯器Just In Time轉(zhuǎn)化為機(jī)器碼。在ART中,Android應(yīng)用的時(shí)候,會(huì)執(zhí)行一次預(yù)編譯Ahead of Time,將字節(jié)碼預(yù)先存儲(chǔ)到本地。

這就導(dǎo)致了:同樣的配置Android5.0 安裝應(yīng)用的速度比4.X慢,但是打開應(yīng)用的速度快。

硬件抽象層

對(duì)藍(lán)牙,照相機(jī)等硬件的抽象化,隱藏具體硬件的API,統(tǒng)一為一致的API,為上層提供支持。

Linux內(nèi)核層

基于Linux系統(tǒng),增加了Android專用的驅(qū)動(dòng),系統(tǒng)安全性,內(nèi)存管理,進(jìn)程管理等。

Android 系統(tǒng)源碼目錄

目錄結(jié)構(gòu):/

  • Art : ART運(yùn)行環(huán)境
  • bionic:C庫(kù)
  • bootable:?jiǎn)?dòng)相關(guān)代碼
  • build:編譯規(guī)則
  • dalvik:Dalvik運(yùn)行環(huán)境
  • device:設(shè)備相關(guān)配置
  • frameworks:應(yīng)用程序框架,由Java和C++編寫
  • hardware:硬件抽象
  • sdk:sdk
  • packages:應(yīng)用程序包
  • tools:工具文件
  • ... 略

應(yīng)用層部分/packages/

  • apps 核心應(yīng)用程序
  • experimental 第三方應(yīng)用程序
  • inputmethods 輸入法目錄
  • providers 內(nèi)容提供者目錄
  • screensavers 屏幕保護(hù)
  • service 通信服務(wù)
  • wallpapers 壁紙

應(yīng)用框架層/frameworks/

  • api 定義API
  • core 核心庫(kù)
  • docs 文檔
  • include 頭文件
  • libs 庫(kù)
  • media 多媒體相關(guān)庫(kù)
  • nfc-extras NFC相關(guān)
  • opengl 2D/3D圖形API
  • sax XML接收器
  • telephony 電話通信管理
  • vr vr相關(guān)
  • cmds 重要指令
  • data 字體和聲音數(shù)據(jù)
  • keystore 數(shù)字簽名證書相關(guān)
  • location 地理位置
  • native 本地庫(kù)
  • obex 藍(lán)牙
  • packages 設(shè)置TTS,VPN
  • services 系統(tǒng)服務(wù)
  • wifi 無(wú)線網(wǎng)絡(luò)

/hardware/

手機(jī)廠商改動(dòng)最大的區(qū)域,更具不同的硬件,修改以保證向上層提供統(tǒng)一的Api。

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

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

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