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设备,最好能越狱,能帮我们做内测最好了,设备实在是很少啊