本頁面總結了 Android 9 版本中的主要功能,並提供了其他資訊的連結。這些功能摘要是根據該功能在該網站上的文件位置進行組織的。有關部分移動和重新命名的指南,請參閱2018 年 8 月站點更新。
建造
通用系統映像 (GSI)
通用系統映像 (GSI) 是針對 Android 裝置調整配置的系統映像。通用系統映像 (GSI)詳細介紹了使用 Android 9 啟動的裝置和升級到 Android 9 的裝置的 GSI 之間的差異。
建築學
硬體抽象層(HAL)
HIDL 框架向後相容性
HIDL框架向後相容性驗證是一種驗證框架向後相容性的方法。
動態可用的 HAL
動態可用的 HAL支援 Android 硬體子系統在不使用或不需要時動態關閉。
HIDL
HIDL 記憶體區塊
HIDL MemoryBlock是基於hidl_memory
、 HIDL @1.0::IAllocator
和HIDL @1.0::IMapper
所建構的抽象層。它專為具有多個記憶體區塊共享單一記憶體堆的 HIDL 服務而設計。
設備樹覆蓋
壓縮覆蓋
當使用版本 1 的設備樹表頭時,Android 9 及更高版本支援設備樹 blob 覆蓋 (DTBO) 影像中的壓縮覆蓋。
DTO更新
Android 9 及更高版本要求引導程式在修改裝置樹覆蓋 (DTO)中定義的屬性之前將統一裝置樹 blob 傳遞到核心。
DTBO 影像標頭版本控制
Android 9 及更高版本在 DTBO 映像標頭中包含版本欄位。
DTBO驗證
Android 9 及更高版本需要 DTBO 分割區。若要新增節點或變更 SoC DT 中的屬性,引導程式必須在 SoC DT 上動態覆寫裝置特定的 DT。有關詳細信息,請參閱編譯和驗證。
核心合規性
Android 9 及更高版本包含影響核心、其介面以及 DTBO 使用的要求。有關更多信息,請參閱以下頁面:
供應商NDK
設計變更
有關 Android 9 及更高版本中的 VNDK 設計變更的信息,請參閱以下頁面:
ABI檢查器
ABI 穩定性頁面描述了應用程式二進位介面 (ABI) 檢查器,可確保對 VNDK 程式庫所做的變更保持 ABI 合規性。
VNDK 快照
即使系統和供應商映像是從不同版本的 Android 建立的,系統映像也可以使用VNDK 快照向供應商映像提供正確的 VNDK 庫。
供應商介面物件(VINTF 物件)
供應商介面物件部分中的以下頁面介紹了 Android 9 及更高版本中的更新:
HIDL 棄用時間表
以下頁面介紹了 Android 如何棄用和刪除 HIDL HAL:
引導程式
商品分區
Android 9 及更高版本支援使用 Android 建置系統建置/product
分區。先前,Android 8.x 強制將系統單晶片 (SoC) 特定元件從/system
分割區分離到/vendor
分割區,而沒有為從 Android 建置系統建置的 OEM 特定元件指派專用空間。
規範啟動原因合規性
Canonical Boot Reason頁面介紹了 Android 9 及更高版本中引導程式引導原因規範的變更。
系統為 root
所有使用 Android 9 及更高版本啟動的裝置都必須使用system-as-root ,它將ramdisk.img
合併到system.img
(也稱為 no-ramdisk),後者作為 rootfs 掛載。
啟動映像頭版本控制
在 Android 9 及更高版本中,啟動映像標頭包含一個欄位來指示標頭版本。引導程式必須檢查此版本欄位並相應地解析標頭。
DTBO 恢復中
為了防止因復原映像與非 A/B 裝置上的 DTBO 分割區不符而導致 OTA 失敗,復原映像必須包含DTBO 映像中的資訊。
展示
顯示切口
顯示切口使應用程式開發人員能夠創建沉浸式、邊緣到邊緣的體驗,同時仍為裝置正面的重要感測器留出空間。
輪換建議
Android 9 及更高版本對螢幕旋轉行為的更新包括支援面向使用者的控件,即使裝置位置發生變化,也可以將螢幕旋轉固定為橫向或縱向。
同步應用程式轉換
同步應用程式轉換允許新的應用程式轉換動畫。
文字分類(以前稱為 TEXTCLASSIFIER)
Android 9 及更高版本包含文字分類器服務(這是實作文字分類的建議方法)和預設服務實作。
廣色域色彩
Android 9 及更高版本支援廣色域顏色,包括:
- 高動態範圍(HDR)
- 處理 BT2020 色彩空間中的內容,但不作為最終目標資料空間
若要使用廣色域顏色,裝置的完整顯示堆疊(例如螢幕、硬體編輯器、GPU)必須支援廣色域顏色或緩衝區格式。即使硬體支援廣色域內容,設備也不需要聲明支援。但是,應啟用廣色域顏色以充分利用硬體。為了避免不一致的視覺體驗,不應在運行時關閉廣色域顏色。
相容性
Android 相容性定義文檔
Android 9 相容性定義文件 (CDD)迭代了先前的版本,更新了新功能並更改了先前發布的功能的要求。
設定
更好的應用程式小部件
Android 應用程式小工具框架提高了使用者互動的可見性,特別是當使用者刪除或手動新增小工具時。 Launcher3 預設提供此功能。
如果不基於 Launcher3,製造商需要更新其啟動器應用程式(隨裝置一起提供)以支援此功能。 OEM 需要在其預設啟動器中支援新的widgetFeatures 欄位。
請注意,該功能僅在啟動器按預期實現時才有效。 AOSP 包含一個範例實作。有關提供的範例程式碼,請參閱 AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca。
向軟體包安裝程式發送設備狀態變更通知
每當區域設定或顯示密度等屬性發生變更時,都可以將受保護的系統廣播傳送到擁有INSTALL_PACKAGES
權限的應用程式。接收者可以在清單中註冊,並且進程會被喚醒以接收廣播。這對於希望在此類更改後安裝應用程式的附加元件的軟體包安裝程式非常有用,這種情況並不常見,因為有資格觸發此廣播的配置更改很少。
設備狀態變更通知原始碼位於platform/frameworks/base
下的下列位置:
-
api/system-current.txt
-
core/java/android/content/Intent.java
-
core/res/AndroidManifest.xml
-
services/core/java/com/android/server/am/ActivityManagerService.java
資訊架構
設定應用程式資訊架構的變更提供了更多功能和更容易的實作。
測試
一個測試
Atest命令列工具可讓您在本地建置、安裝和執行 Android 測試,從而大大加快測試重新運行的速度,而無需了解 Trade Federation 測試工具命令列選項。
相容性測試套件
CTS下載
支援 Android 9 的兼容性測試套件 (CTS) 套件可在CTS 下載頁面上取得。所包含測試的原始程式碼可以與開源樹中的android-cts-9.0_r1
標籤同步。
CTS 選項
對於 Android 9,CTS v2 獲得以下命令和參數:
-
run retry
重試先前會話中失敗或未執行的所有測試。 -
'--shard-count
將 CTS 運行分成給定數量的獨立區塊,以便在多個裝置上並行運行。
此外,先前未記錄的命令--retry-type
已新增至相同的 CTS v2 控制台命令參考。
安全元件 (SE) 服務
安全元素服務透過識別設備是否具有 SE HAL 實現以及如果有,有多少個來檢查全球平台支援的安全元素。這用作測試 API 和底層安全元件實現的基礎。
感光元件融合盒
此感測器融合盒用於相機影像測試套件(Camera ITS)感測器融合測試和多相機同步測試,並為測量Android手機相機和其他感測器的時間戳精度提供一致的測試環境。請參閱以下頁面以了解更多資訊:
- 感測器融合盒快速入門指南提供了首次設定感測器融合測試和感測器融合盒的步驟。
- 感測器融合盒組件提供了組裝感測器融合盒的步驟。
寬視野盒裝 ITS
寬視野盒裝 ITS是一種自動化系統,旨在測試相機 ITS 中的寬視野 (WFoV) 和常規視野 (RFoV) 相機系統。
供應商測試套件
主機控制器架構
供應商測試套件(VTS)主機控制器架構是VTS測試框架與其基於雲端的測試服務服務整合的架構。
服務名稱感知的 HAL 測試
VTS 服務名稱感知 HAL 測試支援根據執行 VTS 測試的裝置取得給定 HAL 實例的服務名稱。
HAL 可測試性檢查
VTS HAL 可測試性檢查包括一個運行時方法,用於使用設備配置來識別該設備目標應跳過哪些 VTS 測試。
自動化測試基礎設施
自動化測試基礎架構是 VTS 基礎設施,用於在執行 AOSP 通用系統映像 (GSI) 的合作夥伴設備上自動測試 VTS、CTS 或其他測試。
偵錯
先進的遙測技術
在 Android 中,遙測是自動收集有關裝置、Android 系統和應用程式的使用和診斷資訊的過程。在先前版本的 Android 中,遙測堆疊有限,無法擷取識別和解決系統可靠性以及裝置或應用程式問題所需的資訊。這使得確定問題的根本原因變得困難,甚至不可能。
Android 9 包含statsd
遙測功能,可透過更快地收集更好的數據來解決此缺陷。 statsd
收集應用程式使用情況、電池和進程統計資料以及崩潰情況。分析數據並用於改善產品、硬體和服務。
有關更多詳細信息,請參閱frameworks/base/cmds/statsd/
。
安全特性
應用程式簽名
v3 APK簽章方案支援APK金鑰輪換。
生物辨識支持
Android 9 包含公共類別BiometricPrompt
,應用程式可以使用該類別以與裝置和模態無關的方式整合生物辨識身份驗證支援。有關集成生物識別堆疊以包含BiometricPrompt
更多信息,請參閱生物識別。
動態分析
Android 9 支援更多漏洞緩解和分析工具。
控制流程完整性 (CFI)
控制流程完整性 (CFI)是一種安全機制,禁止更改已編譯二進位檔案的原始控制流程圖,使執行此類攻擊變得更加困難。
核心CFI
除了預設啟用的系統 CFI 之外,Android 9 及更高版本還包括對核心控制流程完整性 (CFI)的支援。
加密
基於文件的加密
基於檔案的加密 (FBE)已更新,可與可採用的儲存空間一起使用。新設備應使用基於文件的加密而不是全盤加密。
元資料加密
Android 9 及更高版本在硬體支援的情況下支援元資料加密。透過元資料加密,啟動時出現的單一金鑰使用基於檔案的加密來加密任何未加密的內容。
金鑰庫
Android 9 及更高版本包含具有這些功能的Keymaster 4 。
保險櫃
Android 9 及更高版本支援 Android Keystore 金鑰,這些金鑰在專為高安全性應用程式(例如嵌入式安全元件 (SE))建置的實體獨立 CPU 中儲存和使用。 StrongBox Keymaster 是 Keymaster HAL 在離散安全硬體中的實作。保險箱具有:
- 獨立CPU
- 整體安全存儲
- 高品質真隨機數產生器
- 防篡改包裝
- 側通道阻力
安全金鑰導入
為了安全地將金鑰匯入 Keymaster 4,在裝置外建立的金鑰將使用定義金鑰使用方式的授權規範進行加密。
3DES 支持
Keymaster 4 包含 3DES,以便與使用 3DES 的舊系統相容。
版本綁定
為了支援 Treble 的模組化結構並打破system.img
與boot.img
的綁定,Keymaster 4 更改了密鑰版本綁定模型,為每個分區提供單獨的修補程式等級。這允許每個分區獨立更新,同時仍提供回滾保護。
Android 受保護的確認 API
啟動時安裝了 Android 9 的支援裝置使開發人員能夠使用Android 受保護的確認 API 。透過此API,應用程式可以使用ConfirmationPrompt
的實例向使用者顯示提示,要求他們批准簡短的聲明。此聲明允許應用程式重申用戶想要完成敏感交易,例如付款。
SELinux
每個應用程式 SELinux 沙箱
應用程式沙箱具有新的保護和測試案例,以確保所有針對 Android 9 及更高版本的非特權應用程式運行單獨的 SELinux 沙箱。
Treble SELinux 變化
Android 9 及更高版本中 Treble SELinux 的更新記錄在SELinux 部分的多個頁面中。
供應商初始化
Vendor init透過使用單獨的 SELinux 網域來運行具有特定於供應商權限的/vendor
命令,從而彌補了 Treble 系統/供應商分裂中的漏洞。
系統屬性
Android 9 限制系統屬性在system
和vendor
分區之間不必要地共享,並提供了一種確保共享系統屬性之間一致性的方法。
SELinux 屬性測試
Android 9 包含新的建置時測試,可確保特定位置的所有檔案都具有適當的屬性。例如, sysfs
中的所有檔案都具有必需的sysfs_type
屬性。
聲音的
高解析度音訊效果
高解析度音訊效果的更新包括將效果處理從 int16 轉換為浮點格式,並增加同時客戶端輸出軌道、最大客戶端/伺服器記憶體和總混合軌道。
相機
外接 USB 攝影機
Android 9 及更高版本支援使用標準Android Camera2 API和相機 HIDL 介面來使用即插即用 USB 攝影機(即網路攝影機)。
運動追蹤
攝影機設備可以宣傳運動追蹤功能。
多攝像頭支援
多攝影機支援包括透過由兩個或多個指向相同方向的實體攝影機裝置組成的新邏輯攝影機裝置對多攝影機裝置的 API 支援。
會話參數
實作會話參數可以讓攝影機用戶端在擷取會話初始化階段主動配置昂貴的請求參數子集,從而減少延遲。
單一生產者,多個消費者緩衝區
單生產者、多消費者相機緩衝區傳輸是一組方法,允許相機用戶端在捕獲會話處於活動狀態且相機流正在進行時動態新增和刪除輸出表面。
連接性
打電話和發短信
實施數據計劃
Android 9 及更高版本為營運商使用 SubscriptionPlan API實施資料計畫提供了改進的支援。
第三方通話應用
Android 9 及更高版本提供的 API 允許第三方 (3P) 呼叫應用處理並發傳入的運營商呼叫並將呼叫記錄在系統呼叫日誌中。
載體
營運商識別
在 Android 9 中,AOSP 新增了營運商 ID 資料庫來幫助營運商識別。該資料庫透過提供識別運營商的通用方法,最大限度地減少重複邏輯和碎片化的應用程式體驗。
嵌入式SIM卡
嵌入式 SIM(eSIM 或 eUICC)是最新技術,可讓行動用戶在沒有實體 SIM 卡的情況下下載電信商設定檔並啟動電信業者的服務。在 Android 9 及更高版本中,Android 框架提供了用於存取 eSIM 和管理 eSIM 上的訂閱設定檔的標準 API。有關更多信息,請參閱:
IMS 設定的多 SIM 卡支持
Android 9 及更高版本改進了IP 多媒體子系統 (IMS)的使用者設定。您可以為每個訂閱設定語音 LTE (VoLTE)、視訊通話和 Wi-Fi 通話,而不是在所有訂閱中共用這些設定。
SIM 狀態廣播
在 Android 9 及更高版本中,不建議使用Intent.ACTION_SIM_STATE_CHANGED
,並新增兩個單獨的卡狀態和卡應用程式狀態廣播: TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED
和TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED
。
透過這些更改,只需要知道卡是否存在的接收器不必偵聽應用程式狀態更改,並且只需要知道卡應用程式是否準備就緒的接收器不必偵聽卡狀態的更改。
這兩個新廣播是 @SystemApis 並且不具有粘性。只有具有READ_PRIVILEGED_PHONE_STATE
權限的接收者才能接收廣播。
當您解鎖裝置時,不會重新廣播意圖。依賴解鎖先前發送的廣播的接收器必須使用directBootAware
,或必須在使用者解鎖後查詢狀態。可以使用 TelephonyManager、 getSimCardState()
和getSimApplicationState()
中對應的 API 查詢狀態。
無線上網
營運商無線網路
營運商 Wi-Fi功能可讓設備自動連接到營運商實施的 Wi-Fi 網路。在體育場或地鐵站等交通擁堵嚴重或蜂窩覆蓋範圍極小的區域,營運商 Wi-Fi 有助於改善連接並減輕流量。
MAC隨機化
MAC 隨機化允許設備在目前未與網路關聯的情況下探測新網路時使用隨機 MAC 位址。在 Android 9 及更高版本中,可以啟用開發人員選項以使裝置在連接到 Wi-Fi 網路時使用隨機 MAC 位址。
自動開啟 Wi-Fi
啟用自動開啟 Wi-Fi功能後,只要裝置靠近已儲存的具有足夠高的相對接收訊號強度指示器 (RSSI) 的 Wi-Fi 網絡,Wi-Fi 就會自動重新啟用。
Wi-Fi 往返時間
Wi-Fi 往返時間 (RTT)可讓裝置測量到其他支援裝置的距離,無論它們是存取點 (AP) 或Wi-Fi Aware對等裝置(如果裝置支援 Wi-Fi Aware)。此功能基於 IEEE 802.11mc 協議構建,使應用程式能夠使用增強的位置準確性和感知能力。
Wi-Fi 評分改進
改進的 Wi-Fi 評分模型可以快速且準確地確定裝置何時應退出已連接的 Wi-Fi 網路或進入新的 Wi-Fi 網路。這些模型透過避免連接差距為使用者提供可靠、無縫的體驗。
檢查並調整config.xml
資源中的 RSSI 值,尤其是以下值:
-
config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
-
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
-
config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
-
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
Wi-Fi STA/AP 並發
Wi-Fi STA/AP 並發是指裝置同時在工作站 (STA) 和存取點 (AP) 模式下運作的能力。對於支援雙頻同步 (DBS) Wi-Fi 的設備,這提供了多種功能,例如當使用者想要啟用熱點 (SoftAP) 時不會中斷 STA Wi-Fi。
WiFiStateMachine 改進
WifiStateMachine
是用於控制 Wi-Fi 活動、協調使用者輸入(操作模式:熱點、掃描、連線或關閉)以及控制 Wi-Fi 網路操作(例如掃描或連線)的主類別。
在Android 9及更高版本中,重新架構了Wi-Fi框架程式碼和WifiStateMachine
的實現,從而減少了程式碼大小,更易於遵循Wi-Fi控制邏輯,提高了控製粒度,並提高了單元測試的覆蓋範圍和品質。
在較高等級上, WifiStateMachine
允許 Wi-Fi 處於以下四種狀態之一:
- 客戶端模式(可連線、掃描)
- 僅掃描模式
- SoftAP模式(Wi-Fi熱點)
- 已停用(Wi-Fi 完全關閉)
每種 Wi-Fi 模式對運行服務都有不同的要求,應以一致的方式設置,僅處理與其操作相關的事件。新的實作將程式碼限制為與該模式相關的事件,從而減少了調試時間以及由於複雜性而引入新錯誤的風險。除了對模式功能的明確處理之外,還以一致的方式處理線程管理,並且消除了非同步通道作為同步機制的使用。
Wi-Fi 權限更新
在 Android 9 及更高版本中,預設啟用CHANGE_WIFI_STATE
應用程式權限。您可以在設定頁面的「設定」>「應用程式和通知」>「特殊應用程式存取」>「Wi-Fi 控制」中停用任何應用程式的權限。
應用程式必須能夠處理未授予CHANGE_WIFI_STATE
權限的情況。
要驗證此行為,請執行機器人電動和手動測試。
對於手動測試:
- 前往「設定」>「應用程式和通知」>「特殊應用程式存取」>「Wi-Fi 控制」 。
- 選擇並關閉您的應用程式的權限。
- 驗證您的應用程式是否可以處理未授予
CHANGE_WIFI_STATE
權限的場景。
WPS 棄用
由於安全性問題, WiFiManager
中的 Wi-Fi 保護設定 (WPS) 在 Android 9 及更高版本中已棄用並停用。但是, WiFiDirect
仍然在 WPA 請求者中使用 WPS。
圖形
執行
Vulkan 1.1 API
Android 9 及更高版本支援實作Vulkan 1.1 圖形 API 。
用於視窗轉換追蹤的 WinScope 工具
Android 9 及更高版本包含用於追蹤視窗轉換的 WinScope 工具。 WinScope 提供基礎架構和工具來記錄和分析轉換期間和轉換後的視窗管理器狀態。它允許記錄和單步執行視窗轉換,同時將所有相關的視窗管理器狀態記錄到追蹤檔案中。您可以使用此數據來重播並逐步完成轉換。
WinScope 工具原始碼位於platform/development/tools/winscope
。
交互作用
汽車音響
汽車音訊描述了汽車相關 Android 實現的音訊架構。
神經網路 (NN) HAL 定義了各種加速器的抽象。這些加速器的驅動程式必須符合此 HAL。
車輛HAL
車輛屬性描述了車輛 HAL 介面的變更。
GNSS 衛星選擇
使用新的全球導航衛星系統 (GNSS) HAL (v1.1+) 時,Android 框架會監控 Android 設定。合作夥伴可以透過 Google Play 服務或其他系統更新更改設定。這些設定告訴 GNSS HAL 是否不應使用某些 GNSS 衛星。這在出現持續GNSS 衛星或星座錯誤的情況下非常有用,或者可以更快地對使用不同時間系統和外部事件(例如閏秒、日或週數翻轉)混合星座時可能發生的GNSS HAL 實施問題做出反應。
GNSS硬體模型
在 Android 9 中,GNSS HAL 版本 1.1 或更高版本可以將硬體 API 的資訊傳遞到平台。平台需要實作IGnssCallback
介面並將句柄傳遞給 HAL。 GNSS HAL 透過LocationManager#getGnssHardwareModelName()
方法傳遞硬體型號資訊。設備製造商應與其 GNSS HAL 提供者合作,盡可能提供此資訊。
權限
配置自主存取控制更新
設定自主存取控制 (DAC)包含 Android ID (AID) 機制的更新,以擴充檔案系統功能。
將特權應用程式權限列入白名單
在 Android 9 及更高版本中,如果存在應拒絕的權限,請編輯 XML 以使用deny-permission
標記,而不是先前版本中使用的permission
標記。
數據
頻寬估計改進
Android 9 改進了對頻寬估計的支援。如果 Android 應用程式可以存取可用的數據頻寬,則可以為視訊通話和視訊串流進行更合適的解析度設定。
在運行 Android 6.0 或更高版本的裝置上,想要估計蜂窩網路頻寬的呼叫者呼叫ConnectivityManager.requestBandwidthUpdate()
,框架可能會提供估計的下行鏈路頻寬。
但在執行 9 或更高版本的裝置上,當估計頻寬發生重大變化時, onCapabilitiesChanged()
回調會自動觸發,且呼叫requestBandwidthUpdate()
是無操作的;關聯的getLinkDownstreamBandwidthKbps()
和getLinkUpstreamBandwidthKbps()
填充有實體層提供的更新資訊。
此外,裝置可以透過ServiceState.getCellBandwidths()
檢查 LTE 小區頻寬。這使得應用程式可以確定給定小區上有多少可用頻寬(頻率)。小區頻寬資訊可透過隱藏選單取得,以便現場測試人員可以檢查最新資訊。
eBPF流量監控
eBPF 網路流量工具使用核心和用戶空間實現的組合來監視自上次裝置啟動以來裝置上的網路使用情況。該工具提供了附加功能,例如套接字標記、分離前台/後台流量以及按 UID 防火牆,以根據裝置狀態阻止應用程式進行網路存取。
恢復到較低的 API
設備現在可以從未來版本的作業系統進行復原。當用戶升級手機但隨後丟失或損壞手機時,這尤其有用。
如果 OEM 修改任何系統套件(android、系統、設定)的備份代理,這些代理應處理恢復在更高版本的平台上建立的備份集,而不會崩潰並至少恢復一些資料。
考慮使用驗證器來檢查給定備份資料的無效值,並僅恢復有效數據,如core/java/android/provider/SettingsValidators.java
所示。
該功能預設開啟。可以透過Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION
關閉 SettingsBackupAgent 對從未來版本復原的支援。除非設備製造商擴展 ROM 中包含的備份代理之一(或添加自訂代理),否則不需要額外的實作。
此功能允許從平台的未來版本恢復系統;但是,可以合理地預期恢復的數據不會完整。以下說明適用於以下備份代理:
PackageManagerBackupAgent透過格式版本控制支援未來版本的備份資料;這裡的擴充必須與目前的恢復程式碼相容或遵循類別中的說明,其中包括更改適當的常數。
SystemBackupAgent在Android 9及更高版本中指定
restoreAnyVersion = false
。它不支援從更高版本的 API 進行復原。SettingsBackupAgent在Android 9及更高版本中指定
restoreAnyVersion = true
。透過驗證器存在部分支援。如果目標作業系統中存在設定的驗證器,則可以從更高的 API 版本還原設定。添加任何設定都應附帶其驗證器。檢查班級以了解詳細資訊。ROM 中包含的任何自訂備份代理應在任何時候對備份資料格式進行不相容的變更時增加其版本程式碼,並確保
restoreAnyVersion = false
(預設值)(如果其代理程式不准備處理未來版本的備份資料)他們的代碼。
企業
託管設定檔改進
託管設定檔的使用者體驗變更使用戶可以更輕鬆地識別、存取和控制託管設定檔。
暫停 OTA
新的 @SystemApi 允許裝置擁有者無限期暫停 OTA 更新,包括安全性更新。
表現
健康2.0
Android 9 及更高版本包含android.hardware.health
HAL 2.0,這是 health@1.0 HAL 的主要版本升級。欲了解更多信息,請參閱以下頁面:
APK快取解決方案
Android 9 及更高版本包含APK 快取解決方案,用於在支援 A/B 分割區的裝置上快速安裝預先載入的應用程式。 OEM 可以將預先載入和流行應用程式放置在主要儲存在新 A/B 分區裝置上的空 B 分區中的 APK 快取中,而不會影響任何面向使用者的資料空間。
設定檔引導優化
Android 9 及更高版本支援在具有藍圖建置規則的本機 Android 模組上使用Clang 的設定檔引導優化 (PGO) 。
預寫日誌記錄
SQLiteDatabase 的一種特殊模式稱為相容性預寫日誌記錄 (WAL),它允許資料庫使用journal_mode=WAL
,同時每個資料庫最多保留一個連線。
啟動時間
Android 9 更改了啟動時間優化,如優化啟動時間所述。
力量
背景限制
Android 9 及更高版本包含後台限制,可讓使用者限制可能消耗電池電量的應用程式。系統還可能建議停用對設備健康產生負面影響的應用程式。
無電池設備
Android 9 比以前的版本更優雅地處理無電池設備。 Android 9 刪除了無電池裝置的代碼,這些裝置預設有電池、已充電 100%、運作狀況良好、熱敏電阻讀數正常。