前言
從2010 年到2012 年,短短兩年時間,行動網際網路的發展日新月異。行動網際網路給人們帶來的變化是全方位的,從生活到工作,一切都在變化,而且速度越來越快。對技術人員而言,身處這樣一個技術更替的大時代,面臨著挑戰的同時,也有很多機遇,在Flash 技術領域更是如此。
Flash 技術的移動之路
回首過去,Flash 技術在行動平台上走過了一段頗為曲折的道路。
在Macromedia 被Adobe 收購前,就已經著手讓Flash 技術進軍行動領域。在Flash Player 4.0 時代,Macromedia 推出了針對行動裝置的Flash Lite 解決方案,這是一個輕量級的Flash Player,支援在裝置上直接執行Flash 檔案。此時行動平台還處於諾基亞的Symbian 系統時代,軟硬體條件都和PC 相去甚遠。由於行動應用的發展緩慢,Flash Lite 並沒有取得理想的成就。到2009 年,Flash Lite 發展到3.1 版本,但一直沒有達到Adobe 的預期效果。
2007 年,iPhone 手機的橫空出世,打亂了移動市場的格局。2008 年Android 系統手機問世,隨後,行動網際網路時代就這樣" 忽如一夜春風來"。在這一時期,客觀地說,Adobe 在發展戰略上走了一些彎路,因為他們還是按照Flash 技術在PC上的發展套路,執著地在行動平台上推行Flash Player。事實上,Flash Lite 的失敗已經證明這條路很難走。好在Adobe 及時調整了方向,2009 年後將重點放在AIR上,讓AIR 支援Android、iOS 和Blackberry 等主流行動平台,走Native App 路線,為廣大的Flash 技術開發者開啟了通往行動平台的方便之門。
2010 年,Adobe 發佈了AIR 2.5 版本, 支援Android 平台和Blackberry 的
Playbook,隨後的2.6 版增加了對iOS 平台的支援。在此之後,AIR 的發展更加快速。2011 年底,Adobe 正式宣佈終止更新移動版Flash Player,集中力量發展AIR行動技術。截止到本書出版,AIR 已經到了3.2 版本,AIR 3.3 也進入了公測期。
談到AIR 在行動平台的發展歷史,筆者想到一款名為ELIPS Studio 的軟體。這款軟體出自一家法國的公司OpenPlug(發佈於2009 年,比AIR 2.5 還早),是以Flash平台為基礎的行動解決方案,為Flash 開發者提供了跨平台的開發環境,並能夠將Flash 技術運用到Android、iOS、Windows Mobile 等平台上。2010 年,這家公司被跨國公司阿爾卡特朗訊(Alcatel-Lucent)收購。不過,當AIR 完成了行動平台的佈局後,OpenPlug 的技術優勢已不復存在,畢竟他們的產品都是以Flash 技術,無法和Adobe 抗衡。不久之後,阿爾卡特朗訊宣佈終止更新OpenPlug 產品,這也就在意料之中了。OpenPlug 固然是曇花一現,但從中可以得出一個結論:Flash 技術走向行動平台確實適應了市場為基礎的需求。
本書目標讀者
如果你開發過AIR 桌面程式,想知道如何將程式移植到Android 平台上,本書非常適合你。
如果你了解ActionScript 3.0 程式語言並用它撰寫過程式,現在又想為Android 裝置開發行動應用,這本書值得你一讀。
如果你開發了一款Flash Web 程式,想知道如何將程式移植到Android 平台上,這本書裡有你需要的東西。
如果你想為Android、iOS 或Playbook 開發跨平台的移動程式,本書提供一些不錯的技巧和建議。
需要說明的是,這是一本關於AIR Android 開發的教學,不是ActionScript 3.0 的入門教學,也不是AIR 開發的入門教學,更不是Android SDK 開發的入門教學。當然,書中有關一些Android SDK 的內容,可幫助你加快Android SDK 的學習進度。只要你有ActionScript 3.0 開發經驗,閱讀這本書就一定沒問題。
本書包含的內容
本書共包含16 章,分為5 個部分:
準備篇(第1 ~ 2 章) 主要介紹了AIR Android 開發需要做哪些準備,如何架設開發環境,並撰寫了一個簡單的應用程式。透過這部分讓讀者了解行動技術的優勢和侷限。
基礎篇(第3 ~ 10 章) 介紹了AIR 行動開發的基礎技術,包含行動裝置上的使用者對話模式、加速計的使用、地理定位功能、存取裝置資源、網路通訊、檔案和資料庫等,涵蓋了行動開發的各方面,另外,程式的偵錯和發佈也是行動開發的一個重要組成部分。
進階篇(第11 ~ 13 章) 和桌面開發相比,行動開發的重點和困難在哪裡?如何針對裝置進行介面設計?如何加強使用者體驗?更重要的是,在行動裝置上,如何提升程式效能?在這部分,筆者結合自己的開發經驗,分享了很多具有實際意義的技巧和方法。
實戰篇(第14 ~ 15 章) 用兩個章節的篇幅詳細介紹了一款遊戲的開發過程,將AIR 行動技術和Flash Web 技術靈活結合起來,展現Flash 技術在行動平台上的極大潛力。
進階篇(第16 章) 介紹AIR 3.0 的新特色—本機擴充。本機擴充為AIR 技術提供了超強的擴充能力,使得開發者可以擺脫AIR 的技術局限性。
如何使用原始程式碼
讀者可登入http://www.topteam.cc 網站,找到本書網頁下載實例程式碼。
每個實例程式一般包含三部分:
src 資料夾:包含所有的原始程式碼,都使用純ActionScript 3.0 撰寫。
dist 資料夾:包含最後的APK 檔案,可以安裝到裝置上執行。
application.xml:應用程式描述檔案。
使用FlashDevelop 時,直接將src 和application.xml 複製到專案中即可執行。如果讀者使用FlashBuilder 開發環境,也可以建立ActionScript mobile 專案執行程式。
程式套件中還有一個library 目錄,包含了公共程式函數庫和類別函數庫,請讀者務必將此目錄增加到FlashDevelop 的全域類別路徑中,否則一些實例程式將無法編譯成功。增加方法是:在FlashDevelop 中,點擊選單中的Tools → Global Classpaths指令,在出現的視窗中,點擊"Add Classpath" 按鈕,找到library 目錄,增加即可。
增加完畢後,在FlashDevelop 中編輯專案時,在Project 面板的檔案清單中會看到library 目錄。如果沒有出現library 目錄,則點擊選單中的Tools → Program settings指令,在快顯視窗的左側找到"Project Manager",將右側設定項"Project Tree" 下的"Show Global Classpaths" 修改為true,然後重新啟動FlashDevelop 即可。
勘誤和支援
由於作者水準有限,懇請讀者批評指正。無論你遇到什麼問題,都可在新浪微博http://weibo.com/waktree 留言,或發送郵件至walktree@gmail.com,期待能夠得到你的回饋。
致謝
首先,感謝Flash 開發者大會能夠為我提供這麼好的機會,讓我認識了很多技術同仁,也感謝他們為廣大Flash 技術人員提供的這個很好的交流平台,和對Flash 技術推廣做出的貢獻。
其次,感謝我的上級主管和同事。因為在公司參與了相關的專案開發,我才有機會研究AIR 行動技術。在AIR 行動技術還處於測試階段時,我又有幸承擔了開發重任。在開發過程中,同事們共同解決了一系列的技術問題,這些心得和經驗最後都成為了書中實例。
感謝本書的策劃編輯楊福川,在內容版面配置和安排上他都提出了很多好的意見和建議。感謝白宇,她一絲不苟的工作態度確保了這本書的品質。
因為諸多原因,曾一度拖稿,在妻子的不斷督促和幫助下,最後才得以完成本書。
謝謝家人的支援,祝家人和朋友們一切都好!
邱彥林