Android Mainline基礎(chǔ)簡介
關(guān)鍵要點
- Android Mainline 是通過模塊化更新 Android 核心組件的框架,可能提高安全性。
- 允許通過 Google Play 系統(tǒng)更新分發(fā)模塊,無需完整固件更新。
- 能簡化廠商工作并減少碎片化,但覆蓋范圍有限。
什么是 Android Mainline?
Android Mainline 是 Google 在 Android 9(Pie)及以上版本中引入的一個框架,通過將 Android 系統(tǒng)的關(guān)鍵組件模塊化,允許這些組件以獨立模塊(稱為 Mainline 模塊 或 APEX/ART 模塊)的形式通過 Google Play 系統(tǒng)更新(Google Play System Updates)進行分發(fā)和更新,而無需完整的系統(tǒng)固件更新(OTA)。
- 引入時間:Android 9(2019)首次引入,Android 10(2019)正式擴展,Android 12(2021)及以后進一步完善。
其核心目標包括:
- 快速更新:讓核心系統(tǒng)組件(如安全補丁、系統(tǒng)服務(wù))能夠快速推送,繞過設(shè)備制造商的漫長固件更新流程。
- 一致性:確保不同廠商的 Android 設(shè)備運行相同版本的核心組件,減少 Android 生態(tài)系統(tǒng)的碎片化問題。
- 安全性:通過及時更新關(guān)鍵組件,修復(fù)安全漏洞,保護用戶數(shù)據(jù)。
- 簡化廠商工作:降低設(shè)備制造商適配新 Android 版本的工作量,減輕開發(fā)負擔(dān)。
Android Mainline 的工作原理
Android Mainline 的核心是通過將系統(tǒng)組件從傳統(tǒng)的 Android 系統(tǒng)鏡像(system.img
)中剝離,封裝為獨立的可更新模塊。這些模塊可以通過 Google Play 商店或類似機制進行更新,主要機制包括以下幾個方面:
(1) Mainline 模塊類型
Mainline 模塊分為兩類:
類型 | 描述 | 存儲位置 | 示例用途 |
---|---|---|---|
APEX 模塊 | 封裝原生代碼、Java 代碼、配置文件等的可更新容器 | /apex 分區(qū),運行時掛載為獨立文件系統(tǒng) | 媒體編解碼器、Wi-Fi 堆棧 |
APK 模塊 | 以傳統(tǒng) APK 形式分發(fā)的模塊,通常包含 Java 代碼 | /system 或 /data 分區(qū) | 權(quán)限控制器 |
APEX(Android Pony EXpress)模塊:
- 是一種安全的模塊化容器,支持動態(tài)加載和更新,通常用于需要底層權(quán)限的核心組件,例如媒體編解碼器、Wi-Fi 堆棧。
- 存儲在
/apex
分區(qū),運行時掛載為只讀文件系統(tǒng),確保系統(tǒng)穩(wěn)定性和安全性。
APK 模塊:
- 以傳統(tǒng) APK 形式分發(fā)的模塊,通常包含 Java 代碼,適用于不需要底層權(quán)限的組件,例如權(quán)限控制器。
- 存儲在
/system
或/data
分區(qū),更新方式類似于普通應(yīng)用。
(2) Google Play 系統(tǒng)更新
- Mainline 模塊通過 Google Play 系統(tǒng)更新(Google Play System Updates)分發(fā),類似于應(yīng)用更新。
- 用戶可以在設(shè)備設(shè)置中查看和安裝這些更新(通常在“設(shè)置 > 安全 > Google Play 系統(tǒng)更新”)。
更新由 Google 直接推送,無需設(shè)備制造商介入,簡化了更新流程。更新可能需要設(shè)備重啟以應(yīng)用(例如通過 A/B 分區(qū)機制減少中斷),確保無縫體驗。
(3) 模塊化組件
截至 Android 15(2025),以下是一些常見的 Mainline 模塊,部分模塊因版本和設(shè)備而異:
類別 | 模塊示例 | 功能描述 |
---|---|---|
核心系統(tǒng)服務(wù) | 權(quán)限控制器(Permission Controller) | 管理應(yīng)用權(quán)限 |
系統(tǒng) UI(System UI) | 部分界面元素 | |
模塊化系統(tǒng)組件(Module Metadata) | 管理其他模塊的元數(shù)據(jù) | |
媒體和連接 | 媒體編解碼器(Media Codecs) | 音頻/視頻解碼 |
Wi-Fi 堆棧 | Wi-Fi 連接管理 | |
藍牙堆棧 | 藍牙協(xié)議和功能 | |
安全相關(guān) | Conscrypt | 加密庫 |
DNS Resolver | 域名解析 | |
運行時和框架 | ART(Android Runtime) | 優(yōu)化應(yīng)用運行性能 |
Runtime 模塊 | 核心 Java 庫 | |
其他 | Neural Networks API(NNAPI) | 機器學(xué)習(xí)支持 |
Captive Portal Login | 公共 Wi-Fi 登錄頁面 |
這些模塊的版本與 Android 版本解耦,允許在舊 Android 版本上運行新模塊,增強向下兼容性。
官網(wǎng)各個模塊詳細信息https://source.android.google.cn/docs/core/ota/modular-system?hl=zh-cn
到此這篇關(guān)于Android Mainline簡介的文章就介紹到這了,更多相關(guān)Android Mainline簡介內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android向node.js編寫的服務(wù)器發(fā)送數(shù)據(jù)并接收請求
這篇文章主要為大家詳細介紹了Android向node.js編寫的服務(wù)器發(fā)送數(shù)據(jù),并接收請求,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10Android實現(xiàn)仿網(wǎng)易新聞的頂部導(dǎo)航指示器
這篇文章主要介紹了Android實現(xiàn)仿網(wǎng)易新聞的頂部導(dǎo)航指示器的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08Android(2.2/2.3系統(tǒng))Gallery解決默認和橫豎屏切換選中狀態(tài)問題
本文主要介紹Android Gallery,在Android開發(fā)過程中肯定會遇到版本不同,在開發(fā)過程中需要調(diào)整的,這里針對Android(2.2/2.3系統(tǒng)版本) Gallery解決默認和橫豎屏切換選中狀態(tài)問題2016-07-07關(guān)于Android Studio封裝SDK的那些事兒
這篇文章主要給大家介紹了關(guān)于Android Studio封裝SDK的那些事兒,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09Android自定義SurfaceView實現(xiàn)畫板功能
這篇文章主要為大家詳細介紹了Android自定義SurfaceView實現(xiàn)畫板功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-07-07