iPhone-软件开发
寻找到一些IPHONE相关资料,对IPHONE app初步了解,本资源来自网络,本人手打整理和大家分享。
IPHONE 应用程序开发
Lesson I. 你好 iphone App
IPHONE OS 概览
- iPhone OS 基于Mac OSX同样的Mach内核(kernel)
- iPhone App由图示的OS技术层支撑起来
- Core OS 和Core Services层提供的底层支持,包括文件访问、网络协议、低级数据类型、Bounjour服务等
- 它们是C基础的接口,包括Core Foundation,CFNetwork SqlLite 等API
- Media层 提供了一些基本的2D,3D绘图。声音和视频技术支持
- 包括基于C的OpenGL ES, Quartz ,Core Aduio
- 以及基于Objective-C的CoreAnimation等
- Cocoa Touch 层包括了大部分使用Objective-C api
- 主要由 Foundation 和UIkit连个框架组成
- Foundation 提供了面向对象的恩见访问,网络操作数据/集合类型
- ULkit 提供了App中主要的UI 空间和控制器类等
- 在进行IPhone APP开发时,应该从上至下的使用这些技术层次
- Cocoa Touch 层提供了基本的系统行为支持,而且将您的工作量降到最低
- 当你想要实现更为复杂的行为和见面时,可以考虑下层探寻技术支持
认识IPHONE APP
-
App 核心结构
-
- 从APP被用户打开,知道它退出,都是有UIKit框架在管理者大部分的底层机制
- UIKit提供了一些程序行为所必须的关键对象,近视APP能够捕获用户输入和在屏幕上显示内容
- UIKit 使用每个App 唯一的UIApplication 对象来接受用户的输入
- 然而对用户的输入最为反馈则是我们的代码应该完成的部分
-
App的生命周期
- 启动(Launch)
- 事件循环(Event Loop)
- 终止(Termination)
-
- 事件处理周期
捕获事件->包装事件(UIEvent)->处理事件->返回显示
-
- 在主循环中处理事件
系统捕获事件->将时间传递给可以响应的对象->响应对象处理事件,或传递事件->如果事件没有被处理,则被放弃
- App 沙盒
-
- 出于安全因素的考虑,iPhone OS将各个App 分别严格的存放在文件系统的独立位置
- 这样的机制称为 ”沙盒“(Sandbox)
- 在iPhone OS 里,每个App的文件都被安全的保管起来,别的App无法访问
- App 也不能对沙盒外的文件系统,包括系统文件等进行访问
- 在App的安装过程中,系统为每个App生成它的主目录和一些关键的子目录,同城路径为:/ApplicationRoot/ApplicationID/
- APP包 APPLICATION BUNDLE
- 在编译App时,Xcode将它整理成一个包(Bundle)
- App包是文件系统中的一个目录,将相关的文件都集中放到一个地方
- App包里的主要包括了App的可执行文件和App所需要的资源文件
- APP包的典型成分
MyApp.app | 可执行文件 |
Icon.png | App图标 |
MainWidow.nib | 主装口xib文件 |
Default.png | 加载时图片 |
iTunesArtwork | iTunes图片 |
Info.plist | 配置文件 |
Resource files | 资源文件 |
INFO.PLIST
开发条件限制
Limitations in Development
- 显示面积
- 320*480,3.5英寸,162dpi
- 尽可能少而今草的界面元素
- 足够大的交互控件
- 文件大小
- 有限的存储空间
- 下载的时间和费用
- 资源加载速度
- 内存空间
- 128M,更多的程序运行控件
- 内存管理和优化
- 避免过高质量的图片和音频
- 程序运行限制
- 一次只有一个前台程序
- 不可开发后台运行程序
- 程序退出时间不得超过5秒钟
- 数据访问
- 不能使用别的App中静态类库
- 不能访问沙盒外的任何文件,也不能把沙河内的文件共享出去
- 可以通过特定的API访问一些系统自选,如图片库、地址薄等
- 在有网络连接时可以允许访问网络资源
- 能量消耗
- CPU负载
- 发热,电池消耗过快
- 算法优化
- 用户使用习惯
- 快速启动,短暂使用
- 随时可能退出
- 避免多余的“帮助”
- 自动保存