分析ios框架

很久之前就想写点什么东西,感觉总是很浮燥不够成熟,从今起为了走向自建静态库(.a 或者第三方framework,虽然这里的framework跟系统真正动态库长相一样,但仍然是静态库)开发,开始可以提供他人实用的框架,为此重温下知识 。


分析ios框架_第1张图片

Core OS: 底层处理,提供上层支撑(其中包括内核环境、驱动及操作系统底层UNIX 接口)。

 由FreeBSD和Mach所改写的Darwin, 是开源、符合POSIX标准的一个Unix核心。这一层包含或者说是提供了整个iPhone OS的一些基础功能,比如:硬件驱动, 内存管理,程序管理,线程管理(POSIX),文件系统,网络(BSD Socket),以及标准输入输出等等,所有这些功能都会通过C语言的API来提供。

iPhone OS提供了许多访问操作系统底层功能的接口集,并通过LibSystem库莱访问这些功能。如:线程、网络(sockets)、文件系统访问、标准I/O、Bonjour和DNS服务、内存分配、数学计算、区域信息。

介绍下POSIX、FreeBSD通往开发跨平台应用,有必要需要了解点背景:

POSIX表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。

POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。


FreeBSD是一种类UNIX操作系统,是由经过BSD、386BSD和4.4BSD发展而来的Unix的一个重要分支。FreeBSD 为不同架构的计算机系统提供了不同程度的支持。并且一些原来BSD UNIX的开发者后来转到FreeBSD的开发,使得FreeBSD在内部结构和系统API上和UNIX有很大的兼容性。由于FreeBSD宽松的法律条款,其代码被好多其他系统借鉴包括苹果公司的MacOS X,正因此由于MacOS X的UNIX兼容性,使得Mac OS X获得了UNIX商标认证。

Accessory.framework 、External Accessory.framework 、Security.framework


Core Services:该层提供了大量功能,比如Foundation.framework和CoreFoundation.framework.

Foundation类层次的根是NSObject类,它(和NSObject及NSCopying协议一起)定义了基本的对象属性和行为。

经常涉及运用的系统库,以及简单介绍:

AddressBook.framework

   支持编程访问存储于用户设备中的联系人信息。如果应用程序使用到联系人信息,则可通过该框架访问并修改用户联系人数据库的记录。

CFNetwork.framework

提供一组高性能基于C语言的接口,它们为使用网络协议提供面向对象抽象。

1.对协议栈进行更精细的控制,而且可以使用诸如 BSD socket这类底层结构。

2.简化FTP、HTTP服务器通讯、DNS主机解析任务

应用场景包括

1.使用SSL或TLS创建加密连接

2.使用BSD sockets

3.解析DNS主机

4.使用HTTP,校验HTTP以及HTTPS服务器。

5.使用FTP服务器

6.发布、解析并浏览 Bonjour服务。

Core Data.framework

Core Data框架是一种管理模型-视图-控制器应用程序数据模型的技术,它适用于数据模型已经高度结构化的应用程序。通过此框架,您再也不需要通过编程定义数据结构,而是通过Xcode提供的图形工具构造一份代表数据模型的图表。

CoreFoundation.framework

   是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。

Foundation.framework

Foundation框架提供Objective-C接口。如果您将Foundation对象和Core Foundation类型掺杂使用,则可利用两个框架之间的 “toll-free bridging”。所谓的Toll-free bridging是说您可以在某个框架的方法或函数同时使用Core Foundatio和Foundation 框架中的某些类型。很多数据类型支持这一特性,其中包括群体和字符串数据类型。每个框架的类和类型描述都会对某个对象是否为 toll-free bridged,应和什么对象桥接进行说明。

Core Location.framework

可用于定位某个设备当前经纬度。它可以利用设备具备的硬件,通过附近的GPS、蜂窝基站或者WiFi信号等信息计算用户方位。Maps应用程序就是利用此功能在地图上显示用户当前位置。您可以将此技术结合到应用程序,以此向用户提供方位信息。

Core Telephony.framework

此框架为访问具有蜂窝无线的设备上的电话信息提供接口,应用程序可通过它获取用户蜂窝无线服务的提供商信息。如果应用程序对于电话呼叫感兴趣,也可以在相应事件发生时得到通知

Event kit.framework

此框架为访问用户设备的日历事件提供接口。您可以通过该框架访问用户日历中现有事件,可以增加新事件。日历事件可包含闹铃,而且可以配置闹铃激活规则。目前没有定制化视图扩展功能,以往项目只能自己实现类型功能。

SystemConfiguration.framwork

可用于确定设备的网络配置。您可以使用该框架判断Wi-Fi或者蜂窝连接是否正在使用中,也可以用于判断某个主机服务是否可以使用。

Mobile Core Services.framework

此框架定义统一类型标识符 (UTIs)使用的底层类型。

