Android 10 圍繞三個重要主題建構而成。首先,Android 10 導入進階機器學習技術,並支援折疊式裝置和支援 5G 的手機等新興裝置,以此打造行動創新技術的領先地位。其次,Android 10 的核心重點是隱私權和安全性,其中近 50 項功能可為使用者提供更強大的保護、資訊公開度和控管權。最後,Android 10 擴充了使用者的數位健康控制選項,讓個人和家庭能更妥善地運用科技。
以下將介紹 Android 10 的開發人員功能,以及您可以立即使用的功能。
創新和新體驗
您可以利用 Android 10 的最新硬體和軟體創新技術,為使用者打造絕佳的應用程式體驗。
折疊式裝置
在強大的多視窗支援功能基礎上,Android 10 擴充了應用程式視窗的多工處理功能,並提供螢幕連續性,以便在裝置折疊或展開時維持應用程式狀態。Android 10 在 onResume 和 onPause 中新增了許多改善功能,以便支援多視窗同時執行 (multi-resume) 及通知焦點應用程式。並且會變更 resizeableActivity 資訊清單屬性的運作方式,方便您管理應用程式在折疊式裝置和大螢幕裝置上的顯示方式。為協助您為折疊式裝置建構應用程式,您可以在 Android Studio 中將折疊式模擬器設為虛擬裝置 (AVD)。如要進一步瞭解如何針對折疊式裝置最佳化應用程式,請參閱開發人員指南。
5G 網路
5G 承諾提供更快的速度和更短的延遲時間,Android 10 則新增了 5G 平台支援功能,並擴充現有 API,協助您充分利用這些強化功能。您可以使用連線 API 偵測裝置是否有高頻寬連線,並檢查連線是否計量。有了這些功能,您的應用程式和遊戲就能為使用者提供豐富的沉浸式體驗。
通知中的智慧回覆
Android 10 會使用裝置端機器學習技術,在通知中建議符合情境的動作,例如訊息的智慧回覆,或是開啟通知中地圖的地址。您的應用程式可以立即運用這項功能,無須您採取任何行動。根據預設,系統提供的智慧回覆和動作會直接插入通知中。如有需要,您還是可以提供自己的回覆和動作。只要使用 setAllowGeneratedReplies() 和 setAllowSystemGeneratedContextualActions(),即可針對個別通知停用智慧回覆功能。
深色主題
Android 10 新增了系統層級的深色主題,非常適合在光線不足的環境下使用,而且有助於節省電力。使用者可以前往「設定」或開啟「節約耗電量」功能,啟用新的系統層級深色主題。這會將系統 UI 變更為深色,並啟用支援深色主題的應用程式。您可以為應用程式建立自訂深色主題,或是選擇採用新的「強制使用深色」功能,讓系統根據現有主題動態建立深色版本。您也可以利用 AppCompat 的 DayNight 功能,為使用舊版 Android 的使用者提供深色主題。詳情請參閱開發人員指南。
手勢操作
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。如果使用者正在執行需要低延遲 Wi-Fi 連線的服務 (例如即時遊戲、進行語音通話等),這些模式就相當實用。平台會與裝置韌體搭配運作,以最低的耗電量來滿足效能模式的需求。如要使用新的效能模式,請使用 WIFI_MODE_FULL_LOW_LATENCY
或 WIFI_MODE_FULL_HIGH_PERF
呼叫 WifiManager.WifiLock.createWifiLock()。在這些模式下,平台會與裝置韌體搭配運作,以最低的耗電量來滿足效能模式的需求。
Android 基礎
ART 最佳化
改善 ART 執行階段的效能,可讓應用程式啟動速度加快、記憶體用量減少,並順暢執行,而您不必採取任何動作。Google Play 提供的 ART 設定檔可讓 ART 在應用程式執行前預先編譯部分應用程式。在執行階段,Android 10 會在 ART 的並行複製垃圾收集器 (CC) 中新增世代垃圾收集,以便在時間和 CPU 層面提高垃圾收集效率、減少 Jank,並提升應用程式在低階裝置上的執行順暢度。
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。