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分别介绍如下:
1)应用程序层
Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。
2)应用程序框架层
a)
3)系统运行库层
a)系统库
Surface Manager:
Media Framework:
OpenGL|ES:
WebKit:
SGL:
核心库:
Dalvik虚拟机:
Android内核分析
一、 内核在操作系统中的地位Android基于Linux操作系统由硬件、系统内核、系统服务和应用程序等四大部分组成。其中内核是核心的部分,其主要作用在于与计算机硬件进行交互实现对硬件的编程控制和接口操作调度访问硬件资源同时向应用程序提供一个高级的执行环境和对硬件的虚拟接口。主要功能包括中断服务程序、进程调度程序、进程地址空间的内存管理、进程间通信。内核与普通应用程序不同,其拥有所有硬件设备的访问权限以及启动时即划分的受保护的内存空间。
二、Android内核和标准的Linux内核一样,Android内核主要实现内存管理、进程调度、进程间通信等功能。Android内核是在标准Linux内核的基础上修改而成。为了适应嵌入式硬件环境和移动应用程序的开发Android对标准Linux内核进行了一定的修改。经过与标准Linux内核源代码进行详细对比可以发现Android内核与标准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同。
文件系统不同于桌面系统与服务器移动设备大多采用的不是硬盘而是采用Flash作为存储介质,因此Android内核中增加了标准Linux内核中没有采纳的YAFFS2文件系统。YAFFS2按层次结构设计分为文件管理接口、内部实现层和NAND简化了其本身与系统的接口设计能更方便地集成到系统当中。
进程间通信机制Android增加了一种进程间的通信机制IPCBinder,Binder通过守护进程ServiceManager管理系统中的服务,负责进程间的数据交换。各进程通过Binder访问同一块共享内存以达到数据通信的机制。从应用层的角度看进程通过访问数据守护进程获取用于数据交换的程序框架接口,调用并通过接口共享数据,而其他进程要访问数据也只需与程序框架接口进行交互方便了程序员开发需要交互数据的应用程序。
内存管理在内存管理模块Android内核采用了一种不用于标准Linux内核的低内存管理策略。在标准Linux内核当中使用一种叫做OOM(OutofMemory)的低内存管理策略,当内存不足时系统检查所有的进程并对进程进行限制评分获得最高分的进程将被关闭。Android新增加了一种内存共享的处理方式Ashmem。通过Ashmem进程间可以匿名自由共享具名的内存块这种共享方式在标准Linux当中不被支持。经过分析Android内核由标准Linux内核修改而来,因此继承了Linux内核的各种优点保留了标准Linux内核的主体架构。同时Android按照移动设备的需求在文件系统、内存管理、进程间通信机制、电源管理等方面进行了修改添加相关的驱动程序和一些必要的新功能,但是与大多数精简的嵌入式Linux操作系统相比Android很大程度上保留了标准Linux的基本架构,因此Android系统应用范围更加广泛拓展性更强。
2.2 IOS系统架构
ios的系统架构分为四个层次:核心操作系统层(core OS layer)、核心服务层(Core Service layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer),见图2.2.
1.
3.
Media层提供了图片,音乐,影片等多媒体功能。图像分为2D图像和3D图像, 前者由Quartz2D来支持,后者则是用OpenglES.与音乐对应的模组是Core Audio和OpenAL, Media Player 实现了影片的播放, 而最后还提供了Core Animation来对强大动画的支持。
2.3 Android与ios在系统架构上的对比:
Android采用的是Java技术,所有应用在Dalvik虚拟机中运行,Dalvik是google专门为移动设备优化的Java虚拟机。因此Android具有成熟,存在大量可重用代码的优点,也有占内存大,运行速度略低的缺点。
而Apple IOS的体系架构相对较为传统,但运行效率高,对硬件的要求低,成本优势大,在现有的硬件条件下,应用运行具有最好的顺畅感,也更加省电。系统架构朴实无华,但干净清晰,是目前最有效率的移动设备操作系统。
Android与iOS系统架构对比相关推荐
- 移动开发(IOS) – iOS系统架构
移动开发(IOS) – iOS系统架构 1.iOS系统架构的四个层次 1.1.可触摸层(Cocoa Touch):为应用程序开发提供各种有用的框架,并且大部分均与用户界面有关,本质上来说它负责用户在i ...
- ios 边录音边放_关于Android和iOS系统OneNote支持边录音边记笔记的需求和建议
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问Android和iOS系统的OneNote什么时候能像Windows10系统里一样,支持边录音边记笔记.录音完毕后点击笔记时,能自动定位到相应的录音时 ...
- iOS系统架构及iPhone应用程序框架
1.iOS介绍 2.Framework介绍3.iOS系统架构及iPhone应⽤用程序框架 4.iOS UItouch 及触摸事件与⼿手势 iOS介绍 1. iOS 操作系统是 iPhone. iPod ...
- Android中背光系统架构
Mg Android中背光系统架构 Email:wei7758@126.com Blog:http://blog.csdn.net/yinwei520 Author:Yww Time:2011-9-2 ...
- Android和ios速度,不拼硬件拼体验 Android和iOS系统的加载速度测验
Android和iOS无疑是目前最为成功的两款手机操作系统,iOS是封闭的,只有苹果自家可以搭载使用,目前已有八代产品,最新一代产品为iPhone 6和iPhone 6 Plus.而具有开源免费优势的 ...
- android和ios系统的内存,为什么说IOS系统的2G运存相当于安卓手机的8G运存
在手机圈里,苹果手机一直都是深受欢迎的,除了性能的强大,系统做的也是非常的好,这也是为什么苹果手机用户的黏性非常高的原因之一,而在流畅度这一块,苹果手机的2G运存基本上都堪比安卓的8G了,为什么这么说 ...
- 浅谈Android和IOS系统的差异
1. 渲染机制不同 IOS的UI渲染采用实时优先级,而Android的UI渲染遵循传统电脑模式的主线程普通优先级 IOS它的响应顺序依次为Touch--Media--Service--Core架 ...
- android和ios系统的内存,WP和Saipan系统的流畅程度相当于ios,占用的内存很少,但是为什么要用Android取代它...
当涉及到WP和Symbian系统时,许可能没有听说过它,但是对于大多数关注智能手机市场增长的消费者来说,它已经为人们所熟悉,并且许已经使用了它. 当时在功能性机器上使用了Saipan系统,但是您会发现 ...
- 博客系统架构对比分析
新浪博客系统架构(http://blog.sina.com.cn): web服务器:nginx+apache cgi:php 博客应用服务器: 猜测是c++, memcachdb. 存储系统:mys ...
最新文章
- Google公开其JavaScript工具:Closure Compiler
- 出一个简单的Spring框架入门教程
- 《中国人工智能学会通讯》——2.31 跨环境抽象(Abstracting Across Environments)
- 使用Reactor进行反应式编程最全教程
- django19:项目开发流程
- 【POJ - 3159】Candies (差分约束,卡SPFA)
- SQL Sever 数据完整性
- Waiting Processed Cancelable ShowDialog (Release 2)
- 从3D Studio Max导入物体 Importing Objects From 3D Studio Max
- java 流 改变编码_JAVA IO流中字符串编码不一致问题
- Django+xadmin的安装与配置
- [Ant] [StartWithAnt] 第一章 一个简单的Ant例子
- ZZULIOJ1013
- PacketTracer简单使用】
- 图像去雾去雨去模糊去噪
- sequelize时间自动格式化
- 2021计算机一级等级考试考前冲刺模拟试题及答案(WPS Office)
- Windows 11通过WSA及ADB运行安卓应用
- 索引的数据结构--MySQL
- 关于Xcode设置网络代理