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