APP测试中ios和androis的区别,有哪些注意点

news/2024/12/19 0:01:25/

一、运行机制不同

IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制

1、沙盒机制:

概念:沙盒是一种安全机制,用于防止不同应用之间互相访问

作用:就是存储数据,每个沙盒就相当于每个每个应用的系统目录

核心:sandbox对应用程序执行各种操作的权限限制

描述:

  • 每个应用都有自己对应的沙盒,应用的活动范围都限定在自己的沙盒里
  • 每个应用程序之间不能相互访问非本程序的沙盒( APP之间不能相互通,唯独可以通过URL Scheme可以通信)
  • 在访问别人沙盒内的数据时需要访问权限,应用程序请求的数据都要通过权限检测,不符合条件的话,不会被放行
  • 用于保存非代码文件,例如图像,图标,声音,映像,属性列表,文本文件等。

2、虚拟机机制:

  • android本身不是为触摸屏打造的,所以所有的应用都是运行在一个虚拟的环境中,由底层传输数据到虚拟机中,再由虚拟机传递给用户UI,任何程序都就可以轻松访问其他程序文件。

二、对app内存消耗处理方式不同

Apple的应用程序在内存消耗过高时会收到内存警告,如果不及时处理的话应用程序会自动退出,而不像Windows系统一样,中了病毒或者木马会一直消耗内存,直到内存没有了才宕机。

三、后台制度不同

IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭

ios的后台是伪后台,iOS应用被送到后台,它的主线程会被暂停,其他进程会有一点处理数据的时间,然后所有的线程都被挂起了

iOS系统后台机制大概可以分为5种状态:

  • Not Running:APP没有启动,也没有后台运行;
  • Active:用户正在使用APP,比如说我们聊微信看网页的时候,APP就处于Active状态;
  • Inactive:这是一个过渡的状态,APP虽然打开了,但是用户没有跟APP有任何互动操作;
  • Background:APP在后台运行,微信会在没有打开的时候接收消息;
  • Suspended:APP虽然在后台运行,但是处于休眠状态,只占用一点内存

安卓的所有应用都可以在后台运行,除非用户自己手动操作或者内存不足才会关闭,android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机,每个app都有自己的进程,每个进程都有自己的内存空间

安卓的进程从高到底分为5种:

  • 前台进程:正在与用户交互的进程,通俗来讲就是你当前使用app的进程;
  • 可见进程:可以被用户看到,但是没有和用户交互,例如一个activity以对话框的形式覆盖在当前activity上面,当前activity可以被用户看到,但是不和用户交互;
  • 服务进程:这个相信大家都熟悉,也就是我们常说的service,能够运行在后台,常见的有音乐类的app;
  • 后台进程:注意,这个后台进程不要和服务进程搞混了,它的意思是说当前app在后台运行,例如我启动了app,然后点击home返回到桌面,那么这个app就会被切回到后台进程;
  • 空进程:空进程指的是在这些进程内部,没有任何东西在运行。保留这种进程的的唯一目的是用作缓存,以缩短该应用下次在其中运行组件所需的启动时间。

四、最高权限指令不同

  • IOS中用于UI指令权限最高

  • 安卓中数据处理指令权限最高

五、推送机制不同

  • iOS在软件关闭的情况下,依然可以接收推送信息
    机消息当然都是通过服务器推送到我们手机上的,对于iOS的用户来说,苹果有APNs服务器来负责消息的推送。当你第一次使用APP时,会询问是否接收通知,如果你选择了是,那么服务器就会记录你的ID,当有消息通知的时候,这些数据是先推送到苹果的服务器中,然后通过苹果的APN服务器推送到用户手机上的。这样的设计让软件彻底关闭的时候还可以接收到消息通知,一方面释放内存,一方面也不会耽误接收消息。

  • Android在软件关闭的情况下,无法接收推送信息

    在Android手机来说,谷歌也有类似的GCM服务器来推送消息,不过因为国内的手机都没有谷歌服务无法收到谷歌GCM服务器推送的消息。

    安卓的推送都是通服务来实现的,就算应用没有启动但是服务还在一样可以收到推送。所以只能是安卓自己启动Services来实现推送,当应用杀死后Services如果被杀死就无法收到推送

六、抓取方式不同

  • ios调试需要使用xcode

  • 安卓使用adb

七、灰度发版机制不同

  • ios灰度机制

    是将同一个包在七天内七个阶段从1%放到100%

    也可以在灰度过程中,直接放到100%

    在这个包发现线上bug的时候,可以将发包进度暂停,修正bug后,上传新包

  • 谷歌灰度机制

    可以给一个包指定一个灰度量,然后逐渐放量到100%
    也可以给不同的rc包指定不同的量,发到全量

八、审核机制不同

ios发包审核比较严格,经常被拒

  • ios没有返回键

    安卓测试需要注意点击返回键后的反馈是否正确

  • ios比较流畅

    适配测试,Android端比较多,ios较少

新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash) 


http://www.ppmy.cn/news/1556237.html

相关文章

Mac上使用ln指令创建软链接、硬链接

在Mac、Linux和Unix系统中,软连接(Symbolic Link)和硬连接(Hard Link)是两种不同的文件链接方式。它们的主要区别如下: 区别: 硬连接: 不能跨文件系统。不能链接目录(为…

JVM--垃圾回收机制

垃圾回收机制(Garbage Collection,简称GC)是Java虚拟机(JVM)中的一项关键技术,它自动管理程序运行时产生的内存分配与释放,从而减轻了程序员手动管理内存的负担,并减少了由于错误的内…

JS进阶-面向对象-搭建网站-HTML与JS交互

JS进阶 文章目录 JS进阶大纲作用域和闭包作用域块级作用域语句作用域全局作用域 闭包调用闭包的方法全局变量返回值 面向对象实例化构造函数添加对象的成员prototypeproto和prototype理解原型和实例 对象原型的误解原型链this指向浏览器环境Node JS环境 JS逆向常见方法call和ap…

.NET 技术系列 | 通过CreatePipe函数创建管道

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

【前端面试】list转树、拍平, 指标,

这个题目涉及的是将一组具有父子关系的扁平数据转换为树形结构,通常称为“树形结构的构建”问题。类似的题目包括: 1. 组织架构转换 给定一个公司的员工列表,每个员工有 id 和 managerId,其中 managerId 表示该员工的上级。任务…

MSSQL AlwaysOn 可用性组(Availability Group)中的所有副本均不健康排查步骤和解决方法

当遇到 MSSQL AlwaysOn 可用性组(Availability Group)中的所有副本均不健康的情况时(MSSQL AG 副本名称: All replicas unhealthy),这通常意味着可用性组无法正常工作,数据同步和故障转移功能可能受到影响。以下是一些可能的原因及相应的排查步骤和解决方法: 1. 检查副本…

数据版本管理和迁移工具Flyway用法最简说明

简介 数据库迁移及版本控制工具, 用于维护不同环境下数据库的一致性 使用 引入依赖 implementation(“org.flywaydb:flyway-core:7.1.1”) 配置 spring:flyway:enabled: truelocations: classpath:sqlbaseline-on-migrate: trueclean-disabled: trueenabled: true # 开启Fl…

Java——网络编程(下)

(UDP通讯的实现) 1 UDP通信介绍 (面向无链接的一个传输协议——>不会创建连接——>效率高) (发送数据要经行封包操作——>使用DatagramPacket类——>底层是UDP) (DatagramPacket——>数据封包——>发送数据和接收数据都要去包装对象!&#xf…