APP适配测试白皮书(一)

简介: 碎片化越来越严重,苹果相比Android来说稍微好点但最近几年由于创新乏力不断在屏幕尺寸上做文章也使得苹果的适配开始面临更多的挑战。

背景



首先,APP适配问题的由来,是因为无线智能终端和以往的Windows/MacOs相比,属于软硬件高度绑定的嵌入式设备,大多数智能终端的系统和硬件都是高度绑定的,并不像当年的Windows可以兼容大多数的机器配置。由于硬件驱动和功能的不断创新,各个厂家会针对自己的终端在系统上做很多的定制化工作。尤其是Android,由于源码开放且厂家众多,各厂家采用的硬件种类繁多,因此各终端系统的碎片化就越来越严重。


我们的APP需要在如此众多的终端上运行,而终端的系统版本、屏幕分辨率、所用的配件千差万别,厂商带来的系统API改动非常的多。当我们的代码调用系统的API产生了不一致的效果而没有很好的处理的话,就很容易产生适配问题。


iOS篇



由于iOS的厂家只有苹果比较简单,所以我们先来谈谈iOS。


由于iOS本身的封闭性,软硬件都是用苹果自己的芯片和系统,那我们就从硬件和软件两方面来分析一下看看有什么差异:


硬件


大家应该都知道即便是同一款iPhone也会区分不同的型号,这个主要是和发行区域有关,在有些地方iPhone会和当地的运营商合作推出带锁的版本,也就是让手机只支持某一类运营商的网络,虽然这会导致在基带芯片上有所不同,不过由于苹果的运算芯片采用的是自研芯片,因此对于适配同款iPhone的不同型号来说基本没有差异。


软件


由于iOS本身是封闭的,全球所有iPhone都是使用苹果自己的iOS系统,采用的服务和框架也都是苹果提供的,因此不同地区的iOS系统本身除了本地化的一些语言差异可以说基本没有什么差异,只有系统版本间的差异。


总体来说,由于苹果的封闭性,对于设备碎片化的把控都是比较好的。因此我们重点关注影响适配是以下几个因素:


系统版本>屏幕尺寸>机型>语言>网络>海外版本。


因此,我们的第一重点是放在系统版本的差别上,因为系统版本的升级会更改一大批API的内部调用处理方式,是最容易出现适配问题和Crash问题的原因,这一点可以从历史问题中来证明。第二个原因就是屏幕的尺寸,这个基本上就和机型是强相关的,因为iPhone机型少,而尺寸基本上就是由机型不同来决定。而屏幕尺寸的不同又很容易导致我们的控件显示尺寸在没有做好适配的情况下变形,虽然不易产生Crash,但是用户会看到变形甚至不全的信息,也会严重影响到用户功能使用,因此也需要重点关注。


综上所述,我们对于iOS的适配策略总体就是,版本覆盖完全,屏幕覆盖完全,机型覆盖完全。


Android篇



接下来就是我们的大头Android系统的适配问题了,大家经常提到的Android碎片化,主要体现在设备碎片化、品牌碎片化、系统碎片化、屏幕碎片化等多方面。我们在保证产品功能正常的同时,还需要兼容碎片化可能带来的潜在问题,以确保良好的用户体验。


碎片化情况



设备碎片化


以下是opensignal平台统计的当前Android手机设备型号碎片图,已经有超过18000+种的设备了。


image.png

品牌碎片化


以下是opensignal平台统计的当前Android手机品牌碎片图,从图中我们可以看到各类手机品牌非常多。

image.png


系统碎片化


以下是opensignal平台统计的当前Android操作系统碎片图。从2008年发布的Android第1版到2018年最新的9.0版本,以及期间各大版本过程中发布的小版本和bug fix版本,目前都有不同的手机厂商在使用,有的进行了深度定制,有的推出了自己的ROM,这些无疑更加剧了Android操作系统严重的碎片化。

image.png


屏幕碎片化


以下是opensignal平台统计的当前Android手机设备屏幕的碎片图,可见Android的屏幕尺寸规格众多,在这种碎片化中,你的App说不好会落到哪个坑里面,也许是某个特殊屏幕分辨率。


image.png


相关文章
|
13天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
51 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
2月前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
|
3月前
【Azure App Service】同一个App Service下创建多个测试站点的方式
【Azure App Service】同一个App Service下创建多个测试站点的方式
|
3月前
|
网络协议 安全 前端开发
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
|
3月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
67 0
|
3月前
|
Linux C#
【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
|
4月前
|
前端开发 开发者
移动端-------app开发02,了解apicloud功能和使用,真机测试
移动端-------app开发02,了解apicloud功能和使用,真机测试
|
6月前
|
XML 数据格式
Xpath高阶定位技巧,轻松玩转App测试元素定位!
XPath是一种用于XML文档中节点定位的语言,支持逻辑运算符(and、or、not)、轴定位、谓词和内置函数。
|
10天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
42 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
63 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)