iPhone 應用程式除錯

在 ADL 中執行應用程式,便可以在開發電腦上進行應用程式的除錯。您也可以在 iPhone 中進行應用程式的除錯。

使用 ADL 測試應用程式 (在開發電腦上) 時,您仍然可以使用某些 iPhone 所不支援的 AIR 功能。在桌上型電腦測試內容時,請瞭解其中的差異。如需詳細資訊,請參閱 行動裝置不支援 ActionScript 3.0 API

在開發電腦上進行應用程式的除錯

若要使用 Flash Professional CS5 在開發電腦上進行應用程式的除錯:

選擇「除錯 > 影片除錯 > 在 AIR Debug Launcher (行動裝置) 中」。

您也可以從命令列呼叫 ADL 來進行應用程式的除錯。語法如下:

adl –profile mobileDevice appDescriptorFile

以應用程式描述器檔案的路徑來取代 appDescriptorFile

請務必包括 -profile mobileDevice 選項。

在 iPhone 上進行應用程式的除錯

在 iPhone 對應用程式進行除錯:

  1. 使用除錯支援來編譯應用程式:

  2. 在 iPhone 上安裝應用程式。

  3. 在 iPhone 上開啟 Wi-Fi,並連線至與開發電腦相同的網路。

  4. 在開發電腦上啟動除錯工作階段。在 Flash Professional CS5 中,選取「除錯 > 開始遠端除錯工作階段 > ActionScript 3.0」。

  5. 在 iPhone 上執行應用程式。

    應用程式的除錯版本將提示您輸入開發人員電腦的 IP 位址。輸入 IP 位址,並點選「確認」按鈕。取得開發電腦的 IP 位址。

    • 在 Mac OS 的 Apple 選單中選擇「系統偏好設定」。在「系統偏好設定」視窗中,按一下「網路」圖示。「網路」偏好設定視窗中便會列出 IP 位址。

    • 在 Windows 中,啟動命令列工作階段,然後執行 ipconfig 命令。

除錯工作階段會顯示應用程式的任何 trace() 輸出。

對 iPhone 安裝的應用程式除錯時,Flash Professional CS5 支援所有除錯功能 (包括中斷點控制、逐步執行程式碼以及變數監視)。

使用 GPU 顯示診斷來除錯

GPU 顯示診斷功能可讓您查看應用程式使用硬體加速的情形 (針對使用 GPU 顯示模式的應用程式)。若要使用此功能,請使用命令列的 PFI 工具來編譯應用程式,並包含 -renderingdiagnostics 選項:

pfi -package -renderingdiagnostics -target ipa-debug -connect ...

-renderingdiagnostics 旗標必須緊接著 -package 旗標。

GPU 顯示診斷功能會以彩色矩形顯示所有顯示物件:

  • 藍色:顯示物件不是點陣圖或未快取為點陣圖,且正在顯示。

    如果未變更的顯示物件重複出現藍色,可能是因為它與移動的顯示物件相交。例如,此顯示物件可能是移動的顯示物件的背景。考慮將顯示物件快取為點陣圖。

    如果某個您認為應該快取的物件重複出現藍色,可能是因為該物件使用 GPU 無法應用的效果。這些效果包括混合模式、顏色變形、 scrollRect 屬性以及遮罩。

    如果上傳至 GPU 的顯示物件超過記憶體限制,應用程式也會顯示藍色。

    應用程式會記錄每個藍色矩形的訊息。應用程式會輸出這些訊息,以及其他 trace() 與除錯輸出訊息。

  • 綠色:顯示物件為點陣圖或快取為點陣圖,且正首次上傳至 GPU。

    如果顯示物件重複出現綠色,表示應用程式中的程式碼正在重新建立顯示物件。例如,如果時間軸返回建立顯示物件的影格,便會發生此情況。考慮修改內容,以避免重新建立相同的物件。

  • 紅色:顯示物件為點陣圖或快取為點陣圖,且正重新上傳至 GPU。

    當顯示物件變更而使得應用程式需要重新顯示點陣圖形式時,便會出現紅色。例如,如果 2D 物件未設定 cacheAsBitmapMatrix 屬性,當它縮放或旋轉時便會重新顯示。當子顯示物件移動或變更時,也會重新顯示。

四個畫面重新繪製循環後,只要在這些循環期間不再發生出現彩色矩形的原因,每個彩色矩形便會淡出。不過,如果畫面沒有變更,診斷色彩也不會變更。

例如,假設在沒有快取為點陣圖的向量背景前有一個點陣圖顯示物件 (一根香蕉)。當首次顯示香蕉時,色彩為綠色。當首次顯示背景時,色彩為藍色:

香蕉移動時,CPU 必須重新顯示背景,使得藍色陰影出現在背景上:

背景上的藍色陰影代表必須傳送至 GPU 的重新繪製區域。

不過,如果背景快取為點陣圖,當香蕉移動時,顯示診斷功能將不會顯示任何上色色彩:

由於 GPU 保留背景點陣圖,因此診斷功能不會顯示上色色彩。毋須涉及 CPU,GPU 便能複合香蕉與點陣圖。

假設香蕉為 2D 顯示物件,且未設定 cacheAsBitmapMatrix 屬性。當此顯示物件旋轉 (或縮放) 時,顯示診斷功能將顯示紅色。這代表應用程式必須將顯示物件的新版本上傳至 GPU: