Android与ios对比.doc_第1页
Android与ios对比.doc_第2页
Android与ios对比.doc_第3页
Android与ios对比.doc_第4页
Android与ios对比.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android与ios对比(武汉科技大学计算机科学与技术学院,湖北武汉)摘要:本文主要对比分析Android和ios两种主要用于移动通讯设备上的操作系统的区别。本文着重介绍了Android和ios的系统架构,并对两者进行了对比。同时也介绍了两种操作系统对于开发者和用户的体验上的区别。最后对两种的市场占有做了对比和预测。关键词:android, ios, 系统架构,对比分析1. 引言自iPhone在07年初次登台将智能手机直接带向移动互联时代后,一方面智能手机普及率直线上升,另一方面整个市场目前呈现了iPhone与Android手机两强争霸的局面。iOS是由苹果公司开发的手持设备操作系统。最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。 至目前为止,android跃居全球最受欢迎的智能手机平台。在便携式设备领域,ios和android分别的优势和劣势也日益明显。2. Android与IOS系统架构对比2.1 Android系统架构Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,见图2.1分别介绍如下:图2.11)应用程序层Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。2)应用程序框架层 应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。a)Activity Manager(活动管理器) 管理各个应用程序生命周期以及通常的导航回退功能 b)Window Manager(窗口管理器) 管理所有的窗口程序c)Content Provider(内容提供器) 使得不同应用程序之间存取或者分享数据d)View System(视图系统) 构建应用程序的基本组件e)Notification Manager(通告管理器) 使得应用程序可以在状态栏中显示自定义的提示信息f)Package Manager(包管理器) Android系统内的程序管理g)Telephony Manager(电话管理器) 管理所有的移动设备功能h)Resource Manager(资源管理器) 提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等i)Location Manager(位置管理器) 提供位置服务j)XMPP Service(XMPP服务) 提供Google Talk服务3)系统运行库层 从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时,分别介绍如下:a)系统库 系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。其主要分为如下几个:Surface Manager: 执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。Media Framework: 多媒体库,基于PacketVideo OpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。SQLite: 小型的关系型数据库引擎OpenGL|ES: 根据OpenGL ES 1.0API标准实现的3D绘图函数库FreeType: 提供点阵字与向量字的描绘与显示WebKit: 一套网页浏览器的软件引擎SGL: 底层的2D图形渲染引擎SSL: 在Andorid上通信过程中实现握手Libc: 从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制b)Android运行时 Android应用程序时采用Java语言编写,程序在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分。核心库: 核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、、android.media等等。Dalvik虚拟机: Android程序不同于J2me程序,每个Android应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每个Android程序都有一个Dalivik虚拟机的实例,并在该实例中执行。Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化以及支持多个虚拟机的特点。需要注意的是,Android程序在虚拟机中执行的并非编译后的字节码,而是通过转换工具dx将Java字节码转成dex格式的中间码。4)Linux内核层 Android是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。2.2 IOS系统架构ios的系统架构分为四个层次:核心操作系统层(core OS layer)、核心服务层(Core Service layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer),见图2.2.图2.21. Core OS: 是用FreeBSD和Mach所改写的Darwin, 是开源、符合POSIX标准的一个Unix核心。这一层包含或者说是提供了整个iPhone OS的一些基础功能,比如:硬件驱动, 内存管理,程序管理,线程管理(POSIX),文件系统,网络(BSD Socket),以及标准输入输出等等,所有这些功能都会通过C语言的API来提供。另外,值得一题的是,这一层最具有UNIX色彩,如果你需要把 UNIX上所开发的程序移植到iPhone上,多半都会使用到Core OS的API.核心OS层的驱动也提供了硬件和系统框架之间的接口。然而,由于安全的考虑,只有有限的系统框架类能访问内核和驱动。2. Core Services:Core Services在Core OS基础上提供了更为丰富的功能, 它包含了Foundation.Framework和Core Foundation.Framework, 之所以叫Foundation ,就是因为它提供了一系列处理字串,排列,组合,日历,时间等等的基本功能。Foundation是属于Objective-C的API,Core Fundation是属于C的API。另外Core servieces还提供了其他的功能,比如:Security, Core Location, SQLite, 和Address Book. 其中Security是用来处理认证,密码管理,按安全性管理的; Core Location是用来处理GPS定位的;SQLLite是轻量级的数据库,而AddressBook则用来处理电话薄资料的。3. MediaMedia层提供了图片,音乐,影片等多媒体功能。图像分为2D图像和3D图像, 前者由Quartz2D来支持,后者则是用OpenglES.与音乐对应的模组是Core Audio和OpenAL, Media Player 实现了影片的播放, 而最后还提供了Core Animation来对强大动画的支持。4. Cocoa Touch最上面一层是Cocoa Touch,它是Objective-C的API, 其中最核心的部分是UIKit.Framework,应用程序界面上的各种组件,全是由它来提供呈现的,除此之外它还负责处理屏幕上的多点触摸事件,文字的输出,图片,网页的显示,相机或文件的存取,以及加速感应的部分等。2.3 Android与ios在系统架构上的对比:Android采用的是Java技术,所有应用在Dalvik虚拟机中运行,Dalvik是google专门为移动设备优化的Java虚拟机。因此Android具有成熟,存在大量可重用代码的优点,也有占内存大,运行速度略低的缺点。而Apple IOS的体系架构相对较为传统,但运行效率高,对硬件的要求低,成本优势大,在现有的硬件条件下,应用运行具有最好的顺畅感,也更加省电。系统架构朴实无华,但干净清晰,是目前最有效率的移动设备操作系统。3. 开发者体验对比:3.1 Android与ios应用开发平台的区别Android使用Java,开发工具一般使用Eclipse,大部分类库兼容原来SUN的Java SE,并且依赖于Java良好的开源性和第三方类库的支持,通过虚拟机执行。Java只能进行自动内存回收。IOS使用面向对象的C,开发工具为Xcode,其运行效率和标准C相近。显然Object C的运行效率和内存占用上好于Java,但其开发难度也远大于java。Ios使用的开发类库是诞生于MFC之前的Cocoa,开发速度快。ObjectC能进行自动与手动内存回收,而ios只能进行手动内存回收。这个问题导致google只能使用java虚拟机,而app可以继续他们在Mac OS X上的经验,而这个行为导致了流畅性的较大区别,甚至达到了数百毫秒。3.2 开发者在两个平台上收益对比目前在北美市场,苹果手机市场占有率约24%,android手机市场占有率约35%,而app store上约45%游戏是付费下载,55%是完全免费或免费下载游戏中收费模式,而android平台上这一数据大约分别是35%和65%。虽然google收费方式尚不能与苹果相比,但其市场份额可以补充其不足。苹果App Store有着完善的零售机制,其规范度高于Android应用商店。而开放和自由的Android平台,其大而全的包容性给更多的开发者提供了登陆全球性商店的机会。 目前,应用开发者的收入主要来自广告赞助和用户付费。AndroidMarket很多应用都使用了广告赞助的方式,而app store则需要付费下载。而现在,对于android开发者来说,google过于频繁地调整其统计、报表规则,和android版本升级太快是两个较大的问题。而app store也并不是十全十美,其审批时间过长对其开发者来说也是十分头痛的问题。4. 用户体验对比4.1 动画及灵敏度iOS就构架上就把动画放到了一个很基础的位置,使得其运算效率很高,直接带来的感受就是,iPhone在动画的时候极其流畅、完美,几乎感觉不到任何手机在运算动画效果时带来的延时。而 Android上即便开启最高动画效果也不能达到iPhone“无缝”、“生动有趣”的效果。iPhone的触摸屏和传感器的灵敏度也是高于Android的。在Android上总有些“划不准”的别扭感觉。对于传感器,在iOS上所能支持的传感器采集数据频率比Android上高不少(部分Android最高为25次每 秒,iPhone4则据说高达100次每秒),直接的结果就是iPhone更灵敏,这很大程度上由系统特性所决定。 但Android 也有很多iPhone所没有的华丽特效,比如HTC Sense的天气动画和日历翻页等,但在整体的连贯性上不如iPhone的自然。当然,随着Android的不断进步,HTC Sense、Samsung TouchWiz之类的定制UI及MIUI为代表的第三方定制系统在UI上的投入越来越大,Android手机的动画效果也有了很大的进步。4.2 电池续航能力iPhone有软硬一体结合的这个优势,并且iOS很多功能的裁剪(如动态桌面)都出于对续航持续时间的考虑。于此对比的,软硬分家的Android手机厂商只能通过用大号、再大号的电池或者使用更节电的屏幕来解决。 而续航能力间接接决定了一些体验,比如是否wifi常年处于开启状态,或是GPS的使用频度上。低续航的手机在使用时不得不处处小心,GPS和wifi也是开开关关,体验受损。 不过多数Android手机都是可以换电板的,从一个角度算是很大地缓解了续航问题,尽管方法不是很漂亮。而不能换电池的iPhone虽然续航上面本身还行,不过毕竟也是带来很大不方便,没电了就完全死了。此外,如果哪天如果电池出问题了只能撬后盖板换电池,再装个新的后盖板,很是费劲。所以总结下来电池问题上,Android和iPhone各有各的问题。4.3 多任务iPhone直到4.0才终于有了所谓的多任务,而Android早早就有,光是对于现在Android与ios的多任务,ios多任务也只能称之为“伪”多任务。在iPhone上,一个程序被切换掉以后便“暂停”了而不是继续在运行,Apple称之为“fast app switching”,仅仅是你换一个软件用,并能快速换回来。相比之下,从Android开山起便是基于多任务而设计的,你可以完完全全地挂着聊天软件,从各种软件里下载着东西,同时在干其他事情。在未来,多任务实质上起着比现在更加巨大得多的重要性。很多基于传感器的应用将会不断涌现,而需要不断地在后台运行采集分析数据。当由这些所开启的增强现实与智能感知类类应用程序真正深入每一个移动用户 时,多任务成为了一个再重要不过、再基础不过的Base了。除了传感器,网络服务及机会网络也同样要求着一个强大的多任务处理能力。而Apple不可能再通过穷举开放的方式来满足各种需求,相反Android却很可能能处理得很好(很多相关的研究在实现上现在都是基于Android平台的)。Android的Service功能很大程度上就是为止设计的。4.4 信息流在Android的设计中,信息成为了一种流。在整个操作的过程,在多个功能软件进行跳转操作的过程中十分圆滑通畅。在我们的日常生活中,在任何地方出现到的文字(短信、邮件、网页、书等等)以及在任何地方出现的图片(照相机、网上、邮件等等)以及任何地方出现的音频、视频,抽象而言即任何地方接触到的信息,才是我们使用手机的根本。我们使用移动设备是为了获取这些信息,处理这些信息,发布这些信息。移动设备的主角应该是信息,而不是软件本身。而软件并不是一个独立单薄的主角体存在,而是针对主角”信息流“的处理的一道过程和工具而已。可以说,这样一套哲学相比iPhone以应用程序为主角,App-based的设计理念无疑更为先进。iPhone 所代表的App-Based的设计理念是时代的产物,为手机时代到应用时代的过渡起了不可磨灭的功绩。然而,越来越多的事实证明,应用时代也已有些过时,内容时代才应当是当下的主角,而未来则应当是现实增强时代。5. 市场竞争苹果iOS设备一年一代,却仍然坚挺的霸占着相当一部分市场。而Android设备走得则是机海战术,差异化的个性满足了不同的用户。但是设备的淘汰率实在太高,最短的不到几个月。在美国智能手机市场,Android和iOS控制了71%的市场份额。截止到2011年8月底,Android美国智能手机市场份额达43.7%,较5月份增长5.6%。同一时期,iOS份额增长0.7%,至27.3%。而在欧洲智能机市场,Android已经击败iOS占据了第二位,首位为诺基亚的 Symbian系统(在欧洲Nokia的用家数量也是很庞大的)。根据调查显示,2010年7月,Android在欧洲智能机平台市场份额仅为6%,而到 了2011年7月,这一数据已经飙升到了22.3%;同一时期,苹果iOS的市场份额分别为19%和20.3%。应用方面,Appsfire根据自己的appGenome监测数据表示,截止到今年9 月份,iOS总的应用数量已达52万,活跃的应用量为49万,而Android总的应用数量为48万,但死亡率较高,活跃的为32万。而Android的 免费应用比iOS要多1.2万左右。从市场份额来说,Android借助其开放性和众多厂商已经超越了苹果,但从利润上来说,它比iOS还差得远。由于Android的免费应用多于iOS,开发者也并未捞得多少好处。据统计,iOS应用数量在稳步增长,但Android应用数量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论