AIR 简介
AIR(Adobe Integrated Runtime,Adobe 集成运行时)是一系列技术的封装,使开发人员能够构建可在桌面上部署的富 Internet 应用程序。应用程序使用 JavaScript、HTML 和 Flash 的混合技术创建。最终的应用程序以单个软件包的形式交付给最终用户,并使用 WebKit HTML 引擎渲染。
AIR 应用程序看起来不像我所认为的“Web 应用程序”。在我看来,它们看起来和感觉都像桌面应用程序。这让我有点惊讶,因为当我第一次听说 AIR 时,我以为它会类似于 Mozilla 的 Prism。我以为这将是成熟网站直接向用户桌面交付内容的又一种方式。在某种程度上,这是真的,尤其是当您看到像 eBay 桌面这样的 AIR 应用程序时,但开发人员并没有将自己限制在简单的网站到桌面应用程序。 AIR Marketplace(AIR 应用程序的中央存储库)拥有用于时间跟踪、在线学习、视频会议、微博、新闻阅读、媒体播放等的应用程序,而且还在不断增加。
由于 AIR 应用程序是使用现有标准(HTML、JavaScript、Flash)构建的,因此它们默认是跨平台的(好吧,几乎是,稍后会详细介绍)。AIR 的目标是成为真正的“一次编写,到处运行”环境。
获取 AIR
AIR 的 Linux alpha 版本可以从 http://labs.adobe.com/technologies/air/ 下载。
下载的文件扩展名为“.bin”。要安装它,您首先必须使该文件可执行。这可以通过打开终端窗口并导航到您下载文件的位置,然后发出以下命令来完成
chmod +x adobeair_linux_a1_033108.bin
一旦文件可执行,请从命令行启动简单的安装过程,命令如下
./adobeair_linux_a1_033108.bin
安装程序应该运行并要求您接受 AIR 许可协议。
点击“我同意”后,安装程序将询问您希望将其安装在哪里。默认情况下,它建议将其安装到您的 /opt
目录。假设您保留默认设置,安装完成后,将出现一个新的 “/opt/Adobe AIR” 目录,其中包含“Adobe AIR Application Installer”程序和其他杂项文件。没错,您刚刚安装了一个安装程序。在 Ubuntu 上,安装后我的应用程序 > 其他菜单中也出现了一个新条目。
使用 AIR
现在 AIR 已经安装完成,您可以下载并安装 AIR 应用程序。这些应用程序以 .air 文件的形式交付。这些文件实际上是 .zip 文件,其中包含 AIR Application Installer 将应用程序安装到您的计算机上所需的一切。
MacOS 和 Windows 上的 AIR 用户可以通过点击他们想要安装的应用程序网页上的便捷“立即安装”按钮来安装应用程序。Linux 版 AIR 的 alpha 版本无法使用此功能,因此您必须手动下载 .air 文件,然后使用 AIR Application Installer 打开它。Firefox 可以配置为自动使用 AIR Application Installer 打开 .air 文件,因此对于许多应用程序来说,这不是问题,因为通常在安装页面上的某个位置都有指向 .air 文件的直接链接。但是,某些应用程序网站不提供该链接,让您需要在网页上“查看源代码”并搜索“.air”以找到要下载的文件。
在安装 AIR 应用程序期间,安装程序将首先显示“您确定吗?”消息,告知您应用程序的名称、应用程序将拥有的文件系统和网络权限,以及是否可以验证应用程序发布者的身份。
点击安装按钮,安装程序将询问您希望将应用程序安装在哪里(/opt
是默认值)、是否在安装完成后启动应用程序,以及是否要为应用程序创建桌面启动器。
在您点击“继续”按钮后,安装程序会获取跨平台的 .air 软件包,并转换应用程序,使其能够在您的系统上像传统的应用程序一样运行。此安装过程基本上包括 AIR Application Installer 将 .air 文件解压缩到您指定的位置,然后创建一个加载并运行应用程序的二进制可执行文件。
示例应用程序
Adobe 在 http://labs.adobe.com/technologies/air/samples/ 提供了几个示例应用程序的链接,并附带完整的源代码。这些应用程序很好地展示了 AIR 可以实现的各种功能。我最喜欢的是 MapCache、RoadFinder、PixelPerfect 和 ScreenBoard。
MapCache 是 Yahoo 地图的桌面版本。它有一个巧妙的功能,就是可以将您当前正在查看的地图拖到桌面上,并将其保存为 .png 文件。只需抓住“Drag Me”按钮并将其拖放到桌面上即可。
RoadFinder 应用程序不是非常有用,但它很有趣。它的作用是将 Google 地图和 Yahoo 地图并排显示给您。当您在一个地图上拖动或缩放时,另一个地图也会这样做。通过这样做,您可以很容易地看到这两个地图服务之间的差异。如果您试图在新开发区域中查找地址,而 Google 或 Yahoo 地图尚未更新您要查找的街道,这将特别有用。
PixelPerfect 是一个有趣的小应用程序,其唯一目的是充当桌面测量尺。您可以拖动边缘使其达到您想要的任何尺寸,或者单击左上角以获得下拉菜单,让您将其设置为一些标准尺寸。您可以将其拖到屏幕上以测量您想要的任何东西……好吧,它不是非常有用,但我可以看到开发人员在制作用户界面原型时使用它。
ScreenBoard 应用程序是我最喜欢的示例应用程序。此应用程序的作用是在您的整个屏幕上绘制一个透明的矩形。然后,您可以使用各种虚拟“标记”在屏幕上绘图。您可以使用提供的标记,也可以创建自己的标记。您的窗口管理器中必须支持透明度,此应用程序才能工作,因为如果没有透明度,您只会看到一个覆盖整个桌面的黑色大矩形。
Linux alpha 版本的问题
MacOS 和 Windows 版本的 AIR 运行时比 Linux 版本的开发更进一步,因此存在一些问题,我希望在正式发布之前能够解决这些问题。
我遇到的一个非常恼人的问题是 AIR 的声音输出导致我系统上的 Rhythmbox、Banshee 和其他媒体播放器无法播放声音,甚至在启动时有 AIR 应用程序运行时崩溃。我通过先启动我的音乐播放器,然后再启动我的 AIR 应用程序,在一定程度上解决了这个问题。当我这样做时,我的 AIR 应用程序将不会播放任何声音,但至少我可以听我的音乐。
我遇到的另一个问题是,有几个应用程序,我之前提到的 eBay 桌面就是其中一个更突出的例子,它们拒绝使用 Linux 版本的 AIR 运行时安装或运行。这就是我说 AIR 不是完全跨平台的意思。随着 Linux 版本向正式发布迈进,兼容性将会提高到所有 AIR 应用程序都可以运行的程度,但目前一些更高级的应用程序是无法使用的。这很烦人,但这就是 alpha 级别、尚未完成功能的软件的本质。
我遇到的可能最糟糕的问题是,如果您没有运行像 Compiz 这样的合成窗口管理器,那么 AIR 应用程序最好会被难看的黑色矩形包围,最坏情况是完全无法使用。以下是一些相同应用程序的示例,首先是启用合成,然后是禁用合成。
启用合成:
禁用合成:
大多数(但不是全部)AIR 应用程序都像上面的那个。它们不使用默认窗口管理器的窗口。相反,它们使用自己的自定义皮肤。其中一些皮肤严重依赖透明度才能看起来美观和实用,如果没有合成窗口管理器,您就倒霉了。我不知道是否有办法解决这个问题,所以如果您想使用 AIR,您应该使用合成窗口管理器。在 Ubuntu 上,我只需在系统 > 首选项 > 外观 > 视觉效果
下启用“普通”,透明效果就能正常工作。
最终想法
市面上有很多应用程序框架。您有像 QT 和 GTK 这样的传统框架,像 Mono(又名 .Net)这样的较新框架,现在又出现了一种新的框架,比如 AIR,旨在以几年前闻所未闻的方式将我们的桌面与互联网集成。
是否选择使用 AIR 进行开发最好留给开发人员自己决定。我认为,对于从未用 C 或任何其他传统计算机语言编程的 Web 开发人员来说,他们会发现 AIR 提供了一条使用他们已经知道的语言和技术来构建桌面应用程序的捷径。在我看来,这是一件非常好的事情。
对于我们其他人来说,我认为 AIR 应用程序非常值得一试。它们有时可能会良莠不齐,尤其是在 Linux 上 AIR 仍处于 alpha 阶段的情况下,但其中最好的应用程序与传统的桌面应用程序一样出色。