開發人員專用的 Android 10

Android 10 圍繞三個重要主題建構而成。首先,Android 10 透過先進的機器學習技術,並支援折疊式裝置和 5G 等新興裝置,可形塑行動創新的領導地位。其次,Android 10 的核心重點是隱私權和安全性,其中近 50 項功能可為使用者提供更強大的保護、資訊公開度和控管權。最後,Android 10 擴大了使用者的數位健康控制項,方便個人與家庭在科技與生活之間取得更平衡。

以下將介紹 Android 10 的開發人員功能,以及您可以立即使用的功能。

創新和新體驗

您可以利用 Android 10 的最新硬體和軟體創新技術,為使用者打造絕佳的應用程式體驗。

您可以使用 Android 10 為折疊式裝置和其他大螢幕裝置最佳化應用程式。

折疊式裝置

Android 10 以可靠的多視窗模式支援建構而成,可以跨應用程式視窗擴展多工處理功能,並提供螢幕連續性,能在裝置折疊或展開時維持應用程式狀態。Android 10 改善了 onResumeonPause 的改善項目,以便支援多視窗運作,並在應用程式成為焦點時通知應用程式。並且會變更 resizeableActivity 資訊清單屬性的運作方式,方便您管理應用程式在折疊式裝置和大螢幕裝置上的顯示方式。為協助您為折疊式裝置建構應用程式,您可以在 Android Studio 中將折疊式模擬器設為虛擬裝置 (AVD)。如要進一步瞭解如何針對摺疊式裝置將應用程式最佳化,請參閱開發人員指南

5G 網路

5G 承諾能夠持續加快速度並縮短延遲時間,Android 10 新增了 5G 平台支援,並擴充現有 API 來協助您善用這些強化功能。您可以使用連線 API 偵測裝置是否有高頻寬連線,並檢查連線是否計量。有了這些功能,您的應用程式和遊戲就能為使用者提供豐富的沉浸式體驗。

通知中的智慧回覆

Android 10 會使用裝置端機器學習技術,在通知中建議符合情境的動作,例如訊息的智慧回覆,或是開啟通知中地圖的地址。您的應用程式可以立即利用此功能,您無須採取任何行動。根據預設,系統提供的智慧回覆和動作會直接插入通知中。但您仍可視需要提供自己的回覆和動作。只要使用 setAllowGeneratedReplies()setAllowSystemGeneratedContextualActions(),就能根據每則通知選擇不採用智慧回覆即可。

智慧回覆功能可根據通知內容建議採取的動作。

深色主題

Android 10 新增全系統的深色主題,非常適合在低光源環境下使用,有助於節省電力。使用者可以前往「設定」或開啟「節約耗電量」功能,啟用新的系統層級深色主題。這會將系統 UI 變更為深色,為支援此功能的應用程式啟用深色主題。您可以為應用程式建立自訂深色主題,或是選擇採用新的「強制使用深色」功能,讓系統根據現有主題動態建立深色版本。建議您也利用 AppCompat 的 DayNight 功能,為舊版 Android 使用者提供深色主題。詳情請參閱開發人員指南

Android 10 可透過「強制使用深色模式」功能,為應用程式動態建立深色主題。

手勢操作

手勢導覽可讓應用程式以全螢幕顯示內容。

Android 10 推出了全手勢導覽模式,可移除導覽列區域,讓應用程式使用全螢幕,提供更豐富、更沉浸的體驗。它保留了熟悉的「返回」、「主畫面」和「近期」導覽功能,但使用邊緣滑動手勢,而非顯示按鈕。如要與手勢導覽功能完美搭配,您應採用無邊框設計,並在導覽列後方繪製,打造身歷其境的體驗。如要實作這項功能,應用程式應使用 setSystemUiVisibility() API 進行全螢幕版面配置,然後視情況處理 WindowInsets,確保不會遮蓋重要 UI 元件。立即開始最佳化應用程式,並參閱我們的網誌文章系列,瞭解更多資訊。

設定面板

您現在可以透過新的 「設定面板」API,直接在應用程式內容中顯示重要系統設定。設定面板為浮動式 UI,您可以呼叫這個面板,藉此顯示使用者可能需要的設定,例如網際網路連線、NFC 和音量。舉例來說,瀏覽器應用程式顯示的面板可能會有飛航模式、Wi-Fi (包括附近網路) 和行動數據等連線設定。如要顯示設定面板,只要使用其中一項新的 Settings.Panel 動作觸發意圖即可。

分享捷徑

分享捷徑可讓您更輕鬆快速地分享內容,讓使用者直接跳至其他應用程式來分享內容。開發人員可以發布分享目標,藉此在已附上內容的應用程式中啟動特定活動,而分享 UI 會向使用者顯示這些目標。由於分享目標已預先發布完成,因此分享 UI 可在啟動時立即載入。分享捷徑與應用程式捷徑類似,且使用相同的 ShortcutInfo API。此外,這個 API 也支援 ShareTarget AndroidX 程式庫。詳情請參閱範例應用程式

共用捷徑可讓使用者直接跳至應用程式中附帶內容的特定活動。

使用者隱私

