小米應(yīng)用商店支持GooglePlay的應(yīng)用過濾與MultipleAPK(多APK)規(guī)則,按照符合Google規(guī)范開發(fā)的Android的應(yīng)用,可以分發(fā)給合適的用戶,避免無法支持的設(shè)備下載到您的應(yīng)用,影響應(yīng)用口碑與評分。
隨著MIUI支持的設(shè)備越來越多,您也許會開發(fā)僅支持部分設(shè)備的應(yīng)用,比如僅支持Android4.0以上系統(tǒng),或者僅支持高通的GPU。應(yīng)用過濾可以滿足這方面的需求,保證您的應(yīng)用在合適的設(shè)備上展示和分發(fā)。 目前,小米應(yīng)用商店支持基于Manifest文件內(nèi)容的的過濾項如下: (您可以點擊鏈接查看Google官方的文檔)
supports-screens——屏幕尺寸
supports-screens項聲明了您的應(yīng)用支持的屏幕尺寸等信息,如無特殊需求,可以無需指定,默認支持各種尺寸的設(shè)備。小米、紅米系列手機均為normal尺寸
compatible-screens——兼容屏幕類型
【Google官方建議: 正常情況下,您不需要使用本項目】compatible-screens項可以詳細聲明應(yīng)用兼容屏幕的尺寸、像素密度,考慮到Android設(shè)備分裂比較嚴重,除非您明確的了解本項目,請不要使用本項目,錯誤的聲明了本項目,可能導致大量的用戶無法下載您的應(yīng)用。
uses-sdk——Android系統(tǒng)版本
uses-sdk項聲明了您的應(yīng)用支持的API Level系統(tǒng)版本。您可以用android:minSdkVersion聲明支持的最低系統(tǒng)版本。同時Google官方建議不要聲明android:maxSdkVersion,該屬性可能導致使用未來發(fā)布的Android系統(tǒng)的用戶無法下載您的應(yīng)用。您可以在這里找到Android版本號和API Level的對照關(guān)系
supports-gl-texture——OpenGL紋理壓縮
如果您需要支持高通、英偉達等不同GPU的OpenGL紋理壓縮,需要聲明此項。詳情請查看Google官方文檔
基于上述4項元素,您可以自由的指定應(yīng)用支持的設(shè)備類型。不過對于絕大多數(shù)應(yīng)用開發(fā)者來說,可能僅需要聲明uses-sdk項即可。添加較多的限制可能會導致用戶無法看到、下載您的應(yīng)用
聲明了maxSdkVersion為14,意味著使用Android 4.0.3以后的版本的用戶將無法看到您的應(yīng)用。
聲明了supports-gl-texture為GL_EXT_texture_compression_dxt1,意味著僅Tagra芯片的手機能看到您的應(yīng)用,比如小米手機3 TD版。
僅聲明了compatible-screens為screenSize=”small” screenDensity=”xhdpi”,意味著幾乎沒有人能看到您的應(yīng)用,因為這條聲明要求屏幕尺寸小于3寸,且像素密度大于320,不存在這種設(shè)備。
Google官方強烈建議用一個APK支持全部機型和版本的設(shè)備,但是在實際開發(fā)過程中,開發(fā)者因為APK包尺寸、系統(tǒng)支持等原因,需要為不同的設(shè)備提供不同的APK包。為了滿足這一需求,Google設(shè)計了Multiple APK機制,通過多APK機制,可以實現(xiàn)以下功能:
通過多APK機制,開發(fā)者可以發(fā)布多個同一package name的APK包
每個APK可以支持不同的Android系統(tǒng)版本: < uses-sdk >
每個APK可以支持不同的OpenGL紋理壓縮: < supports-gl-texture>
每個APK可以支持不同的屏幕尺寸: < supports-screens>和< compatible-screens>
多APK發(fā)布會增加后續(xù)開發(fā)者維護的成本,因此強烈建議用一個APK支持全部機型。僅當您的APK因為不同尺寸的資源文件而過大時考慮采用多APK機制。
如果您確定要使用多APK機制,請務(wù)必仔細閱讀這篇文章。其中會提到一些重點注意事項:
如果您使用關(guān)于屏幕尺寸的項目,請盡量不要同時引入< supports-screens>和< compatible-screens>,這兩個項目中的定義可能會沖突。如果沖突,我們會優(yōu)先采用不支持的結(jié)果,可能導致大量用戶無法看到您的應(yīng)用
如果您使用關(guān)于API Level,請務(wù)必規(guī)劃好VersionCode,并確保多個APK的VersionCode符合這一規(guī)則:支持更高版本系統(tǒng)的APK,有更高的VersionCode,這一設(shè)計是為了保證用戶升級之后仍然可以獲得應(yīng)用的新版本。關(guān)于版本管理,請參考這篇文章
多APK必須是同一個包名、同一個簽名、不同的VersionCode
在規(guī)劃中,未來我們會支持基于上述多APK機制,目前已經(jīng)實現(xiàn)支持基于< uses-sdk>的多APK。您可以在發(fā)布應(yīng)用的時候,選擇發(fā)布多APK應(yīng)用,完成發(fā)布。
關(guān)于應(yīng)用過濾與多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
更多建議: