iOS开发技术的核心摘要

来源:互联网 发布:网络作家跳舞 编辑:程序博客网 时间:2024/05/21 11:32

1、iOS框架介绍

iOS演变于Mac OS X的成熟内核,但与Mac OS X相比,iOS操作系统更加高效,支持iPhone、iPad等苹果移动设备的硬件。同时iOS继承了Mac OS X的风格。

iOS框架分为Cocoa Touch、Media、Core Service、Core OS四个层次。这四个层次从上到下排列,位置越高则说明层次越抽象,距离硬件层面越远,其特点如下:

1)、框架中层次最高的是Cocoa Touch框架,是我们使用得最多的框架,每个iOS应用都要使用,其中包括:UIKit和Foundation。

2).Media框架是对iPhone音频和视频协议的封装,如,OpenGL ES、EAGL、Quartz、Core Animation、Core Audio、Open Audio Library和Media Player等。

3).Core Services框架提供了一些核心框架,诸如Address Book和Core Foundation,后者包含了基本的数据类型定义,如数组和集合。

4).Core OS框架包含了系统内核级别的服务,如线程、文件、I/O、内存和网络。

iOS的总体框架如图1所示。


图 1 iOS框架


2、系统特点

iPhone、iPad系列产品凭借其优美的设计、良好的用户体验,在近年速成为移动市场上的新宠儿。iOS系统及搭载该系统的iPhone、iPad应用程序具有以下几个特点:

1).iOS应用程序采用了“沙盒”(应用程序只能对自己的文件直接进行读、写操作)机制,严格控制了用户应用程序访问数据的权限。采用“沙盒”机制就可以使得每一个应用程序的内部文件不会轻易被外部系统、程序所修改,保证了程序的运行安全。

2).iPhone、iPad运行的时候,在任何时刻iOS系统只允许用户应用一个应用程序,我们在设计每一款APP(Application)的时候,用户通常关心的只是当前使用的程序。当用户没有退出该程序(如,按iOS设备的home键),而只是将其放置在后台的时候,此时程序将处于挂起状态。

3).iOS程序具有相对严格的内存管理规定机制,主要有手动管理和ARC(AutomaticReference Counting)两种方式。在iOS系统中,严格规定了每一个程序的最多内存限制。如果在某个程序的运行过程中,iOS系统测试到该程序占用的内存超过了系统允许其运行的最大限度,那么系统就会自动的将该进程杀死,自动将应用程序退出。虽然自从iOS 5推出了ARC,不需要开发者手动管理内存,但是开发者任然需要在程序开发过程中注意内存的使用、分配,防止内存泄露等问题的出现。

4).iOS应用程序具有严格的审查机制。苹果公司对程序的严格规定,保证了APP的流畅性、安全性等,使得每一个成功发布的APP都具有很高的可用性。对于那些不满足要求的程序(如,调用私有API、私自获取用户私有数据等),苹果公司是不允许其上传到官方的应用程序商店的。


3、iOS的开发环境

迄今为止,iOS只能在苹果的Mac OSX操作系统下进行开发。因此,对于大部分开发者而言,我们首先需要搭建开发平台和环境,此时我们需下载和安装最新版本的;还需要iOS设备来进行调试,其中包括模拟器调试和真机调试;最后,还需要借助测试工具对程序进行功能与性能的测。

iOS主要开发工具由三部分组成:开发工具、iOS模拟器、(是对iOS APP进行性能测试的一款集成在中的实用工具)。

4、开发的限制

iOS的“沙盒”、封闭等特性给它带来一些优势,如:数据安全、性能优化等,但凡事都有两面性,iOS的一些特性也使得iOS开发具有一定的局限性,主要有以下几点:

1).程序之间的数据访问限制

应用程序采用“沙盒”机制。因此,iOS移动设备上,不同的应用程序是不能直接进行数据访问和功能调用,这保证了程序的安全性,但也给开发带了不便,如果想实现两个程序之间数据的传输,只能通过特殊的(在应用程序中可配置)调用来完成,这些对程序开发者也造成了不便和影响,Android平台就可以很方便的实现不同程序之间数据的访问和功能的调用。

2).应用程序内存的限制

任何移动设备上内存都是有限的,其中也包括苹果移动设备,iOS系统不允许应用程序无止境的占用内存。当应用程序所占用内存过大,或超过了预警值,那么此时iOS系统会先在后台发出内存警告,若程序所占内存没有减下去,一旦超过预警值,则iOS系统会立刻关闭该应用程序所对应的进程,强制退出应用,这一点会让应用的用户体验大大折扣。

3).iOS私有方法调用的限制

为了方便开发者使用,iOS在开发文档中提供了iOS SDK帮助文档。iOS SDK封装了很多方法,开发者有时只需调用一个方法就能实现较为复杂的业务和效果,但SDK中不是所有的方法都能使用,其中拥有大量的私有API,通过这些API,开发者能够完成一些特殊功能或非常规的效果,如果开发的应用最终不会在苹果商店里上架(如企业类的应用一般不会上架,最终是部署在企业内网服务器上),那么使用这些API没有什么影响,如果应用需在商店上上架,那么苹果是不允许程序调用私有的API,一旦发现,那么程序就不会通过审核,所以,在这种情况下开发者须遵守iOS的开发协议,关注哪些API是私有的,避免使用。
0 0