隱私權是 Android 10 的核心重點,從平台提供更強大的保護措施,到以隱私權為重點設計的新功能,在前幾個版本的基礎上,Android 10 包含了廣泛的異動,可保護隱私權並讓使用者享有更多控制權,包括改善的系統 UI、更嚴格的權限,以及限制應用程式可使用的資料。如要進一步瞭解如何在應用程式中支援這些功能,請參閱隱私權變更

使用者現在可以選擇在應用程式處於前景時授予位置資訊存取權。

讓使用者進一步控管位置資料:使用者現在可以透過新的權限選項進一步控管自己的位置資料,只在應用程式實際使用 (在前景執行) 時允許應用程式存取位置資訊。這項功能可為大多數應用程式提供足夠的存取權,並大幅提升使用者的資訊公開度和控制權。如要進一步瞭解位置異動,請參閱開發人員指南或我們的網誌文章

保護網路掃描中的位置資料:大多數用於掃描網路的 API 都已需要概略的位置存取權。Android 10 改為要求精細位置存取權,藉此強化這些 API 的保護機制。

防止裝置追蹤:應用程式無法再存取無法重設的裝置 ID (包括裝置 IMEI、序號和類似的 ID),根據預設,裝置連上 Wi-Fi 網路時,MAC 位址也會隨機產生。請參閱最佳做法,瞭解如何為自己的用途選擇合適的 ID,詳情請參閱這裡

保護外部儲存空間中的使用者資料 - Android 10 推出了多項變更,讓使用者能進一步控管外部儲存空間中的檔案,以及其中的應用程式資料。應用程式可在其私人沙箱中儲存自己的檔案,但必須使用 MediaStore 存取共用媒體檔案,並使用系統檔案選擇器存取新下載集合中的共用檔案。請按這裡瞭解詳情。

封鎖不必要的干擾:Android 10 可防止從背景啟動的應用程式突然跳到前景,並接管其他應用程式的焦點。如要瞭解詳情,請參閱這篇文章

安全性

Android 10 推出了多項功能,透過進階加密、平台強化和驗證機制,進一步保護使用者安全。如要進一步瞭解 Android 10 的安全性更新,請參閱這篇文章

儲存空間加密:所有搭載 Android 10 的支援裝置都必須加密使用者資料,為了提高效率,Android 10 包含了新的加密模式 Adiantum

預設啟用 TLS 1.3 - Android 10 也會預設啟用 TLS 1.3,這是 TLS 標準的重大改版,可帶來效能提升和強化安全性

平台強化:Android 10 也包含針對平台的多個安全性關鍵領域進行強化

改善生物特徵辨識功能:Android 10 擴充了 BiometricPrompt 架構,以支援臉部等被動式驗證方法,並新增隱含和明確的驗證流程。在明確流程中,使用者必須在驗證期間明確確認 TEE 中的交易。隱含流程則是輕量級替代方案,適用於含有被動式驗證的交易。如有需要,Android 10 也改善了裝置憑證備用選項。請按這裡瞭解詳情。

相機和媒體

相片的動態景深

應用程式現在可以要求取得「動態景深」圖像,由與景深相關元素有關的 JPEG、XMP 中繼資料組成,並且在同一檔案中嵌入景深和置信圖。您可在應用程式中提供專門的模糊處理和散景選項。動態深度是生態系統的開放式格式,我們正與合作夥伴合作,將其納入搭載 Android 10 以上版本的裝置上。

透過動態景深圖片,您可以在應用程式中提供專業的模糊和散景選項。

音訊播放擷取

如今,任何播放音訊的應用程式都可以使用新的音訊播放擷取 API,讓其他應用程式擷取音訊串流。除了啟用字幕和輔助字幕,這個 API 還可支援遊戲直播等熱門用途。我們在設計這項新功能時,將隱私權和版權保護納入考量,因此應用程式擷取其他應用程式音訊的功能受到限制,讓應用程式可完全控制是否要擷取音訊串流。詳情請參閱這篇網誌文章

新的音訊和視訊轉碼器

Android 10 開始支援開放原始碼視訊轉碼器 AV1,可讓媒體供應商以較低頻寬將高畫質影片內容串流播放至 Android 裝置。此外,Android 10 還支援使用 Opus 進行音訊編碼,這是一種開放式免版稅編碼器,可針對語音和音樂串流進行最佳化。在支援 HDR10+ 的裝置上,您也可以使用 HDR10+ 編碼 HDR 影片。MediaCodecInfo API 可讓系統更輕鬆地判斷 Android 裝置的影片轉譯功能。您可以取得任何特定轉碼器的支援大小和影格速率清單。

原生 MIDI API

針對在 C++ 中執行音訊處理作業的應用程式,Android 10 推出了原生 MIDI API,以便透過 NDK 與 MIDI 裝置進行通訊。這個 API 可讓系統透過非封阻式讀取作業在音訊回呼內擷取 MIDI 資料,藉此降低處理 MIDI 訊息時的延遲。請試試範例應用程式和這裡的來源程式碼

定向、可縮放的麥克風

