Android 11 開發者預覽版本新特性

Android 11 Developer Preview


Android 11 開發者預覽版本新特性

前幾日,Google發佈了Android 11 開發者預覽版本,作為Android 11的第一個可見版本。在隨後的半年中,還會再發布兩個開發者預覽版本、兩個Beta發佈版本和兩個最終版本。下面是官方給出的時間計劃:

Android 11 開發者預覽版本新特性

本文將帶大家一起去看一下,Android 11有哪些變化?

概述

Android 11以Android的早期版本為基礎,添加了功能和更新,以確保用戶安全,並增加透明度和控制力。開發者預覽版能看到的變化主要集中在隱私、特性以及API。

隱私、特性和API的改變,會導致應用行為的改變。行文會根據這個順序,先寫隱私變化,再寫特性和API的變化,最後寫這些變化帶來的應用行為的改變。

開發者預覽版本的變化集中在隱私和安全、現有功能和用戶體驗,並沒有看到重大變化和突出的新特性。如果只是關注Android 11的新特性,可以直接看特性和API變化部分。

隱私更新

強制範圍存儲

為了給開發人員更多的測試時間,面向Android 10(API級別29)或更低版本的應用仍可以請求requestLegacyExternalStorage屬性。 此標誌允許應用程序暫時退出與範圍存儲相關的更改,例如授予對不同目錄和不同類型媒體文件的訪問權限。

但是,當您將應用更新為Android 11時,將無法使用requestLegacyExternalStorage,並且沒有其他可用選項提供退出功能。

媒體文件權限

為了在保留用戶隱私的同時更輕鬆地訪問媒體,Android 11添加了以下功能。

增加方法createWriteRequest()/createFavoriteRequest()/createTrashRequest()/createDeleteRequest()支持批量操作。

從Android 11開始,具有READ_EXTERNAL_STORAGE權限的應用程序可以使用直接文件路徑和本機庫讀取設備的媒體文件。 這項新功能使您的應用程序可以與第三方媒體庫更流暢地協作。

可以通過系統設置激活原生文件路徑特性用於測試:System > Developer options > Feature flags,打開settings_fuse。

文件和目錄權限限制

不在需要ACTION_OPEN_DOCUMENT_TREE和ACTION_OPEN_DOCUMENT intent action去請求Downloads、Android/data/、Android/obb/目錄及子目錄的權限。

存儲相關的權限

運行時權限Storage更名為Files&Media。

如果您的應用以Android 11為目標,則WRITE_EXTERNAL_STORAGE權限和WRITE_MEDIA_STORAGE特權都不再提供任何其他訪問權限。

全部文件權限

通過聲明MANAGE_EXTERNAL_STORAGE權限,來獲取共享存儲的所有文件的讀寫權限。

單次權限

Android 11的授權對話框增加了"Only this time"的選項,供用戶選擇。如果用戶選擇了這個選項,你的應用只能獲得臨時的一次授權,有效期分別為:activity前臺可見;前臺服務持續運行。當activity變得不可見或者前臺服務推出,授權就失效了。

Android 11不鼓勵在特定權限組中重複請求權限。 如果應用程序在設備上的安裝期間內,用戶兩次點擊"拒絕"以獲取特定權限,則此操作表示"不再詢問"相應的權限組。

請求數據審核

為了使您的應用及其依賴項如何訪問用戶的私有數據更加透明,Android 11引入了數據訪問審核。 通過從此過程中獲得見解,您可以更好地識別和糾正潛在的意外數據訪問。 您的應用程序可以註冊AppOpsManager.AppOpsCollector的實例,該實例可以在每次數據訪問發生時執行操作。

後臺位置權限

Android 11引入了對應用程序如何請求後臺位置權限以及用戶如何授予其權限的更改。 具體更改取決於應用程序的目標SDK版本,但在Android 11上運行的所有應用程序均會受到影響。

如果您的應用定位到Android 11,則無法直接請求對背景位置的全天候訪問。 相反,在需要後臺位置的用例的情況下,請使用應用程序的UI來幫助用戶瞭解您的應用程序為何需要此權限。

特性和API變化

