Android 9 發行說明

本頁總結了 Android 9 版本的主要功能,並提供了指向其他信息的鏈接。這些功能摘要是根據此站點上功能的文檔位置組織的。有關部分移動和重命名的指南,請參閱2018 年 8 月站點更新

建造

通用系統映像 (GSI)

通用系統映像 (GSI) 是針對 Android 設備調整配置的系統映像。通用系統映像 (GSI)詳細介紹了搭載 Android 9 的設備與升級至 Android 9 的設備的 GSI 之間的差異。

建築學

硬件抽象層 (HAL)

HIDL 框架向後兼容性

HIDL 框架向後兼容性驗證是一種驗證框架向後兼容性的方法。

動態可用的 HAL

動態可用的 HAL支持在 Android 硬件子系統不使用或不需要時動態關閉它們。

HIDL

HIDL 內存塊

HIDL MemoryBlock是一個基於hidl_memoryHIDL @1.0::IAllocatorHIDL @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 及更高版本中引導加載程序啟動原因規範的更改。

系統作為根

所有搭載 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 兼容性定義文檔 (CDD)

Android 9 兼容性定義文檔以前版本的基礎上進行了迭代,更新了新功能並更改了以前發布的功能的要求。

設置

更好的應用小部件

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)

CTS 下載

CTS下載頁面上提供了支持 Android 9 的 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 Image Test Suite(Camera ITS)傳感器融合測試和多相機同步測試,為Android手機測量相機和其他傳感器的時間戳精度提供一致的測試環境。有關更多信息,請參閱這些頁面:

寬視野 ITS-in-a-box

寬視場 ITS-in-a-box是一種自動化系統,旨在測試 Camera ITS 中的寬視場 (WFoV) 和常規視場 (RFoV) 相機系統。

供應商測試套件 (VTS)

主機控制器架構

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)

基於文件的加密 (FBE)已更新為與可採用的存儲一起使用。新設備應使用基於文件的加密而不是全盤加密。

元數據加密

Android 9 及更高版本包括對存在硬件支持的元數據加密的支持。通過元數據加密,啟動時存在的單個密鑰使用基於文件的加密來加密任何未加密的內容。

密鑰庫

Android 9 及更高版本包括具有這些功能的Keymaster 4

保險櫃

Android 9 及更高版本包括對 Android Keystore 密鑰的支持,這些密鑰存儲在物理上獨立的 CPU 中並使用,該 CPU 專為高安全性應用程序(例如嵌入式安全元件 (SE))而構建。 StrongBox Keymaster 是 Keymaster HAL 在離散安全硬件中的實現。 StrongBox 具有:

  • 離散CPU
  • 集成安全存儲
  • 高質量真隨機數發生器
  • 防篡改包裝
  • 側溝道電阻

安全密鑰導入

為了將密鑰安全地導入 Keymaster 4,在設備外創建的密鑰會使用定義密鑰如何使用的授權規范進行加密。

3DES 支持

Keymaster 4 包含 3DES,以便與使用 3DES 的舊系統兼容。

版本綁定

為了支持 Treble 的模塊化結構並打破system.imgboot.img的綁定,Keymaster 4 將密鑰版本綁定模型更改為每個分區具有單獨的補丁級別。這允許每個分區獨立更新,同時仍提供回滾保護。

Android 保護確認 API

安裝了 Android 9 的受支持設備使開發人員能夠使用Android Protected Confirmation API 。使用此 API,應用程序可以使用ConfirmationPrompt的實例向用戶顯示提示,要求他們批准簡短的聲明。此聲明允許應用程序再次確認用戶想要完成敏感交易,例如付款。

SELinux

每應用 SELinux 沙箱

應用程序沙箱具有新的保護和測試用例,以確保所有 Android 9 及更高版本的非特權應用程序運行單獨的 SELinux 沙箱。

高音 SELinux 變化

SELinux 部分的多個頁面中記錄了 Android 9 及更高版本中 Treble SELinux 的更新。

