iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0

如之前提到的Android 是基於 Linux 改寫來
所以基本上可以使用 shell 提供我們文字上輸入與輸出 讓我們使用者可以與Linux kernel 互動
了解 Android 整體架構有助於我們日後的分析

#Android 整體架構
https://ithelp.ithome.com.tw/upload/images/20250914/20149459jKeNQFbQ0R.png

Linux kernel

主要管理設備硬體 提供基於使用者的權限模型與process隔離
ART主要依靠Linux Kernel管理Threadings與記憶體
Kernel 這邊會提供一些 Security Features

Hardware Abstract layer

Hardware Anstract Layer 是軟體層提供OS與硬體標準化介面 決定Software 如何去存取硬體部分 HAL會被Andorid動態加載 主要透過共享庫去實現HAL 允許設備製造商實施自定義元件
https://ithelp.ithome.com.tw/upload/images/20250914/201494595vc0NfgbKj.png

Android Runtime

Android Runtime 簡稱ART 他是一種環境 主要是Android OS 去執行Android APP時 所產生的
他主要被引入於Android 5.0 Lollipop 取代之前 Dalvik virtual machine 這次引入大大堤高效能
主要是因為採取不同編譯策略 ART 會在安裝時編譯應用程式代碼變成Native Machine Code 加快APP 開啟的速度

ART 可以同時跑很多台虛擬機 並兼容之前.dex file 也就是 Dalvik virtual machine 格式
ART 會比 Dalvik 更好不管是在電量或是記憶體管理等等

Native Code C/C++ library

這裡顧名思義 就是用c/c++ 編寫的library 我們可以用這裡的library 與硬體溝通
ART 與 HAL 這裡也會用到 Native Code 就會去呼叫 Native Code Library
https://ithelp.ithome.com.tw/upload/images/20250914/20149459La0ZxM9LS1.png

Android APP 可以透過JNI(Java Native interface) 來使用 Native library
開發者可以透過 Android NDK 來使用這些 Native library

補充
Native code 是指可以被特定硬體平台(Android)直接執行無須轉換 強調程式與平台的「原生」關係


上一篇
Day - 2 Android - Introduction
下一篇
DAY 4 Android Operating Systems 下
系列文
我是不可能一直學Android 絕對不會4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言