圖片來自網路
整體結構由下至上分別是:
1、Linux內核層
Android是基于Linux內核的,
(1)提供了安全性、記憶體管理、行程管理、網路協議和驅動模型等... 核心系統服務
(2)為各種硬體提供了驅動程式,如顯示驅動、相機驅動、藍牙驅動、電池管理等等,
2、硬體抽象層(Hardware Abstraction Layer)
Android的硬體抽象層,簡單來說,就是對Linux內核驅動程式的封裝,向上提供介面,屏蔽低層的實作細節,
HAL 可定義一個標準介面以供硬體供應商實作,這可讓 Android 忽略較低級別的驅動程式實作,
3、Android系統運行層
(1)C/C++庫
(2)虛擬機(Dalvik/ART) // ART:Android Run Time //5.0以后ART //7.0以后運行時編譯存本地
ART與DVM的區別:
- 1、DVM中的應用每次運行時,位元組碼都需要通過JIT編譯器編譯為機器碼,
- 而在ART中,系統在安裝應用程式時會進行一次預編譯AOT(ahead of time compilation),將位元組碼預先編譯成機器碼并存盤在本地,這樣程式在每次運行時就不需要執行編譯了,運行效率會大大提升,設備耗電也會降低,采用AOT有兩個主要缺點:一是應用程式安裝時間變長,尤其是一些復雜的應該,二是位元組碼預先編譯成機器碼,機器碼需要的存盤空間更大,
- 2、DVM是32位CPU設計,ART支持64位并兼容32位處理器,
- 3、ART對垃圾回識訓制進行了改進,更頻繁地執行垃圾收集,將GC暫停由2次減少為1次,
4、Java API 框架層 (FrameWork)
這一層主要提供了構建應用程式時可能用到的各種API,開發者通過這一層的API構建APP,
5、系統應用層
所有安裝在手機上的系統應用都屬于這一層,用戶自己開發的應用也屬于這一層,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/76456.html
標籤:其他
上一篇:uiautomator2,一款比appium還好用的app自動化測驗框架
下一篇:Flutter 工程目錄結構
