面向開發者的 Android 10 —— Android 10 亮點

2020年已來,雖然2020的開頭有些艱難,我們相信國家一定能戰勝疫情,戰勝困難,中國一定行,中國人民一定能!中國加油!武漢加油!

今年Android 10將會普及使用,這就給開發者提出了新的適配要求,更好的瞭解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 來檢測設備是否具有高帶寬連接,還可以檢查連接是否按流量計費。藉助這些功能,您的應用和遊戲可以爲使用 5G 的用戶量身打造豐富的沉浸式體驗。

通知中的智能回覆

Android 10 使用設備上的機器學習在通知中提供上下文操作建議,如智能回覆消息或在通知中打開某個地址的地圖。您的應用可以立即充分利用此功能,而您無需執行任何操作。系統提供的智能回覆和操作默認直接插入到通知中。您仍可以根據需要自行提供回覆或操作。使用 setAllowGeneratedReplies()setAllowSystemGeneratedContextualActions() 即可針對每則通知選擇停用智能回覆。

智能回覆可以根據通知內容提供操作建議。

深色主題

Android 10 新增了一個系統級的深色主題,非常適合光線較暗的場景並能幫助節省電量。用戶轉至“設置”進行相應設置或開啓“省電模式”即可激活新的系統級深色主題。這會將系統界面更改爲深色,併爲支持深色主題的應用啓用深色主題。您可以爲應用構建自定義深色主題,也可以選擇使用新的 Force Dark 功能,讓系統根據現有主題動態創建深色版本。您還可以充分利用 AppCompat 的 DayNight 功能,爲使用早期版本的 Android 的用戶提供深色主題。如需瞭解詳情,請參閱開發者指南

Android 10 可以利用 Force Dark 爲應用動態創建深色主題。

手勢導航

手勢導航可讓應用全屏顯示內容。

Android 10 引入了全手勢導航模式,該模式不顯示通知欄區域,允許應用使用全屏來提供更豐富、更讓人沉浸的體驗。它通過邊緣滑動(而不是可見的按鈕)保留了用戶熟悉的“返回”、“主屏幕”和“最近”導航。要與手勢導航無縫融合,您應順着邊緣在導航欄後方繪製,以打造沉浸式體驗。要實現這一點,應用應使用 setSystemUiVisibility() API 以全屏模式佈局,然後相應地處理 WindowInsets,以確保重要的界面區域未被遮擋。立即開始優化您的應用,並查看我們的博文系列,以瞭解詳情。

設置面板

現在,您可以通過新的設置面板 API 在應用上下文中直接顯示關鍵系統設置。設置面板是浮動界面,您可以通過調用它來顯示用戶可能需要使用的設置,如互聯網連接、NFC 和音量。例如,瀏覽器可以顯示具有飛行模式、WLAN(包括附近網絡)和移動數據等連接設置的面板。要顯示設置面板,只需發出具有某個新 Settings.Panel 操作的 intent。

共享快捷方式

共享快捷方式功能可使共享更加輕鬆快捷,讓用戶能夠直接跳轉到其他應用來共享內容。開發者可以發佈能在應用中啓動特定 Activity 的共享目標,同時附上內容;這些共享目標會在共享界面中向用戶顯示。因爲共享目標是提前發佈的,所以共享界面會在啓動後立即加載它們。共享快捷方式類似於應用快捷方式,都使用同一個 ShortcutInfo API。ShareTarget AndroidX 庫也支持此 API。如需瞭解詳情,請參閱示例應用

共享快捷方式可讓用戶直接跳轉到應用中的特定 Activity,同時附上內容。

 

用戶隱私設置

隱私權是 Android 10 的其中一個主要關注點,相關改進包括在平臺中提供更強大的保護措施以及在設計新功能時謹記隱私性。Android 10 基於先前版本構建,並引入了大量變更(如改進了系統界面、讓權限授予更加嚴格以及對應用能夠使用哪些數據實施了限制),目的是保護隱私權並賦予用戶更多控制權。如需詳細瞭解如何在您的應用中支持這些變更,請參閱隱私權變更

