iOS测试和Android测试的区别

Android以及iOS是当下手机的两大主流操作系统,APP测试中,iOS测试和Android测试需要分开测试。

IOS 和安卓系统比较

从以下几个方面,先简单了解一下这两大操作系统的不同之处

1、系统与框架结构

  1. Android系统的底层建立在Linux系统之上;而ios基于UNIX系统。
    这一点就造成了Android与iOS的生态不同了,Android完全开源,任何软件开发商或者个人都能开发安卓的软件;ios完全封源开发。

  2. Android的编程语言是Java和KotLin;而ios的则为ObjectC和Swift。
    Android的Java,面向对象,性能比C语言和OC低;ios的OC,基于对象,完全兼容C语言的语法,可以直接操作内存。
    Android生成class文件,需要虚拟机来进行解释;ios直接执行程序的二进制代码。
    这也在根本上造成了iOS与Android性能不同:Android和Window一样,目的是打造一款通用性非常好的系统,在任何机器上面都可以运行;ios目的是让软件和硬件完美的结合到一块,该操作系统只能在极少数机器上面才能运行。

  3. iOS与Android的运行机制:ios采用的是沙盒运行机制;安卓采用的是虚拟机运行机制。
    iOS采用伪后台,当用户HOME键退出应用时,IOS其实关闭了程序,只保留应用的图像入口,只会默认将最后的运行数据记录在RAM中。之所以IOS也能收到推送,是因为应用程序开启推送后,系统会增加一些进程,这些进程会从苹果服务器接收信息,然后再通过服务器发给用户,苹果服务器在这里是起到了中转的作用。
    安卓手机的后台是真后台,将应用保留在RAM中,之所以能够收到推送,也因为它常驻内存。
    所以Android在软件关闭的情况下,无法接收推送信息;ios在软件关闭的情况下,依然可以接收推送信息
    iOS系统在系统内存不足时会自动释放内存。

2、渲染机制

2.1 iOS最先响应屏幕

IOS的UI渲染采用实时优先级,Android的UI渲染遵循传统电脑模式的主线程普通优先级

IOS的响应顺序依次为Touch–Media–Service–Core架构
Android系统的优先级响应层级是Application–Framework–Library–Kernal架构

当我们使用iOS或者是Android手机时,第一步就是滑屏解锁找到相应程序点击进入。而这个时候往往是所有操控开始的第一步骤,iOS系统产品就表现出来了流畅的一面,但Android产品却给人一种卡顿的现象,更别说后续深入玩游戏或者进行其它操控了。

这也就是为什么我们常说iOS比Android流畅了,因为iOS最先响应屏幕,iOS对屏幕反应的优先级是最高的,它的响应顺序依次为Touch–Media–Service–Core架构,换句话说当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。

而Android系统的优先级响应层级则是Application–Framework–Library–Kernal架构,和显示相关的图形图像处理这一部分属于Library,你可以看到到第三位才是它,当你触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心架构。

2.2 iOS系统优先处理Touch层级

优先级的不同导致了iOS产品以及Android手机在操控过程中的表现差异,当你滑动屏幕进行操控的时候,iOS系统会优先处理Touch层级,而Android系统则是第三个才响应Library层级,这是造成它们流畅度不同的因素之一。

不过优先级对系统流畅性有有影响不假,但并不是最绝对的,造成两系统之间流畅性不一的现象还有其它因素。 目前智能手机硬件装备竞赛当中,其实处理器等配置已经达到了一个瓶颈期,各大旗舰产品在硬件比拼当中基本上没有太大的区别,而这时候GPU就成为了一个凸显差异的重要因素。一些大型软件像是3d游戏对GPU性能要求都会比较高,苹果iPhone产品采用的Power VR SGX系列GPU在当下来说非常的主流,跑分测试数据证明了它并不会比一些旗舰级别的Android产品差劲。

2.3 iOS图形特效基于GPU加速渲染

iOS系统对图形的各种特效处理基本上正好都是基于GPU硬件进行加速的,它可以不用完全借助CPU或者程序本身,而是通过GPU进行渲染以达到更流畅的操控表现。

但是Android系统产品则并非如此,因为Android需要适应不同的手机硬件,需要满足各种差异配置,所以很多图形特效大多都要靠程序本身进行加速和渲染,并严重依赖CPU运算的操作自然会加大处理器的负荷,从而出现卡顿的问题。

