iOS 系统架构及常用框架(iOS的系统架构分为四个层次)

1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多

2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer)、媒体层(Media layer)、核心服务层(Core Services layer)、核心操作系统层(Core OS layer)如图:

(1)触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。它包括以下这些组件:

Multi-Touch Events  Core Motion   Camera

View Hierarchy   Localization   Alerts

Web Views     Image Picker   Multi-Touch Controls

(2)媒体层:通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。它包括以下这些组件:

Core Audio     OpenGL    Audio Mixing

Audio Recording   Video Playback   JPG,PNG,TIFF

PDF     Quartz    Core Animation 

OpenGL ES

(3)核心服务层:我们可以通过它来访问iOS的一些服务。它包括以下这些组件:

Collections     Address Book   Networking

File Access     SQLite    Core Location

Net Services    Threading    Preferences

URL Utilities

(4)核心操作系统层包括:内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。核心操作系统层包括以下这些组件:

OS X Kernel    Mach 3.0    BSD

Sockets     Power Mgmt  File System

Keychain     Certificates   Security

Bonjour

3.Cocoa Touch简介

(1)在最上层Cocoa Touch层中的很多技术都是基于Objective-C语言的。Objective-C语言为iOS提供了集合、文件管理、网络操作等支持。比如UIKit框架,它为应用程序提供了各种可视化组件,比如像窗口(Window)、视图(View)和按钮组件(UIButton)。Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架、获取照片信息功能的框架、负责加速感应器和三维陀螺仪等硬件支持的框架。

4.应用程序的框架

应用程序项目都是从Cocoa Touch层开始的,具体来说就是从UIKit Framework开始的。当在编写程序的过程中需要用到一些特殊功能的时候,我们应该从框架的最顶端技术开始寻找相应的框架,只有在上层结构无法解决时,才能使用其下层的技术。其实,顶层的框架已经涵盖了我们绝大多数需要的功能。

                      常用的iOS SDK框架:


框架名称


功    能


AddressBook.framework


提供访问存储核心数据库中用户联系人信息的功能


AddressBookUI.framework


提供一个用户界面,用于显示存储在地址簿中的联系人信息


AudioToolbox.framework


提供音频录制和回放的底层API,同时也负责管理音频硬件


AudioUnit.framework


提供一个接口,让我们的应用程序可以对音频进行处理


AVFoundation.framework


提供音频录制和回放的底层API,同时也负责管理音频硬件


CFNetwork.framework


访问和配置网络,像HTTP、FTP和Bonjour Services


CoreFoundation.framework


提供抽象的常用数据类型,如 Unicode strings、XML、URL等


CoreGraphics.framework


提供2D绘制的基于C的API

                 续表:


框架名称


功    能


CoreLocation.framework


使用GPS和Wi-Fi获取位置信息


Foundation.framework


提供Object-C的基础类(像NSObject)、

基本数据类型和操作系统服务等


GameKit.framework


为游戏提供网络功能;点对点互联和游戏中的语音交流


MapKit.framework


为应用程序提供内嵌地图的接口


MediaPlayer.framework


提供播放视频和音频的功能


MessageUI.framework


提供视图控制接口用以处理E-mail和短信


OpenGLES.framework


提供简洁而高效的绘制2D和3D图形的OpenGL API子集


QuartzCore.framework


提供动画特效以及通过硬件进行渲染的能力


StoreKit.framework


为应用程序提供在程序运行中消费的支持


SystemConfiguration.framework


检测当前网络是否可用和硬件设备状态的能力


UIKit.framework


创建和管理应用程序的用户界面

时间: 2024-10-19 00:23:33

iOS 系统架构及常用框架(iOS的系统架构分为四个层次)的相关文章

ios系统架构及常用框架

1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media layer).核心服务层(Core Services layer).核心操作系统层(Core OS layer)如图: (1) 触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作.它包括以下这些组件: Multi-Touch Event

iOS第三方Api及常用框架总结

iOS常用框架汇总: SVProgressHUD:产生覆盖层,禁止某种操作 SDWebImage: 专业下载图片框架 AFN:网络数据请求框架 MJExtension,模型对象之间互转 facebook/pop:各种动画的实现 第三方库 :推送:继承激光推送 定位:百度地图集成 支付:支付宝 人脸识别:http://www.faceplusplus.com.cn/ 短信验证:http://sms.mob.com/#/sms 数据存储:https://leancloud.cn/?

iOS开发系列之常用框架开发集—自定义UINavitationController开发1

在实际开发过程中构建我们项目框架时为了用户体验好和个性化往往需要手势返回的功能,虽然ios7以后的系统支持这个但是系统有些不足如:支持手势返回需要ios7.0以上系统,手势非要从左边缘开始拉,触摸拉开效果不能自定义,然而我们今天就给大家开发一款支持手势返回没有系统要求(ios5.0以上),从哪里可以触摸返回可以自定义的一个导航框架. 我这个是以淘宝app的导航框架为例开发. WHC_NavigationController.h头文件如下: // // WHC_NavigationControll

iOS常用框架源码分析

SDWebImage NSCache 类似可变字典,线程安全,使用可变字典自定义实现缓存时需要考虑加锁和释放锁 在内存不足时NSCache会自动释放存储的对象,不需要手动干预 NSCache的key不会被复制,所以key不需要实现NSCopying协议 第三方框架 网络 1.PPNetworkHelper 对AFNetworking 3.x 与YYCache的二次封装 简单易用,包含了缓存机制,控制台可以直接打印json中文字符 2..YTKNetwork 猿题库研发团队基于AFNetworki

iOS开发——OC篇&常用问题解答(一)

常用问题解答 1.设置 ImagePicker 的大小 ImagePicker 在 Popover Controller 总是以默认大小显示,设置 popoverContentSize 属性似乎无用.解决办法是将ImagePicker “包含”到一个定制的 ViewController 中,然后再 presentPopover 这个 ViewController : UIViewController *containerController = [[UIViewController alloc]

Android &Swift iOS开发:语言与框架对比

转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 从Android到Swift iOS开发:语言与框架对比 我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还

Android与Swift iOS开发:语言与框架对比

Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android NDK:在树莓派上有SwiftyGPIO库,可以通过GPIO控制一些硬件. Object C is old and ugly,oc是1983年苹果推出的,过于陈旧和臃肿. Swift语法类似Scala,Javascript ES6, Java,OC, C++, Python 这是tiobe发布的编程语言排行 Swift支持

IOS开发比较实用的框架总结(上)

下拉刷新类型的框架 [EGOTableViewPullRefresh](https://github.com/enormego/EGOTableViewPullRefresh) - 最早的下拉刷新控件. [SVPullToRefresh](https://github.com/samvermette/SVPullToRefresh) - 下拉刷新控件. [MJRefresh](https://github.com/CoderMJLee/MJRefresh) - 仅需一行代码就可以为UITable

基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): 1.实现基本通信框架,包括对游戏的需求分析.设计及开发环境和通信框架的搭建: 2.实现网络底层操作,包括创建线程池.序列化网络包等: 3.实战演练,实现类似于CS反恐精英的3D对战网络游戏: 技术要点:C++面向对象思想.网络编程.Qt界面开发.Qt控件知识.Boost智能指针.STL算法.STL.