개발 이야기

AGI (Android GPU Inspector)

ANDYLION 2023. 2. 8. 15:40
728x90
반응형

안녕하세요. 앤디라이언입니다.

이번 포스팅은 google의 game engine tool인 AGI에 관해서 얘기해보고 AGI 소스를 빌드하고 실행하는 것을 목표로 잡고 진행하려고 합니다.

https://developer.android.com/agi

 

Android GPU Inspector  |  Android game development  |  Android Developers

Stay organized with collections Save and categorize content based on your preferences. Analyze the impact your game has on Android devices by using this powerful graphics profiler, so you can identify performance issues and areas to optimize. Featured Perf

developer.android.com

https://developer.android.com/agi/start

 

Android GPU Inspector quickstart  |  Android Developers

Android GPU Inspector quickstart Stay organized with collections Save and categorize content based on your preferences. This topic describes how to perform system profiling and frame profiling on your Android app using Android GPU Inspector (AGI). This qui

developer.android.com

https://github.com/google/agi/blob/master/BUILDING.md

 

GitHub - google/agi: Android GPU Inspector

Android GPU Inspector. Contribute to google/agi development by creating an account on GitHub.

github.com

google은 Android 11 플랫폼부터 perfetto tracing을 도입하여 AGI를 사용할 수 있도록 만들었습니다.

AGI는 Android GPU Inspector의 약어로 강력한 그래픽 프로파일러를 사용하여 게임이 Android 기기에 미치는 영향을 분석하여 성능 문제와 최적화할 영역을 파악할 수 있습니다.

그러나 개발하고 릴리즈하는 과정에서 버그가 발견되기도 하기 때문에 github에서 수정되는 내용이 다음 릴리즈 버전에 반영하기 전까지 테스트 할 수 없습니다.

그래서 commit이 반영한 AGI 소스를 빌드하여 신규 버전을 미리 사용할 수 있도록 가이드하고 있습니다.

 

Install Bazel 5.2.0

AGI source build guide에는 5.2.0버전 사용을 권장하므로 5.2.0 기준으로 작성하였습니다.

  • Using Bazel apt storage
$ sudo apt install apt-transport-https curl gnupg -y
$ curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazelarchive-keyring.gpg
$ sudo mv bazel-archive-keyring.gpg /usr/share/keyrings
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] 
https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.l
ist.d/bazel.list
  • Install Bazel and update
$ sudo apt update && sudo apt install bazel
$ sudo apt update && sudo apt full-upgrade
$ sudo apt install bazel-5.2.0
  • Install needed packages
$ sudo apt install g++ unzip zip

 

Install Clang and Setup

clang-12는 가이드 문서와 별도로 Ubuntu 20.04 LTS 버전에서 설치할 수 있는 방법을 사용하였습니다.

$ sudo apt install clang-12 --install-suggests
# Install complete...
$ export CC=clang-12

 

Install JDK 11

A JDK is required to run a custom build of AGI. If you do not already have a suitable JDK installed, you can download the OpenJDK we use on our build bots.

Make sure the JAVA_HOME environment variable points to the JDK.

위 설명에 따라 다운로드 후 JAVA_HOME을 환경변수에 추가해 주면 됩니다.

$ unzip zulu11.39.15-ca-jdk11.0.7-linux_x64.zip
$ cd zulu11.39.15-ca-jdk11.0.7-linux_x64
$ export JAVA_HOME=$PWD

 

Install Android SDK and NDK

github 문서에 나와 있는 Android SDK 링크를 다운 받아서 해본 결과 빌드 에러 발생 및 기타 버전 이슈로 빌드가 정상적으로 진행되지 않았습니다.

그래서 Android Studio 다운로드 사이트로 이동하여 command line tools only for linux를 다운 받습니다.

$ unzip commandlinetools-linux-9477386_latest.zip
$ cd <sdk-path>
$ export ANDROID_HOME=$PWD
$ cmdline-tools/bin/sdkmanager "platforms;android-26" "build-tools;30.0.3" --
sdk_root=$ANDROID_HOME
$ cmdline-tools/bin/sdkmanager platform-tools --sdk_root=$ANDROID_HOME

그리고 Android NDK r21d 버전을 다운 받아 ANDROID_NDK_HOME 환경변수를 지정해 줍니다.

Unzip the Android NDK r21d into a directory of your choosing, and set the ANDROID_NDK_HOME environment variable to point to this directory:

cd <ndk-path>
export ANDROID_NDK_HOME=$PWD

 

Install needed other libraries

sudo apt-get update
sudo apt-get install mesa-common-dev libncurses5-dev libgl1-mesa-dev zlib1g-dev

 

이 과정이 끝나면 AGI source를 git clone or download를 통해 내려 받습니다.

내려 받은 source 폴더로 이동 후 bazel-5.2.0 바이너리를 통해 package 빌드를 진행합니다.

$ git clone https://github.com/google/agi.git
$ cd <path-to-agi-source> (agi-master) 
$ bazel-5.2.0 build pkg

The build output will be at /bazel-bin/pkg .

output 디렉토리는 source폴더 하위에 bazel-bin으로 생성됩니다.

빌드가 완료되면 캡처된 이미지와 같이 파일들이 생성됩니다.

728x90
반응형
SMALL