QuickLook.framework

应用程序可以用过该框架预览无法直接支持查看的文件内容。如果应用程序从网络下载文件或者需处理来源未知的文件,则非常适合使用此框架。因为应用程序只要在获得文件后,调用框架提供的视图控制器就可以直接在界面中显示文件的内容。

StoreKit.framework

此框架为iOS应用程序内购买内容或服务提供支持。Store Kit 框架会处于交易过程中和财务相关的事件,包括处理用户通过 iTunes Store账号发出的支付请求并且向应用程序提供交易相关信息。


Media 媒体层 上层处理与媒体相关诸如:处理图片、视频、音频等相关操作。

AssetsLibrary.framework

框架提供一个查询界面,您可以通过它查找用户照片和数据。通过使用该框架,您可以访问Photos管理的资产,包括用户保存的相册以及导入到设备中的图片或视频。而且您也可以将照片或者视频保存到用户的相册

AVFoundation.framework

该框架包含的Objective-C 类可用于播放音频内容。通过使用该框架,您可以播放声音文件或播放内存中的音频数据,也可以同时播放多个声音,并对各个声音的播放特定进行控制

Core Audio


分析ios框架_第2张图片

Core Graphic.framework 

包含Quartz 2D绘图API接口 。Quartz 是Mac OS X系统使用的向量绘图引擎,它支持基于路径绘图、抗锯齿渲染、渐变、图片、颜色、坐标空间转换、PDF文件的创建、显示和解析。虽然API基于C语言,但是它使用基于对象的抽象以表示基本绘图对象。

Core Video.framework

该框架为Core Media提供缓存和缓存池的支持。大多数应用程序都不应该直接使用该框架

ImageIO.framework

该框架的接口可用于导入或导出图像数据及图像元数据。该框架建构于 Core Graphics数据类型和函数之上,能够支持iOS 上所有的标准图像类型。

MediaPlayer.framework

为应用程序播放视频和音频内容提供高级支持。通过该框架,您就可以使用标准系统界面播放视频。 iOS 3.0增加了对访问用户iTune库的支持。因此,您可以利用该框架播放音乐曲目、播放列表、搜索歌曲并向用户显示媒体选取界面。

OpenAL.framework

OpenAL接口是在应用程序中发布方位音频的跨平台标准。通过使用该框架,您可以在游戏或者要求有方位音频输出的程序中实现高性能、高质量的音频。OpenAL是跨平台的标准,iOS平台使用OpenAL编写的代码模块可以移植到许多其他的平台运行。

OpenGLES.framwork

提供的工具可用于绘制2D及3D内容。该框架基于C语言,能够和设备硬件紧密协作,为全屏游戏类型的应用程序提供很高的帧速率。

QuartzCore.framework

包含Core Animation接口。Core Animation是高级动画制作和混合技术,它使用经过优化的渲染路径实现复杂的动画和视觉效果。它提供的高级Objective-C接口可对动画效果进行配置,然后在设备硬件中进行渲染,以此来提高程序的性能。Core Animation框架被整合到iOS的许多部分(包括UIKit框架中的许多类(如UIView)),可以为多种系统行为提供动画效果。您也可以使用该框架中的Objective-C接口直接创建定制动画

Metal.framework  iOS8.0以后 A7 CPU架构  相当强大的处理引擎,相信会逐步取代OpenGLES。

metal技术正是可以让我们在移动端体验主机端画质的引擎。


Cocoa Touch 

包含创建 iOS应用程序所需的关键框架。上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础。在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能使用该层的框架。

AddressBookUI.framework

EventKitUI.framework

iAd.framework

GameKit.framework

MapKit.framework

MessageUI.framework

UIKit.framework   重点介绍下UIKit.framwork,虽然无时无刻不在使用它:

UIKit.framework Objective-C编程接口为实现iOS应用程序的图形及事件驱动提供关键基础。iOS系统所有程序都需要通过该框架实现下述核心功能:

1.应用程序管理

2.用户界面管理

3.图形和窗口支持

4.多任务支持

5.处理触摸及移动事件。

6.代表标准系统视图和控件的对象

7.文本和web内容相关操作

8.剪切、复制以及粘贴

9.使用动画显示用户界面内容

10.通过URL方式将其他应用程序整合到系统

11.苹果推送通知服务支持,请查看“苹果推送通知服务 ”

12.为残疾用户提供辅助功能

13.本地通知的调度和发送

14.创建PDF

15.使用定制输入视图(其行为类似系统键盘)

16.创建和系统键盘进行交互的定制文本视图

此外:UIKit还为下述和设备紧密相连的功能提供支持:

1.加速器数据

2.内置相机(存在相机的设备)

3.用户的图片库

4.设备名称和模型信息

5.电池状态信息

6.距离感应器信息

7.来自绑定听筒的远程控制信息



你可能感兴趣的:(分析ios框架)