이 주제에서는 Android GPU 검사기 (AGI)를 사용하여 Android 앱에서 시스템 프로파일링과 프레임 프로파일링 을 실행하는 방법을 설명합니다.
이 빠른 시작은 Android의 그래픽 개발에 익숙한 개발자를 대상으로 합니다.
컴퓨터 요구사항
AGI를 실행하는 컴퓨터는 다음 요구사항을 충족해야 합니다.
다음 운영체제 중 하나가 필요합니다.
Windows: Windows 7 이상
macOS: El Capitan (10.11) 이상
Linux: Java 64비트 JDK 또는 JRE 8 (이상)이 필요하며 Ubuntu Trusty Tahr (14.04 이상) 이 권장됩니다.
AGI 다운로드 및 설치
Android 앱 요구사항
이 섹션에서는 프로파일링되는 Android 앱의 요구사항을 설명합니다.
Android 앱은 디버그 가능해야 합니다. 앱의 Android 매니페스트에 있는 debuggable 속성 은
true로 설정해야 합니다. 이 속성은 그래픽 드라이버에서 적절한 계측을 사용 설정합니다. Vulkan 애플리케이션의 경우 이 속성을 사용하면 애플리케이션이 시작될 때 AGI가 자체 Vulkan 레이어를 추가할 수 있습니다.<application [...] android:debuggable="true">
앱이 Vulkan을 기본적으로 사용하는 경우 AGI에는 다음도 필요합니다.
앱에 Vulkan 유효성 검사 레이어 가 사용 설정되어 있어야 합니다. 사용 설정되어 있지 않은 경우 다음 명령어를 실행하여 AGI APK(
com.google.android.gapid.<abi>)에 포함된 유효성 검사 레이어를 사용하여 앱을 실행하도록 강제할 수 있습니다.app_package=<YOUR APP PACKAGE NAME HERE> abi=arm64v8a # Possible values: arm64v8a, armeabi-v7a, x86 adb shell settings put global enable_gpu_debug_layers 1 adb shell settings put global gpu_debug_app ${app_package} adb shell settings put global gpu_debug_layer_app com.google.android.gapid.${abi} adb shell settings put global gpu_debug_layers VK_LAYER_KHRONOS_validation프로파일링이 완료되면 다음 명령어를 사용하여 이러한 유효성 검사 레이어를 사용 중지할 수 있습니다.
adb shell settings delete global enable_gpu_debug_layers adb shell settings delete global gpu_debug_app adb shell settings delete global gpu_debug_layers adb shell settings delete global gpu_debug_layer_app앱은 Vulkan 유효성 검사 레이어 가 사용 설정된 상태로 실행될 때 경고나 오류를 보고해서는 안 됩니다. 프로파일링 전에 Vulkan 유효성 검사 오류를 수정하세요.
베타 GPU 드라이버를 사용하는 경우 Android 매니페스트의
<application>태그에 다음 메타데이터를 포함합니다.<meta-data android:name="com.android.graphics.developerdriver.enable" android:value="true" />
Android 기기 요구사항
AGI에는 다음과 같은 Android 기기 요구사항이 있습니다.
USB 케이블
adb 디버깅을 사용 설정해야 하며 adb를 통해 기기에 액세스할 수 있어야 합니다. USB를 통해 설치 옵션이 있으면 사용 설정합니다.
기기 유효성 검사
AGI에는 호환되는 GPU 드라이버가 필요합니다. 유효한 프로파일링 데이터를 제공하도록 하기 위해 AGI는 새 기기를 처음 연결할 때 유효성 검사 체크를 실행합니다. 이 작업은 약 10초가 걸립니다. 체크를 통과하면 기기를 사용하여 Android 앱을 프로파일링할 수 있습니다.
유효성 검사가 진행되는 동안 기기를 방해하지 마세요. 그러면 기기가 유효성 검사에 실패할 수 있습니다. 기기가 유효성 검사에 실패했지만 올바르게 설정된 경우 기기를 다시 선택하여 유효성 검사를 다시 시도할 수 있습니다.
유효성 검사는 기기의 일회성 단계이며 결과는 향후 AGI 사용을 위해 캐시됩니다. 하지만 GPU 드라이버 또는 Android 버전이 업데이트되는 등 기기 설정이 변경되면 AGI가 유효성 검사를 다시 실행합니다.
기기가 지원되는 기기로 나열되어 있으면 AGI가 유효성 검사를 통과할 것으로 예상할 수 있습니다. 기기가 나열되어 있지 않으면 GPU 드라이버가 AGI와 호환되지 않을 가능성이 큽니다.
기기가 지원되지만 유효성 검사에 실패하는 경우
이전 섹션에 설명된 모든 Android 요구사항과 컴퓨터 요구사항을 충족하고 기기가 USB 케이블을 사용하여 컴퓨터에 올바르게 연결되어 있는지 확인합니다.
모든 요구사항이 충족되면, GitHub 저장소에 동작을 설명하는 문제를 제출하세요.
기기가 지원되지 않는 경우
Google은 OEM 파트너와 협력하여 더 많은 기기를 지원하기 위해 노력하고 있습니다. GitHub 저장소에 문제를 제출하여 기기 지원을 요청할 수 있습니다.
프로파일링 데이터 캡처
다음 섹션에서는 프로파일링 데이터를 캡처하고 결과 추적 파일을 열어 결과를 분석하는 방법을 설명합니다.
Android 설정 구성
프로파일링을 시작하기 전에 프로파일링할 앱과 기기를 지정하는 이러한 Android 앱 및 기기 설정을 구성해야 합니다.
USB 케이블을 사용하여 Android 기기를 컴퓨터에 연결합니다.
컴퓨터에서 AGI를 실행합니다.
AGI를 처음 실행하면 adb 실행 파일의 경로를 묻는 시작 화면이 표시됩니다. AGI는 이러한 설정을
HOME폴더의.agic파일에 저장합니다. 이미 이 작업을 완료한 경우 이 단계를 건너뛸 수 있습니다.
그림 1: 시작 화면. adb 경로 필드에 adb 실행 파일의 경로를 입력합니다. 이 필드 뒤에 있는 체크박스는 선택사항입니다.
시작 을 클릭하여 실행 화면을 표시합니다.
그림 2: Android GPU 검사기 기본 실행 화면. 실행 화면에서 새 트레이스 캡처 를 클릭합니다. 그러면 새 트레이스 캡처 대화상자가 표시됩니다. 또는 시스템 프로필 트레이스 캡처 버튼을 클릭해도 됩니다.
그림 3: 새 트레이스 캡처 대화상자. 기기 및 유형 섹션에서 프로파일링할 Android 기기를 선택합니다. 기기 목록에 표시되지 않으면 새로고침 화살표를 클릭하여 목록을 새로고침합니다.
애플리케이션 섹션에서 프로파일링할 앱을 선택합니다. 패키지에 활동이 하나만 있는 경우 활동 대신 패키지를 선택할 수 있습니다.
AGI에는 샘플 Vulkan 앱이 포함되어 있습니다. 자체 앱 대신 샘플 앱을 사용하려면 다음 단계를 따르세요.
애플리케이션 필드 옆에 있는 ... 버튼을 클릭합니다.
그러면 선택한 기기에서 추적 가능한 앱 목록을 표시하는 추적할 애플리케이션 선택 대화상자가 표시됩니다.
필터 텍스트 상자에
gapid를 입력하여 패키지 이름에gapid가 포함된 애플리케이션만 표시합니다.패키지를 펼치고 com.google.android.gapid.VkSampleActivity를 선택한 후 확인을 클릭합니다.
그러면 선택한 앱으로 채워진 애플리케이션 필드가 있는 새 트레이스 캡처 대화상자로 돌아갑니다.
애플리케이션 섹션에서 다른 필드는 비워 둡니다.
확인 을 클릭합니다.
이제 AGI를 사용하여 시스템 및 프레임 프로파일링을 실행할 수 있습니다.
시스템 프로파일링
시스템을 프로파일링하려면 다음 단계를 따르세요.
AGI 실행 화면에서 새 트레이스 캡처 를 클릭하여 시스템 프로필 캡처 대화상자를 표시합니다.
유형 목록에서 시스템 프로필 을 선택합니다.
시작 및 기간 섹션에서 시작 시간을 수동으로, 기간을
2로 설정합니다.트레이스 옵션 섹션에서 구성 을 클릭합니다. 그러면 프로파일링 옵션 목록이 표시됩니다.
그림 4: 다음의 프로파일링 옵션: 시스템 프로필 캡처 대화상자. 캡처할 프로파일링 데이터를 선택합니다.
GPU 섹션에서 선택 을 클릭합니다.
그러면 선택할 수 있는 카운터 목록이 표시됩니다.
그림 5: 카운터 선택. 기본값 을 클릭하여 기본 카운터 세트를 선택하고 확인 을 클릭하여 프로파일링 옵션으로 돌아갑니다.
확인 을 클릭하여 기본 시스템 프로필 캡처 대화상자로 돌아갑니다.
출력 섹션에서 프로파일링 중에 생성되는 트레이스 파일을 저장할 출력 디렉터리 를 선택합니다. 파일 이름 필드는 자동으로 채워지지만 수정할 수도 있습니다.
확인 을 클릭합니다. 그러면 Android 기기에서 선택한 앱이 시작되고 시작 버튼이 있는 팝업 창이 표시됩니다.
시작 버튼을 클릭하여 프로파일링 데이터 캡처를 시작하고 프로세스가 완료될 때까지 몇 초 정도 기다립니다.
트레이스 열기 를 클릭합니다. 표시되는 초기 뷰는 systrace와 비슷합니다.
그림 6: 시스템 프로파일러 UI. AGI는 systrace에서 사용할 수 있는 데이터 외에도 GPU 성능 정보도 표시합니다. 시스템 프로파일링 데이터 보기에 관한 자세한 내용은 AGI 시스템 프로필 보기를 참고하세요.
추가 설정에 관한 자세한 내용은 시스템 프로파일링 옵션을 참고하세요.
프레임 프로파일링
앱에서 개별 프레임을 프로파일링하려면 다음 단계를 따르세요.
AGI 실행 화면에서 새 트레이스 캡처 를 클릭하여 새 트레이스 캡처 대화상자를 표시합니다. 또는 프레임 프로필 트레이스 캡처 버튼을 클릭해도 됩니다.
유형 목록에서 앱이 사용하는 그래픽 API에 따라 Vulkan 또는 ANGLE의 OpenGL 을 선택합니다. 올바른 항목을 선택해야 합니다. 그렇지 않으면 AGI가 그래픽 명령어를 캡처하지 않습니다.
시작 및 기간 섹션에서 시작 시간 을 수동 으로 설정합니다. 프레임 프로필 트레이스 캡처 버튼을 클릭한 경우 이 단계는 이미 완료되었습니다.
출력 섹션에서 추적 파일을 저장할 출력 디렉터리 를 선택합니다. 파일 이름 필드는 자동으로 채워지지만 수정할 수도 있습니다.
선택사항: 일부 앱은 모든 그래픽 처리를 실행하는 다른 프로세스를 생성합니다. 이 프로세스를 캡처하려면 이름을 지정합니다.
확인 을 클릭합니다. 그러면 Android 기기에서 앱이 시작되고 시작 버튼이 있는 팝업 창이 표시됩니다.
시작 버튼을 클릭하고 프로파일링이 완료될 때까지 몇 초 정도 기다립니다.
트레이스 열기 를 클릭하여 프로파일링 데이터를 확인합니다. 프레임 프로파일러 UI의 각 창에 관한 자세한 내용은 프레임 프로파일링 개요를 참고하세요.
추가 설정에 관한 자세한 내용은 프레임 프로파일링 옵션을 참고하세요.