符合 Google Play 的目標(biāo) API 級(jí)別要求

來(lái)源: Google Developers
作者:Google Developers
時(shí)間:2020-12-24
18281
本文重點(diǎn)介紹了有關(guān)更新目標(biāo)API級(jí)別的重要須知,以便您滿足Google Play的要求。

您上傳的APK需要符合Google Play的目標(biāo)API級(jí)別要求。新應(yīng)用和應(yīng)用更新(Wear OS除外)必須以Android 10(API級(jí)別29)或更高版本為目標(biāo)平臺(tái)。

自2021年8月起,新應(yīng)用需要:

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

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

以API級(jí)別30(Android 11)或更高版本為目標(biāo)平臺(tái),并針對(duì)行為變更進(jìn)行調(diào)整。

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

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

為何要以較新的SDK為目標(biāo)平臺(tái)?

每個(gè)新的Android版本都會(huì)發(fā)生變更,帶來(lái)安全性和性能方面的重大改進(jìn),并提升Android的整體用戶體驗(yàn)。部分變更只會(huì)影響通過(guò)targetSdkVersion清單屬性(也稱為目標(biāo)API級(jí)別)明確聲明支持這些變更的應(yīng)用。

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

本文重點(diǎn)介紹了有關(guān)更新目標(biāo)API級(jí)別的重要須知,以便您滿足Google Play的要求。

注意:如果您的Gradle文件包含清單條目,您可以按照配置您的build中的說(shuō)明,確認(rèn)或更改應(yīng)用的Gradle文件中當(dāng)前的targetSdkVersion值。或者,您也可以按照<uses-sdk>清單元素文檔中的說(shuō)明,使用清單文件中的android:targetSdkVersion屬性。

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

隱私權(quán)

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

自動(dòng)重置權(quán)限:如果用戶幾個(gè)月未與應(yīng)用互動(dòng),系統(tǒng)會(huì)自動(dòng)重置應(yīng)用的敏感權(quán)限。此設(shè)置不會(huì)影響大多數(shù)應(yīng)用。如果您的應(yīng)用主要在后臺(tái)運(yùn)行,無(wú)需用戶與之互動(dòng),您可以考慮請(qǐng)求用戶停用自動(dòng)重置功能。

后臺(tái)位置信息訪問權(quán)限:針對(duì)前臺(tái)位置信息獲取權(quán)限和后臺(tái)位置信息獲取權(quán)限,應(yīng)用必須分開進(jìn)行請(qǐng)求。用戶只能在應(yīng)用設(shè)置中授予后臺(tái)位置信息獲取權(quán)限,而不是通過(guò)運(yùn)行時(shí)權(quán)限對(duì)話框授予該權(quán)限。

軟件包可見性:當(dāng)應(yīng)用查詢?cè)O(shè)備上已安裝應(yīng)用和服務(wù)的列表時(shí),系統(tǒng)會(huì)過(guò)濾返回的列表。

如果您使用文字轉(zhuǎn)語(yǔ)音或語(yǔ)音識(shí)別服務(wù),則需在清單文件中為這些服務(wù)添加<queries>元素。

安全性

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

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

限制非SDK接口。對(duì)于以API級(jí)別30為目標(biāo)平臺(tái)的應(yīng)用,建議不要使用非SDK接口,因?yàn)槠渲幸恍┙涌诂F(xiàn)已被屏蔽。如需查看已屏蔽的非SDK接口的完整列表,請(qǐng)參閱目前在Android 11中被屏蔽的非SDK接口。

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

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

翻新您的應(yīng)用

更新應(yīng)用的目標(biāo)API級(jí)別時(shí),不妨考慮采用最新的平臺(tái)功能翻新應(yīng)用,為用戶提供愉悅的體驗(yàn)。

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

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

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

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

為您的應(yīng)用添加深色主題支持。

為您的應(yīng)用添加手勢(shì)導(dǎo)航支持。

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

利用高級(jí)窗口管理。

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

添加多窗口支持,以幫助應(yīng)用提高工作效率以及管理多個(gè)顯示器。

如果出色的最小化應(yīng)用體驗(yàn)?zāi)軌蛱嵘脩趔w驗(yàn),則添加對(duì)畫中畫功能的支持。

針對(duì)配備劉海屏的設(shè)備進(jìn)行優(yōu)化。

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

請(qǐng)勿假定應(yīng)用會(huì)占滿整個(gè)窗口,而應(yīng)使用View.getLocationInWindow()來(lái)確認(rèn)它的位置,切勿使用View.getLocationOnScreen()。

處理MotionEvent時(shí),請(qǐng)使用MotionEvent.getX()和MotionEvent.getY()(而非MotionEvent.getRawX()和MotionEvent.getRawY())。

檢查及更新您的SDK和庫(kù)

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

另請(qǐng)注意,您的應(yīng)用或游戲的targetSdkVersion可能會(huì)限制對(duì)私有Android平臺(tái)庫(kù)的訪問;如需了解詳情,請(qǐng)參閱NDK應(yīng)用鏈接至平臺(tái)庫(kù)。

您還應(yīng)確認(rèn)正在使用的Android支持庫(kù)版本中存在哪些限制。與以往一樣,您必須確保Android支持庫(kù)的主要版本與您的應(yīng)用的compileSdkVersion兼容。

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

測(cè)試您的應(yīng)用

適當(dāng)更新應(yīng)用的API級(jí)別和功能后,您應(yīng)測(cè)試部分核心用例。下面僅列舉部分建議,旨在引導(dǎo)您進(jìn)行測(cè)試。我們建議您針對(duì)以下方面進(jìn)行測(cè)試:

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

您的應(yīng)用對(duì)用戶拒絕權(quán)限請(qǐng)求的情況已有應(yīng)對(duì)策略,且會(huì)提示用戶授予權(quán)限。測(cè)試方法如下:

轉(zhuǎn)到應(yīng)用的“應(yīng)用信息”屏幕,然后停用所有權(quán)限。

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

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

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

使用adb,讓測(cè)試設(shè)備在您的應(yīng)用正在運(yùn)行時(shí)進(jìn)入低電耗模式。

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

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

消除后臺(tái)服務(wù)的所有依賴項(xiàng)。

將您的應(yīng)用設(shè)為應(yīng)用待機(jī)模式

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

測(cè)試所有使用鬧鐘的用例。

處理拍攝的新照片/視頻

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

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

處理將文件共享給其他應(yīng)用的操作

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

測(cè)試內(nèi)容是否在其他應(yīng)用中可見而不會(huì)觸發(fā)崩潰。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于Google Developers,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家