上次介绍Android操作系统,今天用5分钟继续对iOS操作系统进行简单了解。
IOS简介
IOS是苹果公司为IPhone开发的操作系统。主要是为了iphone、ipod tuch、ipad和apple let。与基于MacOSX的操作系统一样,基于Darwin。原来该系统被称为iphone OS,2010年6月7日在WWDC大会上宣布改名为iOS。
Darwin是基于Unix内核开发的,Linux是参照Unix内核开发的开源系统,所以实际上Unix和Linux是彼此相爱、不同和相似的。就像一对亲戚。
IOS开发
IOS操作系统基本上自2007年诞生以来每年都会更新大版本,每个大版本都会相应地更新新的特性和功能,如下所示:
iOS开发过程
IOS系统架构
与Android一样,iOS的系统体系结构分为四个模块。也就是说,从底部到顶部分为核心操作系统、核心服务、媒体和Cocoa Touch,4个模块与Android的4个模块实现的功能几乎一一对应。感兴趣的读者可以推翻。
iOS体系结构
Core OS核心系统层为上层提供最基本的服务,包括操作系统内核服务、本地身份认证、安全性、加速等。可以认为是达尔文的系统内核。
核心服务核心服务层为程序提供基本系统服务,包括网络访问、浏览器引擎、定位、文件访问、数据库访问等,主要包括以下框架:
Cf网络(网络访问)
核心数据(数据存储)
Core Location(定位功能)
Core Motion(重力加速度、陀螺仪)
Foundation(基本功能,如NSString)
网络工具包(浏览器引擎)
JavaScript(JavaScript引擎)
媒体层主要提供图像引擎、音频引擎和视频引擎框架
图像引擎(核心图形、核心图像、核心动画、OpenGLES)
音频引擎(Core Audio、AV Foundation、OpenAL)
视频引擎(AV基金会、核心媒体)
Cocoa Touch触摸层主要提供与用户交互相关的服务,包括界面控件、事件管理、通知中心、地图等,并包括以下框架
UIKit(与界面相关)
事件工具包(日历事件通知等)
通知中心(通知中心)
MapKit(地图显示)
Address Book(联系我们)
IAd(广告)
消息ui(显示消息和短信)
推套件(I推新推机制)
为什么iOS更流畅
我们经常听说在日常使用中iOS的使用比Android更顺畅。那么为什么会有这样的认识呢?事实上,这个iOS与Android的工作机制有关。我来分析一下为什么iOS更具流动性。
1、响应优先级不同
Ios: touch-media-service-core,第一个响应屏幕。
Android:application-framework-Library-kernal和与显示相关的图像处理属于Library,触摸屏幕后,应用程序、帧和屏幕将首先激活。
也就是说,屏幕触摸的iOS反馈优先
响应屏幕,所以会给使用者造成iOS反应快的感知,比如同一个应用iOS和Android都是2秒打开的话,iOS会先快速打开APP然后2秒钟后加载完成,而Android则是先2秒钟加载完成后才显示打开APP。虽然总耗时相同,但给用户的感知会是iOS更快。2、硬件工作配置不同
iOS:基于GPU硬件加速,可以不完全借助CPU或者程序本身,而是通过GPU进行渲染达到更流畅的操控表现。
Android:图形特效大多都要靠程序本身进行加速和渲染,并严重依赖CPU运算和操作,加大了处理器的负荷,从而出现卡顿的问题。(虽然Android高版本系统默认开启硬件加速,但无法像iOS系统一样做到系统层级的加速全部图形特效。
3、开发机制不同
iOS:Objective-C或Swift,编译器为gcc,不要虚虚拟机在中间插手,执行效率高。
Android:通过Java虚拟机来执行,系统需要占用大量内存来获取执行速度,再加上不定期的内存自动回收机制,直接导致了卡顿现象的出现。(事实上在介绍Android的文章里我们提到过Android换位ART模式后避免了虚拟机带来的弊端,启动速度已经接近于iOS)
4、系统设计不同
iOS:封闭性,所有APP运行对象比较单一,App Store。
Android:终端对象参数多变,各Android厂商的应用市场,APP管理混乱。
5、消息推送机制不同
iOS:APNs统一管理,应用不会在后台占用内存。
Android:没有统一管理机制,应用可以一直留在后台,导致内存不足。(虽然Google有官方的GCM推送机制,但国内无法使用,所以国内更多是接入各类的第三方推送,不够统一)
iOS的APP开发
- Xcode
是苹果公司开发的一款产品,提供给开发者用来开发iOSApp的集成开发环境(IDE)。Xcode只能运行与苹果系统,所以要想开发iOS App必须要有一台苹果电脑。
- Objective-C
扩充C的面向对象编程语言,1980年代初布莱德·考克斯(Brad Cox)在其公司Stepstone发明Objective-C。
- Swift
WWDC2014所发布的一门编程语言,用来编写iOS应用程序,2015年06月09日,苹果通过WWDC大会上宣布Swift开源。这意味着可以用它来进行开发跨平台的应用,现在Swift已经被评为最有前景的编程语言。