技術文章
技術問答
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2025 iThome 鐵人賽
DAY
3
0
自我挑戰組
安豬複習
系列 第
3
篇
#02
17th鐵人賽
hcalan
2025-09-17 23:38:30
180 瀏覽
分享至
Android 系統架構總覽:Linux Kernel、HAL、Native libraries、Framework、Applications
Android 系統層級
Android 系統大致分為 五個主要層級:
Linux Kernel (核心層)
Hardware Abstraction Layer (HAL, 硬體抽象層)
Native Libraries & Android Runtime (本地函式庫與執行環境)
Application Framework (應用框架層)
Applications (應用程式層)
圖這邊有
Link
Linux Kernel (核心層)
基於 Linux 核心,版本通常由 Google 維護
提供 記憶體管理、程序管理、驅動程式 (Driver)、網路堆疊
Android 特有的模組:
Binder IPC Driver(跨進程通訊)
wakelocks(電源管理)
ASHMEM(共享記憶體)
Hardware Abstraction Layer (HAL)
介於 硬體驅動 與 Framework 之間的中介層
提供 統一 API,避免 Framework 直接依賴硬體實作
例如:
Camera HAL(攝影機功能)
Sensor HAL(加速度計、陀螺儀)
Audio HAL(音訊輸入/輸出)
Native Libraries & Android Runtime (ART)
Native Libraries
SQLite(資料庫)
OpenGL ES(圖形渲染)
WebKit(瀏覽器引擎,現今已改為 Chromium-based WebView)
Media Framework(音訊/影片編解碼)
Android Runtime (ART)
取代舊的 Dalvik VM
支援 Ahead-of-Time (AOT) 與 Just-in-Time (JIT) 編譯
提供垃圾回收 (GC) 機制
Application Framework (應用框架層)
為應用程式提供 高階 API
主要系統服務由 SystemServer 啟動並運行:
ActivityManagerService (AMS):管理應用與生命週期
WindowManagerService (WMS):視窗與 UI 管理
PackageManagerService (PMS):APK 安裝與權限檢查
ContentProvider、LocationManager、NotificationManager...
Applications (應用程式層)
使用 Java/Kotlin 撰寫
利用 Application Framework 提供的 API
分為:
系統應用(設定、聯絡人、電話、相機)
第三方應用(LINE、Facebook、遊戲 App 等)
Questions
為什麼需要 HAL, Android 卻不讓 Framework 直接呼叫硬體驅動?
Binder IPC 在 Android 系統中的關鍵角色是什麼?
ART 的 AOT + JIT 混合模式相比傳統 JVM 有什麼優勢?
留言
追蹤
檢舉
上一篇
#01
下一篇
#03
系列文
安豬複習
共
31
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
27
#26
28
#27
29
#28
30
#29
31
#30
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19836
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
關於網路領域的相關知識精進與工作請益
執行BAT開啟teams的語法
關於Aruba Wi-Fi (thin AP) controller設定
Fortigate Remote Access
熱門回答
執行BAT開啟teams的語法
關於網路領域的相關知識精進與工作請益
Fortigate Remote Access
熱門文章
用 Claude AI 做了一個開源的 IT 故障排除工具,華文圈應該很稀缺
微軟 Teams 聊天 訊息密度 舒適 密集 無法調整 調整沒有作用 該怎麼處理 ?
無密碼登入不用買服務:用 AWS SES + Lambda 親手做 Magic Link 登入機制
Gemini CLI 遷移:轉移至 Antigravity CLI (agy)
自架郵件伺服器還有意義嗎? MDaemon 他來了!
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}