Android平台的碎片化问题被开发者诟病已久。最近Google公布了一些Android设备的统计信息,开发者可以根据市场占有率决定不同设备开发和优化需要投入的经历。特别是人力较少的小公司和个人开发者,更需要集中精力,有所取舍。
平台版本
版本 | 代码名 | API | 分布 |
---|---|---|---|
2.2 | Froyo | 8 | 1.2% |
2.3.3 - 2.3.7 | Gingerbread | 10 | 19.0% |
3.2 | Honeycomb | 13 | 0.1% |
4.0.3 - 4.0.4 | Ice Cream Sandwich | 15 | 15.2% |
4.1.x | Jelly Bean | 16 | 35.3% |
4.2.x | 17 | 17.1% | |
4.3 | 18 | 9.6% | |
4.4 | KitKat | 19 | 2.5% |
数据采集自2014年3月3日前一周。占有率在0.1%以下的版本没有显示。
注意:由于数据采自新版的Google Play Store应用,该应用只支持Android 2.2以上版本,所以旧版本没有包括。不过,根据2013年8月的统计,Android 2.2所占的比例不到1%。
从Google发布的数据来看,目前Android 4.1分支位居首位,占据35.5%,加上其他版本,4.x分支总份额已经高达78.6%。
因此,如果精力有限,开发者可以针对Android 4.0 API开发应用,这样,应用程序可以在使用4.x新特性的基础上,覆盖尽可能多的设备。
屏幕分辨率
Google根据屏幕尺寸、像素密度,分成了几个大类:
ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | 总计 | |
---|---|---|---|---|---|---|---|
小 | 8.1% | 8.1% | |||||
普通 | 0.2% | 13.6% | 33.7% | 19.9% | 11.9% | 79.3% | |
大 | 0.7% | 4.3% | 1.5% | 0.6% | 0.6% | 7.7% | |
超大 | 0.1% | 4.3% | 0.3% | 0.2% | 4.9% | ||
总计 | 9.1% | 22.2% | 1.5% | 34.6% | 20.7% | 11.9% |
数据采集自2014年3月3日前一周。占有率在0.1%以下的版本没有显示。
OpenGL版本
Google列出了支持某个版本的OpenGL ES的设备数量。注意,OpenGL ES是向下兼容的。支持某个版本的OpenGLES意味着也同时支持更低的版本。
可以使用<uses-feature>
元素的android:glEsVersion
属性来定义应用所需要的OpenGL版本,也可以使用<supports-gl-texture>
元素来声明应用使用的GL压缩格式。
OpenGL ES 版本 | 分布 |
---|---|
1.1 | 0.1% |
2.0 | 91.1% |
3.0 | 8.8% |
从这些数据来看,绝大部分设备已经支持2.0,因此如无特殊原因,可以不过多考虑兼容只支持1.1的设备。
编译 SegmentFault