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

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

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

  1. ios系统架构及常用框架

    1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...

  2. iOS 系统架构及常用框架

    1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...

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

    iOS常用框架汇总: SVProgressHUD:产生覆盖层,禁止某种操作 SDWebImage: 专业下载图片框架 AFN:网络数据请求框架 MJExtension,模型对象之间互转 第三方分享第三 ...

  4. iOS学习笔记(三)——iOS系统架构

    iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch l ...

  5. iOS 常用框架介绍

    iOS框架介绍      Cocoa Touch   GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息  iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游 ...

  6. IOS学习8——常用框架学习汇总

    我们在学习和code过程中经常会用到一些框架,本文将会持续更新最新学习和用到的框架 布局框架: Masonry介绍与使用实践:快速上手Autolayout iOS MJRefresh下拉.上拉刷新自定 ...

  7. iOS常用框架源码分析

    SDWebImage NSCache 类似可变字典,线程安全,使用可变字典自定义实现缓存时需要考虑加锁和释放锁 在内存不足时NSCache会自动释放存储的对象,不需要手动干预 NSCache的key不 ...

  8. iOS学习——布局利器Masonry框架源码深度剖析

    iOS开发过程中很大一部分内容就是界面布局和跳转,iOS的布局方式也经历了 显式坐标定位方式 --> autoresizingMask --> iOS 6.0推出的自动布局(Auto La ...

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

    Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android NDK:在树莓派上有Sw ...

随机推荐

  1. 4、Semantic-UI之图标的使用

    4.1 图标的使用   在Semantic-UI中定义了很多的图标样式,这些图标样式可以通过官网查看名称(官网中名称首字母都是大写的,但是在实际使用中全部都是小写使用的): 实例:图标样式 定义基础图 ...

  2. jsonp的使用记录

    最近前端的同事说要写一个手机查看的html5页面,需要我提供数据. 这个很ok啊,立马写了个服务返回数据.但是对方调用不了,因为跨域了. 返回错误如下:  Failed to load xxxxxx: ...

  3. SSL证书 .pem转.pfx

    使用OpenSSL来进行转换 OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具.例如 http://slproweb.com/products/Win32OpenS ...

  4. 也说AOP

    前言 1.引言 2.Aop概念 3.Aop实践 4.总结 一.引言 对于初入行的小白来讲,aop,ioc这两个程序设计思想总是傻傻分不清,不知道是个什么东东?别人再一谈各种框架更是云里雾里...博主今 ...

  5. Django Manage File

    default_storage >>> from django.core.files.base import ContentFile >>> from django ...

  6. Eclipse无法正常创建android工程解决方法!

    我最近升级了安卓的SDK,升级后发现无法在Eclipse中创建android工程了,创建的工程完毕后,没有自动生成这个工程的activity和对应的布局文件,上网搜索一番,最后终于解决了.可能是升级后 ...

  7. leetcode 42. 接雨水 JAVA

    题目: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下 ...

  8. linux命令提示符[root@localhost ~]#详解

    [root@localhost ~]#   1. @之前代表当前登录用户 在Linux中管理员用户是root,还有一些普通用户: 在此例中,root代表当前登录用户   2. @之后代表当前计算机主机 ...

  9. python 序列结构-列表,元组,字典,字符串,集合

    列表 """ name_list.__add__( name_list.__getslice__( name_list.__new__( name_list.append ...

  10. python3的enumerate函数

    enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中.