欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    iOS系统架构及iPhone应用程序框架解析课件.ppt

    • 资源ID:1285575       资源大小:1.66MB        全文页数:34页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    iOS系统架构及iPhone应用程序框架解析课件.ppt

    iOS系统架构及iPhone应用程序框架,iOS系统架构及iPhone应用程序框架,1.iOS介绍,3.iOS系统架构及iPhone应用程序框架,2.Framework介绍,4.iOS UItouch 及触摸事件与手势,1.iOS介绍3.iOS系统架构及iPhone应用程序框架2,iOS介绍,1. iOS 操作系统是 iPhone、 iPod touch 以及 iPad 设备的核心。,2.构建 iOS 平台的知识与 Mac OS X 系统同出一辙,iOS 平台的许多开发工具和开发技术也源自 Mac OS X。但开发者无须具备 Mac OS X 开发经验就可以编写 iOS 应用程序。iPhone 软件开发包(SDK)为着手创建 iOS 应用程序提供所需要的一切。,iOS介绍1. iOS 操作系统是 iPhone、 iPod,Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码和资源。framework 在概念上有点像 Window 下的库,但是比库更加强大,通过 framework 我们可以共享所有形式的资源,如动态共享库,nib 文件,图像字符资源以及文档等。系统会在需要的时候将 framework 载入内存中,多个应用程序可以同时使用同一个 framework,而内存中的拷贝只有一份。一个 framework 同时也是一个 bundle,我们可以在 finder 里浏览其内容,也可以在代码中通过 NSBundle 访问它。利用 framework 我们可以实现动态或静态库的功能。与动态/静态库相比,framework 有如下优势:第一,framework 能将不同类型的资源打包在一起,使之易于安装,卸载与定位;第二,framework 能够进行版本管理,这使得 framework 能不断更新并向后兼容;第三,在同一时间,即使有多个应用程序使用同一 framework,但在内存中只有一份 framework 只读资源的拷贝,这减少了对内存的占用,Framework 简介,Mac OS X 扩展了 framework 的功能,让我们,iOS系统架构及iPhone应用程序框架解析课件,iOS系统架构及应用程序框架,1. iOS架构和Mac OS的基础架构相似。站在高级层次来看,iOS 扮演底层硬件和应用程序(显示在屏幕上的应用程序)的,中介。您创建的应用程序不能直接访问硬件,而需要和系统接口进行交互。系统接口转而又去和适当的驱动打交道。这样的抽象可以防止您的应用程序改变底层硬件。,2.iOS实现可以看作是多个层的集合,底层为所有应用程序提供基础服务,高层则包含一些复杂巧妙的服务和技术。,3.在编写代码的时候,应该尽可能地使用高层框架,而不要使用底层框架。高层框架为底层构造提供面向对象的抽象。这些抽象可以减少需编写的代码行数,同时还对诸如socket和线程这些复杂功能进行封装,从而让编写代码变得更加容易。,虽说高层框架是对底层构造进行抽象,但是它并没有把底层技术屏蔽起来。如果高层框架没有为底层框架的某些功能提供接口,开发者可以直接使用底层框架。,iOS系统架构及应用程序框架1. iOS架构和Mac OS的, Cocoa Touch是iPhone OS架构中最重要层之一。它包括开发iPhone应用的关键框架,当开发iPhone应用时,开发者总是从这些框架开始,然后向下追溯到需要的较低层框 架。Cocoa Touch层主要包括UIKit框架,基础框架(Foundation Framework) CocoaTouch层为你提供了基本的系统行为支持,而且将你的工作量降到最低,当你想要实现更为复杂的行为和界面时,才考虑向下层探寻技术支持。,Cocoa Touch 层,Cocoa Touch 层,苹果iOS系统的最接近用户的层面,包括了触摸、位置服务、摄像头等应用。,苹果iOS系统的最接近用户的层面,包括了触摸、位置服务、摄像,Cocoa Touch 层包含的框架,UIKit 框架 (UIKit.framework),Map Kit 框架 (MapKit.framework),Message UI 框架 (MessageUI.framework),Foundation框架(Foundation.framework)Address Book UI 框架 (AddressBookUI.framework)Event Kit UI 框架(EventKitUI.framework)Game Kit 框架 (GameKit.framework)iAd 框架 (iAd.framework),Cocoa Touch 层包含的框架UIKit 框架 (UI,Cocoa touch层常用框架介绍,1. UIKit UIKit框架(UIKit.framework)包含Objective-C程序接口,提供实现图形,事件驱动的iPhone应用的关键架构。iPhone OS中的每一个应用采用这个框架实现如下核心功能:应用管理、支持图形与窗口、支持触摸事件处理、用户接口管理等等。,3.Map Kit框架,iOS 3.0引入该框架,该框架供一个可被嵌入到应用程序的地图界面,该界面包含一个可以滚动的地图视图。4.Message UI框架, iOS 3.0引入该框架,可以利用该框架撰写电子邮件,并将其放入到用户的发件箱排队等候发送。,5.Address Book UI 框架,可以显示创建或者编辑联系人的标准系统界面。,2.Foundation Framework支持以下功能:collection数据类型(包括Arrays、sets)、字符串管理、线程和循环、URL、Stream、Bonjour、Bundles。,Cocoa touch层常用框架介绍1. UIKit UIK,Media层包含的框架,Quartz Core 框架 (QuartzCore.framework)媒体播放器框架(MediaPlayer.framework)AV Foundation 框架 (AVFoundation.framework)Core Graphics 框架 (CoreGraphics.framework),Core Audio (CoreAudio.framework、AudioToolbox.framework、AudioUnit.framework)Core Text 框架(CoreText.framework)Core Video 框架(CoreVideo.framework)Image I/O 框架 (ImageIO.framework)OpenAL 框架,OpenGL ES 框架(OpenGLES.framework),Media层包含图形、音频、视频技术,Media层,媒体层包括图像、音频和视频技术,采用这些技术在手机上创建最好的多媒体体验。更重要的是,应用这些技术开发的应用将有更好的视听效果。利用 iPhone OS高层框架可以快速地创建先进的图像和动画。媒体层包括图像技术(Graphics Technologies,包括Quartz、Core Animation和OpenGL ES),音频技术(Audio Technologies,包括Core Audio和OpenAL)和视频技术(Video Technologies)。,Media层包含的框架Quartz Core 框架 (Qua,苹果iOS的Media层主要包括了各种媒体文件的处理,主要分为图像、视频、音频三个部分的处理,这些成为iOS系统的处理内容,成为了基本的媒体应用,并且可以被各种应用调用,提高了iOS的系统性能。,苹果iOS的Media层主要包括了各种媒体文件的处理,主要分,1.Quartz Core框架包含Core Animation接口。Core Animation是高级动画制作和混合技术,它使用经过优化的渲染路径实现复杂的动画和视觉效果。,2.媒体播放器框架 (MediaPlayer.framework)为应用程序播放视频和音频内容提供高级支持。3.AV Foundation 框架,该框架包含的Objective-C 类可用于播放音频内容。,4.Core Graphics框架 (CoreGraphics.framework)包含Quartz 2D绘图API接口 。该框架基于C接口,提供绘画功能。,Media层常用框架介绍,1.Quartz Core框架包含Core Animatio,(1)图像技术(Graphics Technologies),高质量图像是所有iPhone应用的一个重要的组成部分。任何时候,开发者可以采用UIKit 框架中已有的视图和功能以及预定义的图像来开发iPhone应用。然而,当UIKit 框架中的视图和功能不能满足需求时,开发者可以应用下面描述的技术和方法来制作视图。, Quartz,核心动画(Core Animation), OpenGL ES,(2)音频技术(Audio Technologies),iPhone OS的音频技术为用户提供了丰富的音频体验。它包括音频回放,高质量的录音和触发设备的振动功能等。iPhone OS的音频技术支持如下音频格式:AAC、Apple Lossless(ALAC)、A-law、IMA/ADPCM(IMA4)、Linear PCM、-law和Core Audio等。, 核心音频(Core Audio Family), OpenAL,(1)图像技术(Graphics Technologies),(3)视频技术(Video Technologies),iPhone OS通过媒体播放框架(MediaPlayer.framework)支持全屏视频回放。媒体播放框架支持的视频文件格式包括.mov, .mp4,.m4v和.3gp,并应用如下压缩标准: H.264 Baseline Profile Level 3.0 video,在30 f/s 的情况下分辨率达到640480像素。注意:不支持B frames; MPEG4规范的视频部分; 众多的音频格式,包含在音频技术的列表里,如AAC、Apple Lossless (ALAC)、A-law、IMA/ADPCM(IMA4)、线性PCM、-law和Core Audio等。,(3)视频技术(Video Technologies)iPh,Core services层Core Services层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础。Core Services层包含框架,1.电话本2.核心基础框架(CoreFoundation.framework)核心基础框架与基础框架是紧密相关的,它们为相同的基本功能提供了Objective-C接口3.CFNetwork4.核心位置框架(Core Location Framework)5.安全框架(Security Framework)6.Sqlite7.支持XML,Core services层1.电话本,iOS操作系统的Core Services包含了多种服务,例如URL服务,还有大量的网络应用等,iOS操作系统的Core Services包含了多种服务,例,(1)电话本电话本框架(AddressBook.framework)提供了保存在手机设备中的电话本编程接口。开发者能使用该框架访问和修改存储在用户联系人数据库里的记录。例如,一个聊天程序可以使用该框架获得可能的联系人列表,启动聊天的进程(Process),并在视图上显示这些联系人信息等。(2)核心基础框架核心基础框架(CoreFoundation.framework)是基于C语言的接口集,提供iPhone应用的基本数据管理和服务功能。该框架支持如下功能:Collection数据类型(Arrays、 Sets等);Bundles;字符串管理;日期和时间管理;原始数据块管理;首选项管理;URL和Stream操作;线程和运行循环(Run Loops);端口和Socket通信。核心基础框架与基础框架是紧密相关的,它们为相同的基本功能提供了Objective-C接口。如果开发者混合使用Foundation Objects 和Core Foundation类型,就能充分利用存在两个框架中的toll-free bridging。toll-free bridging意味着开发者能使用这两个框架中的任何一个的核心基础和基础类型,例如Collection和字符串类型等。每个框架中的类和数据类型的描述注明该对象是否支持toll-free bridged。如果是,它与哪个对象桥接(toll-free bridged)。,(1)电话本电话本框架(AddressBook.fram,(3)CFNetworkCFNetwork框架(CFNetwork.framework)是一组高性能的C语言接口集,提供网络协议的面向对象的抽象。开发者可以使用 CFNetwork框架操作协议栈,并且可以访问低层的结构如BSD Sockets等。同时,开发者也能简化与FTP和HTTP服务器的通信,或解析DNS等任务。使用CFNetwork框架实现的任务如下所示:BSD Sockets;利用SSL或TLS创建加密连接;解析DNS Hosts;解析HTTP协议,鉴别HTTP和HTTPS服务器;在FTP服务器工作;发布、解析和浏览Bonjour服务。(4)核心位置框架(Core Location Framework)核心位置框架(CoreLocation.framework)主要获得手机设备当前的经纬度,核心位置框架利用附近的GPS、蜂窝基站或Wi- Fi信号信息测量用户的当前位置。iPhone地图应用使用这个功能在地图上显示用户的当前位置。开发者能融合这个技术到自己的应用中,给用户提供一些位 置信息服务。例如可以提供一个服务:基于用户的当前位置,查找附近的餐馆、商店或设备等。,(3)CFNetworkCFNetwork框架(CFNe,(5)安全框架(Security Framework)iPhone OS除了内置的安全特性外,还提供了外部安全框架(Security.framework),从而确保应用数据的安全性。该框架提供了管理证书、公钥/私 钥对和信任策略等的接口。它支持产生加密安全的伪随机数,也支持保存在密钥链的证书和密钥。对于用户敏感的数据,它是安全的知识库(Secure Repository)。CommonCrypto接口也支持对称加密、HMAC和数据摘要。在iPhone OS里没有OpenSSL库,但是数据摘要提供的功能在本质上与OpenSSL库提供的功能是一致的。(6)SQLiteiPhone应用中可以嵌入一个小型SQL数据库SQLite,而不需要在远端运行另一个数据库服务器。开发者可以创建本地数据库文件,并管理这些文件中 的表格和记录。数据库SQLite为通用的目的而设计,但仍可以优化为快速访问数据库记录。访问数据库SQLite的头文件位 于/usr/include/sqlite3.h,其中是SDK安装的目标路径。(7)支持XML基础框架提供NSXMLParser类,解析XML文档元素。libXML2库提供操作XML内容的功能,这个开放源代码的库可以快速解析和编辑 XML数据,并且转换XML内容到HTML。访问libXML2库的头文件位于目录/usr/include /libxml2/,其中是SDK安装的目标目录。,(5)安全框架(Security Framework)i,Core OS层,Core OS是最为核心的系统,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互,是iOS的核心应用。事实上,iOS是基于Unix系统开发的,自然跟Unix一样了。,Core OS层Core OS是最为核心的系统,它包括内存管,4核心OS层(Core OS Layer)核心OS层包含操作系统的内核环境、驱动和基本接口。内核基于Mac操作系统,负责操作系统的各个方面。它管理虚拟内存系统、线程、文件系统、网络和内部 通信。核心OS层的驱动也提供了硬件和系统框架之间的接口。然而,由于安全的考虑,只有有限的系统框架类能访问内核和驱动。,iPhone OS提供了许多访问操作系统低层功能的接口集,iPhone 应用通过LibSystem库来访问这些功能,这些接口集如下所示:线程(POSIX线程);网络(BSD sockets);文件系统访问;标准I/O;Bonjour和DNS服务;区域语言相关信息(Locale Information);内存分配;数学计算。,4核心OS层(Core OS Layer)核心OS层包,UIKit的视图类 UIView类定义了视图的基本行为,但并不定义其视觉表示。相反,UIKit通过其子类来为像文本框、按键、及工具条这样的标准界面元素定义具体的外观和行为。 右图显示了所有UIKit视图类的层次框图。除了UIView和UIControl类是例外,这个框图中的大多数视图都设计为可直接使用,或者和委托对象结合使用。,UIKit的视图类,IOS之触摸事件和手势,1 事件概述事件是当用户手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象。系统将事件按照特定的路径传递给可以对其进行处理的对象。在iOS中,一个UITouch对象表示一个触摸,一个UIEvent对象表示一个事件。事件对象中包含与当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象。,响应者对象响应者对象是可以响应事件并对其进行处理的对象。UIResponder是所有响应者对象的基类,它不仅为事件处理,而且也为常见的响应者行为定义编程接口。UIApplication、UIView、和所有从UIView派生出来的UIKit类(包括UIWindow)都直接或间接地继承自UIResponder类。第一响应者是应用程序中当前负责接收触摸事件的响应者对象(通常是一个UIView对象)。UIWindow对象以消息的形式将事件发送给第一响应者,使其有机会首先处理事件。如果第一响应者没有进行处理,系统就将事件(通过消息)传递给响应者链中的下一个响应者,看看它是否可以进行处理。,IOS之触摸事件和手势 1 事件概述响应者对象,为了处理给定阶段的事件,响应者对象常常从传入的集合参数中取得一或多个UITouch 对象,然后考察这些对象的属性或取得它们的位置(如果需要处理所有触摸对象,可以向该NSSet 对象发送anyObject 消息)。UITouch 类中有一个名为locationInView:的重要方法,如果传入self 参数值,它会给出触摸动作在响应者坐标系统中的位置(假定该响应者是一个UIView 对象,且传入的视图参数不为nil)。另外,还有一个与之平行的方法,可以给出触摸动作之前位置(previousLocationInView:)。UITouch 实例的属性还可以给出发生多少次触碰(tapCount)、触摸对象的创建或最后一次变化发生在什么时间(timestamp)、以及触摸处于什么阶段(phase)。,为了处理给定阶段的事件,响应者对象常常从传入的集合参数中取得,响应者链响应链是一个响应者对象的连接序列,事件或动作消息(或菜单编辑消息)依次传递。它允许响应者对象把事件处理的职责转交给其它更高层的对象。应用程序通过向上传递一个事件来查找合适的处理对象。因为点击检测视图也是一个响应者对象,应用程序在处理触摸事件时也可以利用响应链。响应链由一系列的下一个响应者组成。,响应者链,响应者链处理原则1. 点击检测视图或者第一响应者传递事件或动作消息给它的视图控制器(如果它有的话);如果没有一个视图控制器,就传递给它的父视图。2. 如果一个视图或者它的视图控制器不能处理这个事件或动作消息,它将传递给该视图的父视图。3. 在这个视图层次中的每个后续的父视图遵循上述的模式,如果它不能处理这个事件或动作消息的话。4. 最顶层的视图如果不能处理这个事件或动作消息,就传递给UIWindow对象来处理。5. 如果UIWindow 对象不能处理,就传给单件应用程序对象UIApplication。如果应用程序对象也不能处理这个事件或动作消息,将抛弃它。,响应者链处理原则,2 触摸事件触摸信息有时间和空间两方面,时间方面的信息称为阶段(phrase),表示触摸是否刚刚开始、是否正在移动或处于静止状态,以及何时结束也就是手指何时从屏幕抬起。触摸信息还包括当前在视图或窗口中的位置信息,以及之前的位置信息(如果有的话)。当一个手指接触屏幕时,触摸就和某个窗口或视图关联在一起,这个关联在事件的整个生命周期都会得到维护。触摸事件的阶段,2 触摸事件,- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;,当手指接触屏幕时,就会调用touchesBegan:withEvent方法;当手指在屏幕上移时,动就会调用touchesMoved:withEvent方法;当手指离开屏幕时,就会调用touchesEnded:withEvent方法;当触摸被取消,就会调用touchesCancelled:withEvent方法。,上面这些方法都和特定的触摸阶段(比如UITouchPhaseBegan)相关联,该信息存在于UITouch 对象的phase 属性声明中。,- (void)touchesBegan:(NSSet *),上面的四个事件方法,在开发过程中并不要求全部实现,可以根据需要重写特定的方法。对于这4个方法,都有两个相同的参数:NSSet类型的touches和UIEvent类型的event。其中touches表示触摸产生的所有UITouch对象,而event表示特定的事件。因为UIEvent包含了整个触摸过程中所有的触摸对象,因此可以调用allTouches方法获取该事件内所有的触摸对象,也可以调用touchesForVIew:或者touchesForWindows:取出特定视图或者窗口上的触摸对象。在这几个事件中,都可以拿到触摸对象,然后根据其位置,状态,时间属性做逻辑处理。,上面的四个事件方法,在开发过程中并不要求全部实现,可以根据需,touch.phase,触摸事件的阶段。touch.tapCount,触摸事件的轻碰次数,可以判断双击事件。UIEvent 的allTouches方法,可以获得触摸点的集合,可以判断多点触摸事件。,touch.phase,触摸事件的阶段。,3 手势单碰击双碰击多点触摸(合拢和展开)轻抚 ,实例.单碰击为红色,双碰击为蓝色,self performSelector:selector(turnRed) withObject:nil afterDelay:0.10f; 是在0.1秒后调用turnRed方法。self classcancelPreviousPerformRequestsWithTarget:self selector:selector(turnRed) object:nil; 是取消调用方法turnRed,3 手势实例.单碰击为红色,双碰击为蓝色self perf,多点触摸(合拢和展开)PinchZoom轻抚.,多点触摸(合拢和展开)PinchZoom,The end,thank you!,The end,thank you!,

    注意事项

    本文(iOS系统架构及iPhone应用程序框架解析课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开