iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

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

Android 架構圖:

https://ithelp.ithome.com.tw/upload/images/20190919/20120515FEVoR0FKa4.png


前言:

突然要開始講古了...

放心不會講太久的,因為我只是想帶出一個重點而已:

為什麼從 Android 8.0 Oreo 之後的改版這麼重要。

廢話不多說!讓我們看下去!!

The Linux Kernel

光看說明 Android Runtime (ART) 是基於 Linux 為基礎去建設的,

完全不知道在說什麼很正常 (笑)。

但只要你不是單純寫 Android app 的話都會知道:

Linux kernel 是負責控制硬體的驅動層

你只需要知道硬體模組的溝通界面 (例如 USB, I2C, UART, SPI ... 等等)

就可以寫出相對應的驅動界面來對模組下命令開啟或關閉。

所以一切的基礎從硬體架構再上來,

除了 Boot Loader 之外的第一個部份就是這裡了。

Hardware Abstraction Layer (HAL)

這段就真的必須要開始講古了,

因為原先這個位置的程式碼是可有可無的。

許多廠商為了避開 Linux 三年為期的 GPL 規範,

就將程式碼逃到了 HAL 這個層級。

但是問題來了,廠商各家爭鳴的下場就是一團亂,

所以 Google 老大哥又跳出來了,

使用和 AIDL (Android Interface Definition Language) 相似的方法,

創造了 HIDL 直觀且互通又有效率的語法來整合。

詳細的部份在下一篇來專門解說吧!


Reference:

Android Architecture | Android Open Source Project


上一篇
[Day-03] AOSP Kernel 下載及編譯
下一篇
[Day-05] Android 架構解析 (2) framework & App
系列文
Android Pie 底層開發學習心得30

尚未有邦友留言

立即登入留言