Android 從軟件層面來看可以分為以下幾個層級:
- Linux Kernel
- HAL
- Native C/C++ Libraries + AR
- Java API Framework
- System App
圖示如下:
android-stack_2x.png
official site
Linux Kernel 內(nèi)核層蟀伸,系統(tǒng)運行基石堆生,還包含一些基本的硬件驅(qū)動
a. 安全性(Security)
b. 內(nèi)存管理(Memory Management)
c. 進程管理(Process Management)
d. 網(wǎng)絡堆棧(Network Stack)
e. 驅(qū)動程序模型(Driver Model)硬件抽象層
提供高級界面锐极,為Java API Framework層顯示硬件功能-
AR (Android Runtime) :
在API>=21的機器上奋岁,每個app都是一個AR 實例夯到,這些實例通過DEX文件執(zhí)行房铭;AR的功能主要包括:
a. AOT預編譯 JIT 實時編譯
b. 提升GC性能
c. 更好的debug支持針對AR優(yōu)化過的程序可以在低版本Android Dalvik虛擬機上獲得性能優(yōu)化,反之不成立
Native C/C++ Libraries
出于性能考量载慈,Android很多原生組件和服務都用到了native c/cpp的代碼
open GL 的2D 3D繪圖基本都是用native api編寫
如若需要,應用也可以通過Android NDK編寫代碼珍手,調(diào)用native APIJava API FrameWork
Android OS的整個功能集办铡, JAVA編寫
包含各組件、管理工具應用層
識別二維碼琳要,關注公眾號“夕識”