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)進(jìn)行分發(fā)和更新,而無需完整的系統(tǒng)固件更新(OTA)。
- 引入時間:Android 9(2019)首次引入,Android 10(2019)正式擴展,Android 12(2021)及以后進(jìn)一步完善。
其核心目標(biāo)包括:
- 快速更新:讓核心系統(tǒng)組件(如安全補丁、系統(tǒng)服務(wù))能夠快速推送,繞過設(shè)備制造商的漫長固件更新流程。
- 一致性:確保不同廠商的 Android 設(shè)備運行相同版本的核心組件,減少 Android 生態(tài)系統(tǒng)的碎片化問題。
- 安全性:通過及時更新關(guān)鍵組件,修復(fù)安全漏洞,保護(hù)用戶數(shù)據(jù)。
- 簡化廠商工作:降低設(shè)備制造商適配新 Android 版本的工作量,減輕開發(fā)負(fù)擔(dān)。
Android Mainline 的工作原理
Android Mainline 的核心是通過將系統(tǒng)組件從傳統(tǒng)的 Android 系統(tǒng)鏡像(system.img)中剝離,封裝為獨立的可更新模塊。這些模塊可以通過 Google Play 商店或類似機制進(jìn)行更新,主要機制包括以下幾個方面:
(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 連接管理 | |
| 藍(lán)牙堆棧 | 藍(lán)牙協(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)各個模塊詳細(xì)信息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繼承ViewGroup實現(xiàn)Scroll滑動效果的方法示例
這篇文章主要介紹了Android繼承ViewGroup實現(xiàn)Scroll滑動效果的方法,結(jié)合實例形式分析了Android滑動效果的原理及擴展ViewGroup實現(xiàn)滑動功能的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Android仿美團淘寶實現(xiàn)多級下拉列表菜單功能
這篇文章主要介紹了Android仿美團淘寶實現(xiàn)多級下拉列表菜單功能,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-01-01
Android內(nèi)存優(yōu)化操作方法梳理總結(jié)
這篇文章主要介紹了Android 內(nèi)存優(yōu)化知識點梳理總結(jié),Android 操作系統(tǒng)給每個進(jìn)程都會分配指定額度的內(nèi)存空間,App 使用內(nèi)存來進(jìn)行快速的文件訪問交互,長時間如此便需要優(yōu)化策略,文章分享優(yōu)化知識點總結(jié),需要的朋友可以參考一下2022-11-11
Android?Framework如何實現(xiàn)Binder
這篇文章主要介紹了Android?Framework如何實現(xiàn)Binder,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
Android中使用listview實現(xiàn)qq/微信好友列表
本文主要介紹了android中使用listview實現(xiàn)qq/微信好友列表(頭像,昵稱,個性簽名)的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧2017-04-04
解決Android ListView數(shù)據(jù)為空及加載錯誤的方法
這篇文章主要為大家提供了一個解決Android ListView數(shù)據(jù)為空及加載錯誤的方法,感興趣的小伙伴們可以參考一下2016-02-02

