언리얼 버전이 5.2 -> JDK 11

언리얼 버전이 5.3 -> JDK 17

 

 

1. 안드로이드 개발자 모드 활성화

2. 컴퓨터에 연결 시 디버깅 연결 가능

 

 

ADB (Android Debug Bridge) 툴

안드로이드 기기와 통신할 수 있는 명령 도구

\AppData\Local\Android\Sdk\platform-tools

보통 Android Studio를 설치하면 해당 경로에 설치 되어 있다.

 

ADB 툴을 사용하면 Android 툴이 TCP 트래픽을 USB 케이블로 리디렉션 할 수 있다.

런타임 애플리케이션을 Android 디바이스에서 연결하려면 우선 adb가 USB로 디바이스에 생성된 TCP 연결을 통과하도록 지시해야 한다.

 

Unreal Insight

언리얼 엔진폴더에서 UnrealInsights 실행파일을 바로 가기 만듭니다.

이 실행파일을 실행하면 언리얼 인사이트가 실행되어야 합니다.

 

만약 언리얼 인사이트를 빌드하지 않았다면 에디터에서 해당 버튼을 눌러 빌드를 시작합니다.

 

 

이 언리얼 인사이트를 실행한 상태로 밑의 글을 따라 하시면 됩니다.

 

안드로이드 디바이스 연결

USB 케이블로 TCP 트래픽 리디렉션 (Unreal Insights는 TCP 포트 1980을 수신합니다.)
adb reverse tcp:1980 tcp:1980

 

 

만약 Unauthorized 가 뜬다면 USB 디버깅 옵션을 다시 비활성 - 활성 해주면 됩니다.

 

 

USB 케이블을 통해 트래픽을 라우팅

adb shell setprop debug.ue.commandline -tracehost=127.0.0.1

디바이스에서 실행할 때는 `localhost`에 연결되어야 합니다. 그러면 운영체제가 트래픽을 USB 케이블로 라우팅할 것이다.

 

 

여기 까지 설정하면 언리얼로 패키징한 앱을 실행하면 프로파일링이 진행될 것입니다.

앱을 실행하면 이런 창이 떠야합니다

 

 

 

프로파일링은 될 것이지만 기본값으로 지정되어있기 때문에 Memory 옵션은 따로 추가해 주어야 한다.

참고로 안드로이드에서는 GPU 언리얼 인사이트가 불가능 합니다.

-project=<uproject경로> -NetTrace=1 -tracehost=127.0.0.1 -trace=memory,cpu,frame,bookmark,log,loadtime,file,net,gpu,counters,animation,object -statnamedevents

해당 명령어를 UECommandLine.txt 인수로 붙인다.

-trace = 에 프로파일링할 인수를 넣어주면 된다.

내 PC\<디바이스 이름>\내장 저장공간\Android\data\<안드로이드 패키지 네임>\files\UnrealGame\<프로젝트 이름> 경로에 해당 파일이 없다면 UECommandLine.txt 이름으로 하나 만들고, 밑의 명령어를 이용하여 파일을 디바이스에 넣어주어야 한다.

 

UECommandLine.txt 파일 디바이스에 밀어넣기

adb push UECommandLine.txt /sdcard/Android/data/<안드로이드 패키지 네임>/files/UnrealGame/<프로젝트 이름>

이후에 다시 설치된 앱을 실행하면 언리얼 인사이트가 프로파일링을 자동으로 시작한다.

 

 

 

IOS - 언리얼 인사이트 연결

Mac 바로가기 

option + command 키로 바로가기를 만들 수 있다.
마찬가지로 UnrealInsight.app 이 없다면 에디터 혹은 cmd로 언리얼 인사이트를 빌드해 주어야 한다. 
 
 

IOS - 언리얼 인사이트 연결

IOS 에서 인사이트 실행은 ADB 를 사용하지 않기 때문에 안드로이드 보다 쉽다.

 

그런데 버그가 있는지 트레이싱이 Live 중인데 아무것도 트레이스 되지 않는다던가 바로 멈춘다던가 오류가 가끔 있는데 이때는 언리얼 인사이트.app 을 껏다가 다시 실행시켜보자

 

디바이스를 연결하여 UECommandLine.txt 파일을 앱 안에 넣는다.

-project=<uproject경로> -NetTrace=1 -tracehost=127.0.0.1 -trace=memory,cpu,frame,bookmark,log,loadtime,file,net,gpu,counters,animation,object -statnamedevents

 

만약 파인더에서 디바이스에 설치된 앱이 뜨지않는다면 Plist (Mac / IOS의 환경설정 파일) 을 설정해 주어야 한다.

[/Script/IOSRuntimeSettings.IOSRuntimeSettings]
AdditionalPlistData=<key>UIFileSharingEnabled</key><true/>
<string>YES</string> 이 아니라 <true/>

UIFileSharingEnabled - 앱이 파일을 공유하는지 여부

 

인사이트 connection - Running instance IP Address 에 연결된 디바이스 와이파이 주소를 입력해준다.

 

그리고 app을 실행 시키기 전에 Connect하면 Failed가 뜨고 디바이스의 앱을 실행한 다음 Connect를 눌러주면 live로 트레이스 되는것을 확인할 수 있다.

 

안드로이드도 Running Instance IP address를 넣어서 프로파일링 가능하지만 UECommandLine.txt 는 adb툴을 이용하여 넣어주어야 한다.

 

 

+ Recent posts