隱私篇已經寫過,主要就是增加了AppOpsManager.AppOpsCollector。

高性能圖形調試層注入

應用程序現在可以將外部圖形層(GLES,Vulkan)加載到本機應用程序代碼中,以提供與可調試應用程序相同的功能,而不會產生性能開銷。 使用GAPID之類的應用程序對應用程序進行性能分析時,此功能特別重要。 要分析您的應用,請在manifest文件中包含以下元數據元素:

Android 11 開發者預覽版本新特性

媒體文件批量操作

MediaStore增加了幾個API,增加用戶便利性和設備訪問連續性。

快捷回覆

從Android 11開始,用戶可以在快捷回覆中插入圖片和其它富媒體內容。

使用原始文件路徑訪問媒體文件

從Android 11開始,具有READ_EXTERNAL_STORAGE權限的應用程序可以直接使用文件路徑讀取媒體文件和本地庫文件。

安全分享大數據集

在某些情況下,例如涉及機器學習或媒體播放的情況,您的應用可能希望使用與另一個應用相同的大型數據集。 在早期版本的Android中,您的應用程序和另一個應用程序都需要下載同一數據集的單獨副本。 為了幫助減少網絡和磁盤上的數據冗餘,Android 11允許使用共享數據Blob將這些大型數據集緩存在設備上。

支持低延遲請求和檢查

Android 11增加了ALLM模式。某些顯示器可以執行圖形後處理,例如某些外部顯示器和電視。 這種後處理可以改善圖形效果,但會增加延遲。 支持HDMI 2.1的較新顯示器具有自動低延遲模式(ALLM,也稱為遊戲模式),該功能通過關閉此後處理來最大程度地減少延遲。 窗口可以請求使用自動低延遲模式(如果可用)。 ALLM對於遊戲和視頻會議等應用特別有用,在這些應用中,低延遲比擁有最佳可能的圖形更為重要。

MediaCodec低延遲解碼

Android 11 增強了MediaCodec,增加了遊戲和其它實時應用的低延遲解碼。

NDK圖像解碼

Android 11 增加了ImageDecoder 接口,提供Android native 應用程序直接進行圖像解碼的能力。

資源加載

Android 11引入了一個新的API,該API允許應用程序動態擴展資源的搜索和加載方式。 新的API類ResourcesLoader和ResourcesProvider主要負責提供新功能。 它們共同提供了提供額外資源和資產或修改現有資源和資產的價值的能力。

更新ICU庫

與Android 10中的版本63相比,Android 11更新了android.icu包以使用ICU庫的版本66。新的庫版本包括更新的CLDR語言環境數據和對Android國際化支持的許多增強。

神經網絡接口1.3

Android 11擴展和升級了NNAPI。增加了對TensorFlow的支持。

生物特徵認證強度

為了幫助您控制應用程序數據的安全級別,Android 11引入了BiometricManager.Authenticators接口。 該接口定義了生物識別硬件元素的可能強度。 設備製造商為每個元素定義了特定的強度,例如BIOMETRIC_STRONG或BIOMETRIC_WEAK。 這些強度級別在"兼容性定義"頁面上定義。

CallScreeningService更新

從Android 11開始,CallScreeningService可以請求有關來電的STIR / SHAKEN驗證狀態(verstat)的信息。 此信息作為來電詳細信息的一部分提供。 如果CallScreeningService擁有READ_CONTACTS權限,則當用戶聯繫人中的某個號碼有來電或去電時,會通知該應用程序。

Android模擬器增加對擴展攝像頭的支持

Android 11引入了改進的Android Emulator相機功能。 添加的功能包括:RAW拍攝、YUV後處理、3級設備、邏輯相機支持。

當捕獲到活動時,靜掉聲音和震動

從Android 11開始,在使用攝像機的時候,應用程序可以靜掉震動和聲音。

Wifi passpoint增強

Passpoint能夠使應用程序自動的安靜的連接安全的Wi-Fi熱點。

擴展Wi-Fi建議接口

Android 11擴展了Wi-Fi建議API,以增強您應用的網絡管理功能,其中包括:

