1. Android 系統架構
Android 可以分爲五層框架,從上到下分別爲:應用層、應用框架層、系統運行層、硬件抽象層、Linux 內核層。
1.System APP
- Dialer
- Calendar
- Camera
- ……
2.Java API Framework
- Content Providers
- View System
- Managers
- Activity
- Location
- Package
- Notification
- Resource
- Telephony
- Window
- Native C/C++ Libraries & Android Runtime
- Hardware Abstraction Layer(HAL)
- Linux Kernel
2. Dalvik 和 ART
2.1 Dalvik 介紹
每次執行程序都要將程序語言編譯爲機器語言,依靠一個 JIT(just in time) 編譯器去解釋字節碼
- 支持已轉換爲.dex(即Dalvik Executable)格式的Java應用程序的運行
- .dex格式是專爲Dalvik應用設計的一種壓縮格式,適合內存和處理器速度有限的系統
- 每一個Dalvik應用作爲獨立的Linux進程執行
- 獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉
2.2 ART 介紹
在應用安裝的時候就預編譯字節碼到機器語言並存在本地,這一機制叫 AOT(Ahead Of Time) 編譯機制
- (缺點)需要更大的存儲空間,可能增加 10%-20%
- (缺點)需要更長的安裝時間
- (優點)應用啓動、運行更快更流暢
- (優點)電池續航更久
- (優點)支持更低的硬件