符合 Google Play 的目標 API 級別要求

來源: Google Developers
作者:Google Developers
時間:2020-12-24
18302
本文重點介紹了有關更新目標API級別的重要須知,以便您滿足Google Play的要求。

您上傳的APK需要符合Google Play的目標API級別要求。新應用和應用更新(Wear OS除外)必須以Android 10(API級別29)或更高版本為目標平臺。

自2021年8月起,新應用需要:

使用Android App Bundle格式發(fā)布。

使用Play Asset Delivery或Play Feature Delivery提交下載大小超過150MB的資產(chǎn)或功能。對于新應用,擴展文件(OBB)將不再受支持。

以API級別30(Android 11)或更高版本為目標平臺,并針對行為變更進行調整。

從2021年11月開始,應用更新必須以API級別30或更高版本為目標平臺,并針對Android 11中的行為變更進行調整。未收到更新的現(xiàn)有應用不會受到影響,用戶可以繼續(xù)從Play商店下載。

改用Android App Bundle發(fā)布方式也會影響使用舊版免安裝應用ZIP格式的免安裝體驗。自2021年8月起,如果開發(fā)者要發(fā)布新的免安裝應用或更新現(xiàn)有免安裝應用,必須發(fā)布支持免安裝體驗的App Bundle。

為何要以較新的SDK為目標平臺?

每個新的Android版本都會發(fā)生變更,帶來安全性和性能方面的重大改進,并提升Android的整體用戶體驗。部分變更只會影響通過targetSdkVersion清單屬性(也稱為目標API級別)明確聲明支持這些變更的應用。

將您的應用配置為使用新近的API級別可確保用戶享受這些改進帶來的好處,同時您的應用仍然可以在較低版本的Android上運行。支持最新的API級別還有助于讓您的應用利用平臺的最新功能,為用戶提供愉悅的體驗。此外,從Android 10(API級別29)開始,如果應用的目標平臺為Android 5.1(API級別22)或更低版本,則用戶首次啟動應用時會看到警告。

本文重點介紹了有關更新目標API級別的重要須知,以便您滿足Google Play的要求。

注意:如果您的Gradle文件包含清單條目,您可以按照配置您的build中的說明,確認或更改應用的Gradle文件中當前的targetSdkVersion值?;蛘撸部梢园凑?amp;lt;uses-sdk>清單元素文檔中的說明,使用清單文件中的android:targetSdkVersion屬性。

從Android 10(API級別29)遷移到Android 11(API級別30)

隱私權

強制執(zhí)行分區(qū)存儲:應用應使用分區(qū)存儲模式,將特定于應用的文件、媒體文件以及其他類型的文件保存到專用位置,并通過這些位置訪問這些文件。

自動重置權限:如果用戶幾個月未與應用互動,系統(tǒng)會自動重置應用的敏感權限。此設置不會影響大多數(shù)應用。如果您的應用主要在后臺運行,無需用戶與之互動,您可以考慮請求用戶停用自動重置功能。

后臺位置信息訪問權限:針對前臺位置信息獲取權限和后臺位置信息獲取權限,應用必須分開進行請求。用戶只能在應用設置中授予后臺位置信息獲取權限,而不是通過運行時權限對話框授予該權限。

軟件包可見性:當應用查詢設備上已安裝應用和服務的列表時,系統(tǒng)會過濾返回的列表。

如果您使用文字轉語音或語音識別服務,則需在清單文件中為這些服務添加<queries>元素。

安全性

壓縮的resource.arsc文件不再受支持。

現(xiàn)在需要使用APK簽名方案v2。為實現(xiàn)向后兼容性,開發(fā)者還應繼續(xù)使用APK簽名方案v1簽名。

限制非SDK接口。對于以API級別30為目標平臺的應用,建議不要使用非SDK接口,因為其中一些接口現(xiàn)已被屏蔽。如需查看已屏蔽的非SDK接口的完整列表,請參閱目前在Android 11中被屏蔽的非SDK接口。

如需查看Android 11(API級別30)所推出變更的詳盡列表,請參閱行為變更頁面。

從低于Android 10(API級別29)的版本遷移

翻新您的應用

更新應用的目標API級別時,不妨考慮采用最新的平臺功能翻新應用,為用戶提供愉悅的體驗。

