摘要:今年二月份Adobe公司推出了AIR 1.0版本,AIR對大多數人來說,都非常的陌生。該文簡要的概述了什么是AIR,AIR的優點,如何來構建AIR程序等問題。
關鍵詞:AIR;Adobe;程序
中圖分類號:TP317文獻標識碼:A文章編號:1009-3044(2008)29-0386-01
Brife Analysis of AIR Technology
GUO Fu-san
(Communication and Electronic Engineering College,Qiqihar University, Qiqihar 161006,China)
Abstract: February this year,AIR 1.0 released by Adobe corporation.AIR is strange to a lot of people.This paper consists of what is AIR,the excellence of AIR,how to compile a AIR program.
Key words: AIR; Adobe; program
1 引言
Adobe自從收購了Macromedia有了Flash和它的RIA解決方案之后,野心大了不少,它至少是想要和Google,微軟的竟爭中占一席之地,甚至是想集兩家之長取而代之(Web+軟件=融合),所以,它最近兩年不停地放出一些開源的工具和解決方案,直到今年二月份推出了AIR 1.0版本。
2 AIR到底是什么
Adobe Integrated Runtime (AIR) 是一個跨操作系統的運行時,利用現有的Web開發技術(Flash,Flex,HTML,JavaScript,Ajax)來構建富Internet應用程序并部署為桌面應用程序。
AIR 支持現有的Web技術如Flash,Flex,HTML,JavaScript和AJAX,可以用你最熟練的技術來開發您所見過的最具用戶體驗的RIA程序,例如,一個AIR程序可以使用如下一種或多種組合技術構建:
1) Flash/Flex/ActionScript;
2) HTML/JavaScript/CSS/Ajax;
3) PDF可嵌入任何應用程序中。
作為結果,AIR應用程序可以是:
1) 基于Flash或Flex:應用程序根內容(理解為容器)為Flash/Flex (SWF);
2) 基于Flash或Flex的HTML或PDF。
應用程序的根內容為基于Flash/Flex(SWF)的HTML(HTML,JS,CSS)或PDF:
1) 基于HTML,應用程序根內容為HTML,JS,CSS;
2) 基于HTML的Flash/Flex或PDF,應用程序根內容為基于HTML的Flash/Flex(SWF)或PDF。
用戶使用AIR應用程序的方式和傳統桌面程序是一樣的,當運行時環境安裝好后,AIR程序就可以其他桌面程序一樣運行了。
因為AIR是應用程序運行時環境,因此她很小且對用戶來說不可見。運行時環境提供了一套一致的跨操作系統平臺和框架來開發和部署應用程序,因此你的程序不必到每個平臺上進行測試,在一個平臺上開發好就可以在其他平臺上運行了,這有很多好處:
1) 開發AIR應用程序不必做額外的跨平臺工作,節省了時間,因為跨平臺的工作AIR都幫我們做好了(只要其他平臺能支持AIR)。
2) 比起Web技術及其設計模式,AIR應用程序開發迅速,她允許將Web開發技術搬到桌面上來而不用另外去學習桌面程序開發技術或復雜的底層代碼,這比起低級語言如C和C++更容易學習,且不用去處理每個操作系統復雜的底層APIs。
3) AIR程序都是跑在AIR這個Runtime之上的。這就好比SWF文件在Flashplayer中運行一樣。
3 AIR體驗
AIR的組成和發布過程:一個描述應用的XML+一個根節點資源+一個打包工具。 在使用Flex Builder3建立AIR項目的時候,一般都會自動產生一個MXML和個XML。用Flex編譯SWF,作為這個AIR的默認根節點,然后通過Flex Builder3發布成為air安裝包。(當然這并不是唯一開發AIR的方式,Flex開發成本相對較高)我們只要有swf,并且把這個swf描述成為AIR應用的根節點資源,就可以使用Flex Builder3帶有打包工具發布air安裝包了。
安裝了AIR運行時環境,AIR SDK后,試驗了Sample程序查看了一下官方手冊,想了一下,發現,這不就是Firefox之前提出過的理念嘛,不象Firefox的插件,只是為WEB瀏覽服務,Firefox提出過一個理念是,在瀏覽器里運行WEB軟件——無論在線離線,只不過它還是在瀏覽器里面跑,所以給人印象不是太大,而AIR比較聰明,它淡化了瀏覽器的概念,突出了離線運行(其實就是瀏覽)跨平臺的概念,按道理,AIR應該第一個支持的是Linux或Windows平臺,因為開源社區在這方面的工作比較多可以參考,或者在Windows上開發更快一些,因為這兩個平臺有著Firefox的核心Gecko可以使用,IE的內核Trident比較被開發人員熟悉,但可能出于商業利益,Adobe肯定不會用微軟的IE內核,Firefox太自由了,結果Adobe用了蘋果的safari瀏覽器的內核webkit,這個瀏覽器內核目前只在蘋果機子上和Iphone,IpodTouch上有主流應用,Windows平臺上剛剛試水,雖然其內核WebKit也是Linux開源社區的(好象基于KHTML內核),但類似于MaxOS是基于Unix內核一樣,蘋果公司總是喜歡有它自己的一套商業思想,估計Adobe和Apple兩個老A有了某些協議,最終它們聯手了,這就是為什么AIR 1.0先支持了Win和Mac,而許多Web設計人員試用時,一些經過IE和Firefox測試過的網頁顯示在AIR里又出現CSS樣式錯亂的原因了。
熟悉了AIR的框架之后發現,其實AIR的核心就是一個定制版的沒有標準瀏覽器界面的瀏覽器——虛擬機,該虛擬機通過讀取xml配置文件來決定界面顯示,通過AIR提供的JS文件來進行該瀏覽器(AIR虛擬機)的API的調用,而這些API就是標準瀏覽器和標準Javascript框架下沒有提供的一些本地資源的調用方法,同時該瀏覽器去掉了一些Web訪問的權限限制使得它更象是一個Client應用軟件,同時Adobe也沒忘了將它自家的Flash和Pdf的支持功能加進去。
4 總結
1) 與現有技術完美結合和兼容,例如 HTML AJAX(包含CSS\\Javascript)ActionScript;
2) 與現有網站一樣,可以與外界(包括搜索引擎在內)交流;
3) 加載速度比現有的網站快很多。因為AIR產品均是在本地運行的,它只存在一個數據庫連接的問題。想象一下,當把大幅的圖片、網站FALSH、大量的AJAX代碼均在用戶本地打包待調用的話……速度如何?用戶只需要在第一次登陸你的網站時自動下載這些即可。