Flash平台将支持iPhone应用开发

在不久前召开的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 Letters、Red Hood、Chroma Circuit、FickleBlox、That Roach Game、Trading Stuff及South 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中文站的小调查。

你可能感兴趣的:(Flash平台将支持iPhone应用开发)