在 Android 10 中,您可以透過新的 MicrophoneDirection API 進一步控管音訊擷取作業。您可以在錄製音訊時,使用 API 指定偏好的麥克風方向。舉例來說,當使用者拍攝「自拍」影片時,您可以要求使用前置麥克風錄製音訊 (如果有)。此外,這個 API 還引進了標準化的方式來控制可縮放的麥克風,讓應用程式可以控制錄音欄位維度

全面採用 Vulkan

Android 10 透過實作低負載、跨平台 API 的Vulkan,擴大了 Vulkan 的影響力,以便處理高效能 3D 圖形。凡是搭載 Android 10 以上版本的 64 位元裝置,現在都必須支援 Vulkan 1.1,而所有 32 位元裝置則建議支援這項技術。我們已在生態系統中看到 Vulkan 支援的重大動力,在搭載 Android N 以上版本的裝置中,有 53% 支援 Vulkan 1.0.3 以上版本。隨著 Android 10 的新規定實施,我們預計在未來一年內,採用率將進一步提升。

連線能力

改善點對點和網際網路連線

我們重構了 Wi-Fi 堆疊,以改善隱私與效能,也改善了常見用途,例如管理 IoT 裝置及建議網際網路連線,而且不需要位置存取權。網路連線 API 可讓使用者透過本地 Wi-Fi 輕鬆管理 IoT 裝置及執行點對點功能,例如設定、下載或列印。網路建議 API 可讓應用程式向使用者顯示偏好的 Wi-Fi 網路,以進行網際網路連線。

Wi-Fi 效能模式

應用程式現在可以啟用高效能和低延遲模式,要求使用自適應 Wi-Fi。當延遲時間對使用者體驗至關重要時 (例如即時遊戲、進行中的語音通話和其他類似用途),這些技術就能派上用場。平台會與裝置韌體搭配運作,以最低耗電量滿足要求。如要使用新的效能模式,請使用 WIFI_MODE_FULL_LOW_LATENCYWIFI_MODE_FULL_HIGH_PERF 呼叫 WifiManager.WifiLock.createWifiLock()。在這些模式下,平台會與裝置韌體搭配運作,以最低耗電量的要求滿足需求。

Android 基礎

ART 最佳化

改善 ART 執行階段的效能,可讓應用程式啟動速度加快、記憶體用量減少,並順暢執行,而您不必採取任何動作。Google Play 提供的 ART 設定檔可讓 ART 在應用程式執行前預先編譯特定部分。在執行階段,Android 10 會在 ART 的並行複製垃圾收集器 (CC) 中新增世代垃圾收集,以便在時間和 CPU 層面提高垃圾收集效率、減少 Jank,並提升應用程式在低階裝置上的執行順暢度。

這張圖表顯示使用 Play 設定檔測試時,特定應用程式啟動時間的改善百分比。

Neural Networks API 1.2

我們新增了 60 種新的作業,包括 ARGMAX、ARGMIN、量化 LSTM 和各種效能最佳化作業。這些作業成為加快多種模型執行速度的基礎,例如物體偵測和圖像分割模型。我們正與硬體供應商和 TensorFlow 等熱門機器學習架構合作,以最佳化及推出 NNAPI 1.2 支援功能。

Thermal API

當裝置過熱時,裝置可能會對 CPU 和/或 GPU 進行節流措施,進而以非預期方式影響應用程式和遊戲。在 Android 10 中,應用程式和遊戲可以利用 熱能 API 監控裝置上的變更,並採取行動來恢復正常溫度。舉例來說,串流應用程式可以降低解析度/位元率或網路流量,相機應用程式可以停用閃光燈或密集圖像強化功能,遊戲則可以降低影格速率或多邊形鑲嵌。如要瞭解詳情,請參閱這篇文章

透過公用 API 確保相容性

Android 10 會持續擴大非 SDK 介面的限制,讓應用程式逐漸轉向只使用公用 API。如果目前使用的介面受到限制,可以改為針對該介面要求新的公用 API。為協助您進行轉換,避免應用程式停止運作,我們會只在應用程式指定 Android 10 (API 29) 版本時才啟用限制。如要進一步瞭解限制條件,請參閱開發人員指南

更新速度更快,程式碼更新

Android 10 的設計目的是透過 Project Treble 加快更新速度,該計畫可在 Android 與裝置製造商和晶片製造商的基礎裝置程式碼之間,提供一致且可測試的介面。透過 Treble,裝置製造商可將 Android 10 導入符合 Treble 規範的裝置,且成本更低、速度更快。

Android 10 也是第一個支援 Mainline 計畫 (正式名稱為 Google Play 系統更新) 的版本,這是我們推出的新技術,可保護 Android 使用者,並透過 Google Play 直接提供重要的程式碼變更,讓裝置保持最新狀態。透過 Google Play 系統更新,我們可以在所有搭載 Android 10 以上版本的裝置上更新特定內部元件,而不需要裝置製造商提供完整的系統更新。

對於開發人員而言,我們希望 Android 10 中的這些更新能協助在各裝置上廣泛實現平台一致性,並隨著時間推移帶來更高的一致性,進而降低開發和測試成本。

開始使用

如需 Android 10 的完整開發人員資源,請前往 developer.android.com/10