浅谈手机系统——iOS

嵌入式教程
2020-09-08 22:05
关键字: iOS dfu semitether
收藏

我们知道,iOS的原始名称是iPhone OS,它是一种类似于UNIX的商业操作系统。

而大家也都常说iOS是一个封闭式的系统,为什么这么说呢?因为iOS的系统并未开源,即闭源。

什么是开源?

开源,(Open Source)全称为开放源代码。开源系统即开放源代码的系统。开放源代码意味着大家都可以在其基础上进行修改操作。开源系统则意味着大家都可以修改这个系统。

开源并不代表着可以不重视版权,用户在使用开源产品时,不但需要说明产品来自开源软件和注明源代码编写者姓名,而且还应把所修改产品返回给开源软件,否则所修改产品就可视为侵权。

正因为iOS是闭源操作系统,所以大家不能去修改iOS这个系统,也就导致了现在iOS就是iOS,并没有什么基于iOS定制的第三方操作系统。

但有的用户通过一些手段就可以修改系统文件,达到修改主题等等自己的目的,这个方法类似于Android中的root,在iOS中,我们称之为越狱。

什么是越狱?

iOS 越狱(iOS Jailbreaking),是用于获取苹果公司便携装置操作系统iOS最高权限的一种技术手段,用户使用这种技术及软件可以获取到 iOS 的最高权限,越狱软件适用于iPhone、iPod touch、iPad及 Apple TV 第二代上的 iOS 系统。用户越狱完毕之后,可以透过如Cydia这一类包管理器,来安装 AppStore 以外的扩展软件及外观主题,或是完成越狱前不可能完成的动作,如安装Linux系统。

不完美越狱,是对 iOS 系统上越狱效果的一个描述。英文原文为 Tethered jailbreak,意为被"栓住的越狱"。不完美越狱具体表现是经过这种类型越狱的设备无法正常重启手机(失去越狱,部分系统功能失效,甚至白苹果)。

如果要恢复越狱需连接电脑进入DFU并运行之前使用的越狱工具进行引导,以使设备正常重启并开机。不完美越狱后可以安装Semitether插件来避免不完美越狱在紧急情况重启也能正常开机。不完美越狱往往依靠的是iOS设备的硬件漏洞。

说了这么多,iOS给大家的印象就是封闭的操作系统,可为什么有很多人喜欢用呢?因为iOS用起来非常流畅、丝滑。说到这,咱们不得不详细说说iOS。

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

iOS系统架构iOS的系统架构和Android一样,也分了四个模块,从底层到上层分别为Core OS、Core Services、Media、Cocoa Touch,而且四个模块跟Android的四个模块所实现的功能几乎是一一对应的。

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在换位ART模式后避免了虚拟机带来的弊端,启动速度已经接近于iOS)

4、系统设计不同iOS:封闭性,所有APP运行对象比较单一,App Store。Android:终端对象参数多变,各Android厂商的应用市场,APP管理混乱。

5、消息推送机制不同

iOS:APNs统一管理,应用不会在后台占用内存。

Android:没有统一管理机制,应用可以一直留在后台,导致内存不足。(虽然Google有官方的GCM推送机制,但国内无法使用,所以国内更多是接入各类的第三方推送,不够统一,而国内的统一推送联盟从成立后就没什么大动作。。。)

好啦,以上就是我们给大家带来的ios介绍,感兴趣的朋友可以点赞评论分享哦!后续我们会为大家分享更多好玩有趣的知识,点个关注吧!

相关推荐