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开发技术的核心摘要相关推荐

  1. IOS开发基础之核心动画 基础动画、关键帧、组动画案例

    IOS开发基础之核心动画 基础动画.关键帧.组动画案例 案例源码在我的主页里.实现效果图 // // ViewController.m // 30-核心动画 // // Created by 鲁军 o ...

  2. iOS开发技术-实验一-简易计算器实现

    课程名称 iOS开发技术 开发第一个Swift程序 一. 实验目的和要求 目的: 1)了解macOS程序开发过程: 2)学习使用Swift开发工具: 3)学习Swift语法: 4)体会新式语法的特点: ...

  3. iOS资源帖-优秀博客、iOS开发技术文、学习网站

    原链接:https://www.jianshu.com/p/619c61d9c8fb 一些博客 王巍 Objc中国发起人.Line工程师 ibireme YYKit作者 bang JSPatch作者 ...

  4. 干货!总结19个提升iOS开发技术的必看教程!

    2019独角兽企业重金招聘Python工程师标准>>> 又到了ibnShawari一周一篇技术推送的时间了,今天我为大家带来了iOS开发篇,绝对实用,绝对简单!!! iOS开发经典路 ...

  5. iOS开发-技术知识盘点总结(二)

    1> UINavgationController使用 导航控制器之间切换供用一块导航条! 导航条的内容由栈定控制器决定! 显示在我们眼前的永远是栈顶控制器! 左上角的返回按钮文字是特例由上一个控 ...

  6. iOS 开发技术之人脸识别

    Demo源码:https://github.com/EmyWong/PersonalUITech 前言 作为一名iOS开发人员,我觉得第一步是能够基本模仿一个APP,完成别人APP的界面搭建:第二步, ...

  7. 【最火的ios开发技术】常用工具和ios常用开源框架库

    youtube下载神器:https://github.com/rg3/youtube-dl vim插件:https://github.com/Valloric/YouCompleteMe vim插件配 ...

  8. 【ios开发技术研究】Xcode8 及iOS10适配问题整理汇总

    1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到UserN ...

  9. iOS开发 - Core Animation 核心动画

    Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现 ...

最新文章

  1. 玩转spring boot——结合阿里云持续交付
  2. 关于while read line使用read -p失效问题
  3. 对象检测目标小用什么模型好_[目标检测] YOLO4论文中文版
  4. 神经网络调参经验大汇总
  5. mqtt服务器性能H3,运用 MQTT-JMeter 插件测试 MQTT 服务器性能
  6. Greenplum【环境搭建 02】GP 数据库 web 监控工具 Greenplum Command Center v6.6.0 安装配置及问题处理(一篇学会部署配置启动 GPCC 避坑指南)
  7. 大剑无锋之UNION 和 UNION ALL (SQL)【面试推荐】
  8. java 发送数据_用JAVA模拟POST发送数据
  9. nodejs初步搭建HelloWord
  10. 所有浏览器主页惨遭篡改:http://wangzhi6.dhtz444.top/或https://www.2345.com/
  11. java 订阅 kafka_尝试从kafka(0.10版本)访问kafka(0.90版本)时订阅方法抛出错误...
  12. FLAT:又快又好的中文命名实体识别模型
  13. 高中计算机网络培训心得体会,高中老师信息技术培训心得体会
  14. vmware安装安卓android详教程,虚拟机安装安卓系统教程
  15. 如何使用谷歌“以图找图”图片搜索功能
  16. ORB-SLAM3编译问题 recipe for target ‘CMakeFiles/ORB_SLAM3.dir/src/LocalMapping.cc.o‘ failed
  17. Grafana的介绍与使用
  18. 点菜宝系统服务器无响应,点菜宝系统精典方案介绍
  19. (转载)Linux内核源代码情景分析---第四章 进程与进程调度
  20. 2022-7-27 顾宇佳 学习笔记

热门文章

  1. c语言中什么是全局变量什么是局部变量,简单解读局部变量和全局变量
  2. python操作redis数据库
  3. 华为拆分的手机品牌逆袭苹果,再证其基因厉害
  4. QC新旧七图汇总连载12——优先矩阵图
  5. mendeley中如何重复引用同一篇参考文献_如何写好科学论文
  6. 不宜妄自菲薄,引喻失义
  7. clientmacaddr进不去系统win10_Win10系统常见的蓝屏问题排查解决技巧,值得收藏!...
  8. PAT练习 挖掘机技术哪家强
  9. centos 7 安装 samba
  10. bezier曲面制作_Unity渲染——Bezier曲线(曲面)实现