Adobe Air:两个月以来

  • Scott Delap
  • Jon Rose
  • 张凯峰

2007 年 8 月 9 日

话题:Java语言 & 开发

在六月份,Adobe 官方正式给他们的 Apollo 开发项目冠名:Adobe AIR (Adobe 集成运行时),并且发布了一个新的 beta 版。AIR 是一个跨操作系统的应用程序运行时,它可以让开发者使用 HTML/CSS、Ajax、Flash 和 Flex 来创建 RIA 应用,这样的应用既可以通过 Web 进行部署,又可以在用户的桌面上以在线和离线的模式运行。beta 版包含的新特性有:

  • 支持 PDF
  • 改善运行时和应用程序的安装体验
  • 嵌入式本地数据库(使用 SQLite)
  • 支持拖放和剪贴板
  • 大量的 HTML 支持和宿主 API 改进,包括对透明 HTML 窗口的支持
  • 连接服务器和服务的 API
  • 本地文件选择和浏览对话框
  • 基本的运行时更新支持
  • 安全模型改进,包括用于高、低安全级的 Flash 内容间通讯的 Doors API

这个运行时有相当数量的部分来自于开源项目,Adobe 以此来继续取悦开源开发者社区。Web2.0 杂志 介绍了其中主要的开源运行时组件:

Adobe 的开源的 AIR 包含一个 WebKit HTML 引擎,一个 ActionScript 虚拟机(Tamarin 工程),以及一个具有全文搜索的 SQLite 本地数据库(就跟 Google Gears 使用的一样),而这两者将很快会使用共同的 API。

以下是对这些组件的概览:

    WebKit HTML 引擎: WebKit 是 Web 浏览器引擎。

    Adobe 在他们的 FAQ 中提供了几点理由,来解释为什么选择 WebKit 而不是其他像 Gecko 这样的引擎。

  • (WebKit)是我们可以有所贡献的开源项目
  • Web 开发者和终端用户都熟悉的成熟技术
  • 对 Adobe AIR 运行时的大小影响最小
  • 在移动设备上的运行能力
  • Tamarin 项目: ActionScript 虚拟机

    Tamarin 是 Adobe 和 Mozilla 基金会联合开发的项目,目的是构建一个针对 ECMAScript 第四版语言规范的开源实现。

    项目的主页这样描述他们的主要目标:

    Adobe 和 Mozilla 希望加速采用一种标准的语言,来创建有趣的 Web 应用程序。

    SQLite: 嵌入式 SQL 数据库

    SQLite 是一个实现了自包含、可嵌入、零配置的 SQL 数据库引擎的小规模 C 代码库。

Adobe AIR 给行业内带来了些许的喧闹。下面是其中的一些声音...

Jesse James Garrett,造出“Ajax”这个词的人在一篇关于 AIR 的文章 中有赞扬的评论:

……我觉得 Ajax 开发者受困于浏览器的限制有一阵子了,”Garrett 说。“为了离线使用应用程序,有太多的代码需要从你的浏览器应用程序中去掉了……AIR 的好处是代码在浏览器以外的可重用性……

而其他人,像Jesse Warden 则没有这么积极:

……我对开发 AIR 没有兴趣。虽然这些特性听起来很诱人,但对于我每天针对客户的开发并没有提供任何有用的东西。我不相信当前的市场对那些类型的应用程序会有支持的模型。另外,AIR 除了是一个冠以 Adobe 名号的 Flash 播放器外并没有提供任何新的内容……

然而 Adobe 的 Ryan Steward反对 Warden 的观点 ,他说:

显然很多人对 Adobe AIR 有不同的看法。我想可以大部分归因于它是一种非常崭新的技术……我认为 AIR 最棒的事情是它给予开发者在桌面上发挥到极致的“网络 / 浏览器”的体验。这包括可以使用 Web 技术(Flash、Flex、JavaScript、HTML)来编写应用程序的显而易见的好处,但它不仅仅是这些。AIR 应用程序有着快速而简单的安装体验,很接近于浏览器的零安装。它可以跨平台运行,就像 Web 浏览器。

Ryan 的确承认 AIR 还处于起步阶段并亟待改进。

……是的,你现在不能使用插件或者访问本地代码 / 应用程序。这的确不好,对于一些开发者来说是个问题。但 AIR 只是个 1.0 的产品,而且跨平台方面对我们非常重要。是的,AIR 并没有做窗口模式的硬件加速(它只为全屏模式的视频做了加速),但是它仍然只是个 1.0 的产品,我们没有足够的时间集成所有的功能。

在接下来的几个月,InfoQ 会继续关注 Adobe AIR 的发展,以及类似的技术,比如 Google Gear。

查看英文原文:Adobe Air: Two Months Later

Java语言 & 开发