使用 AIR Debug Launcher (ADL)

使用 AIR Debug Launcher (ADL),即可在開發階段執行 SWF 類型和 HTML 類型的應用程式,也能在不需要先行封裝和安裝應用程式的情況下,直接執行應用程式。ADL 預設會使用 SDK 隨附的執行階段,這表示您不需要另外安裝執行階段,就可以使用 ADL。

ADL 會將追蹤陳述式和執行階段錯誤列印至標準輸出,但是不支援中斷點或其它除錯功能。您可以使用 Flash 除錯程式 (或是 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 可以讓您測試 AIR 應用程式的功能 (例如經由本機連線來通訊),這些功能會使用發行者 ID 協助唯一識別應用程式。至於 AIR 1.5.3,您也可以在應用程式描述器檔案中指定發行者 ID (而且不應該使用這個參數)。

備註: 至於 AIR 1.5.3,不再自動計算發行者 ID 並指派給 AIR 應用程式。 當您對現有的 AIR 應用程式建立更新程式時,可以指定發行者 ID,不過新的應用程式不需要,也不應該指定發行者 ID。

-nodebug:關閉除錯支援功能。如果有使用這項功能,應用程式程序便無法連接至 Flash 除錯程式,而且未處理例外的對話方塊便不會顯示 (不過,追蹤陳述式還是會列印至主控台視窗)。關閉除錯功能可以稍微提高應用程式的執行速度,也能更準確地模擬所安裝應用程式的執行模式。

-atlogin :模擬登入時啟動應用程式。此旗標可讓您測試應用程式邏輯,查看此邏輯是否只有在將應用程式設為在使用者登入時啟動才會執行。使用 -atlogin 時,傳送到應用程式之 InvokeEvent 物件的 reason 屬性將為 login,而非 standard (除非應用程式已在執行中)。

-profile profileName:ADL 會使用指定的描述檔對應用程式進行除錯。profileName 可以是 desktopextendedDesktopmobileDevice 以及 extendedMobileDevice。如需詳細資訊,請參閱限制目標應用程式描述檔應用程式描述檔

application.xml:應用程式描述器檔案。請參閱設定 AIR 應用程式屬性。應用程式描述器是 ADL 的唯一必要參數,且在大多數情況下是唯一需要的參數。

root-directory:指定要執行之應用程式的根目錄。如果未指定,則會使用包含該應用程式描述器檔案的目錄。

-- arguments 任何出現在「--」之後的字元字串都會傳遞至應用程式做為命令列引數。

備註: 當您啟動已經在執行中的 AIR 應用程式時,並不會啟動該應用程式的新實體,而是會將 invoke 事件傳送至執行中的實體。

列印追蹤陳述式

若要將追蹤陳述式列印至用於執行 ADL 的主控台,請使用 trace() 函數將追蹤陳述式加入程式碼中。

ActionScript 範例:

//ActionScript 
trace("debug message"); 

JavaScript 範例:

//JavaScript 
air.trace("debug message");
在 JavaScript 程式碼,您可以使用 alert()confirm() 函數顯示應用程式的除錯訊息。此外,語法有錯誤的行號和未捕捉的 JavaScript 例外也都會列印至主控台。
備註: 若要使用 JavaScript 範例顯示的 air 前置詞,您必須將 AIRAliases.js 檔案匯入頁面中。這個檔案位於 AIR SDK 架構目錄內。

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 除錯程式 (FDB)

若要使用 Flash 除錯程式來除錯 AIR 應用程式,請啟動 FDB 工作階段,然後使用 ADL 來啟動應用程式。

備註: 在 SWF 類型的 AIR 應用程式中,ActionScript 原始檔案必須使用-debug 旗標進行編譯 (在 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 程式碼的執行,而如果屬於 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 選項指定的描述檔。