用戶現在可以選擇在應用在前臺運行時授予其訪問位置信息的權限。

賦予用戶對位置數據的更多控制權 - 用戶可以通過新的權限選項更好地控制他們的位置數據;現在,他們可以允許應用僅在實際使用(在前臺運行)時訪問位置信息。對於大部分應用來說,這提供了足夠的訪問級別;而對於用戶來說,這在確保透明度和控制權方面是一項重大改進。要詳細瞭解位置信息方面的變更,請參閱開發者指南或我們的博文

在掃描網絡時保護位置數據 - 用於掃描網絡的大多數 API 都需要粗略位置權限。Android 10 改爲要求精確位置權限,由此來增強對這些 API 的防禦。

阻止設備跟蹤 - 應用無法再訪問不可重置的設備標識符(可用於跟蹤),包括設備 IMEI、序列號和類似標識符。設備的 MAC 地址也會默認在連接到 WLAN 網絡時隨機分配。請閱讀最佳做法,其中的內容有助於您爲具體使用場景選擇合適的標識符;同時點擊此處瞭解詳情。

保護外部存儲設備中的用戶數據 - 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+(用於支持它的設備上的高動態範圍視頻)對音頻進行編碼。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 1.1。我們已經看到整個生態系統大力支持 Vulkan 的強勁勢頭,在搭載 Android N 或更高版本的設備中,53% 的設備都支持 Vulkan 1.0.3 或更高版本。隨着 Android 10 中相關新要求的推出,我們預計未來一年 Vulkan 的採用率將進一步提升。

連接性

改進了點對點連接和互聯網連接

我們重構了 WLAN 堆棧,目的是改進隱私設置和性能,同時改進常見使用場景(如管理 IoT 設備以及提供互聯網連接建議),而無需請求位置權限。網絡連接 API 針對點對點功能(如配置、下載或打印)簡化了通過本地 WLAN 管理 IoT 設備的操作。網絡建議 API 可讓應用向用戶顯示首選 WLAN 網絡以進行互聯網連接。

WLAN 性能模式

應用現在可以通過啓用高性能和低延遲模式來請求自適應 WLAN。如果低延遲對用戶體驗(如實時遊戲、活躍語音通話以及類似使用場景)至關重要,這些模式會極具優勢。平臺與設備固件配合使用,可以滿足最低耗電量的要求。要使用新的性能模式,請調用 WifiManager.WifiLock.createWifiLock()(使用 WIFI_MODE_FULL_LOW_LATENCYWIFI_MODE_FULL_HIGH_PERF)。在這些模式中,平臺與設備固件配合使用,可以滿足最低耗電量的要求。

Android 基礎知識

ART 優化

在 ART 運行時方面的改進可幫助您的應用更快地啓動、佔用更少的內存並更順暢地運行,而您無需執行任何操作。藉助 Google Play 提供的 ART 配置文件,ART 在應用運行之前就可以預先編譯應用組件。在運行時,Android 10 向 ART 的併發複製 (CC) 垃圾回收器添加了分代垃圾回收功能,以節省垃圾回收的時間並提高 CPU 效率,減少卡頓,同時幫助應用在低端設備上更順暢地運行。

上圖以百分比形式顯示了具體應用在使用 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 可通過 Treble 計劃加快更新速度,這可在 Android 與設備製造商和芯片製造商提供的底層設備代碼之間提供一致的可測試接口。藉助 Treble 計劃,設備製造商能夠以更快的速度和更低的費用將 Android 10 引入符合 Treble 標準的設備中。

Android 10 也是首個支持 Project Mainline(官方名稱爲“Google Play 系統更新”)的版本;這是我們用於保護 Android 用戶並通過重要的代碼變更及時更新設備的新技術,可通過 Google Play 直接獲取。藉助 Google Play 系統更新,我們能夠更新所有搭載 Android 10 及更高版本的設備中的特定內部組件,無需設備製造商全面更新系統。

對於開發者來說,我們希望 Android 10 中的這些更新能夠廣泛幫助提升設備間平臺實現的一致性,並隨時間提供更高的統一性,從而降低您的開發和測試費用。

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章