Android 10 是根據三個重要主題打造而成。首先,Android 10 採用先進的機器學習技術,並支援折疊式裝置和支援 5G 的手機等新興裝置,共同塑造出行動創新的領先技術。接著,Android 10 聚焦於隱私權和安全性,提供將近 50 項功能,為使用者提供更有效的安全防護、資訊公開與控管功能。最後,Android 10 擴增了使用者的數位健康控管機制,幫助個人和家庭在科技之間取得更適當的平衡。
以下介紹開發人員適用的 Android 10 功能,以及目前的使用方法。
創新與體驗
Android 10 可讓您利用最新的軟硬體創新技術,為使用者打造絕佳的應用程式體驗。
![](https://developer.android.google.cn/static/images/about/versions/10/overview/image2.png?authuser=6&hl=zh-tw)
有了 Android 10,您就可以針對折疊式裝置和其他大螢幕裝置最佳化應用程式。
摺疊式裝置
Android 10 以強大的多視窗模式為基礎建構而成,可將多工處理範圍擴展到應用程式視窗,並提供螢幕連續性,以便在裝置折疊或展開時維持應用程式狀態。Android 10 在 onResume 和 onPause 新增了幾項改善項目,現在可支援多視窗運作,並在焦點成為應用程式時通知應用程式。這樣做也會變更 resizeableActivity 資訊清單屬性的運作方式,協助您管理應用程式在折疊式裝置和大螢幕裝置上的顯示方式。為了協助您建構折疊式裝置,您可以在 Android Studio 中將折疊式模擬器設為虛擬裝置 (AVD)。如要進一步瞭解如何針對折疊式裝置最佳化應用程式,請參閱開發人員指南。
5G 網路
5G 保證能夠持續提供更快速的速度和更短的延遲時間,Android 10 開始針對 5G 新增平台支援並擴充現有 API,協助您善用這些強化功能。您可以使用連線 API 偵測裝置是否有高頻寬連線,並檢查連線是否採用計量付費。透過這些方式,您的應用程式和遊戲就能為 5G 使用者量身打造豐富且身歷其境的體驗。
通知中的智慧回覆
Android 10 會使用裝置端機器學習技術,在通知中提供關聯動作建議,例如,在通知中提供訊息的智慧回覆,或是開啟某地址的地圖。應用程式無須採取任何行動,就能立即充分運用這項功能。根據預設,系統提供的智慧回覆和動作會直接插入通知。您仍可視需要提供自己的回覆和操作。只要使用 setAllowGeneratedReplies() 和 setAllowSystemGeneratedContextualActions(),即可針對個別通知停用智慧回覆功能。
![](https://developer.android.google.cn/static/images/about/versions/10/overview/image10.png?authuser=6&hl=zh-tw)
智慧回覆可根據通知內容提供操作建議。
深色主題
Android 10 新增了整個系統的深色主題,在光線不足的情況下,有助於節省電力。使用者可以前往「設定」或開啟省電模式,啟用新的系統通用深色主題。這項操作會將系統 UI 變更為深色,並為支援這項功能的應用程式啟用深色主題。您可以為應用程式建構自訂深色主題,或選擇採用新的「強制使用深色模式」功能,讓系統根據現有主題動態建立深色版本。我們也建議您利用 AppCompat 的 DayNight 功能,為舊版 Android 的使用者提供深色主題。詳情請參閱開發人員指南。
![](https://developer.android.google.cn/static/images/about/versions/10/overview/image12.png?authuser=6&hl=zh-tw)
Android 10 可以使用「強制使用深色模式」動態為應用程式建立深色主題。
手勢操作
![](https://developer.android.google.cn/static/images/about/versions/10/overview/gesture.gif?authuser=6&hl=zh-tw)
手勢操作可讓應用程式以全螢幕顯示內容。
Android 10 推出全神經元導覽模式,消除導覽列區域,讓應用程式使用全螢幕,提供更豐富、更豐富的沉浸式體驗。這個 API 會保留熟悉的「返回」、「主畫面」和「最近使用」導覽功能,透過邊緣滑動而非可見的按鈕。如要與手勢操作完美融合,建議您採用無邊框設計,並在導覽列後方繪製內容,藉此提供身歷其境的體驗。如要實作這個功能,應用程式應使用 setSystemUiVisibility() API 顯示全螢幕,然後視情況處理 WindowInsets,確保 UI 的重要部分不會遭到遮蔽。現在就開始最佳化應用程式,並參閱我們的網誌文章系列以瞭解更多資訊。
設定面板
您現在可以透過新的設定面板 API,直接在應用程式環境中顯示主要系統設定。設定面板是一種浮動式 UI,您叫用後即可顯示使用者可能需要的設定,例如網際網路連線、NFC 和音訊音量。舉例來說,瀏覽器可顯示包含飛航模式、Wi-Fi (包括附近網路) 和行動數據等連線設定的面板。如要顯示設定面板,只要使用其中一項新的 Settings.Panel 動作即可啟動意圖。
分享捷徑
共用捷徑可讓您更輕鬆快速地分享內容,讓使用者直接跳至其他應用程式來分享內容。開發人員可以發布共用目標,透過附加內容在應用程式中啟動特定活動,這些目標會顯示在共用 UI 中。由於共用區已經提前發布,共用使用者介面會在啟動時立即載入。共用捷徑與應用程式捷徑類似,並且使用相同的 ShortcutInfo API。ShareTarget AndroidX 程式庫也支援此 API。詳情請參閱範例應用程式。
![](https://developer.android.google.cn/static/images/about/versions/10/overview/image11.png?authuser=6&hl=zh-tw)
分享捷徑可讓使用者直接跳至應用程式中的特定活動,並附上內容。
使用者隱私權
隱私權是 Android 10 的核心考量,包括平台上的更強防護機制,以及注重隱私權的新功能。以先前的版本為基礎,Android 10 包含多項變更來保護隱私,並提供更完善的系統 UI、更嚴格的權限,以及應用程式可以使用的資料限制,進而讓使用者享有更多控管權。如要進一步瞭解如何在應用程式中支援這些功能,請參閱「隱私權變更」。
![](https://developer.android.google.cn/static/images/about/versions/10/overview/location.png?authuser=6&hl=zh-tw)
使用者現在可以選擇在應用程式於前景運作時授予位置資訊存取權。
讓使用者進一步控管位置資料 - 使用者可以透過新的權限選項進一步控管自己的位置資料。現在,使用者可選擇只有在應用程式實際使用時 (在前景執行),才能存取位置資訊。對大多數應用程式來說,這皆有足夠的存取權層級,對使用者而言,資料透明度和控管方面也有很大的進步。如要進一步瞭解位置變更,請參閱開發人員指南或我們的網誌文章。
保護掃描網路中的位置資料 - 大多數用於掃描網路的 API 都要求概略位置存取權。Android 10 會改為取得精確位置存取權,藉此提升這些 API 的保護。
防止裝置追蹤:應用程式無法再存取無法重設的裝置 ID,這類 ID 可用於追蹤,包括裝置 IMEI、序號和類似的 ID。根據預設,裝置的 MAC 位址在連線至 Wi-Fi 網路時也會隨機化。請參閱最佳做法,瞭解如何根據用途選擇合適的 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 以上版本的裝置。
![](https://developer.android.google.cn/static/images/about/versions/10/overview/depthtrue.jpg?authuser=6&hl=zh-tw)
![](https://developer.android.google.cn/static/images/about/versions/10/overview/depthblur.jpg?authuser=6&hl=zh-tw)
![](https://developer.android.google.cn/static/images/about/versions/10/overview/depthmap.jpg?authuser=6&hl=zh-tw)
透過「動態景深」圖片,您可以在應用程式中提供專業的模糊和散景選項。
音訊播放擷取
現在,播放音訊的任何應用程式都可以使用新的音訊播放擷取 API 擷取音訊串流。除了啟用字幕外,這個 API 也能讓您支援直播遊戲等熱門用途。我們在打造這項新功能時,便已將隱私權與版權保護納入考量,因此應用程式擷取其他應用程式的音訊功能將受到限制,讓應用程式能完整控管能否擷取音訊串流。詳情請參閱這篇網誌文章。
新的音訊和視訊轉碼器
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 中,您可以運用新的 micDirection 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 的新規定,我們預計將於未來一年內進一步改善採用率。
連線
改善點對點和網際網路連線
我們重構了 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.WifiLock.createWifiLock()。
在這些模式中,平台會與裝置韌體搭配運作,以最低耗電量滿足需求。
Android 基礎
ART 最佳化
改善 ART 執行階段後,應用程式就能更快啟動、減少記憶體,並提升執行更順暢,您無需進行任何操作。Google Play 提供的 ART 設定檔可讓 ART 預先編譯應用程式的各個部分,即使是執行前也沒問題。在執行階段,Android 10 會在 ART 的並行複製 (CC) 垃圾收集器中新增「生成垃圾收集」功能,提高時間和 CPU 的垃圾收集效率、減少卡頓,並讓應用程式在低階裝置上運作更順暢。
![](https://developer.android.google.cn/static/images/about/versions/10/overview/art-profiles.png?authuser=6&hl=zh-tw)
這張圖表顯示使用 Play 設定檔測試時,特定應用程式的啟動時間縮短百分比。
Neural Networks API 1.2
我們新增了 60 項作業,包括 ARGMAX、ARGMIN、量化 LSTM,以及各種效能最佳化作業。這可做為加速多種模型的基礎,例如物件偵測和圖片區隔的模型。我們正與硬體供應商和常用機器學習架構 (例如 TensorFlow) 合作,以最佳化及推出 NNAPI 1.2 支援功能。
Thermal API
當裝置過熱時,裝置可能會對 CPU 和/或 GPU 進行節流措施,進而以非預期的方式影響應用程式和遊戲。現在,在 Android 10 中,應用程式和遊戲可以使用 Thermal API 監控裝置變更,並採取行動協助還原正常溫度。舉例來說,串流應用程式可以降低解析度/位元速率或網路流量、相機應用程式可能會停用閃光燈或大量的圖片強化功能,或者遊戲可能降低畫面更新率或多邊形鑲嵌。詳情請參閱這裡。
透過公用 API 確保相容性
Android 10 會持續擴大對非 SDK 介面的限制,讓應用程式逐漸只使用公用 API。如果您目前使用的介面受到限制,可以改為要求該介面的新公用 API。為協助您進行轉換並防止應用程式中斷,我們只會在應用程式指定 Android 10 (API 29) 版本時啟用限制。如要進一步瞭解相關限制,請參閱開發人員指南。
更新速度更快,程式碼也更更新
Android 10 經過特別設計,能夠加快更新速度。Project Treble 計畫在 Android 與裝置製造商和晶片製造商提供的基礎裝置程式碼之間,提供一致且可測試的介面。透過 Treble,裝置製造商就能以更低的價格,將 Android 10 支援與 Treble 相容的裝置。
Android 10 也是第一個支援專案主線 (正式稱為 Google Play 系統更新) 的版本。這是 Google Play 直接提供的新技術,旨在保護 Android 使用者安全,並以重大程式碼變更更新裝置。透過 Google Play 系統更新,我們可以在搭載 Android 10 及以上版本的所有裝置上更新特定內部元件,不必向裝置製造商提供完整的系統更新。
我們預期這些 Android 10 更新可協助開發人員為各種裝置實現平台實作的一致性,並隨著時間產生更全面的整合,進而降低開發和測試成本。
開始使用
如需 Android 10 的完整開發人員資源,請造訪 developer.android.com/10。