使用 AIR Debug Launcher (ADL)

使用 AIR Debug Launcher (ADL) 可以在开发期间运行基于 SWF 和基于 HTML 的应用程序。使用 ADL,您可以在不首先打包和安装应用程序的情况下运行该应用程序。默认情况下,ADL 使用 SDK 随附的运行时,这表示您无需单独安装运行时即可使用 ADL。

ADL 将 trace 语句和运行时错误输出到标准输出,但不支持断点或其他调试功能。可使用 Flash Debugger(或诸如 Flash Builder 或 Aptana Studio 的集成开发环境)解决复杂的调试问题。

使用 ADL 启动应用程序

若要使用 ADL 运行应用程序,请使用以下模式:

adl application.xml

其中 application.xml 是该应用程序的应用程序描述符文件。

ADL 的完整语法是:

adl [-runtime runtime-directory] [-pubid publisher-id] [-nodebug] [-profile profileName] application.xml [root-directory] [-- arguments]

-runtime runtime-directory 指定包含要使用的运行时的目录。如果未指定,则使用 ADL 程序所在的相同 SDK 中的运行时目录。如果将 ADL 移到其 SDK 文件夹以外,则必须指定运行时目录。在 Windows 和 Linux 中,指定包含 Adobe AIR 目录的目录。在 Mac OS X 中,指定包含 Adobe AIR.framework 的目录。

-pubid publisher-id 分配指定值作为 AIR 应用程序的发行商 ID,以便完成此运行。通过指定临时的发行商 ID,您可以使用该发行商 ID 帮助唯一标识 AIR 应用程序,进而测试该应用程序的功能,例如通过本地连接进行通信。从 AIR 1.5.3 开始,还可以在应用程序描述符文件中指定发行商 ID(不应使用此参数)。

注: 从 AIR 1.5.3 开始,不再自动计算发行商 ID,也不再自动向 AIR 应用程序分配发行商 ID。在创建对现有 AIR 应用程序的更新时,可以指定发行商 ID,但新应用程序不需要也不应指定发行商 ID。

-nodebug 关闭调试支持。如果使用此参数,应用程序进程则无法连接到 Flash Debugger,并禁止显示未处理异常对话框。(但是,跟踪语句仍将输出到控制台窗口。)关闭调试可以使应用程序的运行速度略有提高,并可以更准确地模拟已安装的应用程序的执行模式。

-atlogin 在登录时模拟启动应用程序。此标志允许您测试应用程序逻辑是否仅在将应用程序设置为在用户登录时启动才可执行。使用 -atlogin 时,调度到应用程序的 InvokeEvent 对象的 reason 属性将是 login,而非 standard(除非应用程序正在运行)。

-profile profileName ADL 使用指定的配置文件对应用程序进行调试。profileName 可以是 desktopextendedDesktopmobileDeviceextendedMobileDevice。有关详细信息,请参阅限制目标应用程序配置文件应用程序配置文件

application.xml 应用程序描述符文件。请参阅设置 AIR 应用程序属性。应用程序描述符是 ADL 要求的唯一参数,并且在多数情况下是唯一需要的参数。

root-directory 指定要运行的应用程序的根目录。如果未指定,则使用应用程序描述符文件所在的目录。

-- arguments“--”后显示的任何字符串均作为命令行参数传递到应用程序。

注: 如果启动的 AIR 应用程序已在运行,则不会启动该应用程序的新实例,而是对正在运行的实例调度 invoke 事件。

输出 trace 语句

若要将 trace 语句输出到用于运行 ADL 的控制台,请使用 trace() 函数将 trace 语句添加到代码中。

ActionScript 示例:

//ActionScript 
trace("debug message"); 

JavaScript 示例:

//JavaScript 
air.trace("debug message");
在 JavaScript 代码中,可使用 alert()confirm() 函数来显示应用程序中的调试消息。此外,语法错误的行号以及任何未捕获的 JavaScript 异常均输出到该控制台。
注: 若要使用 JavaScript 示例中显示的 air 前缀,则必须将 AIRAliases.js 文件导入到此页。此文件位于 AIR SDK 的 frameworks 目录中。

ADL 示例

在当前目录中运行应用程序:

adl myApp-app.xml

在当前目录的子目录中运行应用程序:

adl source/myApp-app.xml release

运行应用程序,并传入“tick”和“tock”两个命令行参数:

adl myApp-app.xml -- tick tock

使用特定运行时运行应用程序:

adl -runtime /AIRSDK/runtime myApp-app.xml

运行不支持调试的应用程序:

adl myApp-app.xml -nodebug

运行使用 Apache Ant 的应用程序来运行该应用程序:

<property name="SDK_HOME" value="C:/AIRSDK"/> 
<property name="ADL" value="${SDK_HOME}/bin/adl.exe"/> 
<property name="APP_DESCRIPTOR" value="$src/myApp-app.xml"/> 
 
<target name="test"> 
    <exec executable="${ADL}"> 
        <arg value="${APP_DESCRIPTOR}"/> 
    </exec>  
</target>

连接 Flash Debugger (FDB)

若要使用 Flash Debugger 调试 AIR 应用程序,请启动 FDB 会话然后使用 ADL 启动您的应用程序。

注: 在基于 SWF 的 AIR 应用程序中,必须使用 -debug 标志编译 ActionScript 源文件。(在 Flash Professional 中,选中“发布设置”对话框中的“允许调试”选项。)
  1. 启动 FDB。可以在 Flex SDK 的 bin 目录中找到 FDB 程序。

    控制台显示 FDB 提示符:<fdb>

  2. 执行 run 命令:<fdb>run [Enter]

  3. 在不同命令或解释程序控制台中,启动应用程序的调试版本:

    adl myApp.xml
  4. 使用 FDB 命令根据需要设置断点。

  5. 键入:continue [Enter]

如果 AIR 应用程序基于 SWF,则调试器只控制 ActionScript 代码的执行。如果 AIR 应用程序基于 HTML,则调试器只控制 JavaScript 代码的执行。

若要在不连接到调试器的情况下运行 ADL,请加入 -nodebug 选项:

adl myApp.xml -nodebug

有关 FDB 命令的基本信息,请执行 help 命令:

<fdb>help [Enter]

有关 FDB 命令的详细信息,请参阅 Flex 文档中的 使用命令行调试器命令

ADL 退出和错误代码

下表列出了 ADL 输出的退出代码:

退出代码

说明

0

启动成功。ADL 在 AIR 应用程序退出后退出。

1

成功调用已在运行的 AIR 应用程序。ADL 立即退出。

2

用法错误。提供给 ADL 的参数错误。

3

无法找到运行时。

4

无法启动运行时。通常,当应用程序中指定的版本与运行时版本不匹配时会发生此情况。

5

发生未知原因错误。

6

无法找到应用程序描述符文件。

7

应用程序描述符内容无效。此错误通常指示 XML 格式错误。

8

无法找到主应用程序内容文件(在应用程序描述符文件的 <content> 元素中指定)。

9

主应用程序内容文件不是有效的 SWF 或 HTML 文件。

10

应用程序不支持使用 -profile 选项指定配置文件。