iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 5
1
  • Guide :
    • The Linux Kernel
    • Hardware Abstraction Layer (HAL)
    • Android Runtime (ART)
    • Java API Framework
    • System App

Android Runtime (ART)

在 Android 4.4 版本前是使用 dalvik 虛擬機,執行的是 DEX 位元組碼,

而 dalvik 採用的 JIT (Just-in-Time) 直譯器,

會在程式執行的時候將 DEX 轉成本地機器碼,

而且每次執行都要轉換一次,效率聽起來就很慢;

Android 4.4 版本後引用 ART 虛擬機,

而 ART 採用的是 AOT (Ahead-of-Time),

在 App 安裝時就會將 DEX 載入轉換成本地機器碼。

Android 9.0 版本這次又強調轉換效率更高,

且可以使得 App 啟動更快速、消耗更少的空間存取,

更適應在許多硬體資源吃緊的環境下運作。

Java API Framework

framework APIs 可以查詢到許多內建的功能,

我想可以特別來看一下 API Level 28 新增的部份,

舉例第一篇提到的 WIFI RTT 功能便有 android.net.wifi.rtt

這部份就等日後有談到 WIFI RTT,

再搭配 Service、HAL、Kernel 運作流程一起詳細介紹。

在 Android 8.0 後還新增了 Autofill framework 的功能,

可以自動填入像是原先設定要紀錄的欄位,像是帳號、密碼、信箱等等,

用的就是 android.service.autofill

還有 Android 9.0 有新增適應瀏海屏的 WindowInsets 和 DispayCutout 功能,

在 android.view 裡面的 Classes 可以找到 android.view.DisplayCutout

為的也是讓 App 可以正常顯示出狀態欄。

System App

這部份一樣會圍繞在 Android 9.0 Pie 新增的功能,

要如何適配像是 WIFI RTT、瀏海屏顯示和 Autofill 等等的應用上。

但是篇幅相對比較少一些,

畢竟重點會多放在 Framework、HAL、Kernel 這三個部份。

所以假如你是想看看怎麼寫 Android 9.0 APP 的,

這系列可以關掉了(笑),但多學總是好的 :)


Reference:

Package Index | Android Developers


上一篇
[Day-04] Android 架構解析 (1) Kernel & HAL
下一篇
[Day-06] Android HIDL (1) Treble
系列文
Android Pie 底層開發學習心得30

尚未有邦友留言

立即登入留言