TestBird 移动互联测试专家

一个程序员要适配20000款设备,睡觉都要被吓醒了

一个程序员要适配20000款设备,睡觉都要被吓醒了

根据OpenSignal最新的研究报告显示,目前有超过24000种不同类型的设备,支持一种以上的Andriod版本,但它们在屏幕分辨率、规格、按键、处理器、可用内存大小等方面,都存在着差异。

嗯,老实说这个数字把Bird吓了一跳,我想这两万多款设备里面,很大部分设备应该是多年前的淘汰机型了。不过今年新上市的机型数量也是可观的,有数据显示接近2000款。

设备碎片化现象也不仅仅是Android的专利,iOS平台每年都会曝出负优化丑闻,就是说苹果为了多卖设备,每当新设备发布,老设备性能就会变差。其实这样的说法有点过了,事实上机型的碎片化才是导致设备变慢,BUG变多的元凶。

大多数的bug都发生在其中的3个领域:

多种多样的屏幕尺寸,这会使得开发者很难创造出一个适用于所有设备的UI界面;

不同的硬件性能,如处理器、内存等;

碎片化对操作系统的版本也造成了影响。

就像Conner Forrest在TechRepublic时所说得那样:在Andriod 5.0版本操作系统(Lollipop)发布的几个月后,仅有3.3%的用户进行了安装使用,更糟糕的是,目前即使是新的设备也常常安装旧版操作系统。

常见的兼容性问题有哪些呢?

尺寸问题:这个问题不仅发生在像按键这样的图形元素之中,也发生在文本元素里;

丢失可视化元素:一些本来应该存在的元素可能会消失,这就会让对应的功能变得不可用;

位置问题:元素显示得位置会存在一定偏差,换句话说,可能并不是居中显示;

影响功能使用:按键在屏幕上的显示,有一个常见的问题,就是可能会隐藏其中的一些UI元素,使得对应的功能变得不再可用,例如:隐藏了确认输入按键,甚至是输入框。

碎片化所造成的最大问题是,其中一些bug只会出现在特定的设备上,并不是随处可见得,这就使得很难给这些bug进行定位。

Google这些年也一直在努力解决Andriod的碎片化问题。因为在引入了Google应用服务后,降低了Android新版本的使用率。但是想要根治APP的兼容性问题,还需要使用TestBird这样的第三方测试服务。

这里可以在2000多款设备上自动化运行APP,并使用真实的运营商网络环境提供测试。TestBird还在测试过程中保留截图和日志,这也大大方便了开发者们定位问题。

TestBird