iOS系统及客户端软件测试的基础介绍
iOS系统及客户端软件测试的基础介绍 iOS现在的最新版本iOS5是10月12号推出,当前版本是4.3.5 先是硬件部分,采用iOS系统的是iPad,iPhone,iTouch这三种设备,其中iPhone和iTouch的系统基本一致,iPad区别的地方主要是分辨率尺寸上的区分
1.整个系统介绍
iOS现在的最新版本iOS5是10月12号推出,当前版本是4.3.5
先是硬件部分,采用iOS系统的是iPad,iPhone,iTouch这三种设备,其中iPhone和iTouch的系统基本一致,iPad区别的地方主要是分辨率尺寸上的区分
接着软件部分,就是常说的os部分,现在常见的系统是4.2.1/4.3.3/4.3.5/5.0.0/5.0.1,其中4.3.3以上的版本iPad版本支持手势,5.0.0以上版本支持通知栏和icloud,其中5.0.0和4.x相差较多,apple号称的修改点有200多
第三对于各个app来说,每个app都有一些固定信息,app的id(区分app的唯一标识),显示的名称(包括app安装后显示名和在appstore上的显示名),支持的iOS版本(最低支持的os版本,一般是支持iOS4.0以上,但是对于不同的app因为应用到了不同的系统功能,故要求的iOS版本也会不同,以后要求iOS5.0版本的app也会多起来的)
2.安装
1)官方的安装方式
可以PC/MAC机上下载好,然后用itunes同步到机器上,或者直接在机器上到appstore上下载到本机然后下载,这是最普通和官方的安装方式,但是只能使用已经在appstore上线的app,对于测试的版本基本无意义
2)越狱
越狱/破解,现在4.3.3版本有完美破解,以上的版本只有不完美破解,以后可能会有完美方式(注,不完美破解是不能重启机器),越狱之后的机器就可以不受限制的装各种app到机器上,对于测试版本来说比较方便
3)开发机模式
开发机模式是一个俗称,正式名字其实我也不是很清楚,大家明白即可,一个apple的发布者账户,可以支持100台设备,即可以生成100个不同SN串号的证书安装到机器上,这样发布者账户编译出来的版本就可以安装到对应的开发机上,证书可以在设置通用描述文件中找到,当然apple的发布者账户还有其他两种类型:企业账户和学生用账户,这2个账户是不能将app发布到appstore的,这里就不具体说明了
4)OTA模式
OTA不是一个新鲜的东西,以前很多的手机软件都是如此安装,可以直接从机器上访问安装地址安装,最为方便,前提是机器是破解的或者已安装开发者证书,移动这边现在基本上正在开发的项目都是有这样的安装方式,简化安装步骤
以上是一些不同的安装方式,其他还有91助手/同步助手等第三方工具安装,但是这些只是一些辅助方式区别,app能否安装取决于apple账户有没有购买过此app和此机器上有没有对应apple账户登录,购买可以认为是一种添加证书许可动作,开发者证书也是一种,而越狱则是绕过了证书验证
3.兼容性
1)硬件兼容性
三种设备中iPhone和iTouch设备基本一致,iPad因为分辨率和尺寸上不同,一般的客户端都会分开开发,如果是全兼容的app,那么需要兼顾测试,而全兼容性的app需要多考虑的是怎样在pad和phone的屏幕上设计一个兼顾型的展现,不过这是交互和视觉设计师需要考虑的地方
回到分开开发的模式中,iPhone和iTouch可以认为是同一种设备,差异很小,主要的差异也就是在来电和短信中断方面,另一个要注意的就是iPad可以安装只适用iPhone/iTouch的app,以兼容模式显示,此时基本上可以认为是在一个iTouch上运行此app
同一类设备不同机型的兼容性,一共是iPhone有5代,iPad有2代,iTouch有4代,机器之间的差异对于app来说主要就是内存和CPU的性能和打完包后的大小以及分辨率的适配,iPhone4和iTouch4及以上是用640*960分辨率,以下是低分辨率机器,4代之前之后的CPU用的不同,所以编译版本时要兼容2种CPU,而iPad只有一种分辨率和一种CPU,所以不用考虑太多,同一个app的iPhone版本往往比iPad版本的安装包文件要大,基本上就是CPU和分辨率这2种原因
就硬件兼容性来说,基本上iPhone的客户端要测2个机器(3代和4代各一,iPhone和iTouch随意),iPad客户端没有要求
2)系统兼容性
前面也说了,常见的系统是4.2.1/4.3.3/4.3.5/5.0.0/5.0.1,有条件是尽量测试,但是因为iOS版本只能往上升级,要降级需要越狱和保存SHSH,所以一般尽量保证4.3.3/4.3.5或者5.0.0/5.0.1的版本,4.x和5.x的版本据apple列了200多点,其中还有各种不确切的问题,所以一定需要测试,4.2.1版本是因为iPhone和iTouch2代只能升级到此os版本,用户量很少,而iPad的用户也只有早期且不升级的才有此os,国内用户量很少
按照apple的以往做法,支持低版本的iOS的app,都可以在高版本上正常运行,系统级别上向下兼容,但是也有不少例外,特别是一些自定义的控件,直接使用系统提供的控件一般不会有问题
系统方面的兼容性除了要保证功能正确以外,还要考虑一些新os上才支持的功能,在老os上的表现,而apple现在还在不停的更新os,故要提前保证新的beta版本os的兼容状况
3)其他软件兼容性
其实也没有什么其他软件,iOS系统中允许app调用的也只有通讯录照片浏览器等系统自带的软件,也有内嵌和重新打开界面这2种状态,而重开界面时系统会将当前软件保留,所以一般不会有界面方面的问题
4.用户体验
功能方面因为各个app都是不同的,所以就不展开了,简单的介绍下一些用户体验需要注意的地方:
滑动拖动翻页等动画效果
各个页面的旋转屏幕,特别是iPad的客户端
多点触摸手势,各种手势定义下的效果展示,以及iOS中尽量不要出现长按菜单的功能,这是android上的默认效果,iOS上长按大多是进入一个特别的状态
按钮意义要明显,如果使用了过多的文字说明,不是个好主意
5.性能
前文有介绍各种机器,因为新机器的性能往往是最好的,所以我的观点是测试就用差点的机器吧 =.=
iOS的内存管理是优先保证当前,有多少用多少,超过上限不够用直接关闭app,也就是常说的crash,自动退出,所以内存回收方面需要注意,也可以在开发机上直接监控内存使用量,不过内存监控只能看到整个app的使用量,看不到具体模块的使用,而os4.0以上每个关掉的app系统会自动保存一个最小镜像,当内存不够用的时候会连此镜像都关闭,这就是有时候开启app能看到关闭前的界面有些只能看到loading页面的原因,特别是游戏类的app会有这样的现象,另外,越狱的机器的可用内存会大约小不少
CPU部分就简单了,iOS的机制保证了CPU占用量很高的情况很少出现,一般多数据多线程时会有卡和停顿的状况就是CPU不够用了,这也只能靠设计上来避免了
CPU部分就简单了,iOS的机制保证了CPU占用量很高的情况很少出现,一般多数据多线程时会有卡和停顿的状况就是CPU不够用了,这也只能靠设计上来避免了
网络部分,主要是2g/3g/wifi的速度,但是这个性能指标要根据不同的情况来考虑,一般来说对比同类app的效果即可
6.webapp
现在杭研有不少webapp类的项目在进行,因为我只是简单的看了下,就随便说下我的理解,大家有问题尽管提
webapp的优点是开发迅速和维护简单,大部分功能是用html5来完成的,所以客户端的开发工作比较少,而且大部分功能的维护修改也只要在前端修改html代码即可,不用升级客户端版本,可以节约很多不同客户端兼容覆盖安装等工作
缺点也比较明显,功能上还是做不到和客户端一样的效果,使用时需要较多的网络流量,需要有不少工作需要前端来完成
个人觉得比较类似flash网页游戏和客户端类游戏的样子,facebook据说客户端都是采用此类方式开发,他们有一个强大的mobile web库,对于测试来说,即使是webapp,依然要向客户端类的体验靠拢
PS 很早开始写,结果这样那样的原因才完成...
PS2 iOS最近也在更新,特别是5.0新上线,更新的东西肯定会比较多,并且也在不停的吸收一些优秀设计和功能,需要跟进脚步
PS3 基本上简单的写了一些基础方面的东西,来源是最早给几个同事简单讲解ios的介绍,因为当时也没准备什么,所以可能还是写成文章清楚点
PSP 有啥问题欢迎popo评论等各种方式交流
XBOX 欢迎大家使用iOS设备,最好能越狱,能帮我们做内测最好了,设备实在是很少啊
iOS系统及客户端软件测试的基础介绍的更多相关文章
- js判断客户端是否是IOS系统
在手机端应用的开发中,经常会碰到IOS系统跟Android系统去访问同一个内容时的展示效果不同,这时候我们需要区别对待,下面代码就是用js判断手机终端是否IOS系统: //判断是否为ios系统:是IO ...
- 成都优步uber司机客户端下载-支持安卓、IOS系统、优步司机端Uberpartner
国外打车软件优步乘客端大家在手机应用商店里都可以下载到,但是优步司机的App却不好找下载地址:这就跟滴滴打车一样,滴滴的乘客端是滴滴打车,而司机端是滴滴专车,司机版本在应用商店里都找不到,原因不清楚. ...
- JS判断是否是苹果系统(ios)和安卓系统(Android)客户端
通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端.代码如下: <script type="text/javascript"> var ...
- Linux基础介绍【第二篇】
远程连接Linux的原理 SHH远程连接介绍 当前,在几乎所有的互联网企业环境中,最常用的Linux提供远程连接服务的工具就是SSH软件,SSH分为SSH客户端和SSH服务端两部分.其中,SSH服务端 ...
- iOS开发UI篇—核心动画(基础动画)
转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ...
- Node.js学习笔记(一)基础介绍
什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...
- Node.js 基础介绍
什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...
- iOS系统中导航栏的转场解决方案与最佳实践
背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...
- 《iOS开发指南:从零基础到App Store上架(第2版)》
<iOS开发指南:从零基础到App Store上架(第2版)> 基本信息 作者: 关东升 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115348029 上架时间:201 ...
随机推荐
- 洛谷.3437.[POI2006]TET-Tetris 3D(二维线段树)
题目链接 下落一个d*s的方块,则要在这个平面区域找一个最高的h' 更新整个平面区域的值为h+h' 对于本题,维护最大高度h和all 对于平面的x轴维护一棵线段树t1,每个t1的节点维护对应y轴的两棵 ...
- 潭州课堂25班:Ph201805201 爬虫基础 第十五课 js破解 二 (课堂笔记)
PyExecJs使用 PyExecJS是Ruby的ExecJS移植到Python的一个执行JS代码的库. 安装 pip install PyExecJS 例子 >>> import ...
- 潭州课堂25班:Ph201805201 第八课:函数基础和函数参数 (课堂笔记)
1, 函数定义 def fun(): print('测试函数') fun() #调用函数 return 运行函数返回值 def fun(): name = [1,3,4,5] return name[ ...
- 报错:[__NSArrayI objectAtIndex:]: index 5 beyond bounds [0 .. 4]'
报错内容:如下 分析: 遇到这种情况,说明超出了数组的范围 如要插入某组数据,但是这组数据只有10条:但是这里设置为20条.当第11个cell填充数据时就会报错, [__NSArrayI object ...
- AFN和GCD并行同步问题
链接: GCD 中组队列group与Afnetworking的结合使用 使用AFNetworking3.0实现接口异步并发 从并发编程到GCD浅述之一----任务.队列.线程复用.AFN3.0同步请求 ...
- C++泛型编程(1)--自己实现C++迭代器/遍历器 iterator
1.原理 迭代器又称为遍历器,用于访问容器中的数据,迭代器旨在算法和容器之间搭建访问的桥梁,从而使算法和数据分离,不用关心数据具体的存储细节.具体的原理描述请参考以下两个博客: [1].C++迭代器 ...
- 将控件画成圆角的效果(Delphi)
最近在做一个Delphi的项目,常常要设计软件的界面,需要将控件画成圆角矩形.在Delphi中将控件画成圆角效果,可使用CreateRoundRectRgn函数.在此写了一个通用的函数,只要在用到改变 ...
- Nodejs后台管理员登录实例
思路: 直接访问后台页面时如果无session则跳转到404 当在登录页的表单提交时对数据库进行匹配,匹配成功生成session,否则提示用户名或密码错误 准备页面 :后台首页.登录页.404页, 步 ...
- windows命令行下杀死进程的方法
xp和win7下有两个好东东tasklist和tskill.tasklist能列出所有的进程,和相应的信息.tskill能查杀进程,语法很简单:tskill程序名!或者是tskill 进程id 例如: ...
- js金额数字格式化实现代码(三位加逗号处理保留两位置小数)
工作中很常用的东西: 例1,使数字1111111变成11,111,111.00,保留两位小数. <html> <head> <script type="text ...