開發人員專用的 Android 10

Android 10 的開發重點有三個重要主題。首先,Android 10 導入進階機器學習技術,並支援折疊式裝置和 5G 手機等新興裝置,引領行動創新趨勢。接下來,Android 10 的重點是隱私權和安全性,提供近 50 項功能,讓使用者進一步控管自己的資料、提升資訊公開度,並提供更強大的保護措施。最後,Android 10 擴大了數位健康控制項,讓個人和家庭都能更妥善地運用科技。

以下說明 Android 10 為開發人員帶來哪些功能,以及如何立即使用。

創新與新體驗

Android 10 搭載最新的軟硬體創新技術,可協助您為使用者打造絕佳的應用程式體驗。

Android 10 可讓您針對折疊式裝置和其他大螢幕裝置最佳化應用程式。

摺疊式裝置

Android 10 具備強大的多視窗支援功能,可跨應用程式視窗執行多工處理,並提供螢幕連續性,在裝置折疊或展開時維持應用程式狀態。Android 10 在 onResumeonPause 中新增多項改良功能,以便系統支援多視窗同時執行 (multi-resume) 及通知焦點應用程式。此外,這項功能也會變更 resizeableActivity 資訊清單屬性的運作方式,方便你輕鬆管理應用程式在折疊式裝置和大螢幕裝置上的顯示方式。為協助您建構可摺疊裝置,您可以在 Android Studio 中將可摺疊模擬器設定為虛擬裝置 (AVD)。如要進一步瞭解如何針對摺疊式裝置最佳化應用程式,請參閱開發人員指南

5G 網路

5G 承諾提供更快速且延遲時間更短的網路連線,Android 10 則新增了 5G 平台支援,並擴充現有 API,協助您充分運用這些強化功能。您可以使用連線 API 偵測裝置是否具備高頻寬連線,並檢查連線是否為計量付費。應用程式和遊戲可運用這些功能,為 5G 使用者打造豐富的沉浸式體驗。

通知中的智慧回覆

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 生態系統的開放格式,我們正與合作夥伴攜手,將這項功能帶到搭載 Android 10 以上版本的裝置。

有了「動態景深」圖像,你就能在自己的應用程式中提供專業的模糊和散景選項。

擷取音訊播放內容

現在,任何播放音訊的應用程式都能透過新的音訊播放擷取 API,讓其他應用程式擷取音訊串流。除了啟用字幕功能,API 也支援熱門用途,例如直播遊戲。我們在建構這項新功能時,已將隱私權和著作權保護納入考量,因此應用程式擷取其他應用程式音訊的能力受到限制,應用程式可完全控管是否允許擷取音訊串流。詳情請參閱這篇網誌文章

新的音訊和視訊轉碼器

Android 10 新增支援開放原始碼視訊轉碼器 AV1,媒體供應商可使用較少頻寬,將高品質視訊內容串流至 Android 裝置。此外,Android 10 支援使用 Opus 進行音訊編碼。Opus 是免授權金的開放式轉碼器,專為語音和音樂串流服務最佳化。Android 10 也支援 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 實作了低負載的跨平台 API,可提高 3D 圖像的效能,進一步擴大 Vulkan 的影響力。Vulkan 1.1 現在是所有搭載 Android 10 以上版本的 64 位元裝置的必要元件,也是所有 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_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 也是首個支援 Project Mainline (正式名稱為 Google Play 系統更新) 的版本。這項新技術可直接透過 Google Play 為 Android 使用者提供重要程式碼變更,確保裝置安全無虞並維持最新狀態。透過 Google Play 系統更新,我們可以在所有搭載 Android 10 以上版本的裝置上更新特定內部元件,不必由裝置製造商提供完整的系統更新。

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

開始使用

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