移动APP手机兼容性测试初步
Web开发需要做各种浏览器兼容测试,移动APP开发需要做各种设备兼容性测试。兼容性测试,哪里都逃不开。
对各种设备的兼容测试,主要集中在2点:
- 不同Android OS版本的测试,如Android 2.3, Android 4.1
- 不同屏幕密度的测试,如320*240(QVGA),480*320(HVGA),800*480(WVGA)
Android OS各版本市场占有
Android手机屏幕各尺寸、密度市场占有
AVD 提供的模拟配置
对此,Android官方给出了较好的测试方案:
使用Android SDK提供的模拟器(AVD),结合不同的配置,在不购买实际手机设备的情况下,即可完成较全的设备覆盖测试。
详见: 《How to Test Your Application on Multiple Screens》
目前AVD模拟器能够提供的屏幕配置如下表,能满足目前市面上大多数机器的基本测试:
这里的方案是比较理想的,能满足初期的测试需求。但实际上,由于各厂商对Android系统定制的差异,对流行度高的手机,仍然需要通过实际的设备来完整测试。
对于其他硬件不同配置(如CPU、GPU等)下的测试,目前只能使用市场占用率较高的实体机。
一些基本概念
屏幕尺寸(Screen size):按照屏幕对角线衡量的物理尺寸。
Android将所有尺寸分类为四种:
- small
- normal
- large
- extra large
屏幕密度(Screen density):一个物理区域内像素的个数,通常被称为DPI(Dots Per Inch)。在同样的一个区域里,密度低的屏幕拥有的像素会比中、高密度更少。
为了简单,Android将所有屏幕分为四等密度:
- low (ldpi)
- medium (mdpi)
- high (hdpi)
- extra high (xhdpi)
屏幕方向(Orientation):相对用户的视角,当前屏幕的方向,横屏(landscape)或竖屏(portrait)。
需要注意的是,除了初始时需要对不同方向,做不同的展示,用户还可以随时旋转设备来实时改变屏幕方向。
分辨率(Resolution):屏幕上像素的总数量。不能针对分辨率来做多种类型屏幕的适配,而应该考虑屏幕尺寸和密度即可。
密度无关像素(Density-independent pixel):用来定义UI布局的虚拟像素单位,和屏幕密度无关,简称为dp。
1dp,相当于屏幕密度为160的物理屏幕上的一个点。运行时,系统会根据当前屏幕密度进行对应的缩放。
像素和dp的转换公式:
px = dp * (dpi / 160)
应当使用dp单位来描述UI布局,以使在不同密度的屏幕上都能取得合适的显示效果。
支持范围:从Android 1.6开始(在此之前,只支持HVGA屏幕),Android对移动设备的多种屏幕配置提供了显示适配,创造了良好的用户体验。
Android约定的四种屏幕尺寸和屏幕密度的依据,是按照第一款Android移动设备T-Mobile G1的HVGA屏幕来划分的。