安卓和IOS应用差异深圳市艾派应用系统有限公司Page2目录一、概况二、系统架构三、操作差异四、业务层面分析Page3概况IOS:2007年推出属于类Unix的商业操作系统,用Objective-c编写,拥有较多优雅之处,系统结构分为以下四个层次:核心操作系统(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),Cocoa触摸框架层(theCocoaTouchlayer)。核心理念就是“应用为王”。Ios4.0观点:1.界面和分辨率的统一性2.软件商店分级与分类细致3.塑造了良好的开发环境4.提供云服务与设备的互动Page4概况Android:2008年首次推出,是一种基于Linux的自由及开放源代码的操作系统,主要使用于便携设备,如智能手机和平板电脑。系统结构分为以下四个层次:应用程序层、应用程序框架层、系统运行库层和linux核心层。核心理念就是“开源”Android2.3观点:1.Android将成为智能手机份额第一2.Android是真正的多任务系统3.Android安装程序更简单4.android吸引众多终端厂商Page5比较各项比较IOS系统Android系统发展历史Apple以macos为核心发展而成Google以linux为核心发展而成俗称系统封闭式系统开发式系统系统限制限制多限制少上手程度稍有程度简单易懂软体副档.ipa.apk支援手机iPhone系列SAMSUNG,HTC等Page6手机系统对比表iPhone3.0Android(T-mobileG1)后台运行程序×√后台提醒√√邮件推送√√多点触控√可能电容触屏支持√√蓝牙立体声√√浏览器flash支持××叠接上网√可能U盘模式×√视频录制×√语音导航√√复制粘贴√√全局搜索√×彩信√√Webkit浏览器√√程序商店√√开源系统×√Page7系统架构Android与ios在系统架构上的对比:Android采用的是Java技术,所有应用在Dalvik虚拟机中运行,Dalvik是google专门为移动设备优化的Java虚拟机。因此Android具有成熟,存在大量可重用代码的优点,也有占内存大,运行速度略低的缺点。而AppleIOS的体系架构相对较为传统,但运行效率高,对硬件的要求低,成本优势大,在现有的硬件条件下,应用运行具有最好的顺畅感,也更加省电。系统架构朴实无华,但干净清晰,是目前最有效率的移动设备操作系统。Page8差异-返回1、物理键之返回Android手机的基本设计思路是是把最常用的功能硬件化,所以就有了home,menu,back三个功能键(其实界面设计很简单啦,就是“用户到某个地方做某事”,所以就有了导航用的back和展开命令用的menu)。2、在iOS上,返回是通过titlebar左侧的back按钮来实现的。但这样设计也有好处,因为这个back“软”键上的文本是可以改的。在这个按钮上填上上一次的题目,可以让用户明确地知道按下它会回到哪里。Page9差异-menu1、物理键之menu在android上,与当前页面相关的命令会收到由“menu”键唤出的菜单里。2、在iOS上,这些命令会放在屏幕底部的toolbar上。这种展示方式相比android的优点是“能一目了然地看到能够对当前页面做的操作”。Page10差异-通知1、通知系统在iOS上,向用户推送信息的方式只有一种,就是alertbox。这在iOS只支持单任务的时候还好说,提醒一来,哦……看完了就点确定。但到了多任务版本后就有点不合用了。虽然iOS的alertbox可以在用户使用某APP的时候弹出其他APP的提示,但这样未免太烦了。有时一些提醒并不需要强硬中断用户当前的操作,比如后台在下载的报纸下完了。2、Android有更精巧的StatusBarNotification和ToastNotification(详情可参看钟磊的手机系统消息通知设计的整理和分析和我写的如何为手机界面设计提示消息)。当要推送非紧急的消息时,Android平台可以使用更柔和的状态栏提示。Page11差异-android加分项1、长按操作在Android上,当需要对一个对象采取一些操作时,可以长按,唤出相应的contextmenu(这是对一个项目的,如果是针对当前整个页面的操作,Android有menu物理键,iOS有toolbar)。2、在iOS平台上就不太有地方去放置针对屏幕上某一个对象的大量操作(一两个是可以的,放在项目旁边就O了)。可能在乔老爷看来,当需要对一个对象进行“炒、炸、烹、煮、蒸、熏、爆”的时候,就说明你想要的太多了。Page12差异-ios加分项右上角的快捷操作按钮对于“右利手”用户而言,单手持机时屏幕左下角到右上角的连线是右手拇指的甜区。所以依照iOS的Guideline,当前页上最最最最最最最最最最最最最最常用的按钮应该放在titlebar的右端。其实你会发现,清楚了这些差异之后,如何在平台间移植APP就清晰明了啦。Page13关联Android-iOS1、在每一级的标题栏左上角加上返回上一层的按钮。按钮名一定要是上一级的名称,不能用“返回”等无法透露回到哪里的文字。2、由于iOS上没有menu键,所以需要将menu上的命令转化成toolbar上的图标。因此要额外绘制图标或者使用内置图标。3、由于在iOS上没有“长按出contextmenu”的规则,所以需要给项目添加一个detail页面。不能在list页面操纵项目,那就再drilldown一层呗。4、由于iOS的通知方式只有alertbox,所以诸如“下载完成”等提醒只能筛出重要的部分,用alertbox传递。Page14业务层面1、一般两个平台上的功能基本都是一样的,所以功能点测试case基本可以复用,在功能点上交互、UI这块两个平台稍微有点区别,但只要需求说明书中明确了具体的情况,参考需求说明书测试验证就OK。2、适配及兼容测试,向来是一个难题,安卓和IOS考虑的方式不一样,安卓重点在分辨率、操作系统,适配及兼容测试成本较高;IOS无非iphone、ipad那几款,选择主流即可。从经验上看,适配问题多出现在安卓平台上。3、IOS不支持flash和html5。Page15业务层面3、Crash测试,两个平台使用的方法不一样,安卓通过命令行定制覆盖的Activity,IOS通过monkeyrunner。这块可以学习更多,做深入研究。尤其安卓有较多ANR问题。4、性能测试,关注指标两个平台大同小异,对于指标的要求根据业务需求会有稍微的区别。5、从安卓及IOS在实现层面,针对模式、业务接入API等不同,设计不同的测试case。6、其实关注安卓和IOS的区别,不如关注不同具体的业务在IOS以及安卓上的对应API,可以做到更加精准、针对性的测试。谢谢!