BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Flash平台将支持iPhone应用开发

| 作者 张龙 关注 12 他的粉丝 发布于 2009年10月27日. 估计阅读时间: 9 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

在不久前召开的Adobe MAX 2009大会上,Adobe向与会者展示了如何通过Flash Professional CS5预览版为iPhone和iPod touch开发应用与游戏。现在读者已经可以从Apple App Store上下载这些应用了。感兴趣的用户现在可以注册以便在Flash Professional CS5正式发布后的第一时间内获得通知。

Apple iPhone是世界上最畅销的消费类电子产品。目前已经有85,000多个iPhone应用在卖了,这吸引了世界上众多消费者和开发者关注的目光。近日 Adobe Labs发布了万众期待的iPhone开发主页。对此,社区先锋Serge Jespers说到:”今年底Adobe将发布Flash Professional CS5公共beta版,开发者可以凭借该版本使用其最擅长的Flash平台工具和技术为iPhone开发应用了,而这一直是众多的Flash迷们梦寐以求的事情。“Adobe专家Mark Doerthy对此说到:

没错,我们已经将Flash平台引入到了iPhone OS上。事实上,我们已经在Apple App Store上发布了不少应用。一开始,我们还对此事采取了保密措施,但现在事实已经证明Flash能够高效运行在iPhone上而无需做任何修改。

大家可以从Apple App Store上下载这些应用尝鲜:Just LettersRed HoodChroma CircuitFickleBloxThat Roach GameTrading StuffSouth Park Avatar Creator。要想在iPhone上运行Flash可不是件容易事,结果总是会有这样或那样的限制,但很多人都向我们明确表示这可是Adobe在移动业务上的头等大事,所以我们加足马力干了一年多来实现这个需求。

Flash Professional为广大的开发者提供了新式工具,这些工具将包含在今年底发布的Flash Professional CS5公共beta版中。现在大家就可以通过Flash Player 10或是Adobe AIR 2.0 API开发移动项目了。

目前还有很多典型的iPhone特性尚未得到支持,他们是:

  • 从文件系统中选择照片
  • 从地址薄中选择联系人
  • 照相机
  • 剪切/复制/粘贴
  • 附件支持
  • 应用中的购买支持
  • 端到端支持
  • 地图
  • iPod库访问支持
  • 指南针
  • 发布通知
  • 音频/视频录制

由于工作量巨大,同时缺少对Apple公共API访问的支持,不少Flash特性被放弃了,它们是:

  • 嵌入式的HTML
  • RTMPE
  • H.264视频
  • 动态装载SWF
  • PixelBender

那Flex又如何呢?在Adobe MAX 2009上,Adobe专家专门围绕着Adobe Flex Mobile Framework(叫做”Slider“)进行了探讨。他们希望能在iPhone上高效运行该框架。届时,大家可以使用熟悉的工具、API以及核心框架进行开发了。尽管在iPhone上使用Flex没有什么技术上的难题,但目前的问题是,一旦运行你就会发现巨大的性能问题,到时候只能针对移动设备的交互重写组件了。

来自Adobe的技术专家Aditya Bansod说到:

无数的Flash开发者向我们哭诉他们是多么渴望为App Store创建应用,因此我们必须夜以继日地工作,就是为了将他们的才华和创造力带到iPhone上。在详细了解Apple的软件声明、许可等内容后,我们觉得最好的方式就是为开发者社区提供一个编译器以将SWF内容打包成为本地的iPhone应用(当然了,我们确信这么做并没有违背Apple的法律声明)。

接下来,Aditya Bansod向我们介绍了通过Flash开发iPhone应用的方式:

我们是通过Low Level Virtual Machine(LLVM)编译设备让这一切成为可能的。LLVM是个模块化、灵活的编译系统,在很多项目中都得到了广泛的应用。之所以选择LLVM的主要原因就是看中了其在iPhone开发中所表现出的灵活性和适应性。

我们创建了一个新的编译器前端,这样LLVM就能够理解ActionScript 3并通过其现有的ARM后端输出本地的ARM汇编代码,这个过程称之为预先编译(AOT),它与Adobe Flash Player和桌面上的Adobe AIR功能所使用的即时编译(JIT)正好相反。既然可以预先将ActionScript编译到ARM中,那么应用就能够获得JIT所提供的所有性能方面的优势,而最后的应用也无需运行时了。

由于我们自己实现了整个编译过程,这样开发者就可以凭借Flash技术和ActionScript 3创建应用了。在这个过程中,我们还公开了开发者所熟知的API,因此他们不仅可以使用ActionScript,还可以按照自己习惯的方式来构建应用。在为iPhone创建应用时,最终的二进制代码将不会包含解释代码和运行时。你所创建的应用就是一个完完全全的本地iPhone应用。

那么该如何为iPhone构建应用呢?其实很简单。即将发布的Adobe Flash Professional CS5 beta版包含了创建iPhone应用所需的一切。开发者可以访问几乎所有的AIR 2.0和Flash Player 10.1 API。比如可以使用RTMP、Remote Shared Objects、AMF API以及SQLite并访问文件系统。大家可以查看Adobe Labs上的开发者须知进一步了解相关信息。

首先在桌面上创建符合iPhone屏幕大小的应用。iPhone的显示大小(很多智能手机都是如此)是320 × 480。如果应用没有处在全屏模式下,那么状态栏还要占据20个像素,因此在构建应用时需要考虑到这些因素。

然后要记住,手指就是定点设备。可以使用鼠标事件(以及触摸事件)来跟踪用户的意图,但请牢记手指并非精准的定点设备。有时手指在屏幕的一边滑下来却在另一边又滑了上去。在桌面开发中经常会利用的某些行为并不一定适合于iPhone。

第三点也是最为重要的一点就是在构建应用时一定要考虑性能问题!iPhone并非桌面计算机,虽然有强大和复杂的硬件设备,但不同的设备之间还是存在着巨大的差异性的,比如内存容量以及处理能力等等。

如果具有使用Adobe Flash Lite或其他移动平台开发应用的经验,那么就可以利用其中的很多技术和技巧,比如缓存位图、限制显示列表的深度等等。为了简化高性能应用的开发,iPhone应用还可以使用增强的渲染管道(利用到了OpenGL ES),它增强了Flash渲染模型以让开发者充分利用iPhone上的GPU。通过这种渲染方式,开发者就可以修改显示对象并将其放到硬件上面。选择这种渲染方式有利也有弊,具体信息请查看Adobe Labs上的开发者须知

一旦构建好应用就可以将其部署到iPhone或是iPod touch上进行测试了。如果对自己的应用很满意,那就签上你的证书上传到iTunes Connect上吧。就是这些了,以上就是采用Flash开发iPhone应用的整个过程。

请大家持续关注InfoQ中文站对该主题的后续报道。另外,也请抽出一点时间参加InfoQ中文站的小调查。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT