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 ...
随机推荐
- 进程间通信(IPC)
1.什么是进程间通信 通俗来讲,进程间通信就是:多个进程之间的数据交互 进程都有自己独立的虚拟地址空间,导致进程之间的数据交互变得十分困难,通信复杂了,但是安全性提高了: 进程间通信的本质:多个进程之 ...
- TFT LCD显示原理详解
<什么是液晶> 我们一般认为物体有三态:固态.液态.气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一): ...
- 洛谷P2982 [USACO10FEB]慢下来Slowing down(线段树 DFS序 区间增减 单点查询)
To 洛谷.2982 慢下来Slowing down 题目描述 Every day each of Farmer John's N (1 <= N <= 100,000) cows con ...
- 潭州课堂25班:Ph201805201 爬虫基础 第四课 Requests (课堂笔记)
优雅到骨子里的Requests 1528811134432 简介 上一篇文章介绍了Python的网络请求库urllib和urllib3的使用方法,那么,作为同样是网络请求库的Request ...
- unity小知识了解
在搜索栏的右侧有三个按钮,单击第一个按钮,弹出相应菜单,可以根据目标类型过滤搜索结果.[按钮从左到右] 第二个按钮,提供素材标签来过滤搜索结果,可以自定义标签. 第三个按钮,提供了将搜索结果添加到前面 ...
- Linux.Centos安装scp反复失败的解决方式
现象 在A服务器用scp命令从B服务器拉文件时, 报找不到scp指令的错误 在A服务器运行 scp --help 发现是有指令的 在B服务器上 常规方式, 安装openssh-clients yum ...
- 使用 IntraWeb (33) - Cookie
在 IW.HTTP.Cookie 单元提供有两个相关类: THTTPCookie.TCookieList; 另外 IWServerController 还有一个 CookieOptions 选项. 但 ...
- Linux ./configure --prefix命令
源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure).Configu ...
- 学员会诊之02:SVN协作以及Page类的设计
三层架构的学生管理系统是我们第一个稍微大型的项目:分层.一个解决方案多个Project,所以值得我们停下来好好审查审查. 1.测试SVN服务器地址 我们的作业要求学员创建自己的SVN服务器,并且将代码 ...
- Android定位&地图&导航——基于百度地图实现的定位功能
一.问题描述 LBS位置服务是android应用中重要的功能,应用越来越广泛,下面我们逐步学习和实现lbs相关的应用如定位.地图.导航等,首先我们看如何基于百度地图实现定位功能 二.配置环境 1.注册 ...