Android 10 圍繞著三個重要主題。首先,Android 10 採用先進的機器學習技術,並支援摺疊式裝置和 5G 手機等新興裝置,引領行動創新潮流。其次,Android 10 的核心重點是隱私權和安全性,提供近 50 項功能,為使用者提供更完善的保護、資訊透明度和控制權。最後,Android 10 擴充了使用者的數位健康控制項,讓個人和家庭能更妥善地平衡科技與生活。
以下介紹 Android 10 為開發人員提供的功能,以及如何立即使用。
創新與全新體驗
Android 10 讓您能運用最新的軟硬體創新技術,為使用者打造出色的應用程式體驗。
Android 10 可讓您針對摺疊式裝置和其他大螢幕裝置,對應用程式進行最佳化調整。
摺疊式裝置
Android 10 以強大的多視窗模式支援為基礎,將多工處理功能擴展至應用程式視窗,並提供螢幕連續性,在裝置摺疊或展開時維持應用程式狀態。Android 10 在 onResume() 和 onPause() 中新增多項改善項目,以支援多重繼續功能,並在應用程式取得焦點時通知應用程式。此外,這項功能也會變更 resizeableActivity 資訊清單屬性的運作方式,協助您管理應用程式在摺疊式裝置和大螢幕上的顯示方式。為協助您建構摺疊式裝置,您可以在 Android Studio 中將摺疊式模擬器設為虛擬裝置 (AVD)。如要進一步瞭解如何針對摺疊式裝置最佳化應用程式,請參閱「進一步瞭解摺疊式裝置」。
5G 網路
5G 網路可望提供更快的速度和更低的延遲。Android 10 新增對 5G 的平台支援,並擴充 ConnectivityManager,協助您充分運用這些強化功能。您可以使用連線能力 API 偵測裝置是否具有高頻寬連線,並檢查連線是否計量付費。有了這些功能,您的應用程式和遊戲就能透過 5G 為使用者量身打造豐富、身歷其境的體驗。
通知中的智慧回覆
Android 10 使用裝置端機器學習技術,在通知中建議關聯動作,例如訊息的智慧回覆,或開啟通知中地址的地圖。您的應用程式可以立即利用這項功能,您不需要採取任何行動。根據預設,系統提供的智慧回覆和動作會直接插入通知中。您仍可視需要提供自己的回覆和動作。如要針對個別通知停用智慧回覆功能,請使用 setAllowGeneratedReplies() 和 setAllowSystemGeneratedContextualActions()。
智慧回覆功能可根據通知內容建議動作。
深色主題
Android 10 新增了系統層級的深色主題,適合在低光源環境下使用,並有助於節省電池電力。使用者可以前往「設定」或開啟「省電模式」,啟用新的全系統深色主題。這會將系統 UI 變更為深色,並啟用支援深色主題的應用程式。您可以為應用程式建立自訂深色主題,或選擇加入「強制使用深色主題」功能,讓系統根據現有主題動態建立深色版本。您也可以利用 AppCompat 的 DayNight 功能,為使用較低 Android 版本的使用者提供深色主題。詳情請參閱「深色主題」。
Android 10 可透過強制使用深色主題,為應用程式動態建立深色主題。
手勢操作
手勢操作導覽可讓應用程式在全螢幕顯示內容。
Android 10 推出全手勢操作模式,可移除導覽列區域,讓應用程式使用全螢幕,提供更豐富、更身歷其境的體驗。這種模式保留了熟悉的「返回」、「主畫面」和「最近使用的應用程式」操作,但改用邊緣滑動手勢,而非顯示按鈕。如要與手勢操作完美融合,請採用無邊框設計,在導覽列後方繪製,打造沉浸式體驗。如要實作這項功能,請使用 setSystemUiVisibility() API 以全螢幕模式顯示應用程式,然後視情況處理 WindowInsets,確保重要的 UI 部分不會遭到遮蓋。詳情請參閱「手勢操作」和手勢操作網誌文章系列。
設定面板
您可以透過 Settings.Panel API,直接在應用程式情境中顯示重要系統設定。設定面板是浮動 UI,可叫用來顯示使用者可能需要的設定,例如網際網路連線、NFC 和音量。舉例來說,瀏覽器可以顯示含有連線設定的面板,例如飛航模式、Wi-Fi (包括附近網路) 和行動數據。如要顯示設定面板,請使用其中一個 Settings.Panel 動作觸發意圖。
分享捷徑
分享捷徑可讓使用者直接跳到其他應用程式分享內容,讓分享更快速、更輕鬆。開發人員可以發布分享目標,在應用程式中啟動特定活動並附加內容,這些內容會顯示在分享 UI 中。由於這些捷徑會預先發布,因此分享 UI 啟動時會立即載入。分享捷徑與應用程式捷徑類似,並使用相同的 ShortcutInfo API。ShareTarget AndroidX 程式庫也支援這個 API。詳情請參閱共用捷徑範例應用程式。
分享捷徑可讓使用者直接跳到應用程式中的特定活動,並附加內容。
使用者隱私權
隱私權是 Android 10 的核心重點,從平台中更強大的保護措施,到以隱私權為考量設計的新功能,都體現了這一點。Android 10 以先前版本為基礎,進行了廣泛的變更,以保護隱私權並賦予使用者更多控制權,包括改善系統 UI、更嚴格的權限,以及限制應用程式可使用的資料。如要進一步瞭解如何在應用程式中支援這些變更,請參閱「隱私權變更」。
使用者現在可以選擇在應用程式位於前景時授予位置存取權。
讓使用者進一步控管位置資料:使用者可以透過權限選項進一步控管位置資料,例如允許應用程式只在實際使用時 (在前景執行) 存取位置資訊。對大多數應用程式來說,這項功能可提供足夠的存取權,同時大幅提升使用者的資訊透明度和控制權。如要進一步瞭解位置異動,請參閱「要求位置更新」或 Android 開發人員位置網誌文章。
保護網路掃描中的位置資料:大多數用於掃描網路的 API 都需要大概位置存取權。Android 10 改為要求精確位置存取權,加強保護這些 API。
防止裝置追蹤:應用程式無法再存取可用於追蹤的不可重設裝置 ID,包括裝置 IMEI、序號和類似 ID。根據預設,裝置連上 Wi-Fi 網路時,MAC 位址也會隨機產生。詳情請參閱「專屬 ID 的最佳做法」和「不可重設裝置 ID 的限制」。
保護外部儲存空間中的使用者資料:Android 10 導入多項變更,讓使用者進一步控管外部儲存空間中的檔案和應用程式資料。應用程式可以將自己的檔案儲存在私人沙箱中,但必須使用 MediaStore 存取共用媒體檔案,並使用系統檔案選擇器存取「下載」集合中的共用檔案。詳情請參閱「限定範圍儲存空間」。
封鎖不必要的干擾:Android 10 可防止應用程式從背景啟動,意外跳到前景並搶走其他應用程式的焦點。詳情請參閱「背景活動啟動」。
安全性
Android 10 導入多項安全防護功能,透過進階加密、平台強化和驗證機制,進一步保障使用者安全。詳情請參閱「Android Q 安全性新功能」。
儲存空間加密:所有搭載 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 級別 29) 以上版本的裝置。詳情請參閱動態景深規格 (PDF)。
有了動態景深圖片,您可以在應用程式中提供專門的模糊和散景選項。
音訊播放擷取
任何播放音訊的應用程式,都可以使用音訊播放擷取 API,讓其他應用程式擷取其音訊串流。除了啟用字幕和翻譯字幕外,這個 API 還可支援遊戲直播等熱門用途。這項功能在設計時考量到隱私權和著作權保護,因此應用程式擷取其他應用程式音訊的能力會受到限制,讓應用程式能完全控制是否可擷取其音訊串流。詳情請參閱「在 Android Q 中擷取音訊」。
新的音訊和影片轉碼器
Android 10 新增對開放原始碼影片轉碼器 AV1 的支援,讓媒體供應商能以較少的頻寬,將高畫質影片內容串流至 Android 裝置。此外,Android 10 支援使用 Opus 進行音訊編碼,這是一種開放、免權利金的轉碼器,專為語音和音樂串流進行最佳化,並支援 HDR10+,可在支援的裝置上播放高動態範圍影片。MediaCodecInfo API 提供更簡單的方法,可判斷 Android 裝置的影片算繪功能。您可以取得任何指定轉碼器支援的大小和影格率清單。
原生 MIDI API
如果應用程式在 C++ 中執行音訊處理,Android 10 會導入原生 MIDI API,透過 NDK 與 MIDI 裝置通訊。這個 API 可讓您使用非封阻式讀取,在音訊回呼中擷取 MIDI 資料,進而以低延遲處理 MIDI 訊息。歡迎試用這裡的範例應用程式和原始碼。
指向性可變焦麥克風
Android 10 透過新的 MicrophoneDirection API,讓您進一步控管音訊擷取功能。您可以使用 API 指定錄音時偏好的麥克風方向。舉例來說,當使用者拍攝「自拍」影片時,您可以要求前置麥克風進行音訊錄製 (如果有的話)。此外,這個 API 還提供標準化方式,可控制可縮放的麥克風,讓應用程式控制錄音欄位維度。
Vulkan 無所不在
Android 10 導入低負載、跨平台的高效能 3D 圖形 API,擴大 Vulkan 的影響力。現在,凡是搭載 Android 10 以上版本的 64 位元裝置,都必須支援 Vulkan 1.1,而所有 32 位元裝置也建議支援。我們已看到生態系統對 Vulkan 的支援有顯著進展,在搭載 Android N 以上版本的裝置中,有 53% 支援 Vulkan 1.0.3 以上版本。隨著 Android 10 推出新規定,我們預期明年採用率會進一步提升。
連線能力
提升點對點和網際網路連線能力
Android 10 重構 Wi-Fi 堆疊,以提升隱私權和效能,並改善常見用途 (例如管理 IoT 裝置和建議網際網路連線),而不需要位置存取權。網路連線 API 可讓您更輕鬆地透過本機 Wi-Fi 管理 IoT 裝置,以便執行設定、下載或列印等點對點功能。網路建議 API 可讓應用程式向使用者顯示偏好的 Wi-Fi 網路,以便連上網際網路。
Wi-Fi 效能模式
應用程式可以啟用高效能和低延遲模式,要求使用自動調整 Wi-Fi。如果低延遲對使用者體驗至關重要,例如即時遊戲、進行中的語音通話和類似用途,這些功能就非常實用。平台會與裝置韌體搭配運作,以最低耗電量滿足要求。如要使用效能模式,請使用 WIFI_MODE_FULL_LOW_LATENCY 或 WIFI_MODE_FULL_HIGH_PERF 呼叫 WifiManager.createWifiLock()。
Android 基礎
ART 最佳化
ART 執行階段經過改良,可讓應用程式啟動速度更快、耗用更少記憶體,且執行更流暢,您不必採取任何行動。Google Play 提供的 ART 設定檔可讓 ART 在應用程式執行前預先編譯部分內容。在執行階段,Android 10 會將世代垃圾收集新增至 ART 的並行複製 (CC) 垃圾收集器,以提高垃圾收集的時間和 CPU 效率、減少卡頓,並協助應用程式在低階裝置上更順暢地執行。
這張圖表顯示使用 Play 設定檔測試時,特定應用程式啟動時間的改善百分比。
Neural Networks API 1.2
Android 10 新增 60 項運算,包括 ARGMAX、ARGMIN 和量化 LSTM,以及一系列效能最佳化。這為加速更廣泛的模型 (例如物件偵測和影像分割模型) 奠定了基礎。Google 與硬體供應商和熱門機器學習架構 (例如 TensorFlow) 合作,最佳化並提供 NNAPI 1.2 支援。
Thermal API
當裝置過熱時,可能會對 CPU、GPU 或兩者進行節流措施,進而以非預期方式影響應用程式和遊戲。在 Android 10 中,應用程式和遊戲可以使用 Thermal API 監控裝置變化,並採取行動協助恢復正常溫度。舉例來說,串流應用程式可以降低解析度、位元率或網路流量;相機應用程式可以停用閃光燈或密集圖片強化功能;遊戲可以降低影格率或多邊形鑲嵌。詳情請參閱「Thermal API」。
透過公開 API 確保相容性
Android 10 持續擴大對非 SDK 介面的限制,讓應用程式逐漸轉為僅使用公開 API。如果您使用的介面受到限制,可以改為要求該介面的公開 API。為協助您順利轉換,並防止應用程式中斷,Android 10 只有在應用程式指定 Android 10 (API 級別 29) 時,才會啟用限制。詳情請參閱「Android 10 的非 SDK 介面限制更新」。
更新速度更快,程式碼更符合現況
Android 10 專為透過 Treble 計畫加快更新速度而設計,可在 Android 與裝置製造商和晶片製造商的基礎裝置程式碼之間,提供一致且可測試的介面。透過 Treble,裝置製造商可以更快速、更低成本地將 Android 10 導入符合 Treble 規範的裝置。
Android 10 也是第一個支援 Mainline 計畫 (正式名稱為 Google Play 系統更新) 的版本,這項技術可保護 Android 使用者,並透過直接來自 Google Play 的重要程式碼變更,讓裝置保持最新狀態。透過 Google Play 系統更新,Google Play 可以更新所有搭載 Android 10 以上版本裝置的特定內部元件,而不需要裝置製造商提供完整的系統更新。
對開發人員來說,Android 10 的這些更新有助於提升各裝置平台實作的一致性,並隨著時間推移帶來更高的一致性,進而降低開發和測試成本。
開始使用
如需 Android 10 的完整開發人員資源,請造訪 developer.android.com/10。