iOS系统对图形的各种特效处理基本上正好都是基于GPU硬件进行加速的,它可以不用完全借助CPU或者程序本身,而是通过GPU进行渲染以达到更流畅的操控表现。
Android系统产品则并非如此,因为Android需要适应不同的手机硬件,需要满足各种差异配置,所以很多图形特效大多都要靠程序本身进行加速和渲染。
(虽然Android 4.0以及4.1等更高版本中进行了改进将硬件加速设为默认开启,但依旧无法做到所有特效全部都靠GPU进行加速。在很多Android手机里面都自带有“是否开启GPU渲染”这个功能选项,不过开启之后的改善也是微乎其微。)

屏幕最先响应的优先级关系,再加上iSO本身GPU加速程序的特性,使得在操控过程中感觉iOS手机拥有着良好的流畅性。因为它本身的整个流程都是在为最大化的流畅做服务,不管是第一印象的滑动接触屏幕,还是你进一步使用程序之后的更深层操作都是如此。而GPU加速这点特性,是它优于Android系统流畅性的又一个因素。

iOS测试和Android测试

APP测试中,iOS测试和Android测试主要会针对以下几个点进行测试:

  • 分辨率的测试:Android端有20多种,iOS相对少一点。
  • 操作系统版本:Android的操作系统版本比较多,现在常见的是Android9和Android10,还有不同手机厂商的版本,比如小米的MIUI,魅族的Flyme;
    iOS的比较少,而且它只支持单向升级,不能支持降级。
  • 操作习惯的不同:像Android,习惯的去点击back键,虽然现在很多都是全面屏,都是通过手势滑动返回,但还是属于back键的功能,所以Android需要测试back键是否被重写了,点击了back键系统的反馈是不是正常的。
  • 推送消息的测试:Android点击home键后,程序运行到后台,那么这个时候,推送消息是否可以正常被推送,以及点击应用程序,唤醒到前台运行的时候,然后点击消息,是否可以正常的跳转;
    iOS点击Home键或是锁屏,或者是关闭程序的时候,消息推送是否是正常的。
  • 安装和卸载测试:Android的安装的平台和渠道相对会比较多,而iOS的话一般只支持官方的渠道比如说 APP store 、 iTunes 工具以及 testflight 的下载
  • 13
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android测试是指对Android应用程序进行功能测试、性能测试、兼容性测试、稳定性测试等全方位测试的过程。下面我将针对Android测试的主要任务、测试方法、常见问题和三个小技巧进行回答。 1. Android测试的主要任务: Android测试的主要任务是确保应用程序在不同设备和环境下能够正常运行,并且具有良好的用户体验。主要任务包括功能测试、性能测试、兼容性测试、稳定性测试和安全性测试。 2. Android测试的常用方法: (1)黑盒测试:通过对应用的输入和输出进行测试,验证功能的正确性。 (2)白盒测试:通过查看应用程序的内部代码,进行代码覆盖率测试,以保证代码的质量和可靠性。 (3)自动化测试:利用自动化测试工具,对应用程序进行自动化功能、性能和稳定性测试,提高测试效率和准确性。 (4)用户体验测试:通过模拟用户场景,测试应用在不同设备、不同分辨率和不同网络环境下的用户体验。 3. Android测试常见问题: (1)应用崩溃:在不同设备和环境下,应用可能会崩溃。持续监控应用的稳定性,及时修复问题。 (2)性能问题:应用可能出现卡顿、响应慢等性能问题。通过性能测试,发现性能瓶颈并进行优化。 (3)兼容性问题:不同设备和Android版本的兼容性问题,在开发阶段需要充分测试。 (4)安全性问题:应用可能存在数据泄露、权限问题等安全隐患。相关的安全测试需要进行。 4. Android测试的小技巧: (1)测试覆盖率:通过工具分析测试覆盖率,确保对应用的各个模块进行全面的测试。 (2)日志分析:分析应用的日志,及时发现并解决问题。 (3)性能监控:对应用的性能进行监控,及时发现并解决性能问题。 Android测试不仅需要具备良好的测试技术,还需要具备对Android系统的深入了解。通过不断学习和实践,提高自身的测试能力,才能有效地进行Android测试工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值