ARM의 엔지니어들은 언리얼 엔진 라이브 스트림에서 말리 그래픽 디버거를 언리얼 엔진 4에 통합 및 활용하여, 안드로이드 디바이스를 디버그하는 방법을 정확하게 보여주었습니다. 이들은 삼성 갤럭시 S7의 모바일 디바이스 상에서 디버거가 실시간으로 구동되며 프로젝트를 최적화하는 것을 보여줄 수 있었습니다.
말리 그래픽 디버거의 활성화는 정말 쉬워졌습니다. 현재는 그저 프로젝트 세팅 메뉴에서 해당 옵션을 선택하기만 하면 됩니다. 우선 언리얼 엔진 상에서 프로젝트를 연 다음, 편집 메뉴의 프로젝트 세팅 창을 엽니다. 그런 다음 왼쪽 메뉴에서 플랫폼 부분의 목록 중 안드로이드를 선택하고, 안드로이드 메뉴에서 Graphics Debugger를 찾아줍니다. 마지막으로 드롭다운 메뉴를 열고 Mali Graphics Debugger 롬을 선택합니다.

이렇게 선택한 후에는 호스트가 될 컴퓨터에 말리 그래픽 디버거 설치 경로를 입력해야 합니다. 이 작업을 위해서는 먼저 컴퓨터의 시스템에 제대로 작동하는 버전의 말리 그래픽 디버거가 선행 설치 되어있어야 합니다. 이 설치 방법과 관련된 자세한 정보는 이 링크에서 찾아볼 수 있습니다.

다음은 대상 디바이스에 MGD 데몬 (MGD Daemon)을 설치합니다. MGD 설치 폴더를 설정한 다음, target\android\arm 경로 내에 다음 명령을 사용하여 MGD 데몬을 설치해 줍니다:
adb install -r MGD.apk
어플리케이션을 실행하기 전에 호스트 PC에서 아래 명령을 실행해야 합니다(그 전에 먼저 "adb devices" 명령을 실행해 대상 디바이스가 보이는지 확인하시기 바랍니다.):
adb forward tcp:5002 tcp:5002
대상 디바이스 상에서 MGD 데몬 어플리케이션을 실행한 다음, 데몬 자신을 활성화 합니다:

이 시점에서 디바이스를 호스트 PC의 MGD로 연결하고, 어플리케이션을 실행한 다음 디버깅을 시작할 수 있습니다. MGD 매뉴얼을 참고하여 사용 방법에 대한 더 자세한 정보를 얻어보시기 바랍니다.


정말 복잡한 어플리케이션의 경우, 게임 스레드가 렌더 스레드를 기다리다 타임아웃을 일으킬 수도 있습니다. 이는 로그에서 확인이 가능합니다. (로그는 'adb logcat –s “UE4”' 명령어로 액세스해 볼 수 있습니다):
GameThread timed out waiting for RenderThread after 30.01 secs
이 경우에는 간단하게 언리얼 엔진 콘솔로 다시 실행해서(기본 설정으로는 4 손가락 동시 탭입니다) 타임아웃을 끌 수 있습니다:
g.TimeoutForBlockOnRenderFence 9999999
위 단계를 따라한다면 그 어떤 말리 기반 플랫폼 상에서든 언리얼 어플리케이션과 함께 말리 그래픽 디버거를 사용할 수 있을 것입니다. 문제가 발생했을 경우 커뮤니티 페이지에 제보해 주시면, 위 과정 진행에 대한 도움을 받을 수 있을 것입니다.