`
saybody
  • 浏览: 908565 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Adobe AIR平台的新世界:桌面與Web的大一統

阅读更多

過去這幾年,以Web為根基的RIA(Rich Internet Application)已經變成相當實用,利用到的技術包括HTML、AJAX、Flash、PDF,讓Web也具有以往桌面應用才具備的互動性,同時,這些技術也讓我們可以在更短的時間(相較於傳統的C++)將應用開發出來。

但是,以Web為根基的RIA依然受限於瀏覽器的安全沙箱(sandbox),不能取用本地磁碟系統和其他裝置(例如印表機),除非使用者介入處理。不能自由地開啟視窗,也不能執行時完全沒有畫面,不能離線執行…這類RIA處處受限,能力還是比不上桌面應用。

這些限制其實是有原因的。因為瀏覽器有安全沙箱,所以我們可以安心地瀏覽Web,這讓Web具有能用度。對於許多Web類型的應用來說,獲得應用相當簡單,只要在任何瀏覽器內輸入URL即可,「取得上的便利性」遠超過「使用上的限制」,大家還算是願意接受。但是,桌面應用就不會有相同的安全限制,因為它們需要使用者動手安裝,只要確認安裝,就可以獲得較高的存取權限。

Adobe AIR的目的是讓大家可以利用既有的Web技術開發RIA桌面應用。這類應用可以存取檔案系統、開啟視窗、離線儲存,並具備其他傳統桌面應用的特色,但在開發階段使用的技術是今天大家所熟悉的Web技術。

AIR包含兩部份:

  1. Windows、Mac OS、Linux平台上的執行期環境,讓應用可以安裝與執行。
  2. 用來開發這類應用的SDK(軟體開發套件)

桌面應用是什麼?

AIR所瞄準的『桌面應用』目標,不只是提供API讓編程員可以開啟視窗或存取檔案系統。AIR目標是讓應用可以和作業系統可以緊密地整合,就像是傳統C、C++、Objective-C所開發的應用一般。比方說, AIR應用是從Windows的開始選單中啟動,或從Mac OS的dock中啟動,在Activity Monitor或Task Manager有應用自己的名稱,且在Windows的「新增/移除程式」控制面板中可以看到它們。

然而,並不是所有的桌面應用都適合用AIR開發。有些應用需要耗費很高的計算資源(CPU與記憶體),就不適合使用AIR實踐。

Adobe AIR的關鍵在於部署(deploy)與執行(execute)AIR應用的能力,這些應用是利用HTML、AJAX、Flash、PDF等技術開發出來的。就像是C、Java、.NET的執行環境一樣,Adobe AIR也具有一群程式庫和服務,這些是執行程式時不可或缺的基礎。執行環境位於中間層,負責上面應用和下面OS之間的溝通。當應用啟動時,執行環境處理初始化的工作;當應用結束時,執行環境處理終結化的工作。執行環境也提供API,讓應用可以呼叫底下OS的服務。

Adobe AIR設計的目的是要盡可能地提供一個跨平台的抽象平台。比方說,它提供檔案系統API,可以在多個平台上執行。開發應用時可以使用AIR的API,可以讓應用具有可移植性(portable)。

抽象平台的API無法面面俱到,畢竟每個OS都有一些不同的地方。因此Adobe AIR具備「平台專屬」的API,也就是說,Windows平台的AIR有自己專屬的API,Mac OS平台的AIR也有自己專屬的API。如果在錯誤的平台呼叫該專屬API,就不會產生任何效果。例如,一個應用如果呼叫Mac OS上處理Dock的API,此應用在Windows平台上執行時,這個部分的程式碼就不會起任何作用(應用可以詢問AIR,底下是什麼平台)。

執行期系統包含一個Flash播放器(Player),此播放器是「瀏覽器plug-in版本的Flash播放器」的擴充,不但原有的功能一個不少,甚至還加入更多功能(像是取用檔案系統的能力)。

執行期系統也包含一個HTML展現引擎(rendering engine),此引擎採用開放源碼的WebKit專案(http://www.webkit.org/),同時這也是Apple Safari瀏覽器使用的HTML展現引擎,這使得Adobe AIR和Safari幾乎具有100%的相容性。Adobe AIR不會做自己的瀏覽器介面來和其他廠商競爭,因為這麼做的意義不大。AIR之所以包含HTML展現引擎,是因為HTML(以及相關技術)是呈現畫面的一種重要標準。

Flash和HTML的環境會橋接在一起,彼此的程式碼可以互相呼叫。比方說,Flash內容的ActionScript程式碼可以取用HTML文件的DOM;而HTML內容可以調用Flash API。

HTML內容可以嵌入Flash,而Flash也可以嵌入HTML。開發AIR應用,可以只用到HTML,或者只用到SWF,或者同使兩者,完全看你的需求而定。

執行期環境不包含PDF展現引擎,而是直接橋接到外部的Acrobat Reader程式,這麼做的原因,一方面節省AIR執行期環境的大小,二方面可以讓AIR在呈現PDF時和原本的電腦系統一致。PDF文件可以被嵌入到SWF或HTML文件中,但是AIR應用無法只包含PDF內容。在AIR中,只要一行程式碼就可以讓這三種(Flash、HTML、PDF)編劇引擎(scripting engine)啟動,相當方便。

AIR執行期系統可以從Adobe網站免費下載,Adobe公司也允許我們免費散播它。執行期系統的大小,大概會控制在5MB到9 MB之間。

AIR支援網頁技術

AIR讓我們可以直接使用Web技術,許多人已經將既有的網頁內容(HTML與SWF)直接由AIR執行,做出許多他們的第一個AIR應用,完全沒更動任何程式碼。

將既有的內容移植到AIR只是第一步,如果不多做一些事,那麼你的AIR應用就和一般的Web應用沒有差別(只是看不到瀏覽器的外框)。AIR提供更多好用的API,可以讓我們寫程式好好利用。像是視窗、檔案系統、網路…等API。寫程式好好地利用這些API,會讓你的AIR應用威力更強大。

AIR的編劇技術

HTML、Flash、PDF,都可以透過ECMAScript進行編劇(scripting)。對於HTML與PDF來說,ECMAScript就是JavaScript;對於Flash來說,ECMAScript就是ActionScript。JavaScript與ActionScript都是根據ECMAScript標準實做出來的。

AIR應用開發者不需要從這些技術中擇一,而是可以在單一應用中結合這些技術。由AIR負責這些技術之間的溝通。

AIR對HTML與AJAX的支援

AIR使用開放源碼的WebKit HTML引擎,所以能夠支援HTML與AJAX。為了和AIR整合,Adobe公司有修改WebKit的程式碼,但是Adobe宣稱依然接近100%相容於蘋果的Safari。

AIR可以將HTML內容顯示在Flash內部,Flash可以對嵌入其中的HTML進行旋轉、模糊化…等操作。當然,Flash內容也可以被嵌入到HTML中。

AIR與Flash、Flex的關係

AIR不但包含一個完整的Flash播放器(包括新的開放源碼Tamarin編劇引擎),甚至還將它擴充成可以支援AIR API。這些API本身有一大部分是用ActionScript實踐出來的。

Flex提供了一個框架(framework),具有額外的API,且支援用MXML(一種XML)建立使用者介面(UI)。Flex原本是用來建立「瀏覽器內的RIA」,Flex可以產生Flash(SWF)內容,當然這樣的內容也可以在AIR內執行。但是到了AIR的時代,Flex被擴充成具有新的框架,充分利用AIR的API。

AIR開發工具

想要開發AIR應用,你有下面的工具可以選擇:

  1. 【Flex】Flex框架已經被擴大,支援新的元件和AIR專屬的功能。你可以使用免費的Flex SDK(命令列工具)開發AIR應用。
  2. 【Flex Builder】Flex Builder是以Eclipse為根基的IDE(整合開發環境),可以用來建立Flex應用。現在Flex Builder已經被升級,可以很容易地建立AIR應用。Flex Builder以後也會包含新的AIR框架元件,包括「嵌入HTML內容」的元件。
  3. 【Dreamweaver】Dreamweaver可以建立HTML應用。
  4. 【Flash Professional】Flash Professional可以建立SWF應用。
  5. 【其他工具】任何能夠編寫HTML的工具。

不管你選擇哪一種,都有免費的工具讓你:

  1. 不需要先安裝AIR應用,可以直接執行。當你在開發除錯過程,這會很方便。
  2. 為AIR應用建立部署包裹(deployment package)。

部署AIR應用

AIR應用部署時被包裝成單一檔案、跨平台的安裝包裹,此包裹內整合了不同平台的原生安裝技術。如此一來,AIR應用可以用同一個檔案部署到不同的平台,而不需要為每個平台建立不同的安裝包裹。同時,由於整合各種平台的安裝技術,所以為檔案型態註冊,建立桌面捷徑…等事情,都可以進行,就好像專門為該OS設計的應用一般。安裝包裹內包含一些執行期會用到的檔案(例如SWF與HTML檔案)、一些安裝時會用到的額外檔案、一個檔案清單(manifest),以及數位簽章(signature)。

包裹檔案格式是大家所熟悉的ZIP(Java的JAR也使用此格式),但是你無法利用一般的ZIP工具程式來建立AIR,這主要是基於安全的考量(不希望程式碼被竄改)。Adobe提供一個免費工具程式,可以利用XML簽章(signature)來簽署(sign)AIR的包裹檔案。AIR會向OS註冊,只要雙擊(double-click)AIR安裝包裹,OS就會交由AIR處理,觸發安裝功能。安裝時會使用到包裹檔案清單(manifest)內的資訊,UI顯示出應用的名稱、描述…等等,讓使用者確定是否要安裝。

當使用者確定要安裝,應用安裝程式會將包裹的內容轉成適合底下OS的形式。比方說,馬上建立一個原生的執行檔(native executable)。為該應用指定適當的名稱,且如果有提供icon圖檔,也一併在此做設定。正是像這樣的機制,使得AIR應用看起來就像是該OS一般的桌面應用,不會格格不入。

最後,Adobe AIR也提供了一組API,讓應用可以更新自己。搭配「網路偵測」和「下載能力」,可以實踐各種升級政策,包括選擇性升級、強制升級、付費升級…等等。

網路與通訊的支援

Adobe AIR對Flash、HTML、PDF提供基本的HTTP支援,也對提供更低階的socket API。AIR也擴充Flash LocalConnection API,使得不只AIR應用之間可以溝通,連AIR應用和瀏覽器內的Flash應用之間也可以溝通。

這些特色讓我們可以使得Web應用和桌面應用彼此合作,而不是彼此競爭。比方說,某公司可能會同時提供Web版本與AIR版本的應用介面,讓使用者處理銀行業務。對客戶來說,你在家裡面可能會用AIR桌面應用,但是在外面上網時使用Web應用。只要一個簡單的點選動作,就可以讓使用者選擇要用什麼樣的介面。

安全防護

就和傳統的桌面應用一樣,AIR也可能被用來進行危險的操作。檔案API可以用來讀、寫、刪除檔案,搭配網路API使用,就可能造成危險。

AIR採用無所不在的特權安全模型,將這樣的風險降低。當某功能本身就有風險,或者搭配其他功能會產生風險時,這樣的功能會被禁止,只有當某應用有取得特權時,才能進行這樣的功能。

對一般使用者來說,此模型並不簡單,也不是第一道防線。一般使用者應該小心選擇哪些應用可以安裝,來路不明有風險的應用就不要安裝,因為安裝就是一種信任的表現。(因為AIR應用可以被簽署,使用者因此可以得知該AIR應用的開發者是哪一家公司,使用者可以自行判斷是否要信任該公司的軟體)。

對於企業的系統管理員(或者個人電腦的管理員)來說,特權模型可以用來減少執行AIR應用時的風險。安全沙箱不是用來執行不受信任的應用,畢竟不信任的應用,一開始根本就不應該被安裝。安全沙箱是用來執行你信任的程式,但是你知道這些程式不應該做某些事,所以你要利用沙箱來確保它們真的不會做這些不該做的事。

對企業的支援

因為AIR可以運用Web技術進行快速開發,所以AIR也適合用在企業。另外,AIR的安全架構讓企業可以在執行AIR應用時,多了一些保障,因為受信任的應用仍然只能在系統管理者定義好的活動範圍內行動,不能為所欲為搞破壞。

AIR還有一些其他的特色,是專門為企業設計的。比方說,企業長使用OS本身的安裝技術,來管理大量機器的軟體安裝。Adobe預計會提供免費的工具,讓系統管理員可以將AIR部署包裹轉成原生安裝的格式,例如Windows的MSI檔案。這些MSI檔案的部署可以透過既有的底層機制來進行,像是Microsoft SMS或IBM Tivoli。

結論

AIR具有跨平台的環境,可以用Web技術開發桌面應用,結合Web與桌面的雙重優勢。Adobe公司即將於2008年正式推出的AIR,對於開發者來說,AIR是今年一項值得特別注意的技術。

分享到:
评论

相关推荐

    adobe air runtime version 33.1.1.744 for Mac

    Adobe AIR(Adobe Integrated Runtime)是Adobe公司开发的一款跨平台的应用程序运行环境,它允许开发者使用HTML、CSS、JavaScript等Web技术或ActionScript编程语言创建桌面应用程序。这些应用程序可以在Windows、Mac...

    AdobeAIR入门教程

    Adobe AIR为开发者提供了一个可以在桌面系统上运行Web技术的平台,使得Web应用可以拥有更丰富的交互性和离线功能。 2. **安装和配置**:学习如何在不同的操作系统(如Windows、Mac OS)上安装和配置Adobe AIR SDK,...

    adobe air runtime version 50.2.4.1 for windows

    总的来说,Adobe AIR runtime版本50.2.4.1为Windows用户提供了一个稳定的运行环境,使得开发者可以利用丰富的Web技术开发出具有桌面级体验的应用程序,同时用户也可以享受到这些跨平台应用带来的便利。这个特定版本...

    Adobe Air Programming Unleashed

    Adobe AIR(Adobe Integrated Runtime)是一种由Adobe Systems开发的跨平台应用程序运行环境,允许开发者使用HTML、CSS、JavaScript以及Adobe Flash Player或Flex构建的应用程序在桌面操作系统上作为独立的应用程序...

    adobe air 入门示例

    Adobe AIR(Adobe Integrated Runtime)是Adobe公司推出的一款跨平台的应用程序运行环境,它允许开发者使用HTML、CSS、JavaScript以及ActionScript等技术开发桌面应用程序。这篇博客"adobe air 入门示例"很可能是...

    dreamweaver的adobe air扩展Adobe_AIR.mxp

    通过安装“Adobe_AIR.mxp”扩展,开发者能够在Dreamweaver中直接进行跨平台桌面应用的开发,利用HTML、CSS、JavaScript等Web技术创建出与操作系统深度集成的应用程序。这个扩展简化了开发流程,提高了效率,是Web...

    Adobe AIR 1.5 中文帮助手册

    Adobe AIR (Adobe Integrated Runtime) 是一个跨平台的运行环境,允许开发者使用Flash、Flex、ActionScript等技术创建桌面应用程序。1.5版本是Adobe AIR的一个重要里程碑,它为开发者提供了更多的功能和改进,使得...

    adobe air runtime version 33.1.1.744 for windows

    Adobe AIR(Adobe Integrated Runtime)是Adobe公司开发的一款跨平台的应用程序运行环境,它允许开发者使用HTML、CSS、JavaScript以及ActionScript等技术创建桌面应用程序。在本案例中,我们讨论的是Adobe AIR ...

    使用AdobeAIR开发android应用

    Adobe AIR,全称为Adobe Integrated Runtime,是一种跨平台的应用程序运行环境,它允许开发者利用HTML、JavaScript、Flash以及Flex等Web技术创建桌面应用程序。对于Android开发者而言,Adobe AIR提供了一种将这些Web...

    用Adobe Air和Javascript实现一个简单的不规则窗口桌面程序

    标题中的“用Adobe Air和Javascript实现一个简单的不规则窗口桌面程序”揭示了本文将探讨如何使用Adobe AIR(Adobe Integrated Runtime)框架与JavaScript编程语言来创建一个具有非标准形状的桌面应用程序。Adobe ...

    Adobe AIR 阅读器

    Adobe AIR (Adobe Integrated Runtime) 是一个跨平台的运行环境,由Adobe公司开发,它允许开发者创建桌面应用程序,这些应用程序能够利用Web技术,如HTML、CSS、JavaScript,同时也能利用ActionScript,这是Adobe ...

    adobe air1.1中文版

    总体来说,Adobe AIR 1.1中文版是Web开发者向桌面应用领域拓展的重要工具,它简化了跨平台应用的开发流程,提高了用户体验,为当时的Web开发者带来了一种新的可能性。随着技术的发展,虽然现在许多应用已经转向使用...

    ADOBE AIR 教程

    ADOBE AIR(Adobe Integrated Runtime)是Adobe公司推出的一款跨平台的应用程序运行环境,它允许开发者使用HTML、CSS、JavaScript以及ActionScript等Web技术创建桌面应用程序。这个教程将带你深入理解ADOBE AIR,...

    as3 adobe air ios airplay

    1. **Adobe AIR**:Adobe Integrated Runtime(AIR)是一种运行时环境,允许开发者使用HTML、CSS、JavaScript或ActionScript创建桌面和移动设备上的富互联网应用程序(RIA)。AS3是ActionScript的第三个主要版本,常...

    adobe AIR Hello World

    Adobe AIR (Adobe Integrated Runtime) 是一个跨平台的运行环境,允许开发者使用HTML、JavaScript、Flash/Flex等技术创建桌面应用程序。"Adobe AIR Hello World" 是一个基础教程,旨在引导新手了解如何利用Adobe AIR...

    Adobe AIR权威指南

    Adobe AIR(Adobe Integrated Runtime)是一种跨平台的运行环境,它允许开发人员使用Flash、ActionScript 3.0和Flex等技术创建桌面应用程序。这本书详细讲解了如何利用这些工具和技术构建丰富的桌面应用程序。 首先...

Global site tag (gtag.js) - Google Analytics