Android 16 為開發人員推出了強大的新功能和 API。以下各節會概述這些功能,協助您開始使用相關 API。
您也應檢查平台變更可能對應用程式造成影響的層面。如需詳細資訊,請參閱下列頁面:
核心功能
Android 包含可擴充 Android 系統核心功能的新 API。
2025 年推出兩個 Android API
- 這個預覽版適用於下一個 Android 主要版本,預計於 2025 年第 2 季推出。這個版本與我們過去的所有 API 版本類似,我們可以進行預定的行為變更,這些變更通常與 targetSdkVersion 相關。
- 我們預計將主要版本提前一個季發布 (第 2 季,而非以往的第 3 季),以便與生態系統中的裝置推出時程保持一致,讓更多裝置能盡早取得主要的 Android 版本。由於主要版本將於第 2 季推出,您需要比往年提早幾個月進行年度相容性測試,確保應用程式已準備就緒。
- 我們預計在 2025 年第 4 季推出另一個版本,其中也會納入新的開發人員 API。2025 年唯一會納入可能影響應用程式的行為變更計畫的版本,就是第 2 季主要版本。
除了新的開發人員 API,第 4 季次要版本還會推出功能更新、最佳化和錯誤修正,但不會包含任何會影響應用程式的行為變更。
我們會持續每季發布 Android 版本。在 API 版本之間,第 1 季和第 3 季的更新會提供漸進式更新,有助確保持續提供高品質服務。我們正積極與裝置合作夥伴合作,盡可能讓 Q2 版本適用於更多裝置。
使用主要和次要版本的新 API
今天,您可以使用 SDK_INT
常數搭配 VERSION_CODES
,保護含有 API 級別檢查的程式碼區塊。我們會持續為主要的 Android 版本提供支援。
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
新的 SDK_INT_FULL
常數可用於針對主要和次要版本進行 API 檢查,並搭配新的 VERSION_CODES_FULL
列舉。
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
// Use APIs introduced in a major or minor release
}
您也可以使用 Build.getMinorSdkVersion()
方法,只取得 SDK 子版本。
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
這些 API 尚未定案,且可能有所變動,因此如果您有任何疑慮,請提供意見回饋。
使用者體驗和系統使用者介面
Android 16 可讓應用程式開發人員和使用者更靈活地控管裝置,以符合自身需求。
預測返回更新
Android 16 新增了新的 API,可協助您在手勢導覽 (例如返回主畫面動畫) 中啟用預測返回系統動畫。使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER
註冊 onBackInvokedCallback
,即可在系統處理返回導覽時讓應用程式接收一般 onBackInvoked
呼叫,且不會影響一般返回導覽流程。
Android 16 也新增了 finishAndRemoveTaskCallback()
和 moveTaskToBackCallback
。只要將這些回呼註冊至 OnBackInvokedDispatcher
,系統就能在使用者執行返回手勢時觸發特定行為,並播放相應的提前動畫。
更豐富的觸覺回饋
自推出以來,Android 就提供觸覺感應致動器控制項。
Android 11 新增了對更複雜的觸覺效果支援,進階的致動器可透過裝置定義語義原始類型的 VibrationEffect.Compositions
支援此類效果。
Android 16 新增觸覺 API,讓應用程式定義觸覺效果的振幅和頻率曲線,同時抽象化裝置功能之間的差異。
效能和電池
Android 16 推出了可協助收集應用程式深入分析資訊的 API。
系統觸發的剖析
ProfilingManager
was
added in Android 15, giving apps the ability to
request profiling data collection using Perfetto on public devices in the field.
However, since this profiling must be started from the app, critical flows such
as startups or ANRs would be difficult or impossible for apps to capture.
To help with this, Android 16 introduces system-triggered profiling to
ProfilingManager
. Apps can register interest in receiving traces for certain
triggers such as cold start reportFullyDrawn
or ANRs, and then the system starts and stops a trace on the app's behalf. After
the trace completes, the results are delivered to the app's data directory.
在 ApplicationStartInfo 中啟動元件
ApplicationStartInfo
was added in Android
15, allowing an app to see reasons
for process start, start type, start times, throttling, and other useful
diagnostic data. Android 16 adds
getStartComponent()
to distinguish what component type triggered the start, which can be helpful for
optimizing the startup flow of your app.
更完善的工作內省功能
JobScheduler#getPendingJobReason()
API 會傳回工作可能處於待處理狀態的原因。不過,工作可能會因多種原因而處於待處理狀態。
在 Android 16 中,我們推出了全新的 API JobScheduler#getPendingJobReasons(int jobId)
,可傳回工作處於待處理狀態的多種原因,包括開發人員設定的明確限制,以及系統設定的隱含限制。
我們也推出 JobScheduler#getPendingJobReasonsHistory(int jobId)
,可傳回最新約束條件變更的清單。
建議您使用 API 來偵測工作未執行的原因,特別是當您發現特定工作成功率降低,或特定工作完成時間延遲時,就需要進行偵錯。例如,在背景更新小工具時發生錯誤,或是在應用程式啟動前無法呼叫預先擷取工作。
這也能協助您進一步瞭解,某些工作是否因系統定義的限制而無法完成,而非明確設定的限制。
自動調整刷新率
在 Android 15 中推出的適應性重新整理率 (ARR) 可讓支援硬體的螢幕重新整理率,透過獨立的 VSync 步驟調整至內容影格速率。這麼做可降低耗電量,同時避免需要切換模式,進而導致卡頓現象。
Android 16 在還原 getSupportedRefreshRates()
時,會引入 hasArrSupport()
和 getSuggestedFrameRate(int)
,讓應用程式更容易利用 ARR。RecyclerView 1.4 在從彈跳或平滑捲動中進行調整時,會在內部支援 ARR,我們也持續致力於將 ARR 支援功能加入更多 Jetpack 程式庫。這篇關於影格速率的文章介紹許多可用來設定影格速率的 API,讓應用程式能直接使用 ARR。
連線能力
Android 16 會更新平台,讓應用程式可使用最新的通訊和無線技術。
使用強化安全性的測距功能
Android 16 新增了對 Wi-Fi 6 的 802.11az 支援裝置 Wi-Fi 位置資訊的強大安全性功能支援,讓應用程式可結合更高的精確度、更大的可擴充性和動態排程的通訊協定,以及 AES-256 加密和防範中間人攻擊的安全性強化功能。這可讓使用者在近距離用途 (例如解鎖筆電或車門) 時,更安全地使用這項功能。802.11az 已整合 Wi-Fi 6 標準,可利用其基礎架構和功能,讓採用率更廣泛,部署作業也更輕鬆。
媒體
Android 16 包含多種可改善媒體體驗的功能。
相片挑選工具改善
相片挑選工具提供內建的安全方法,讓使用者授予應用程式存取權,以便存取本機和雲端儲存空間中的所選圖片和影片,而非整個媒體庫。透過 Google 系統更新和 Google Play 服務,結合使用模組化系統元件,可支援 Android 4.4 (API 級別 19) 以下版本。整合作業只需要幾行程式碼和相關的 Android Jetpack 程式庫。
Android 16 對相片挑選工具進行了以下改善:
- 內嵌式相片挑選器:新 API,可讓應用程式將相片挑選器嵌入其檢視區塊階層。這樣一來,使用者就能感受到應用程式更整合的部分,同時仍可利用程序隔離功能,讓使用者能夠選取媒體,而應用程式不需要過度廣泛的權限。如要盡可能提高各平台版本的相容性並簡化整合作業,如果您想整合內嵌的相片挑選工具,請使用即將推出的 Android Jetpack 程式庫。
- 相片挑選器中的雲端搜尋功能:新的 API 可讓 Android 相片挑選器從雲端媒體供應器搜尋內容。相片挑選工具中的搜尋功能即將推出。
隱私權
Android 16 包含多種功能,可協助應用程式開發人員保護使用者隱私權。
Health Connect 更新
開發人員預覽版的 Health Connect 新增了 ACTIVITY_INTENSITY
,這是根據世界衛生組織針對中度和劇烈活動定義的新資料類型。每個記錄都需要提供開始時間、結束時間,以及活動強度是屬於中等或高強度。
Health Connect 也包含支援健康記錄的更新版 API。這樣一來,應用程式就能在取得使用者明確同意的情況下,以 FHIR 格式讀取及寫入醫療記錄。這個 API 目前處於搶先體驗計畫階段。如要參與,請註冊搶先體驗計畫。
Android 版 Privacy Sandbox
Android 16 整合了最新版本的 Android 版 Privacy Sandbox,這是我們持續開發技術的一部分,讓使用者知道自己的隱私權受到保護。網站提供更多 Android 版 Privacy Sandbox 開發人員 Beta 版計畫的相關資訊,協助您開始使用。請查看 SDK 執行階段,讓 SDK 在專屬的執行階段環境中執行,而非在服務的應用程式中執行,以便在收集和分享使用者資料時提供更完善的防護。