大魔 I'm Png

" Scientists ask why, engineers ask why not? "

移动APP手机兼容性测试初步

Web开发需要做各种浏览器兼容测试,移动APP开发需要做各种设备兼容性测试。兼容性测试,哪里都逃不开。

对各种设备的兼容测试,主要集中在2点:

  1. 不同Android OS版本的测试,如Android 2.3, Android 4.1
  2. 不同屏幕密度的测试,如320*240(QVGA),480*320(HVGA),800*480(WVGA)

Android OS各版本市场占有

按照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屏幕来划分的。

详见:《Supporting Multiple Screens》

类别: 解决方案

Tags: Android,Android OS Versions Market share,Android Screens Market share,App Compatible,Density,Screen

damon pang

大魔

Damo

i#impng.com

专注Web开发,爱电影,爱One Piece.