供應商初始化

供應商 init通過使用單獨的 SELinux 域來運行具有供應商特定權限的/vendor命令,從而填補了 Treble 系統/供應商拆分中的漏洞。

系統屬性

Android 9 限制系統屬性systemvendor分區之間不必要地共享,並提供了一種方法來確保共享系統屬性之間的一致性。

SELinux 屬性測試

Android 9 包含新的構建時測試,可確保特定位置的所有文件都具有適當的屬性。例如, sysfs中的所有文件都具有必需的sysfs_type屬性。

聲音的

高分辨率音頻效果

高分辨率音頻效果的更新包括將效果處理從 int16 轉換為浮點格式,並增加同時客戶端輸出軌道、最大客戶端/服務器內存和總混合軌道。

相機

外接 USB 攝像頭

Android 9 及更高版本支持使用標準Android Camera2 API和相機 HIDL 接口使用即插即用 USB 相機(即網絡攝像頭)。

運動追踪

相機設備可以宣傳運動跟踪能力

多攝像頭支持

Multi-camera cupport通過由兩個或多個指向同一方向的物理相機設備組成的新邏輯相機設備包括對多相機設備的 API 支持。

會話參數

作為捕獲會話初始化階段的一部分,實現會話參數可以通過使相機客戶端主動配置成本高昂的請求參數子集來減少延遲。

單生產者,多消費者緩衝區

單生產者、多消費者相機緩衝區傳輸是一組方法,允許相機客戶端在捕獲會話處於活動狀態且相機流正在進行時動態添加和刪除輸出表面。

連接性

通話和短信

實施數據計劃

Android 9 及更高版本為使用 SubcriptionPlan API實施數據計劃的運營商提供了改進的支持。

第三方通話應用

Android 9 及更高版本提供的 API 允許第三方 (3P) 呼叫應用處理並發傳入的運營商呼叫並將呼叫記錄在系統呼叫日誌中。

載體

承運人識別

在 Android 9 中,AOSP 添加了運營商 ID 數據庫以幫助識別運營商。該數據庫通過提供一種通用的方式來識別運營商,從而最大限度地減少重複邏輯和碎片化的應用體驗。

eSIM

嵌入式 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_CHANGEDTelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED

有了這些變化,只需要知道卡片是否存在的接收者就不必監聽應用程序狀態的變化,而只需要知道卡片應用程序是否準備好的接收者也不必監聽卡片狀態的變化。

這兩個新的廣播是@SystemApis 並且沒有粘性。只有擁有READ_PRIVILEGED_PHONE_STATE權限的接收者才能接收廣播。

解鎖設備時不會重新廣播意圖。依賴於在您解鎖之前發送的廣播的接收器必須使用directBootAware ,或者它們必須在用戶解鎖後查詢狀態。可以使用 TelephonyManager、 getSimCardState()getSimApplicationState()中的相應 API 來查詢狀態。

無線上網

運營商 Wi-Fi

運營商 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 往返時間 (RTT)

Wi-Fi 往返時間 (RTT)允許設備測量與其他支持設備的距離,無論它們是接入點 (AP) 還是Wi-Fi 感知對等設備(如果設備支持 Wi-Fi 感知)。此功能基於 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 及更高版本中,對WifiStateMachine的 Wi-Fi 框架代碼和實現進行了重新架構,從而減少了代碼大小,更易於遵循 Wi-Fi 控制邏輯,改進了控製粒度,並提高了單元測試的覆蓋率和質量.

概括地說, WifiStateMachine允許 Wi-Fi 處於以下四種狀態之一:

  • 客戶端模式(可以連接和掃描)
  • 僅掃描模式
  • SoftAP 模式(Wi-Fi 熱點)
  • 已禁用(Wi-Fi 完全關閉)

每種 Wi-Fi 模式對運行服務的要求不同,應以一致的方式設置,僅處理與其操作相關的事件。新的實現將代碼限制為與該模式相關的事件,從而減少了調試時間以及由於復雜性而引入新錯誤的風險。除了對模式功能的顯式處理外,線程管理以一致的方式進行處理,並且消除了異步通道的使用作為同步機制。

