小米應(yīng)用商店支持GooglePlay的應(yīng)用過(guò)濾與MultipleAPK(多APK)規(guī)則,按照符合Google規(guī)范開(kāi)發(fā)的Android的應(yīng)用,可以分發(fā)給合適的用戶,避免無(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ò)濾可以滿足這方面的需求,保證您的應(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)致大量的用戶無(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)的用戶無(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)致用戶無(wú)法看到、下載您的應(yīng)用
如下是一些錯(cuò)誤實(shí)例,請(qǐng)勿模仿:
聲明了maxSdkVersion為14,意味著使用Android 4.0.3以后的版本的用戶將無(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包。為了滿足這一需求,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)致大量用戶無(wú)法看到您的應(yīng)用
如果您使用關(guān)于API Level,請(qǐng)務(wù)必規(guī)劃好VersionCode,并確保多個(gè)APK的VersionCode符合這一規(guī)則:支持更高版本系統(tǒng)的APK,有更高的VersionCode,這一設(shè)計(jì)是為了保證用戶升級(jí)之后仍然可以獲得應(yī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