標籤:開始 cep 函數 dom cap 移動 instance 運行 網路攝影機
Android P(API 層級 P)引入了行為變更以及您的應用中可加以利用的新功能和 API。本文概述了將應用遷移到 Android P 的兩個關鍵階段的步驟:
1、確保相容 Android P
驗證您的應用能夠在新版本平台上全功能運行。在此階段,您不需要使用新的 API,也不需要更改應用的 targetSdkVersion,但可能需要進行一些細微的更改。
2、更新您的目標版本並使用 Android P 功能
當您準備好利用平台的新功能時,將targetSdkVersion更新至“P”,驗證應用是否仍可按預期方式運行,然後開始使用新的 API。
Android P升級計劃
確保相容 Android P
此處的目標是確保您的現有應用在 Android P(API 層級 P)上照常運行。由於一些平台變化可能影響應用的行為方式,因此可能需要進行一些調整,但您不需要使用新的 API 或更改 targetSdkVersion。
準備一台運行 Android P 的裝置
如果您有一台相容裝置(Pixel、Pixel XL、Pixel 2、Pixel 2XL),請從官網擷取適合您的裝置的Android P系統映像,然後按照說明將映像刷入裝置。
執行相容性測試
與 Android P(API層級P)的相容性測試多半與您準備發布應用時執行的測試屬於同一類型。
不過,測試還有另一個層面:Android P 向 Android平台引入了一些變化,即便不對 targetSdkVersion 做任何變動,仍可能影響應用的行為或令其根本無法運行。因此,您必須回顧下表中的關鍵變化,並對任何為適應這些變化而實現的修複進行測試。
現已禁止訪問特定的非 SDK 介面,無論是直接存取,還是通過 JNI 或反射進行間接訪問。嘗試訪問受限制的介面將會產生 NoSuchFieldException 和 NoSuchMethodException 之類的錯誤。有關詳情,請參閱對於非 SDK 介面的限制。
從 Android P 開始,Crypto JCA 提供者現已被移除。調用 SecureRandom.getInstance("SHA1PRNG", "Crypto") 將會引發 NoSuchProviderException。
在 Android P 中,針對 Java 語言的 UTF-8 解碼器比以往更嚴格,並且遵循 Unicode 標準。
在應用處於空閑狀態時,不能再訪問網路攝影機、麥克風或 SensorManager 感應器。
測試 Android P 應用
完成以上準備工作後,您就可以構建應用,然後對其做進一步測試,以確保 Android P(API 層級 P)為目標平台時它能正常工作。這時有必要再次回顧一下核心應用品質指南和測試最佳實務。
如果您構建應用時將 targetSdkVersion設定為P,應該注意特定的平台變化。即便您不實現 Android P 中的新功能,其中的一些變化仍可能嚴重影響應用的行為或令其根本無法運行。
現在,想要使用前台服務的應用必須首先請求 FOREGROUND_SERVICE 許可權。這是普通許可權,因此,系統會自動為請求許可權的應用授予此許可權。在未獲得此許可權的情況下啟動前台服務將會引發 SecurityException。
Android P 棄用了幾個來自 Bouncy Castle 提供者中的加密技術,代之以由 Conscrypt 提供者提供的加密技術。調用請求 Bouncy Castle 提供者的 getInstance() 將會產生 NoSuchAlgorithmException 錯誤。要解決這些錯誤,請不要在 getInstance() 中指定提供者(也就是請求預設實現)。
現在,需要 Build.serial 標識符的應用必須請求 READ_PHONE_STATE 許可權,然後使用 Android P 中新增的新 Build.getSerial() 函數。
現在,不允許應用在不同進程之間共用一個 WebView 資料目錄。如果您的應用有多個進程使用 WebView、CookieManager 或 android.webkit 軟體包中的任何其他 API,則在第二個進程調用 WebView 函數時,您的應用將會崩潰。
系統強制每個應用的 SELinux 沙箱對每個應用的私人資料目錄強制執行逐個應用的 SELinux 限制。現在,不允許直接通過路徑訪問其他應用的資料目錄。應用可以繼續使用處理序間通訊 (IPC) 機制(包括通過傳遞 FD)共用資料。
相容性解決方案
如果您沒有支援安卓P版本的相容裝置,可訪問華為終端開放實驗室雲測平台,免費擷取Pixel的使用權。
平台擁有一套完善的行動裝置 AppDevOps解決方案,在GoogleIO大會之後,率先上線Android P DP2版本的Pixel機型,免費提供給安卓綠色聯盟會員使用。
在Google官方的解決方案基礎上,從11項中測試並解決安卓P版本相容性。
如何將應用完美遷移至Android P版本