在 ADL 中執行應用程式,便可以在開發電腦上進行應用程式的除錯。您也可以在 iPhone 中進行應用程式的除錯。
使用 ADL 測試應用程式 (在開發電腦上) 時,您仍然可以使用某些 iPhone 所不支援的 AIR 功能。在桌上型電腦測試內容時,請瞭解其中的差異。如需詳細資訊,請參閱
行動裝置不支援 ActionScript 3.0 API
。
在開發電腦上進行應用程式的除錯
若要使用 Flash Professional CS5 在開發電腦上進行應用程式的除錯:
選擇「除錯 > 影片除錯 > 在 AIR Debug Launcher (行動裝置) 中」。
您也可以從命令列呼叫 ADL 來進行應用程式的除錯。語法如下:
adl –profile mobileDevice appDescriptorFile
以應用程式描述器檔案的路徑來取代
appDescriptorFile
。
請務必包括
-profile mobileDevice
選項。
使用 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: