android与ios对比分析报告.docx
《android与ios对比分析报告.docx》由会员分享,可在线阅读,更多相关《android与ios对比分析报告.docx(10页珍藏版)》请在冰点文库上搜索。
android与ios对比分析报告
Android与ios对比分析
〔科技大学计算机科学与技术学院,〕
摘要:
本文主要对比分析Android和ios两种主要用于移动通讯设备上的操作系统的区别。
本文着重介绍了Android和ios的系统架构,并对两者进行了对比。
同时也介绍了两种操作系统对于开发者和用户的体验上的区别。
最后对两种的市场占有做了对比和预测。
关键词:
android,ios,系统架构,对比分析
1.引言
自iPhone在07年初次登台将智能手机直接带向移动互联时代后,一方面智能手机普与率直线上升,另一方面整个市场目前呈现了iPhone与Android手机两强争霸的局面。
iOS是由苹果公司开发的手持设备操作系统。
最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以与AppleTV等苹果产品上。
它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。
。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
20##由Google收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑与其他领域上。
至目前为止,android跃居全球最受欢迎的智能手机平台。
在便携式设备领域,ios和android分别的优势和劣势也日益明显。
2.Android与IOS系统架构对比
2.1Android系统架构
Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以与Linux核层,见图2.1分别介绍如下:
图2.1
1〕应用程序层
Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、拨号程序、图片浏览器、Web浏览器等应用程序。
这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统部的系统软件,更加灵活和个性化。
2〕应用程序框架层
应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。
a〕ActivityManager〔活动管理器〕
管理各个应用程序生命周期以与通常的导航回退功能
b〕WindowManager〔窗口管理器〕
管理所有的窗口程序
c〕ContentProvider〔容提供器〕
使得不同应用程序之间存取或者分享数据
d〕ViewSystem〔视图系统〕
构建应用程序的基本组件
e〕NotificationManager<通告管理器>
使得应用程序可以在状态栏中显示自定义的提示信息
f〕PackageManager〔包管理器〕
Android系统的程序管理
g〕TelephonyManager<管理器>
管理所有的移动设备功能
h〕ResourceManager〔资源管理器〕
提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
i〕LocationManager<位置管理器>
提供位置服务
j〕XMPPService〔XMPP服务〕
提供GoogleTalk服务
3〕系统运行库层
从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时,分别介绍如下:
a〕系统库
系统库是应用程序框架的支撑,是连接应用程序框架层与Linux核层的重要纽带。
其主要分为如下几个:
SurfaceManager:
执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。
MediaFramework:
多媒体库,基于PacketVideoOpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。
SQLite:
小型的关系型数据库引擎
OpenGL|ES:
根据OpenGLES1.0API标准实现的3D绘图函数库
FreeType:
提供点阵字与向量字的描绘与显示
WebKit:
一套网页浏览器的软件引擎
SGL:
底层的2D图形渲染引擎
SSL:
在Andorid上通信过程中实现握手
Libc:
从BSD继承来的标准C系统函数库,专门为基于embeddedlinux的设备定制
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.2IOS系统架构
ios的系统架构分为四个层次:
核心操作系统层〔coreOSlayer〕、核心服务层〔CoreServicelayer〕、媒体层〔Medialayer〕和可触摸层〔CocoaTouchlayer〕,见图2.2.
图2.2
1.CoreOS:
是用FreeBSD和Mach所改写的Darwin,是开源、符合POSIX标准的一个Unix核心。
这一层包含或者说是提供了整个iPhoneOS的一些基础功能,比如:
硬件驱动,存管理,程序管理,线程管理〔POSIX〕,文件系统,网络〔BSDSocket〕,以与标准输入输出等等,所有这些功能都会通过C语言的API来提供。
另外,值得一题的是,这一层最具有UNIX色彩,如果你需要把UNIX上所开发的程序移植到iPhone上,多半都会使用到CoreOS的API.
核心OS层的驱动也提供了硬件和系统框架之间的接口。
然而,由于安全的考虑,只有有限的系统框架类能访问核和驱动。
2.CoreServices:
CoreServices在CoreOS基础上提供了更为丰富的功能,它包含了Foundation.Framework和CoreFoundation.Framework,之所以叫Foundation,就是因为它提供了一系列处理字串,排列,组合,日历,时间等等的基本功能。
Foundation是属于Objective-C的API,CoreFundation是属于C的API。
另外Coreservieces还提供了其他的功能,比如:
Security,CoreLocation,SQLite,和AddressBook.其中Security是用来处理认证,密码管理,按安全性管理的;CoreLocation是用来处理GPS定位的;SQLLite是轻量级的数据库,而AddressBook则用来处理薄资料的。
3.Media
Media层提供了图片,音乐,影片等多媒体功能。
图像分为2D图像和3D图像,前者由Quartz2D来支持,后者则是用OpenglES.与音乐对应的模组是CoreAudio和OpenAL,MediaPlayer实现了影片的播放,而最后还提供了CoreAnimation来对强大动画的支持。
4.CocoaTouch
最上面一层是CocoaTouch,它是Objective-C的API,其中最核心的部分是UIKit.Framework,应用程序界面上的各种组件,全是由它来提供呈现的,除此之外它还负责处理屏幕上的多点触摸事件,文字的输出,图片,网页的显示,相机或文件的存取,以与加速感应的部分等。
2.3Android与ios在系统架构上的对比:
Android采用的是Java技术,所有应用在Dalvik虚拟机中运行,Dalvik是google专门为移动设备优化的Java虚拟机。
因此Android具有成熟,存在大量可重用代码的优点,也有占存大,运行速度略低的缺点。
而AppleIOS的体系架构相对较为传统,但运行效率高,对硬件的要求低,成本优势大,在现有的硬件条件下,应用运行具有最好的顺畅感,也更加省电。
系统架构朴实无华,但干净清晰,是目前最有效率的移动设备操作系统。
3.开发者体验对比:
3.1Android与ios应用开发平台的区别
Android使用Java,开发工具一般使用Eclipse,大部分类库兼容原来SUN的JavaSE,并且依赖于Java良好的开源性和第三方类库的支持,通过虚拟机执行。
Java只能进行自动存回收。
IOS使用面向对象的C,开发工具为Xcode,其运行效率和标准C相近。
显然ObjectC的运行效率和存占用上好于Java,但其开发难度也远大于java。
Ios使用的开发类库是诞生于MFC之前的Cocoa,开发速度快。
ObjectC能进行自动与手动存回收,而ios只能进行手动存回收。
这个问题导致google只能使用java虚拟机,而app可以继续他们在MacOSX上的经验,而这个行为导致了流畅性的较大区别,甚至达到了数百毫秒。
3.2开发者在两个平台上收益对比
目前在北美市场,苹果手机市场占有率约24%,android手机市场占有率约35%,而appstore上约45%游戏是付费下载,55%是完全免费或免费下载游戏中收费模式,而android平台上这一数据大约分别是35%和65%。
虽然google收费方式尚不能与苹果相比,但其市场份额可以补充其不足。
苹果AppStore有着完善的零售机制,其规度高于Android应用商店。
而开放和自由的Android平台,其大而全的包容性给更多的开发者提供了登陆全球性商店的机会。
目前,应用开发者的收入主要来自广告赞助和用户付费。
AndroidMarket很多应用都使用了广告赞助的方式,而appstore则需要付费下载。
而现在,对于android开发者来说,google过于频繁地调整其统计、报表规则,和android版本升级太快是两个较大的问题。
而appstore也并不是十全十美,其审批时间过长对其开发者来说也是十分头痛的问题。
4.用户体验对比
4.1动画与灵敏度
iOS就构架上就把动画放到了一个很基础的位置,使得其运算效率很高,直接带来的感受就是,iPhone在动画的时候极其流畅、完美,几乎感觉不到任何手机在运算动画效果时带来的延时。
而Android上即便开启最高动画效果也不能达到iPhone"无缝"、"生动有趣"的效果。
iPhone的触摸屏和传感器的灵敏度也是高于Android的。
在Android上总有些"划不准"的别扭感觉。
对于传感器,在iOS上所能支持的传感器采集数据频率比Android上高不少〔部分Android最高为25次每秒,iPhone4则据说高达100次每秒〕,直接的结果就是iPhone更灵敏,这很大程度上由系统特性所决定。
但Android也有很多iPhone所没有的华丽特效,比如HTCSense的天气动画和日历翻页等,但在整体的连贯性上不如iPhone的自然。
当然,随着Android的不断进步,HTCSense、SamsungTouchWiz之类的定制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称之为"fastappswitching",仅仅是你换一个软件用,并能快速换回来。
相比之下,从Android开山起便是基于多任务而设计的,你可以完完全全地挂着聊天软件,从各种软件里下载着东西,同时在干其他事情。
在未来,多任务实质上起着比现在更加巨大得多的重要性。
很多基于传感器的应用将会不断涌现,而需要不断地在后台运行采集分析数据。
当由这些所开启的增强现实与智能感知类类应用程序真正深入每一个移动用户时,多任务成为了一个再重要不过、再基础不过的Base了。
除了传感器,网络服务与机会网络也同样要求着一个强大的多任务处理能力。
而Apple不可能再通过穷举开放的方式来满足各种需求,相反Android却很可能能处理得很好〔很多相关的研究在实现上现在都是基于Android平台的〕。
Android的Service功能很大程度上就是为止设计的。
4.4信息流
在Android的设计中,信息成为了一种流。
在整个操作的过程,在多个功能软件进行跳转操作的过程中十分圆滑通畅。
在我们的日常生活中,在任何地方出现到的文字〔短信、、网页、书等等〕以与在任何地方出现的图片〔照相机、网上、等等〕以与任何地方出现的音频、视频,抽象而言即任何地方接触到的信息,才是我们使用手机的根本。
我们使用移动设备是为了获取这些信息,处理这些信息,发布这些信息。
移动设备的主角应该是信息,而不是软件本身。
而软件并不是一个独立单薄的主角体存在,而是针对主角"信息流"的处理的一道过程和工具而已。
可以说,这样一套哲学相比iPhone以应用程序为主角,App-based的设计理念无疑更为先进。
iPhone所代表的App-Based的设计理念是时代的产物,为手机时代到应用时代的过渡起了不可磨灭的功绩。
然而,越来越多的事实证明,应用时代也已有些过时,容时代才应当是当下的主角,而未来则应当是现实增强时代。
5.市场竞争
苹果iOS设备一年一代,却仍然坚挺的霸占着相当一部分市场。
而Android设备走得则是机海战术,差异化的个性满足了不同的用户。
但是设备的淘汰率实在太高,最短的不到几个月。
在美国智能手机市场,Android和iOS控制了71%的市场份额。
截止到20##8月底,Android美国智能手机市场份额达43.7%,较5月份增长5.6%。
同一时期,iOS份额增长0.7%,至27.3%。
而在欧洲智能机市场,Android已经击败iOS占据了第二位,首位为诺基亚的Symbian系统〔在欧洲Nokia的用家数量也是很庞大的〕。
根据调查显示,20##7月,Android在欧洲智能机平台市场份额仅为6%,而到了20##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应用数量的增长速度是iOS的两倍,或在不久的将来,Android将全面超过苹果。
当年苹果推出iPhone并一举占据第一的原因是因为这是一个革命性的产品,其成功改变了移动互联网的格局和模式,但是现在这种模式越来越多地被模仿,iOS上有的功能,Android都能做到〔原生或通过应用〕,甚至会做得更好。
而苹果产品已经被过度消费,其封闭的系统较开放的Android而言,发展要相对缓慢,其市场份额也正逐步被Android蚕食。
Android的前景被看好,因为它是开放的,并且它的生态系统正在逐步扩,而iOS封闭系统的资源迟早有被用尽的一天。
但Android的开放性也为它带来了不少的麻烦,NASDAQ、苹果、微软不断对其提出专利诉讼,令Android的发展之路出现了一些沟壑,但Android的背后是Google在支撑,再加上众多的厂商、开发者和用户的支持,Android还是有战斗力的。
结论
到目前为止,在便携式设备领域,任旧是android和ios两大巨头品分秋色。
两者分别有各自的优缺点,而大多在开发者和用户体验方面的差异是取决于两者的系统架构的,而不是在开发者本身。
当然,这两大巨头各自的开发商也在对此进行完善和修复,这将影响两者未来在市场份额和收益上的差异。
而ios的封闭性将明显限制其未来的发展,可是android的全开放则也会为它带来一系列问题。
将来这两方谁能拔得头筹,我们还需拭目以待。
参考文献
[1].该索林Googleandroid开发入门指南〔第二版〕,人民邮电
[2]超,梁泉android系统原理与开发要点详解,电子工业
[3]DevDiv移动开发社区移动开发全平台解决方案——Android/iOS/WindowsPhone海洋
[4]〔美〕丹皮洛深入浅出iPhone开发人民邮电