AIR(全名Adobe Integrated Runtime,前身Apollo)的来意
这几年企业应用系统慢慢己从窗口桌面转移到网页平台上,人们开始习惯在浏览器上购买商品、转帐、缴费、甚至公司的入口网站也都是从网页进入使用,如请假、签到、人资系统甚至物流管理等。
网页开发人员也不例外,动态网页不管是用什么语言来撰写(如:ASP.NET、PHP、JSP、ColdFusion等),你会发现到,现在这些语言似乎成了基本配备,殊不知Web 2.0的应用理念排山倒海而来,也让Ajax的技术使用掘起,RIA(Rich Internet Applications)的应用也更加扩大;伴随着使用上的要求,浏览器上的功能变得越来越复杂,开发者也越来越头痛,一方面要学习许多技术,一方面又要能符合顾客所需,如何让开发者不用再重新学习,只善用本身既有技能,也能满足顾客口味,客户端也能够兼顾到网页及窗口程序的优点,如此想法,AIR油然而生。
什么是AIR?
AIR(全名Adobe Integrated Runtime),前身是Apollo,美商Adobe公司在开发此项目时所命名的一个代号名称,它是专为网络桌面系统应用的一个执行环境(RunTime),竞争产品如同微软的WPF,AIR能真正跨平台在Windows/Mac/Linux操作系统上执行,目前为Alpha 1阶段(Linux版还没释出),很适合应用在网络多媒体内容上,如把PDF、Flash/Flex、HTML、Ajax全部结合在一个程序上,加上善用操作系统上的环境资源,就能快速开发出RIA应用,并且原有的网页开发者不需要重新学习新的语言。
你会需要AIR吗?
我们需要区分几种类型来分析、思考,AIR是否对你有需要,以下列出3种类型族群。
AIR技术卖点
用相同Web技术就能制作出窗口系统,并且强调的是RIA系统,AIR它不是原生于操作系统内,而是附加安装后可以让你执行的环境,也因此,不建议你用AIR做一个类似PhotoShop软件,甚至是Premiere很仰赖系统资源的软件,但是你却能做出如Kuler色彩管理工具或其它结合网络应用的程序,想象一下,所有网页能够执行的内容,都可以搬到桌面窗口应用,再者,加上档案拖曳功能,实时联机与离线作业,可把PDF、SWF、HTML集于一身,支持跨平台安装与执行,这就是AIR的技术卖点。
Adobe针对AIR的使用技术,区分了二种技术类型,一为「应用程序」,二为「文件」。以下就以这二类型来说清楚讲明白。
一、应用程序类型
以一针见血来说,其实就是利用Flash与HTML来建立与布署AIR程序。
AIR己有把Flash Player核心放进来,这是AIR的核心之一,所以它支持ECMAScript为基础的ActionScript 3语言,现在Flash Player也贡献在开放性程序代码的Tamarin项目,未来在Firefox浏览器版本上也能看到。(更多Tamarin专案详情,请见网站:http://www.mozilla.org/projects/tamarin/)
非但如此,AIR不仅在既有的Flash Player APIs可以用,可做的事情更加扩大,主要包含如下:
不能忘记的是Flex框架(Framework),所有Flex 2的功能,你都可以在AIR身上全力发挥。
只要是HTML的功能,在AIR也都能施展,这其中包括了,HTML、JavaScript、CSS、XHTML、DOM(Document Object Model)。因此,你可以不需使用Flash,同样可以写出AIR程序,而且用的是HTML、JavaScript等,这项对传统网页开发者来说无疑是如鱼得水,可以这么做的原因也是在于用了开放性的WebKit引擎,此引擎在许多浏览器上可以找到,如Mac OS的Safari浏览器、Linux相关系统的KHTML等。
在这里我们应该要晓得背后的动机是什么,为什么要采用WebKit,知道主要原因将有助于了解日后发展状况。
二、文件类型
文件类型在AIR的应用是希望可以用在动态电子文件中,也就是说每个字段内容都是可以用互动方式产生,在这里PDF及HTML就是主角。
以目前来说Alpha1还没把PDF功能整合进来,但是值得一提的是,AIR程序里的PDF文件是可以嵌在Flash里或HTML里,甚至是同时混搭(Mash-up)在Flash、HTML中。同样的,HTML也是可以做相同工作,把PDF与SWF都放在一块。如图1所示。

图1:PDF可任意嵌在HTML或SWF环境里。
所以,我们先来综整一下,AIR的语言模型可以怎么形成:
图2所示,你可以用
以上所有语言的混搭都可以结合PDF文件内容。

图2:适合开发AIR程序的语言
描述语言的整合
由于WebKit与Flash Player引擎二者同时包含在AIR执行环境里,所以Adobe也将他们能发挥的功能整合在一块,这对开发者上将会更加便利,举例来说,HTML内容被包含在Flash里,事实上将是经由Flash来负责着色,这意味你可以任何在Flash里做位图,像是模糊(Blur)、旋转(Rotate)、变型(Transform)等。
另外使开发人员感到兴奋的一件事就是,ActionScript可以与JavaScript做双向沟通,如下:
AIR支援哪些APIs ?
除了原有的Flash Player及WebKit引擎所提供的APIs之外,AIR附加了新的重要APIs功能,皆可由ActionScript或JavaScript来呼叫,如下:
以上所有APIs功能都可以直接在执行环境上或AIR框架中完成。
桌面系统整合能力
如同前言,摆脱以往浏览器之所不能,又能让使用者像是在用原来桌面应用程序,更重要是让人去验验Flash接口的互动能力,这就是AIR的桌面整合特色。目前包括了:
一旦安装完成,AIR程序如同一般安装后的程序感觉都一样,每一支都是独立的,你可以来回用Tab键切换。使用者不需知道这程序的背后机制是怎么来,只管其操作方法。但其接口的互动感觉确是可以让人深刻体会。
AIR相关工具组
网页程序现在应用为什么会这么普遍,其中之一也是因为网页开发者根本不需要知道使用者用的是什么操作系统,就可以把他们写好的程序马上给客户使用,不管是Windows或Linux、Solaris、或手机,祗要是网页程序能够被浏览器读取,就几乎都可以使用。
对AIR也是同样道理,不仅是可以提供跨平台的网页桌面应用能力外,它也是可以在打包成软件的情况下,让你在其它操作系统上执行。
事实上,AIR目前不局限只能在Flex Builder上开发,你可以用NotePad(笔记本),或是任何可以写HTML、JavaScript的编辑工具,就可以打造出AIR的应用程序。
当然,工欲善其事,必先利其器。若你要有视觉性的开发工具,Flex Builder不失为值得使用的IDE工具,你可以到Adobe官方网站下载试用,记得必须要下载Flex Builder 2.0.1加上AIR Extensions for Flex Builder 2.0.1,才能管理整个AIR程序项目。
另外,Adobe官方刚释放一些AIR的重要工具,各位可以去下载把玩,试试便知道精彩神奇的内容在哪里。
开始前你必须要知道的
AIR RunTime
这是主要运行AIR程序的执行环境,如同微软的.NET Framework一样,任何开发好的AIR程序都要有这执行环境才能使用。
AIR SDK
SDK包含了AIR Frameworks、命令列程序、链接库、基本设定档等内容。所以可以让你做测试、除错或利用其它文字、视觉编辑工具写好后,直接打包成AIR程序。
在SDK里有二个重要的命令列工具是:
以上,所有下载网址都在http://labs.adobe.com/downloads/air.html。
小结:
多数的朋友听到AIR的应用后,常询问一个问题,那就是AIR会不会就是取代浏览器上的应用?并且未来直接再把AIR的程序再放回浏览器上使用?
这问题我与Adobe资深开发人员关系产品经理讨论过,AIR是为了解决浏览器上应用的不足,并且他是用相同的技术、语言、链接库来完成桌面上的应用,并且AIR还在发展阶段,后续将上市的功能也都会顾及到使用者在长期以来得不到的解决方案,然而开发者什么时候会用AIR技术在桌面平台上?这也会视需求量而定,不过既然都使用Web技术,所以你可以很快就转换成AIR版本,还可以同时有二个版本存在,这给你的客户或未来所有使用者有了更好的选择。
作者简介:
刘仲滨
国立交通大学电机信息学院数字图书组硕士,研究 Adobe/macromedia相关产品多年,为国内企业暨华人社群大力推展 RIA互动多媒体应用暨解决方案,著作有相关Adobe/Macromedia网页书籍、多篇杂志专栏,同时为大型研讨会讲师,技术顾问,及RiS平台(http://j2eemx.com)资深社群主持人。