您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > android和IOS架构对比
IOSVSandroidIOS历史•1984年•乔布斯离开Apple•1996年•NeXT(六年)•2005•MacOS(两年半)•2007•iOSAndroid历史•2003年AndyRubin创建Android公司•2005年Google收购Android•2007年Android发布并建立全球性的联盟组织(34家手机制造商软件开发商和84家硬件制造商电信运营商)•2010年Linux内核大刀阔斧的改革之后,android与Linux开发主流彻底分道扬镳(android2.2/2.3)并引入C/C++NDK支持C甚至C++程序苹果iOS系统的最接近用户的层面,包括了触摸、位置服务、摄像头等应用。CocoaTouch层包含的框架•UIKit框架(UIKit.framework)•MapKit框架(MapKit.framework)•MessageUI框架(MessageUI.framework)•Foundation框架(Foundation.framework)•AddressBookUI框架•EventKitUI框架(EventKitUI.framework)•GameKit框架(GameKit.framework)•iAd框架(iAd.framework)苹果iOS的Media层主要包括了各种媒体文件的处理,主要分为图像、视频、音频三个部分的处理,这些成为iOS系统的处理内容,成为了基本的媒体应用,并且可以被各种应用调用,提高了iOS的系统性能。Media层包含的框架QuartzCore框架(QuartzCore.framework)媒体播放器框架(MediaPlayer.framework)AVFoundation框架(AVFoundation.framework)CoreGraphics框架(CoreGraphics.framework)CoreAudio(CoreAudio.framework、AudioToolbox.framework、AudioUnit.framework)CoreText框架(CoreText.framework)CoreVideo框架(CoreVideo.framework)ImageI/O框架(ImageIO.framework)OpenAL框架OpenGLES框架(OpenGLES.framework)Media层包含图形、音频、视频技术Media层媒体层包括图像、音频和视频技术,采用这些技术在手机上创建最好的多媒体体验。更重要的是,应用这些技术开发的应用将有更好的视听效果。利用iPhoneOS高层框架可以快速地创建先进的图像和动画。媒体层包括图像技术(GraphicsTechnologies,包括Quartz、CoreAnimation和OpenGLES),音频技术(AudioTechnologies,包括CoreAudio和OpenAL)和视频技术(VideoTechnologies)。iOS操作系统的CoreServices包含了多种服务,例如URL服务,还有大量的网络应用等Coreservices层CoreServices层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础。CoreServices层包含框架1.电话本2.核心基础框架(CoreFoundation.framework)核心基础框架与基础框架是紧密相关的,它们为相同的基本功能提供了Objective-C接口3.CFNetwork4.核心位置框架(CoreLocationFramework)5.安全框架(SecurityFramework)6.Sqlite7.支持XMLCoreOS层CoreOS是最为核心的系统,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互,是iOS的核心应用。事实上,iOS是基于Unix系统开发的,自然跟Unix一样了。4.核心OS层(CoreOSLayer)核心OS层包含操作系统的内核环境、驱动和基本接口。内核基于Mac操作系统,负责操作系统的各个方面。它管理虚拟内存系统、线程、文件系统、网络和内部通信。核心OS层的驱动也提供了硬件和系统框架之间的接口。然而,由于安全的考虑,只有有限的系统框架类能访问内核和驱动。iPhoneOS提供了许多访问操作系统低层功能的接口集,iPhone应用通过LibSystem库来访问这些功能,这些接口集如下所示:线程(POSIX线程);网络(BSDsockets);文件系统访问;标准I/O;Bonjour和DNS服务;区域语言相关信息(LocaleInformation);内存分配;数学计算。宏内核与微内核之争•微内核(英文中常译作µ-kernel或者microkernel)。是一种能够提供必要服务的操作系统内核;其中这些必要的服务包括任务,线程,交互进程通信(IPC,Inter-ProcessCommunication)以及内存管理等等。所有服务(包括设备驱动)在用户模式下运行,而处理这些服务同处理其他的任何一个程序一样。因为每个服务只是在自己的地址空间运行。所以这些服务之间彼此之间都受到了保护。宏内核与微内核之争•iOS是一个传统技术的操作系统。它有一个基于微内核Mach的Darwin内核,有一个叫做CocoaTouch的运行时,用的是Objective-C,这是个C语言的超集Android在Linux内核之上,集成了一个Java虚拟机Dalvik,整个应用层跑在虚拟机之上,而开发语言用的是Java内存回收机制(new/delete)•Java只有自动内存回收,而Objective-C自动与手动内存回收均可(注意iOS只有手动内存回收)。•Java由于只有自动内存回收,系统会在任意时间停掉所有进程开始回收内存,这个过程是人类可以感受到的数百毫秒。•而iOS由于可以手动管理内存,可以在用户操作的间歇由程序员进行回收,用户不会在频繁使用过程中感受到停顿。真假后台•后台运行:是指不在界面中显示,但是代码还在执行挂起:程序在内存中,但是代码不执行•iOS中的多任务并不符合这一规则,除了部分系统级应用如音乐、邮件、Safari等可以实现“真后台”外,大部分第三方应用在运行后按Home键回到首页,虽然能够在双击Home键呼出的多任务列表中看到该应用,但此应用实际已处于冻结状态,系统所做的是在用户再度切换至此应用时,为用户保持该应用退出时的状态,代码的读写已经停止。ios中程序分五个状态:活跃,不活跃(锁屏,但程序不接受事件),运行结束,后台,挂起Java独立虚拟机•Android是以Linux为核心的平台,使用Java作为编程语言。Android上的应用都是java程序,这就需要虚拟机,而Android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。Media的高优先级•iOS的响应顺序依次为Touch--Media--Service--Core架构,而Android系统的优先级响应层级则是Application--Framework--Library--Kernal架构,和显示相关的图形图像处理这一部分属于Library,属于第三级别,当你触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心屏幕响应架构iOS基于硬件加速•iOS系统对图形的各种特效处理基本上都是基于GPU硬件进行加速的,它可以不用完全借助CPU或者程序本身,而是通过GPU进行渲染以达到更流畅的操控表现。•但Android则并非如此,因为Android系统需要适应不同的手机硬件,需要满足各种差异配置,所以很多图形特效大多都要靠程序本身进行加速和渲染,并严重依赖CPU运算的操作自然会加大处理器的负荷,从而出现卡顿的问题。虽然Android4.0以及4.1等更高版本中进行了改进将硬件加速设为默认开启,但依旧无法做到所有特效全部都靠GPU进行加速。系统设计不同:安卓APP无法统一•因为iOS产品的封闭性,所以所有的APP运行对象都比较单一,因为每个应用程序都是被运行在iPhone,iPad等iOS产品当中,它们有着很高的硬件利用效率。因为iOS系统的配件供应商只有那么几家,CPU也是一年换一次,这点不像Android终端年年变月月变,开发者很难遇见未来终端分辨率会包含多少种,GPU驱动会包含哪些等等,所以相对来说Android应用开发成本较高且收益较慢。而iOS应用开发则因为软硬件垂直整合而受益,这样一来苹果自然就保证了应用本身其与硬件产品之间的完美结合程度。
本文标题:android和IOS架构对比
链接地址:https://www.777doc.com/doc-3985051 .html