Toolchain及官方iPhone SDK的比较.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Toolchain与官方iPhone SDK的比较 当Jobs宣称“iPhone?SDK提供的是和苹果内部开发人员使用的相同的工具”时,他显然忘了在iPhone SDK发布之前几个月,就有人开始使用开源的Open Tool Chain工具进行iPhone软件的开发了。 ? 官方发布的iPhone SDK显然并非他们内部开发人员使用的工具,因为官方发布的SDK附加了相当多的限制:开发者必须付99美金获取代码签名、程序无法在后台运行(著名的经常被人骂的One App at a Time)以及无法使用很多低级的API等等。虽然苹果宣称这种做法是为了提高安全性以及让开发者开发过程更简便快捷,但是无疑这也同样是被开发者诟病的问题所在。 ? 本文比较了官方iPhone SDK和开源工具链的区别以及与iPhone相关的一些数据分析,以便国内开发者更好地进行iPhone软件的开发。 ? 如果你想为国内的用户开发一些基于iPhone的有用的应用软件,本文帮你分析了官方iPhone SDK和开源的工具链的区别,还帮你简单地分析了一下iPhone的市场及预测,以做为你进行iPhone开发前选择项目以及选择开发环境的参考,推荐阅读。 ? 如果您想转载本文,请务必先联系本站()。 ? API比较 ? iPhone有两层不同的框架,分别是底层API和iPhone SDK。 ? 底层API就是我们在iPhone 1.0和1.1中使用的“开源工具链”,苹果虽然自己在iPhone内置的软件中一直在使用这部分API,但是并没有在官方发布的SDK中附带这些API的定义。这部分API直接和底层的框架运行库对话。 ? “开源工具链”叫做“Open Source Toolchain”,是一些黑客及苹果爱好者通过对iPhone进行破解及修改,开发出的一套开发工具。这批黑客中的领军人物叫做Jonathan Zdziarski (/) ,他开发了第一个iPhone上的任天堂红白机模拟器。 ? 苹果官方发布的iPhone SDK则将这部分底层API进行了包装,用户的程序只能和苹果提供的iPhone SDK中定义的类进行对话,而这些类再和底层的API进行对话。最明显的例子就是OpenGL ES,苹果官方发布的iPhone SDK中的OpenGL ES实际是和底层API中CoreSurface这个框架进行对话,来实现渲染功能。 ? 苹果官方发布的iPhone SDK对底层API进行了很大的限制。官方的SDK是在某些底层API之上增加了一层针对开发者的类库,供开发者使用,而开源工具链则是使用class-dump (/projects/class-dump/) 等工具直接将iPhone手机中所有框架的类定义、分类和协议直接抠出来,这样开发者就可以通过抠出来的头文件定义直接与iPhone中的所有框架库进行对话。 ? 官方的iPhone SDK和开源工具链的API定义大概有75%是相同的,而另外的25%左右则是苹果不希望开发者使用的比较底层的API。这样,通过一些修改,这两者的代码在某些级别上是可以互相兼容的。 ? 进行iPhone破解的开发者一直致力于试图将这两者结合起来。经过他们的一些辛勤努力,通过在官方SDK中增加工具链头文件定义的方法,目前使用过去1.x工具链开发的iPhone软件,已经可以仅仅进行一些非常微小的修改,就可以在官方的SDK中编译通过了。主要的原因是苹果虽然一直在不断地修改官方的SDK,但是对于底层API的修改确是非常的小,而由于工具链直接调用底层API,因此只要官方的SDK“认识”这些API的定义,就可以直接使用。 ? 优缺点比较 ? ? 开源工具链的优点:可以开发几乎一切苹果官方iPhone SDK能做的和不能做的程序;开发平台无限制:Leopard之前的版本、Windows、Linux都可以。 ? 开源工具链的缺点:开发起来有点麻烦;目前不能使用Interface Builder制作界面;环境搭建相对麻烦。 ? 苹果官方iPhone SDK的缺点:CoreSurface(硬件显示设备)、Celestial(硬件音频设备)以及其他几乎所有和硬件相关的处理无法实现;无法开发后台运行的程序;需要代码签名才能够在真机调试;只能在Leopard 10.5.2以上版本、Inter Mac机器进行开发。 ? 苹果官方iPhone SDK的优点:开发环境几乎和开发Mac软件一样:一样的XCode、Interface Builder、Instruments工具;最新版本的iPhone SDK可以使用Interface Builder制作界面;环境搭建非常容易;需要代码签名以避免恶意软件。 ? 软件分发比较 ? 使用开源工具链开发的软件使用一个第三方工具:Installer进行发

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档