Wi-Fi 權限更新

在 Android 9 及更高版本中,默認啟用CHANGE_WIFI_STATE應用權限。您可以在設置 > 應用和通知 > 特殊應用訪問 > Wi-Fi 控制中的設置頁面禁用任何應用的權限。

應用程序必須能夠處理未授予CHANGE_WIFI_STATE權限的情況。

要驗證此行為,請運行機器人電動和手動測試。

對於手動測試:

  1. 轉到設置 > 應用和通知 > 特殊應用訪問 > Wi-Fi 控制
  2. 選擇並關閉您的應用的權限。
  3. 驗證您的應用是否可以處理未授予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

相互作用

汽車音響

Automotive Audio描述了與汽車相關的 Android 實現的音頻架構。

神經網絡 (NN) HAL 定義了各種加速器的抽象。這些加速器的驅動程序必須符合此 HAL。

車輛 HAL

Vehicle Properties描述了對車輛 HAL 接口的更改。

GNSS 衛星選擇

使用新的全球導航衛星系統 (GNSS) HAL (v1.1+) 時,Android 框架會監控 Android 設置。合作夥伴可以通過 Google Play 服務或其他系統更新更改設置。如果不應該使用某些 GNSS 衛星,這些設置會告訴 GNSS HAL。這在 GNSS 衛星或星座持續錯誤的情況下很有用,或者在使用不同時間系統和外部事件(例如閏秒、日期或週數翻轉)混合星座時可能出現的 GNSS HAL 實施問題更快地做出反應.

GNSS 硬件模型

在 Android 9 中,GNSS HAL 1.1 或更高版本可以將有關硬件 API 的信息傳遞給平台。平台需要實現IGnssCallback接口並將句柄傳遞給 HAL。 GNSS HAL 通過LocationManager#getGnssHardwareModelName()方法傳遞硬件型號信息。設備製造商應與其 GNSS HAL 提供商合作,盡可能提供此信息。

權限

配置自主訪問控制 (DAC) 更新

配置自主訪問控制 (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 (默認值)他們的代碼。

企業

託管配置文件改進

託管配置文件的 UX 更改使用戶更容易識別、訪問和控制託管配置文件。

暫停 OTA

新的@SystemApi 允許設備所有者無限期暫停 OTA 更新,包括安全更新。

表現

健康2.0

Android 9 及更高版本包括android.hardware.health HAL 2.0,它是 health@1.0 HAL 的主要版本升級。有關更多信息,請參閱以下頁面:

APK 緩存

Android 9 及更高版本包含一個APK 緩存解決方案,用於在支持 A/B 分區的設備上快速安裝預加載的應用程序。 OEM 可以將預加載和流行的應用程序放置在 APK 緩存中,該緩存主要存儲在新的 A/B 分區設備上的空 B 分區中,而不會影響任何面向用戶的數據空間。

配置文件引導優化 (PGO)

Android 9 及更高版本支持在具有藍圖構建規則的原生 Android 模塊上使用Clang 的配置文件引導優化 (PGO)

預寫式日誌記錄 (WAL)

SQLiteDatabase 的一種特殊模式稱為兼容性預寫日誌 (WAL) ,它允許數據庫使用journal_mode=WAL ,同時每個數據庫最多保持一個連接。

啟動時間

Android 9 更改了啟動時間優化,如優化啟動時間中所述。

力量

背景限制

Android 9 及更高版本包含允許用戶限制可能耗盡電池電量的應用的後台限制。系統還可能會建議禁用對設備健康產生負面影響的應用程序。

無電池設備

Android 9 比以前的版本更優雅地處理無電池設備。 Android 9 刪除了無電池設備的代碼,這些設備默認假定存在電池、充電 100% 且運行狀況良好且熱敏電阻上的溫度讀數正常。