龙空技术网

天天玩手机却不了解iOS操作系统?5分钟带你扫盲

测试开发员 39368

前言:

今天看官们对“ios apns”都比较看重,看官们都想要剖析一些“ios apns”的相关内容。那么小编同时在网上收集了一些关于“ios apns””的相关内容,希望姐妹们能喜欢,朋友们快快来学习一下吧!


上次我们介绍了Android操作系统,今天我们继续花5分钟来对iOS操作系统进行一个简单的了解吧。

iOS简介

iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPodtouch、iPad以及AppleTV使用。就像其基于的MacOSX操作系统一样,它也是以Darwin为基础的。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。

Darwin是基于Unix内核开发出来的,而Linux也是参考Unix内核开发出来的开源系统,所以实际上Unix和Linux相爱相杀,又不太相同又很相似,像是一对亲戚。

iOS发展

iOS操作系统基本上从2007年诞生以来每年更新一个大版本,每个大版本会相应更新一些新的特性和功能,具体汇总如下

iOS发展历程

iOS系统架构

iOS的系统架构和Android一样,也分了四个模块,从底层到上层分别为Core OS、Core Services、Media、Cocoa Touch,而且四个模块跟Android的四个模块所实现的功能几乎是一一对应的,感兴趣的读者可以翻出Android系统架构的四个模块进行比对

iOS架构

Core OS

核心系统层提供为上层结构提供最基础的服务如操作系统内核服务、本地认证、安全、加速等。可以认为是Darwin的系统内核。

Core Services

核心服务层为程序提供基础的系统服务例如网络访问、浏览器引擎、定位、文件访问、数据库访问等,主要包含以下框架

CFNetwork(网络访问)

Core Data(数据存储)

Core Location(定位功能)

Core Motion(重力加速度,陀螺仪)

Foundation(基础功能如NSString)

Webkit(浏览器引擎)

JavaScript(JavaScript引擎)

Media

媒体层主要提供图像引擎、音频引擎、视频引擎框架

图像引擎(Core Graphics、Core Image、Core Animation、OpenGLES)

音频引擎 (Core Audio、 AV Foundation、OpenAL)

视频引擎(AV Foundation、Core Media)

Cocoa Touch

可触摸层主要提供用户交互相关的服务如界面控件、事件管理、通知中心、地图,包含以下框架

UIKit(界面相关)

EventKit(日历事件提醒等)

Notification Center(通知中心)

MapKit(地图显示)

Address Book(联系人)

iAd(广告)

Message UI(邮件与SMS显示)

PushKit(iOS8新push机制)

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已经被评为最有前景的编程语言。

标签: #ios apns