考慮使用Beta版CameraX充分發(fā)揮相機功能。

使用Jetpack組件可以幫助您遵循最佳做法、省去編寫樣板代碼的工作并簡化復雜任務,以便集中精力編寫重要的代碼。

使用Kotlin,通過更少的代碼更快地編寫出更優(yōu)秀的應用。

確保您遵循隱私保護要求和最佳做法。

為您的應用添加深色主題支持。

為您的應用添加手勢導航支持。

將您的應用從Google Cloud Messaging(GCM)遷移至最新版Firebase Cloud Messaging。

利用高級窗口管理。

支持更大的寬高比(大于16:9),以便利用硬件方面的最新發(fā)展成果。請確保您的應用可調整大小以填充可用的屏幕空間。只在萬不得已時聲明最大寬高比。如需詳細了解最大寬高比,請參閱聲明受限屏幕支持。

添加多窗口支持,以幫助應用提高工作效率以及管理多個顯示器。

如果出色的最小化應用體驗能夠提升用戶體驗,則添加對畫中畫功能的支持。

針對配備劉海屏的設備進行優(yōu)化。

請勿假定狀態(tài)欄高度,而應使用WindowInsets和View.OnApplyWindowInsetsListener。如需了解這樣做的原因,請觀看此視頻。

請勿假定應用會占滿整個窗口,而應使用View.getLocationInWindow()來確認它的位置,切勿使用View.getLocationOnScreen()。

處理MotionEvent時,請使用MotionEvent.getX()和MotionEvent.getY()(而非MotionEvent.getRawX()和MotionEvent.getRawY())。

檢查及更新您的SDK和庫

請確保您的第三方SDK依賴項支持API 29:部分SDK提供商會在清單中發(fā)布這項信息;而對于其他SDK提供商,則需要再進行調查。如果您使用的SDK不支持API 29,請與SDK提供商合作,優(yōu)先解決該問題。

另請注意,您的應用或游戲的targetSdkVersion可能會限制對私有Android平臺庫的訪問;如需了解詳情,請參閱NDK應用鏈接至平臺庫。

您還應確認正在使用的Android支持庫版本中存在哪些限制。與以往一樣,您必須確保Android支持庫的主要版本與您的應用的compileSdkVersion兼容。

我們建議您選擇不高于支持庫主要版本的targetSdkVersion。您最好更新至最新的兼容支持庫,以便利用最新的兼容性功能和問題修復程序。

測試您的應用

適當更新應用的API級別和功能后,您應測試部分核心用例。下面僅列舉部分建議,旨在引導您進行測試。我們建議您針對以下方面進行測試:

您的應用已編譯為API 29,且沒有出現(xiàn)錯誤或警告。

您的應用對用戶拒絕權限請求的情況已有應對策略,且會提示用戶授予權限。測試方法如下:

轉到應用的“應用信息”屏幕,然后停用所有權限。

打開應用,確保不會出現(xiàn)崩潰問題。

執(zhí)行核心用例測試,并確保系統(tǒng)會再次提示用戶授予所需權限。

低電耗模式可呈現(xiàn)預期效果,且不會出現(xiàn)錯誤。

使用adb,讓測試設備在您的應用正在運行時進入低電耗模式。

測試所有會觸發(fā)Firebase云消息傳遞消息的用例。

測試所有使用鬧鐘或作業(yè)的用例。

消除后臺服務的所有依賴項。

將您的應用設為應用待機模式

測試所有會觸發(fā)Firebase云消息傳遞消息的用例。

測試所有使用鬧鐘的用例。

處理拍攝的新照片/視頻

確認您的應用能正確處理受限的ACTION_NEW_PICTURE和ACTION_NEW_VIDEO廣播(即移動至JobScheduler作業(yè))。

確保所有依賴于此類事件的重大用例都能正常運行。

處理將文件共享給其他應用的操作

測試所有將文件數(shù)據(jù)共享給任何其他應用(甚至是同一開發(fā)者推出的其他應用)的用例

測試內容是否在其他應用中可見而不會觸發(fā)崩潰。

立即登錄,閱讀全文
版權說明:
本文內容來自于Google Developers,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
個人VIP