zoukankan      html  css  js  c++  java
  • iOS 系统架构 && 常用 framework

    整理自互联网,感谢原文作者!

    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

    (补充new:可触摸层主要提供用户交互相关的服务如界面控件、事件管理、通知中心、地图,包含

    • UIKit(界面相关)
    • EventKit(日历事件提醒等)
    • Notification Center(通知中心)
    • MapKit(地图显示)
    • Address Book(联系人)
    • iAd(广告)
    • Message UI(邮件与SMS显示)
    • PushKit(iOS8新push机制)

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

    Core Audio     OpenGL    Audio Mixing
    
    Audio Recording   Video Playback   JPG,PNG,TIFF
    
    PDF     Quartz    Core Animation 
    
    OpenGL ES

    (补充new:媒体层主要提供图像引擎、音频引擎、视频引擎框架。

    • 图像引擎(Core Graphics、Core Image、Core Animation、OpenGL ES)
    • 音频引擎 (Core Audio、 AV Foundation、OpenAL)
    • 视频引擎(AV Foundation、Core Media)

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

    Collections     Address Book   Networking
    
    File Access     SQLite    Core Location
    
    Net Services    Threading    Preferences
    
    URL Utilities

    (补充new:核心服务层为程序提供基础的系统服务例如网络访问、浏览器引擎、定位、文件访问、数据库访问等,主要包含以下框架:

    • CFNetwork(网络访问)
    • Core Data(数据存储)
    • Core Location(定位功能)
    • Core Motion(重力加速度,陀螺仪)
    • Foundation(基础功能如NSString)
    • Webkit(浏览器引擎)
    • JavaScript(JavaScript引擎)

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

    OS X Kernel    Mach 3.0    BSD
    
    Sockets     Power Mgmt  File System
    
    Keychain     Certificates   Security
    
    Bonjour

    (补充new:核心系统层提供为上层结构提供最基础的服务如操作系统内核服务、本地认证、安全、加速等。

    • 操作系统内核服务(BSD sockets、I/O访问、内存申请、文件系统、数学计算等)
    • 本地认证(指纹识别验证等)
    • 安全(提供管理证书、公钥、密钥等的接口)
    • 加速 (执行数学、大数字以及DSP运算,这些接口iOS设备硬件相匹配)

    3.Cocoa Touch简介

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

    4.Framework--应用程序框架

    什么是框架?本质上来说它是帮助我们完成各种特定功能的软件库。

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

    下列表格列出了一些常用的iOS SDK框架。

                      

     常用的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

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

     
     
    参考资料:
     
  • 相关阅读:
    【学习笔记】2020寒假数据结构集训总结
    ThreadPoolExecutor源码分析
    Java并发专题(三)深入理解volatile关键字
    内部类与静态内部类
    Java并发专题(二)线程安全
    Java并发专题(一)认识线程
    Redis部署
    MySQL部署
    JDK部署
    SpringBoot+solr
  • 原文地址:https://www.cnblogs.com/qiyer/p/6139519.html
Copyright © 2011-2022 走看看