行為變更:所有應用程式

Android 16 平台包含可能對應用程式造成影響的行為變更。無論 targetSdkVersion 為何,當應用程式在 Android 16 上執行時,下列行為變更將會套用至所有應用程式。您應測試應用程式,並視需要修改,以便在適當情況下支援這些變更。

另請務必查看僅對指定 Android 16 為目標版本的應用程式造成影響的行為變更清單。

核心功能

Android 16 包含下列變更,可修改或擴充 Android 系統的各種核心功能。

JobScheduler 配額最佳化

自 Android 16 起,我們會根據下列因素調整一般和快速工作執行的執行時間配額:

  • 應用程式位於哪個應用程式待命值區:在 Android 16 中,系統會開始以豐富的執行階段配額強制執行有效待命值區。
  • 如果工作在應用程式處於頂層狀態時開始執行:在 Android 16 中,如果工作在應用程式向使用者顯示時開始執行,並在應用程式不再顯示後繼續執行,則會遵守工作執行時間配額。
  • 如果工作在執行前景服務時執行:在 Android 16 中,與前景服務同時執行的工作會遵守工作執行時間配額。如果您要使用工作來進行使用者啟動的資料移轉作業,請考慮改用使用者啟動的資料移轉工作

這項異動會影響使用 WorkManager、JobScheduler 和 DownloadManager 排定的任務。如要對工作停止的原因進行偵錯,建議您呼叫 WorkInfo.getStopReason() 來記錄工作停止的原因 (JobScheduler 工作請呼叫 JobParameters.getStopReason())。

如要進一步瞭解電池最佳化最佳做法,請參閱如何為任務排程 API 最佳化電池用量的相關指南。

我們也建議您利用 Android 16 中推出的新 JobScheduler#getPendingJobReasonsHistory API,瞭解為何未執行工作。

測試

如要測試應用程式的行為,只要應用程式在 Android 16 裝置上執行,您就可以啟用特定工作配額最佳化設定的覆寫功能。

如要停用「top state will adhere to job runtime quota」的強制執行功能,請執行下列 adb 指令:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_TOP_STARTED_JOBS APP_PACKAGE_NAME

如要停用「與前景服務同時執行的作業會遵守作業執行時間配額」的強制執行,請執行下列 adb 指令:

adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_FGS_JOBS APP_PACKAGE_NAME

如要測試特定的應用程式待命值區行為,您可以使用下列 adb 指令設定應用程式的應用程式待命值區:

adb shell am set-standby-bucket APP_PACKAGE_NAME active|working_set|frequent|rare|restricted

如要瞭解應用程式所屬的應用程式待命值區,您可以使用下列 adb 指令取得應用程式的應用程式待命值區:

adb shell am get-standby-bucket APP_PACKAGE_NAME

完全淘汰 JobInfo#setImportantWhileForeground

JobInfo.Builder#setImportantWhileForeground(boolean) 方法會在排程應用程式處於前景或暫時豁免背景限制時,指出工作的重要性。

自 Android 12 (API 級別 31) 起,此方法已淘汰。自 Android 16 起,這項方法不再有效,系統會忽略呼叫此方法的行為。

這項功能移除作業也適用於 JobInfo#isImportantWhileForeground()。自 Android 16 起,如果呼叫該方法,該方法會傳回 false

使用者體驗和系統使用者介面

Android 16 包含下列變更,旨在打造更一致、直覺的使用者體驗。

淘汰干擾性無障礙工具的公告

Android 16 已淘汰無障礙公告,這類公告的特色是使用 announceForAccessibility 或調度 TYPE_ANNOUNCEMENT 無障礙事件。這可能會為 TalkBack 和 Android 螢幕閱讀器的使用者帶來不一致的使用者體驗,而替代方案可在各種 Android 輔助技術中,滿足更廣泛的使用者需求。

替代方案範例:

如要進一步瞭解建議的替代方案,請參閱已淘汰的 announceForAccessibility API 參考說明文件。