iPhone开发秘籍 (第2版)1.3 理解型号差异_iPhone开发秘籍 (第2版)1.3 理解型号差异试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > iPhone开发秘籍 (第2版) > 1.3 理解型号差异

iPhone开发秘籍 (第2版)——1.3 理解型号差异

说到应用程序开发,很多iPhone应用程序从来不用考虑它们将在什么平台上运行。大多数程序只依赖于显示屏和触摸输入。你大可放心地将它们部署到目前所有的iPhone家族设备上,无需进行特别的编程,也不必关心它们在哪种平台上运行。 然而,实际平台之间仍存在差异。这些差异非常重要,并且值得注意。在决定如何告诉App Store帮助你销售软件以及在一开始如何设计软件时,这些差异有着重要的影响。应该将软件只部署到iPhone吗?部署到iPhone和第二代及以后的iPod touch?还是应该考虑使应用程序面向所有平台?下面是要考虑的一些问题。 1.3.1 摄像头 每个iPhone都带有一个摄像头,而iPod touch则没有。摄像头非常有用。可以使用摄像头拍照,然后将照片发送到Flickr或Twitter。可以使用摄像头抓图并直接对图像进行操作,等等。iPhone SDK提供了一个内置的图像采集控制器,使用户可以使用摄像头,但是它仅适用于装有摄像头的平台。视频服务仅限于3G S及以后的型号。 当构建支持摄像头的应用程序时应该清楚,不能将这种应用程序部署到iPod。摄像头服务仅限于iPhone家族产品。第一代和第二代iPhone内置的200万像素的摄像头马马虎虎。第三代iPhone的摄像头则有了很大的改进,提供了自动聚焦、微距摄影、视频录制和更好的低照度感光。 1.3.2 扬声器和麦克风 第一代iPod touch没有扬声器,而iPhone和第二代iPod touch则有扬声器。虽然第一代iPod touch支持通过底端的连接端口外接第三方扬声器,但是苹果公司将它们视作未经授权的配件,因而用得很少。 不要假定终端用户在使用应用程序时会戴上耳机。当针对第一代iPod进行设计时,应仔细考虑音频提示的作用。如果它们对于程序比较关键,则要么建议使用耳机,要么不考虑将1G iPod作为发布平台。 第二代iPod touch支持外接耳麦。第一代则不支持。如果打算部署录音应用程序,务必清楚地说明iPod需要额外的设备才能使用这些功能。 第三代iPhone 3G S提供了很多可访问性功能,包括声音控制。但是,在撰写本书之际,尚不清楚声音控制API是否向iPhone开发人员开放。 1.3.3 手机 非常明显的一点是,当收到来电时,iPhone负责处理呼叫和SMS消息的手机系统会中断应用程序。在iPhone和iPod平台上,用户确实可以随时退出应用程序,但是只有iPhone必须处理系统强制的而不是由用户选择的退出。 应考虑不同类型的中断会对应用程序产生怎样的影响。在设计软件时,应想到所有的可能性,这一点非常重要。注意,离开应用程序并非总是出于用户的选择,尤其是在iPhone上。 手机运作方式的另一个不同是,与iPod touch相比,在iPhone上有更多的东西在后台运行。这通常意味着与iPod touch相比,iPhone上的空闲内存很可能会减少。这也是使用iPhone而不是iPod touch作为主要开发设备的原因之一。由于iPhone的限制更多,在这种环境下开发的软件能够同时在iPhone和iPod touch平台上健壮地运行。 1.3.4 Core Location的差异 Core Location依赖于3种不同的方式,每种方式在给定的平台上可能可用,也可能不可用。这些方式受每种设备内置功能的限制。Wi-Fi定位扫描本地路由器,使用它们的MAC地址搜索一个中心位置数据库,所有iPhone和iPod touch平台都免费提供了这种定位方式。 蜂窝定位则依赖于天线,但是只有iPhone上才有这样的天线。这种技术利用本地蜂窝基站进行三角定位,这些基站的位置是在手机公司安装基站时就确定的。最后一种、也是最准确的一种定位方式是GPS,只有第二代和更新的iPhone才提供GPS。第一代iPhone没有内置GPS,目前所有iPod touch设备也没有提供GPS。 第三代iPhone 3G S引入了一个内置的罗盘(通过一个磁强计),并提供了用于支持它的Core Location API。 1.3.5 振动支持和接近传感器 只有iPhone提供了振动支持,振动可以为很多游戏提供触觉反馈。iPod touch没有提供振动支持,也没有包括接近传感器。在打手机期间,将iPhone靠近耳朵时,接近传感器会将屏幕变成空白。在SDK 3.0之前,理论上不能在应用程序中使用接近传感器,不过App Store中已经有很多软件使用了接近传感器,其中最突出的是移动Google应用程序(http://itunes.com/apps/googlemobileapp)。从3.0版开始,通过UIDevice类可以直接访问接近传感器的当前状态。 1.3.6 处理器速度 第二代iPod touch提供了一个532 MHz的处理器。iPod touch提供的处理能力一直是iPhone线上最高的,直到被iPhone 3G S超越,后者的处理器报告频率可达600 MHz。既要在较旧、较慢的设备上测试软件,也要在较新的设备上测试软件。应用程序的响应时间将受到所在设备的影响。 如果应用程序在较旧的平台上的响应时间不符合要求,那么要考虑提高效率。目前,App Store尚不允许从发布基站(distribution base)中排除第一代iPhone。 1.3.7 OpenGL ES OpenGL ES为2D和3D图形开发提供免版税的跨平台API。它被包括在iPhone SDK中。并不是所有型号的iPhone都提供相同的OpenGL ES支持。iPhone 3G S和更新的型号同时支持OpenGL ES 2.0和1.1。较早的型号,包括2G和3G iPhone,以及第一代和第二代iPod touch只运行OpenGL ES 1.1。2.0 API提供更好的明暗和文本支持,从而提供更高质量的图形。 为了让所有iPhone都能使用,应该只使用1.1来开发图形。利用2.0 API的应用程序只能在iPhone 3G S和其他将来的型号上使用。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《iPhone开发秘籍 (第2版)》其他试读目录

• 本章介绍
• 1.1 iPhone开发人员计划
• 1.2 开始
• 1.3 理解型号差异 [当前]
• 1.4 平台限制
• 1.5 SDK限制
• 1.6 使用开发人员门户
• 1.7 组建iPhone项目
• 1.8 iPhone应用程序组件
• 1.9 编程范例
• 1.10 小结
• 本章介绍
• 2.1 创建新项目
• 2.2 用模板构建Hello World应用程序
• 2.3 使用模拟器
• 2.4 极简单的Hello World
• 2.5 使用调试器
• 2.6 内存管理
• 2.7 秘诀:使用Instruments检测内存泄漏
• 2.8 秘诀:使用Instruments监视缓存对象的内存分配
• 2.9 使用Clang静态分析器
• 2.10 针对iPhone进行构建
• 2.11 从Xcode到iPhone:Organizer Interface
• 2.12 使用编译器指令
• 2.13 针对发布进行构建
• 2.14 清除构建
• 2.15 针对临时发布进行构建
• 2.16 定制Xcode标识
• 2.17 创建自定义Xcode模板
• 2.18 并排查看代码
• 2.19 小结