分析ios框架

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


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


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.来自绑定听筒的远程控制信息



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    wo不懂阅读 1,393评论 3 3
  • 6转载-->>IOS框架和服务 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,...
    李小六_阅读 3,587评论 2 24
  • 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共...
    ch123阅读 1,743评论 0 1
  • 《美则传奇》是一本关于创业的书,但书中的观点不仅仅是对创业者有用,作为一名妈妈,我发现,书中的理论也可以运用到育儿...
    花脸喵阅读 142评论 2 3
  • 打卡第7天 这几天通过加强的注意力管理,效率有了很大提升。 我是一个比较喜欢一心多用的人,比如跑步,我会在跑步同时...
    心理咨询师余煜明阅读 219评论 0 0