聚焦 Android 11: Android 11 應用兼容性

做者 / Android 產品經理 Diana Wonghtml

在往期  #11WeeksOfAndroid  系列文章中咱們介紹了 聯繫人和身份 隱私和安全 ,本期將聚焦  Android 11 兼容性 。咱們將爲你們陸續帶來 #11WeeksOfAndroid 內容,深刻探討 Android 的各個關鍵技術點,您不會錯過任何重要內容。android

Android 11 兼容性

本期咱們將重點探討 Android 11 兼容性這一對全部開發者都很是重要的主題。對於 Android, 應用兼容性 一詞指應用能夠在特定版本的 Android (一般是最新版本) 上正常運行。segmentfault

您能夠前往官方網站詳細獲取可幫助您進行兼容性測試的資源,以及本期全部關於該領域的實用內容和資源!安全

更輕鬆實現應用與 Android 11 兼容

在每次版本更新中,咱們都但願儘可能減小應用適配 Android 所需的工做。在 Android 11 中,咱們添加了新的流程、開發者工具和版本發佈里程碑,以幫助咱們最大程度地減小平臺更新帶來的影響,更輕鬆實現應用的兼容性。框架

  • 最大限度地下降行爲變動影響 : 咱們的目標始終如一,即在您將應用的 targetSdkVersion 設置爲 Android 11 以前,儘量將這些變動設置爲可選項,最大程度減小平臺變動對應用帶來的影響。若是您經過 Google Play 分發應用,則將有一年以上的時間逐漸適用這些變動。
  • 更輕鬆的測試和調試 : 爲了幫助您測試兼容性,咱們將許多非兼容性變動設置爲 "可關閉"。這意味着,您能夠經過開發者選項或 adb 強制啓用或禁用每一項更改。這樣就無需爲了一些基本測試而更改 targetSdkVersion 或從新編譯您的應用。咱們也簡化了 Android Studio 自動化測試的流程。
  • 對非 SDK 接口的限制 : 爲了幫助開發者逐步棄用非 SDK API,咱們不斷努力,更新了 受限制的非 SDK 接口列表。一如既往,歡迎您提出反饋,並 發出公共 API 替代品的開發需求
  • 動態資源加載器 : 在開發者們移除非 SDK 接口調用的同時,咱們聽到了來自 卓盟科技 等開發者的一個需求: 提供一個公開 API 來在運行時動態加載資源和素材。如今,咱們在 Android 11 中添加了 Resource Loader 框架,感謝向咱們提出這些需求的開發者!

請繼續閱讀,詳細瞭解咱們如何簡化 Android 11 中的應用測試和調試流程。ide

在 Android 11 上測試

測試應用是否兼容 Android 新版本可能面臨不少挑戰,尤爲是應用在受到多個平臺變動影響的狀況下。此過程當中可能會出現不少問題:工具

  • 如何肯定應用中可能受影響的區域?
  • 是否應該經過更改 targetSDKVersion,來進行測試?如何用最簡單的方法實現?
  • 在開始測試後,如何規避可能引發故障的問題?
  • 在針對最新版本的 Android 進行開發和測試時,如何確認您的應用能繼續在其餘類型不一樣且 API 級別較低的設備上無差異體驗?

開發者社區爲咱們提供了大量相關問題的優質反饋。在 Android 11 中,咱們爲平臺添加了如下新工具,並在 Android Studio 中添加了新功能,所以您能夠更加輕鬆的進行測試。性能

適於測試平臺變動的新工具

和往年的更新同樣,Android 11 的一些平臺變動可能會影響您的應用。儘管這些變動對於提高平臺性能相當重要,但咱們會盡量將這些變動安排在平臺的最新 targetSDKVersion 以後,以便減小對您的應用的直接改動。在 Android 11 中,咱們還會將更多此類平臺變動添加到新的 兼容性框架中。測試

什麼是兼容性框架?

您可使用全新開發者工具,針對包含在兼容性框架內的變動對應用進行測試和調試。網站

例如,咱們已將包含在兼容性框架內的變動設爲可切換,您能夠經過設備的開發者選項或使用 Android ADB 強制啓用或停用單個變動。Android 平臺會自動調整內部 API 邏輯,所以您無需更改 targetSDKVersion 或從新編譯應用,便可執行基本測試。此外,您能夠隔離各項變動,從而節省發現和調試應用中問題所需的時間。

選擇要測試的變動

在切換變動的啓用/停用狀態以前,您應該通讀 行爲變動列表,肯定哪些變動可能會影響您的應用。包含在兼容性框架內的變動已在變動描述前列出相應的 Change ID 和 Change Name。

通常來講,咱們建議您從 影響全部應用的行爲變動 開始測試,由於不管 targetSDKVersion 如何,這些變動均可能對您的應用形成影響。咱們用下面這個 targetSDKVersion 控制的變動爲例,說明您能夠如何在不使用其餘 targetSDK 重編譯應用的狀況下,對這些變動進行測試。

後臺位置訪問變動 中,請求始終在後臺訪問位置的應用會受影響。若是您的應用受到這一變動的影響,那麼從該變動開始測試是不錯的選擇。此變動的名稱爲 BACKGROUND_RATIONALE_CHANGE_ID,變動 ID 爲 147316723。您須要先使用這些信息啓用此變動,而後再測試應用所以受到的影響。

單獨測試變動

肯定要測試的變動後,您可使用開發者選項切換此變動的啓用/停用狀態。如要使用開發者選項,請打開設備上的 "設置" 應用,導航至 系統 > 高級 > 開發者選項 > 應用兼容性變動

開發者選項中可切換的平臺變動,後臺位置訪問變動已啓用

在本例中,BACKGROUND_RATIONALE_CHANGE_ID 是惟一已啓用的變動,旨在最大程度縮小應用可能遇到的各類問題的緣由範圍。

您也可使用 Logcat 或 ADB 識別已啓用的變動,或 使用 ADB 切換變動的啓用/停用狀態。請注意,您只能在使用可調試應用時切換變動。

測試和調試應用

啓用變動後,您可使用經常使用的測試工做流來測試和調試應用。如遇到問題,請查看日誌,肯定問題的緣由。若是不肯定問題是否由已啓用的平臺變動引發,您能夠嘗試停用此變動,而後從新測試應用的同一模塊。

更多資訊

如需瞭解其餘相關示例,您能夠觀看有關 測試 Android 11 中平臺變動的視頻,或閱讀 官方文檔

Android Studio 中用於測試應用兼容性的新工具

除了在新平臺上手動進行測試外,咱們還簡化了使用 Android Studio 在最新 Android 系統上運行自動化測試的流程。

從 Android Studio 4.2 開始,咱們實現了在多個實體或虛擬設備上並行運行插樁測試 (instrumentation tests)。如今,您能夠在運行測試的過程當中,從目標設備下拉菜單中選擇 多個設備

此功能旨在幫助您在開發週期中儘早發現問題,並讓您可以比較不一樣 Android 設備之間的差別。您可使用 視圖 > 工具窗口 > 運行 下的新 測試矩陣 ,研究這些測試的結果。

新測試矩陣可按狀態、設備和 API 級別過濾測試結果

新測試矩陣可按狀態、設備和 API 級別過濾測試結果。

更多資訊

請觀看有關 使用 Android Studio 測試應用兼容性的視頻,或閱讀 官方文檔

更多精彩

咱們建議您嘗試這些新工具,並 向咱們發送反饋,告訴咱們這些工具對您是否有用。咱們但願這些工具能幫助您更輕鬆地測試 Android 11 應用兼容狀況。

相關文章
相關標籤/搜索