logo资料库

Android与ios对比分析.doc

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
Android与ios对比分析
1. 引言
2. Android与IOS系统架构对比
2.1 Android系统架构
2.2 IOS系统架构
2.3 Android与ios在系统架构上的对比:
3. 开发者体验对比:
3.1 Android与ios应用开发平台的区别
3.2 开发者在两个平台上收益对比
4. 用户体验对比
4.1 动画及灵敏度
4.2 电池续航能力
4.3 多任务
4.4 信息流
5. 市场竞争
结论
参考文献
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.1 1)应用程序层 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: FreeType: 根据 OpenGL ES 1.0API 标准实现的 3D 绘图函数库 提供点阵字与向量字的描绘与显示 WebKit: 一套网页浏览器的软件引擎 SGL: SSL: Libc: 底层的 2D 图形渲染引擎 在 Andorid 上通信过程中实现握手 从 BSD 继承来的标准 C 系统函数库,专门为基于 embedded linux 的设备定制 b)Android 运行时 Android 应用程序时采用 Java 语言编写,程序在 Android 运 行时中执行,其运行时分为核心库和 Dalvik 虚拟机两部分。 核心库: 核心库提供了 Java 语言 API 中的大多数功能,同时也包含了 Android 的一些核心 API,如 android.os、android.net、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. 1. Core OS: 图 2.2 是用 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. Media Media 层提供了图片,音乐,影片等多媒体功能。图像分为 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 开
分享到:
收藏