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 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中文站的小調查。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章