1. 程式人生 > 程式設計 >安卓11適配攻略搶先看

安卓11適配攻略搶先看

引言

近期,Google 釋出了 Android 11的平臺穩定版本。Android 11 將在確保使用者隱私安全的前提下,更好地讓使用者暢享最新科技。

下圖是 Android 11 釋出整體流程的時間線:

安卓11適配攻略搶先看

個推深耕開發者領域,一直緊跟行業發展趨勢,對Android 11的有關更新展開了深入研究。本文將從分割槽儲存、應用包可見性、許可權變化和新功能四個方面來談談 Android 11 新特性,以幫助開發者更快速、更便捷地上手適配Android新系統。

安卓11適配攻略搶先看

作者| 個推高階安卓開發工程師 一七

正文

分割槽儲存

Android 10之前,外部儲存區的內容主要以兩種形式存在,一種是由應用的包名命名,歸屬於特定應用目錄下的內容,另一種是儲存在公共儲存區域的內容。

在Android 10 中,Google首次引入了分割槽儲存,將公共區域劃分成了不同的集合,並且在媒體檔案和其他文件之間建立了清楚的分割。經過劃分之後應用不可以隨意訪問外部儲存區中的檔案,而只能訪問媒體檔案。如果想訪問包含更多細節資料的其他文件,應用專門向用戶申請有關文件的訪問許可權。

安卓11適配攻略搶先看

分割槽儲存是需要以 Android 10 為目標平臺的,系統預設強制執行。如果在 AndroidManifest 中添加了 requestLegacyExternalStorage=true 標誌,就可以不受此限制。但是當 target API 更新為 30 後,系統會忽略該配置。

如果有資料需要遷移,可以在 AndroidManifest 中將 preserveLegacyExternalStorage 屬性設為 true ,當用戶升級到以 Android 11 為目標平臺時,這個配置就會生效。具體而言,這個配置在使用者重新安裝該應用前都是有效的。

安卓11適配攻略搶先看

針對以 Android 11 為目標平臺的應用 (targetSdkVersion = 30) ,WRITEEXTENRNALSTORAGE 和 WRITEMEDIASTORAGE 不再提供其他任何訪問許可權 。

某些應用的核心功能可能需要訪問大量的檔案,例如檔案管理操作、備份和恢復操作等等,此時就需要申請 MANAGEEXTERNALSTORAGE 許可權。我們可以通過使用 ACTIONMANAGEALLFILESACCESS_PERMISSION intent 操作將使用者引導至一個系統設定頁面,讓使用者為應用授予所有檔案的管理許可權。

應用包可見性

在 Android 11 之前,我們可以通過 PackageManager.getInstalledPackages(0) 獲取其他所有應用的包名等資訊。

安卓11適配攻略搶先看

Android 11 為了增加安全性,更好地保護使用者的隱私,對應用包的可見性做出了一些改動。

當 targetSdkVersion 為 30 時,如果我們用getPackageInfo(“another.app”,0) 獲取其他應用包資訊時 ,會出現 NameNotFoundException 的異常。

我們可以在 AndroidMainfest 中新增 <queries>來適配特定的使用場景:(該配置相當於是新增應用白名單)

已知想獲取的包名:

安卓11適配攻略搶先看

查詢一組具有特定用途的應用或與其互動:

安卓11適配攻略搶先看

對於一些特殊應用,想要獲取所有包名資訊:

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>

許可權變化

安卓11適配攻略搶先看

在 Android 11 中,系統為使用者的私人資料提供了更多可供選擇的授權方式,應用也加大了後臺對位置的訪問許可權限制。

對應攝像頭、位置資訊和麥克風這幾個資料型別,使用者可以授予一次性的臨時訪問許可權。

只要是在Android 11 上,該限制都會生效,如下圖:

安卓11適配攻略搶先看

這個一次性許可權的生效週期指的是:

  • 應用 Activity 可見期間
  • 應用轉為後臺後的短時間內
  • 前臺服務存活期間
  • 當用戶撤銷單次授權後,應用程序退出,再次開啟之後需要對應用進行重新授權期間

位置許可權

在Android10 之前,我們通過ACCESSCOARRSELOCATION 或 ACCESSFINELOCATION(精確位置) 配置即可申請前後臺位置許可權。

Android 11將位置許可權分為前臺和後臺兩種許可權。前文說的主要是前臺許可權,授權方式沒有變化。應用想要申請後臺許可權,除了需要在清單檔案中額外新增 ACCESSBACKGROUNDLOCATION 許可權外,還需要應用主動引導使用者到指定頁面授權。

安卓11適配攻略搶先看

新功能

增加應用退出原因功能

安卓11適配攻略搶先看

在Android 11之前,我們想要了解應用退出的原因以及狀態,都比較費勁。現 Android 11 引入了 方法:ActivityManager.getHistoricalProcessExitReasons() ,

可以讓我們清楚地瞭解到應用退出的原因。

可變重新整理率

應用和遊戲現在可以為其視窗設定首選幀率。大多數 Android 裝置以 60Hz 的重新整理率更新螢幕,但是某些裝置支援多種重新整理率,例如 90Hz 和 60Hz,並可在執行時切換。在這些裝置上,系統會基於首選幀率來為應用選擇最佳重新整理率。

安卓11適配攻略搶先看

結語

以上主要介紹了Android 11 對分割槽儲存、應用包可見性和許可權變化等模組的更新介紹。Google 在力求讓使用者更加便捷地使用Android系統的基礎上,也希望使用者資料的隱私和安全效能在最大程度上受到保護。

個推致力於為開發者提供好用的SDK。為了提升SDK的穩定性、相容性,個推也對Android 11 的新特性進行了深入研究,並即將針對旗下產品推出全新的適配方案,以滿足開發者不同的使用場景。此外,我們希望能與更多開發者交流探索Android新技術,優化使用者體驗,一同打造更好的安卓開發生態圈。

到此這篇關於安卓11適配攻略搶先看的文章就介紹到這了,更多相關安卓11適配內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!