当前位置:   article > 正文

APP测试中ios和androis的区别,有哪些注意点_iso中第三方程序都不能在后台运行

iso中第三方程序都不能在后台运行

01 运行机制不同

iOS 采用的是沙盒运行机制,Android 采用的是虚拟机运行机制

沙盒机制:

概念:沙盒是一种安全机制,用于防止不同应用之间互相访问
作用:就是存储数据,每个沙盒就相当于每个应用的系统目录
核心:sandbox 对应用程序执行各种操作的权限限制
描述

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

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

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

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

03 后台制度不同

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

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

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

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

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

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

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

04 最高权限指令不同

  • iOS 中用于 UI 指令权限最高
  • Android 中数据处理指令权限最高

05 推送机制不同

iOS在软件关闭的情况下,依然可以接收推送信息

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

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

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

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

06 抓取方式不同

  • iOS 调试需要使用 xcode
  • Android 使用 adb

07 灰度发版机制不同

ios灰度机制

是将同一个包在七天内七个阶段从1%放到100%
也可以在灰度过程中,直接放到100%
在这个包发现线上 bug 的时候,可以将发包进度暂停,修正 bug 后,上传新包

谷歌灰度机制

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

08 审核机制及其他不同点

  • iOS 发包审核比较严格,经常被拒
  • iOS 没有返回键,Android 测试需要注意点击返回键后的反馈是否正确
  • iOS 比较流畅,适配测试,Android 端比较多,iOS 较少
  • 新的 iOS 系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本 iOS 系统中的应用调用了新的资源库,会直接导致闪退(Crash)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/263700
推荐阅读
相关标签
  

闽ICP备14008679号