개발 컴퓨터에서 ADL로 실행되는 응용 프로그램을 디버그할 수 있습니다. 또한 iPhone에서도 응용 프로그램을 디버그할 수 있습니다.
일부 AIR 기능은 iPhone에서 지원되지 않지만 개발 컴퓨터에서 ADL로 응용 프로그램을 테스트할 때는 사용할 수 있습니다. 데스크톱에서 내용을 테스트할 때 이러한 차이에 유의해야 합니다. 자세한 내용은
휴대 장치에서 지원되지 않는 ActionScript 3.0 API
를 참조하십시오.
개발 컴퓨터에서 응용 프로그램 디버그
Flash Professional CS5를 사용하여 개발 컴퓨터에서 응용 프로그램을 디버그하려면 다음 작업을 수행합니다.
[디버그] > [동영상 디버그] > [AIR Debug Launcher(모바일)]를 선택합니다.
또한 명령줄에서 ADL을 호출하여 응용 프로그램을 디버그할 수도 있습니다. 다음 구문을 사용합니다.
adl –profile mobileDevice appDescriptorFile
appDescriptorFile
을 응용 프로그램 설명자 파일 경로로 바꿉니다.
-profile mobileDevice
옵션을 포함했는지 확인하십시오.
iPhone에서 응용 프로그램 디버그
iPhone에서 응용 프로그램을 디버그하려면
-
디버그 지원을 받아 응용 프로그램을 컴파일합니다.
-
iPhone에 응용 프로그램을 설치합니다.
-
iPhone에서 Wi-Fi를 켜고 개발 컴퓨터와 동일한 네트워크에 연결합니다.
-
개발용 컴퓨터에서 디버그 세션을 시작합니다. Flash Professional CS5에서 [디버그] > [원격 디버그 세션 시작] > [ActionScript 3.0]을 선택합니다.
-
iPhone에서 응용 프로그램을 실행합니다.
응용 프로그램의 디버그 버전에서 개발자 컴퓨터의 IP 주소를 묻는 메시지가 나타납니다. IP 주소를 입력하고 [확인] 버튼을 누릅니다. 개발용 컴퓨터의 IP 주소를 확인하려면 다음과 같이 합니다.
디버그 세션에 응용 프로그램의 모든
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에 다시 업로드되고 있습니다.
이러한 표시 객체가 응용 프로그램에서 비트맵 표현을 다시 렌더링해야 하는 방식으로 변경될 때마다 빨강이 표시됩니다. 예를 들어
cacheAsBitmapMatrix
속성이 설정되지 않은 2D 객체인 경우 크기 조절 또는 회전 시 다시 렌더링됩니다. 자식 표시 객체가 이동하거나 변경되는 경우에도 다시 렌더링됩니다.
해당 주기 동안 색상 지정의 이유가 다시 발생하지 않는 경우, 색상이 지정된 각 사각형은 4가지 화면 다시 그리기 주기 후 페이드됩니다. 그러나 화면에서 변경 사항이 없는 경우 진단 색상 지정이 변경되지 않습니다.
예를 들어 비트맵으로 캐시되지 않는 벡터 배경 앞의 비트맵 표시 객체(바나나)를 생각해 보겠습니다. 바나나가 먼저 렌더링되면 녹색으로 색상이 지정됩니다. 배경이 먼저 렌더링되면 파랑으로 색상이 지정됩니다.
바나나가 이동함에 따라 CPU에서 배경을 다시 렌더링해야 하며, 이로 인해 배경 위에 파랑 음영이 나타납니다.
배경 위의 파랑 음영은 GPU에 전송해야 할 다시 그려진 영역을 반영합니다.
그러나 배경이 비트맵으로 캐시되는 경우 바나나가 이동하면 렌더링 진단 기능이 색상이 지정된 농도를 표시하지 않습니다.
GPU에서 배경 비트맵이 유지되므로 진단 기능이 색상이 지정된 농도를 표시하지 않습니다. GPU는 CPU를 사용하지 않고 배경과 바나나를 합성할 수 있습니다.
바나나가
cacheAsBitmapMatrix
속성이 설정되지 않은 2D 표시 객체라고 가정해 보겠습니다. 표시 객체가 회전(또는 크기 조절)될 때마다 렌더링 진단 기능이 빨강을 표시합니다. 이는 응용 프로그램이 표시 객체의 새 버전을 GPU에 업로드해야 함을 나타냅니다.