Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

Visual Studio

[UE] Android에서 Unreal Insights 사용하기 본문

Game Engine

[UE] Android에서 Unreal Insights 사용하기

emacser 2024. 12. 13. 17:36

Android로 배포한 언리얼 앱을 Unreal Insights로 분석하는 방법은 두가지가 있다.

1. "-tracefile=[파일이름]" 명령 인수로 디바이스 저장소에 .utrace 파일 생성 후 PC로 복사하여 분석하기

2. "-tracehost=127.0.0.1" 로 Unreal Insights와 직접 연결하여 분석하기

 

일단 1번과 2번 모두 adb push를 사용하기 때문에 USB 디버깅이 켜져 있어야 하고, 갤럭시 기준으로 개발자 메뉴에 있는 "OEM 잠금 해제"를 켜줘야 한다. (몇년전에 커스텀롬을 하기 위해 recovery mode로 진입하여 XDA에서 만든 부트로더 잠금 해제 툴로 벽돌을 감수하고 잠금 해제를 했었는데, 이제는 개발자 메뉴에서 딸깍이 가능한 것이 신기했다.)

 

adb는 Android Studio에서 기본으로 설치해주는 것을 사용한다.

경로는 AppData/Local/Android/Sdk/platform-tools

간편하게 사용하고 싶으면 해당 경로를 환경변수 Path에 추가해주면 된다.

 

이제 앱 수정 없이 명령 인수를 넣어서 실행하려면 UECommandline.txt라는 파일을 디바이스의 앱 데이터 디렉터리에 넣어주어야 한다.

UECommandline.txt에 원하는 명령 인수를 작성한 다음 adb push로 Android/data/[앱 이름]/UnrealGame/[프로젝트명] 디렉터리로 넣어준다.

 

1번 방법으로 진행했을 때 utrace 파일이 생성되지 않는 경우가 있을 수 있다. OEM 잠금 해제도 하고 USB 디버깅 연결 후 adb device로 연결되어 있는것을 확인 한 뒤, 앱에 파일 쓰기 권한도 줬는데도 불구하고 utrace 파일 생성이 안되어서 2번 방법으로 진행했다. (정상적인 경우라면 Saved/Profiling 디렉터리 하위에 utrace 파일이 생성되었어야 한다.)

 

만약 2번 방법으로 진행한다면, adb로 TCP 트래픽을 리다이렉트 해주어야 한다. 사용할 명령어는 다음과 같다.

adb reverse tcp:1981 tcp:1981

 

포트번호는 언리얼 엔진 버전에 따라 다를 수 있다. 인터넷에서 검색했을때 나온 자료로는 1980이었는데, 내 경우(5.3.2)에는 1981이어서 곤혹을 치뤘다.

 

인사이트 연결에 실패했는데 포트번호를 모르겠다면 로그를 보면 된다.

Log file open, 12/12/24 20:27:32
LogTrace: Initializing trace...
LogCore: Display: Requested channels: 'task,log,cpu,gpu,frame,memtag,net,loadtime,stats'
LogAndroid: Case APP_CMD_WINDOW_RESIZED
LogAndroid: Case APP_CMD_WINDOW_REDRAW_NEEDED
LogTrace: Error: ConnectError Connecting to host (127.0.0.1:1981): 'Connection refused'
LogCore: Warning: Unable to trace to host '127.0.0.1'
LogCore: Error: Trace failed to connect (trace host: 127.0.0.1)!

 

이렇게 로그 맨 앞부분에 Trace 관련 로그들이 찍히는데, 여기서 찍히는 포트 번호를 보고 adb reverse 명령어를 다시 입력해주면 된다.

 

정상적으로 명령 인수가 들어갔다면 언리얼 앱을 다시 켜주면 utrace 파일이 작성되거나 인사이트와 연결이 가능해지게 될 것이다.

 

아래는 직접 엔진을 빌드하거나 엔진 버전업이 있었던 프로젝트에만 해당된다.

녹화한 trace 파일에 이렇게 플랫폼, 프로젝트명 등의 정보가 표시되지 않는 경우가 있는데 이건 Unreal Insights의 버전이 너무 오래되어 호환이 안되는 상황이다. 해당 trace 파일을 선택하여 분석을 시작해도 타임라인에 아무것도 나오지 않을 것이다. 이럴때는 엔진 디렉터리의 UE.sln 솔루션을 VS로 열어서 Programs 하위의 UnrealInsights 프로젝트를 찾아 빌드해주면 된다.