1. 連接管理應用程序可以通過允許斷開連接請求來管理自己的網絡。

2. Passpoint網絡已集成到Recommendation API中,並且可以建議給用戶。

3. Analytics API使您能夠獲取有關網絡質量的信息。

聊天泡泡

現在,開發人員可以使用氣泡來幫助在整個系統中進行對話。 Bubbles是Android 10中的一項實驗性功能,可通過開發人員選項啟用-在Android 11中不再需要此功能。

應用行為改變

Android 11 平臺的行為改變可能會影響到你的APP。

JobScheduler API 調用調試限制

Android 11為應用程序提供調試支持,以識別潛在的JobScheduler API調用已超過某些速率限制。 開發人員可以使用此功能來識別潛在的性能問題。 對於將可調試清單屬性設置為true的應用程序,超出速率限制的JobScheduler API調用將返回RESULT_FAILURE。 設置了限制,以使合法用例不受影響。

單次權限

在Android 11,無論你的應用在何時請求位置、麥克風和相機相關的權限,都只能獲得一次的臨時授權。

用戶可以選擇何時出現權限對話框

Android 11不鼓勵重複請求特定權限。 如果應用程序在設備上的安裝生命週期內請求特定權限,被用戶拒絕兩次,則此操作表示"不再詢問"。

後臺位置權限

如果您的應用目標是Android 11,則無法直接請求對背景位置的全天候訪問。 即使您的應用目標是Android 10(API級別29)或更低版本,用戶也會看到系統對話框,其中包含用於控制前臺位置訪問的按鈕。

存儲UI

Android 11引入了一些與存儲權限相關的面向用戶的更改,包括存儲運行時權限的名稱以及說明應用程序對存儲權限的請求的對話框的內容。

使用ACTION_MANAGE_OVERLAY_PERMISSION intents總會出現系統權限頁面

從Android 11開始,ACTION_MANAGE_OVERLAY_PERMISSION意向始終將用戶帶到頂級"設置"屏幕,他們可以在其中授予或撤消應用程序的SYSTEM_ALERT_WINDOW權限。 任何包:意圖中的數據將被忽略。

在早期版本的Android中,ACTION_MANAGE_OVERLAY_PERMISSION意圖可以指定一個程序包,該程序包會將用戶帶到特定於應用程序的屏幕以管理權限。 Android 11不再支持此功能。相反,用戶必須首先選擇要授予或撤消其權限的應用程序。 此更改旨在通過使許可授予更加有意來保護用戶。

所有文件訪問權限

有些應用程序具有核心使用場景,需要廣泛的文件訪問權限,例如文件管理或備份和還原操作。 他們可以通過聲明特殊的MANAGE_EXTERNAL_STORAGE權限來獲取"所有文件訪問"權限。

非SDK接口限制

Android 11根據與Android開發人員的協作以及最新的內部測試,包括受限制的非SDK接口的更新列表。 只要有可能,在限制非SDK接口之前,請確保可以使用公共替代方案。

如果您的應用程序未針對Android 11,則其中的某些更改可能不會立即影響您。 但是,儘管您目前可以使用灰名單中的非SDK接口(取決於應用程序的目標API級別),但使用任何非SDK方法或字段始終會帶來破壞應用程序的高風險。

如果不確定您的應用程序是否使用非SDK接口,則可以測試您的應用程序以找出答案。 如果您的應用程序依賴於非SDK接口,則應開始計劃向SDK替代方案的遷移。 不過,我們瞭解到某些應用程序具有使用非SDK接口的有效用例。 如果您找不到在應用程序功能中使用非SDK接口的替代方法,則應請求新的公共API。

文件描述符清理程序(fdsan)

Android 10引入了fdsan(文件描述符清理程序)。 fdsan可檢測到文件描述符所有權的不當處理,例如使用後關閉和兩次關閉。 fdsan的默認模式在Android 11中更改。fdsan現在在檢測到錯誤時中止; 以前的行為是記錄警告並繼續。

至此,Android 11開發者預覽版的變化就介紹完了。下附官方網址鏈接:https://developer.android.google.cn/preview/privacy


分享到:


相關文章: