AIR Debug Launcher (ADL)

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

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

注: 如果 trace() 语句没有显示在控制台上,则应确保未在 mm.cfg 文件中指定 ErrorReportingEnableTraceOutputFileEnable。有关此文件中平台特定位置的更多信息,请参阅编辑 mm.cfg 文件

AIR 支持直接进行调试,因此不需要运行时的调试版本(就像使用 Adobe® Flash® Player 一样)。要执行命令行调试,请使用 Flash Debugger 和 AIR Debug Launcher (ADL)。

Flash Debugger 在 Flex SDK 目录中进行分发。本机版本(例如,Windows 中的 fdb.exe)位于 bin 子目录中。Java 版本位于 lib 子目录中。AIR Debug Launcher adl.exe 位于 Flex SDK 安装的 bin 目录中。(没有单独的 Java 版本)。

注: 您不能无法使用 fdb 直接启动 AIR 应用程序,因为 fdb 会尝试使用 Flash Player 来启动 AIR 应用程序。而是要让 AIR 应用程序连接到正在运行的 fdb 会话。

ADL 用法

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

adl application.xml

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

ADL 的完整语法是:

adl     [-runtime runtime-directory] 
    [-pubid publisher-id] 
    [-nodebug] 
    [-atlogin] 
    [-profile profileName] 
    [-screensize value] 
    [-extdir extension-directory] 
    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,并禁止显示未处理异常对话框。(但是,trace 语句仍将输出到控制台窗口。)关闭调试可以使应用程序的运行速度略有提高,并可以更准确地模拟已安装的应用程序的执行模式。

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

-profile profileName ADL 使用指定的配置文件对应用程序进行调试。profileName 可以是以下值之一:

  • 桌面

  • extendedDesktop

  • mobileDevice

如果应用程序描述符包括 supportedProfiles 元素,则使用 -profile 指定的配置文件必须是受支持列表的成员。如果未使用 -profile 标记,则应用程序描述符中的第一个配置文件将用作活动配置文件。如果应用程序描述符不包括 supportedProfiles 元素,并且您未使用 -profile 标记,则会使用桌面配置文件。

有关详细信息,请参阅 supportedProfiles设备配置文件

-screensize value 在桌面上运行 mobileDevice 配置文件中的应用程序时要使用的模拟屏幕大小。将屏幕大小指定为预定义屏幕类型,或者指定为纵向布局标准宽度和高度的像素尺寸,以及全屏宽度和高度的像素尺寸。若要按类型指定值,请使用以下预定义屏幕类型之一:

屏幕类型

标准宽度 x 高度

全屏宽度 x 高度

480

720 x 480

720 x 480

720

1280 x 720

1280 x 720

1080

1920 x 1080

1920 x 1080

Droid

480 x 816

480 x 854

FWQVGA

240 x 432

240 x 432

FWVGA

480 x 854

480 x 854

HVGA

320 x 480

320 x 480

iPad

768 x 1004

768 x 1024

iPadRetina

1536 x 2008

1536 x 2048

iPhone

320 x 460

320 x 480

iPhoneRetina

640 x 920

640 x 960

iPhone5Retina

640 x 1096

640 x 1136

iPhone6

750 x 1294

750 x 1334

iPhone6Plus

1242 x 2148

1242 x 2208

iPod

320 x 460

320 x 480

iPodRetina

640 x 920

640 x 960

iPod5Retina

640 x 1096

640 x 1136

NexusOne

480 x 762

480 x 800

QVGA

240 x 320

240 x 320

SamsungGalaxyS

480 x 762

480 x 800

SamsungGalaxyTab

600 x 986

600 x 1024

WQVGA

240 x 400

240 x 400

WVGA

480 x 800

480 x 800

若要直接指定屏幕像素尺寸,请使用以下格式:

widthXheight:fullscreenWidthXfullscreenHeight

始终指定纵向布局的像素尺寸,也就是说,将宽度值指定为小于高度值。例如,可以按照以下方式来指定 NexusOne 屏幕:

-screensize 480x762:480x800

-extdir extension-directory 运行时应在其中搜索本机扩展的目录。目录包含应用程序使用的每个本机扩展的子目录。其中的每个子目录都包含扩展的未打包 ANE 文件。例如:

C:\extensionDirs\ 
    extension1.ane\ 
        META-INF\ 
            ANE\ 
                Android-ARM\ 
                    library.swf 
                    extension1.jar 
                extension.xml 
            signatures.xml 
        catalog.xml 
        library.swf 
        mimetype 
    extension2.ane\ 
        META-INF\ 
            ANE\ 
                Android-ARM\ 
                    library.swf 
                    extension2.jar 
                extension.xml 
            signatures.xml 
        catalog.xml 
        library.swf 
        mimetype 
    

使用 -extdir 参数时,请考虑以下事项:

  • ADL 命令要求每一个指定目录都具有 .ane 文件扩展名。不过,“.ane”后缀前面的文件名部分可以是任何有效的文件名。此部分 必与应用程序描述符文件的 extensionID 元素的值匹配。

  • 您可以多次指定 -extdir 参数。

  • ADT 和 ADL 工具使用 -extdir 参数的方式有所不同。在 ADT 中,该参数指定一个包含 ANE 文件的目录。

  • 也可使用环境变量 AIR_EXTENSION_PATH 指定扩展目录。请参阅 ADT 环境变量

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

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

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

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

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 -nodebug myApp-app.xml

使用移动设备配置文件运行应用程序,并模拟 Nexus One 屏幕大小:

adl -profile mobileDevice -screensize NexusOne myMobileApp-app.xml

使用 Apache Ant 运行应用程序(示例中显示的路径适用于 Windows):

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

ADL 退出和错误代码

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

退出代码

说明

0

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

1

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

2

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

3

无法找到运行时。

4

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

5

发生未知原因错误。

6

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

7

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

8

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

9

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

10

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

11

当前配置文件不支持 -screensize 参数。