應(yīng)用過(guò)濾與多APK

2018-02-25 14:09 更新

應(yīng)用過(guò)濾與多APK

小米應(yīng)用商店支持GooglePlay的應(yīng)用過(guò)濾與MultipleAPK(多APK)規(guī)則,按照符合Google規(guī)范開(kāi)發(fā)的Android的應(yīng)用,可以分發(fā)給合適的用戶(hù),避免無(wú)法支持的設(shè)備下載到您的應(yīng)用,影響應(yīng)用口碑與評(píng)分。

應(yīng)用商店的過(guò)濾

隨著MIUI支持的設(shè)備越來(lái)越多,您也許會(huì)開(kāi)發(fā)僅支持部分設(shè)備的應(yīng)用,比如僅支持Android4.0以上系統(tǒng),或者僅支持高通的GPU。應(yīng)用過(guò)濾可以滿(mǎn)足這方面的需求,保證您的應(yīng)用在合適的設(shè)備上展示和分發(fā)。 目前,小米應(yīng)用商店支持基于Manifest文件內(nèi)容的的過(guò)濾項(xiàng)如下: (您可以點(diǎn)擊鏈接查看Google官方的文檔)

supports-screens——屏幕尺寸
supports-screens項(xiàng)聲明了您的應(yīng)用支持的屏幕尺寸等信息,如無(wú)特殊需求,可以無(wú)需指定,默認(rèn)支持各種尺寸的設(shè)備。小米、紅米系列手機(jī)均為normal尺寸

compatible-screens——兼容屏幕類(lèi)型  
【Google官方建議: 正常情況下,您不需要使用本項(xiàng)目】compatible-screens項(xiàng)可以詳細(xì)聲明應(yīng)用兼容屏幕的尺寸、像素密度,考慮到Android設(shè)備分裂比較嚴(yán)重,除非您明確的了解本項(xiàng)目,請(qǐng)不要使用本項(xiàng)目,錯(cuò)誤的聲明了本項(xiàng)目,可能導(dǎo)致大量的用戶(hù)無(wú)法下載您的應(yīng)用。

uses-sdk——Android系統(tǒng)版本
uses-sdk項(xiàng)聲明了您的應(yīng)用支持的API Level系統(tǒng)版本。您可以用android:minSdkVersion聲明支持的最低系統(tǒng)版本。同時(shí)Google官方建議不要聲明android:maxSdkVersion,該屬性可能導(dǎo)致使用未來(lái)發(fā)布的Android系統(tǒng)的用戶(hù)無(wú)法下載您的應(yīng)用。您可以在這里找到Android版本號(hào)和API Level的對(duì)照關(guān)系

supports-gl-texture——OpenGL紋理壓縮
如果您需要支持高通、英偉達(dá)等不同GPU的OpenGL紋理壓縮,需要聲明此項(xiàng)。詳情請(qǐng)查看Google官方文檔

基于上述4項(xiàng)元素,您可以自由的指定應(yīng)用支持的設(shè)備類(lèi)型。不過(guò)對(duì)于絕大多數(shù)應(yīng)用開(kāi)發(fā)者來(lái)說(shuō),可能僅需要聲明uses-sdk項(xiàng)即可。添加較多的限制可能會(huì)導(dǎo)致用戶(hù)無(wú)法看到、下載您的應(yīng)用

如下是一些錯(cuò)誤實(shí)例,請(qǐng)勿模仿:

  • 聲明了maxSdkVersion為14,意味著使用Android 4.0.3以后的版本的用戶(hù)將無(wú)法看到您的應(yīng)用。

  • 聲明了supports-gl-texture為GL_EXT_texture_compression_dxt1,意味著僅Tagra芯片的手機(jī)能看到您的應(yīng)用,比如小米手機(jī)3 TD版。

  • 僅聲明了compatible-screens為screenSize=”small” screenDensity=”xhdpi”,意味著幾乎沒(méi)有人能看到您的應(yīng)用,因?yàn)檫@條聲明要求屏幕尺寸小于3寸,且像素密度大于320,不存在這種設(shè)備。

多APK支持 - Multiple APK

Google官方強(qiáng)烈建議用一個(gè)APK支持全部機(jī)型和版本的設(shè)備,但是在實(shí)際開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)者因?yàn)锳PK包尺寸、系統(tǒng)支持等原因,需要為不同的設(shè)備提供不同的APK包。為了滿(mǎn)足這一需求,Google設(shè)計(jì)了Multiple APK機(jī)制,通過(guò)多APK機(jī)制,可以實(shí)現(xiàn)以下功能:

  • 通過(guò)多APK機(jī)制,開(kāi)發(fā)者可以發(fā)布多個(gè)同一package name的APK包

  • 每個(gè)APK可以支持不同的Android系統(tǒng)版本: < uses-sdk >

  • 每個(gè)APK可以支持不同的OpenGL紋理壓縮: < supports-gl-texture>

  • 每個(gè)APK可以支持不同的屏幕尺寸: < supports-screens>和< compatible-screens>

多APK發(fā)布會(huì)增加后續(xù)開(kāi)發(fā)者維護(hù)的成本,因此強(qiáng)烈建議用一個(gè)APK支持全部機(jī)型。僅當(dāng)您的APK因?yàn)椴煌叽绲馁Y源文件而過(guò)大時(shí)考慮采用多APK機(jī)制。

如果您確定要使用多APK機(jī)制,請(qǐng)務(wù)必仔細(xì)閱讀這篇文章。其中會(huì)提到一些重點(diǎn)注意事項(xiàng):

  • 如果您使用關(guān)于屏幕尺寸的項(xiàng)目,請(qǐng)盡量不要同時(shí)引入< supports-screens>和< compatible-screens>,這兩個(gè)項(xiàng)目中的定義可能會(huì)沖突。如果沖突,我們會(huì)優(yōu)先采用不支持的結(jié)果,可能導(dǎo)致大量用戶(hù)無(wú)法看到您的應(yīng)用

  • 如果您使用關(guān)于API Level,請(qǐng)務(wù)必規(guī)劃好VersionCode,并確保多個(gè)APK的VersionCode符合這一規(guī)則:支持更高版本系統(tǒng)的APK,有更高的VersionCode,這一設(shè)計(jì)是為了保證用戶(hù)升級(jí)之后仍然可以獲得應(yīng)用的新版本。關(guān)于版本管理,請(qǐng)參考這篇文章

  • 多APK必須是同一個(gè)包名、同一個(gè)簽名、不同的VersionCode

在規(guī)劃中,未來(lái)我們會(huì)支持基于上述多APK機(jī)制,目前已經(jīng)實(shí)現(xiàn)支持基于< uses-sdk>的多APK。您可以在發(fā)布應(yīng)用的時(shí)候,選擇發(fā)布多APK應(yīng)用,完成發(fā)布。

關(guān)于應(yīng)用過(guò)濾與多APK支持,Google官方主要提供了以下文檔:

Filters on Google Play: http://developer.android.com/google/play/filters.html

Multiple APK Support: http://developer.android.com/google/play/publishing/multiple-apks.html

Android Compatibility: http://developer.android.com/guide/practices/compatibility.html

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)