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是私有的,避免使用。- iOS开发技术的核心摘要
- 《信息分析的核心》摘要
- .NET架构的核心开发技术
- NET架构的核心开发技术
- .NET架构的核心开发技术
- .NET架构的核心开发技术
- iOS 摘要的生成
- iOS开发--核心蓝牙的使用
- 《大型网站技术架构核心原理与案例分析》---摘要
- iOS开发核心动画
- Ajax开发技术(章节摘要)
- IOS开发--iOS核心动画
- 引领虚拟币开发底层技术的核心代码是什么
- iOS 开发学习摘要: 1. 了解 iOS 的UI设计原则
- 技术摘要
- 技术摘要
- IOS 核心开发课程---学习步骤---应该掌握的知识
- IOS 核心开发课程---学习步骤---应该掌握的知识
- Best Time to Buy and Sell Stock III
- 【ACM打卡】2176
- SDL2.0超简单入门 100行代码实现播放wav声音文件
- Android PackageManagerService详细分析
- 为什么Android手机总是越用越慢?
- iOS开发技术的核心摘要
- 关于重装系统时读取不到硬盘和设置主板AHCI蓝屏问题
- HTTPS过程详解
- 有两个循环单链表,头指针分别是head1和head2,实现算法将链表head2连接到head1之后,连接后的链表仍然是循环链表的形式
- android 用aidl实现进程间的通信
- Android开发帮助文档Doc打开速度慢解决_Python篇
- poj2517And Then There Was One 约瑟夫问题
- 低功耗设计二之Bypassing(旁路)
- URAL 1057 Amount of Degrees (数位DP)