Краткое руководство по инспектору графического процессора Android

В этой теме описывается, как выполнить системное профилирование и профилирование кадров в вашем Android-приложении с помощью Android GPU Inspector (AGI).

Этот краткий курс предназначен для разработчиков, знакомых с разработкой графики для Android.

Требования к компьютеру

Компьютер, на котором работает AGI, должен соответствовать следующим требованиям:

Скачайте и установите AGI.

Загрузите и установите AGI для вашей операционной системы.

Требования к приложению для Android

В этом разделе описаны требования к Android-приложению, которое подвергается профилированию:

  • Ваше Android-приложение должно быть отлаживаемым; атрибут debuggable в манифесте Android приложения должен быть установлен в true . Этот атрибут включает корректную инструментацию со стороны графического драйвера. Для приложений Vulkan этот атрибут позволяет AGI добавлять собственный слой Vulkan при запуске приложения.

    <application [...] android:debuggable="true">
    

Если ваше приложение использует Vulkan нативно, для работы AGI также требуется следующее:

  • В вашем приложении должны быть включены слои проверки Vulkan . Если они не включены, вы можете выполнить следующие команды, чтобы принудительно запустить приложение со слоями проверки, включенными в APK-файл AGI ( 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, добавьте следующие метаданные в тег <application> манифеста Android:

    <meta-data
              android:name="com.android.graphics.developerdriver.enable"
              android:value="true" />
    

Требования к устройствам Android

Для работы AGI требуются следующие устройства Android:

Проверка устройства

Для работы AGI требуется совместимый драйвер графического процессора. Чтобы гарантировать предоставление корректных данных профилирования, AGI выполняет проверку подлинности при первом подключении нового устройства, которая занимает около десяти секунд. После успешного прохождения проверки вы можете использовать устройство для профилирования приложений Android.

Не трогайте устройство во время проверки. Это может привести к сбою проверки. Если устройство не прошло проверку, но настроено правильно, вы можете повторить проверку, выбрав устройство заново.

Проверка устройства выполняется один раз, и результаты кэшируются для дальнейшего использования AGI. Однако AGI повторно выполнит проверку, если изменятся настройки устройства, например, если будет обновлен драйвер графического процессора или версия Android.

Если устройство указано в списке поддерживаемых устройств , можно ожидать, что AGI пройдет проверку. Если устройство не указано в списке, скорее всего, его драйвер графического процессора несовместим с AGI.

Если ваше устройство поддерживается, но не проходит проверку.

Убедитесь, что вы выполнили все требования Android и требования к компьютеру, описанные в предыдущих разделах, и что устройство правильно подключено к компьютеру с помощью USB-кабеля.

Если все требования выполнены, создайте заявку в нашем репозитории GitHub, описав проблему.

Если ваше устройство не поддерживается

Мы работаем с нашими OEM-партнерами над добавлением поддержки большего количества устройств. Вы можете отправить запрос на добавление поддержки для конкретного устройства в наш репозиторий GitHub.

Сбор данных профилирования

В следующих разделах описано, как собирать данные профилирования и открывать полученный файл трассировки для анализа результатов.

Настройка параметров Android

Перед началом профилирования необходимо настроить параметры приложения и устройства Android, указав приложение и устройство для профилирования.

  1. С помощью USB-кабеля подключите ваше устройство Android к компьютеру.

  2. Запустите AGI на своем компьютере.

    При первом запуске AGI отображается экран приветствия , в котором запрашивается путь к исполняемому файлу adb. AGI сохраняет эти настройки в файле .agic в вашей HOME папке. Если вы уже это сделали, можете пропустить этот шаг.

    Экран приветствия
    Рисунок 1: Экран приветствия .
  3. В поле «Путь к adb» укажите путь к исполняемому файлу adb . Флажки после этого поля необязательны.

  4. Нажмите «Начать» , чтобы отобразить стартовый экран.

    Экран запуска AGI
    Рисунок 2: Главный экран запуска Android GPU Inspector.
  5. На экране запуска нажмите «Записать новую трассировку ». Откроется диалоговое окно «Записать новую трассировку» . В качестве альтернативы вы можете нажать кнопку «Записать трассировку профиля системы» .

    Диалоговое окно «Создать новую трассировку»
    Рисунок 3: Диалоговое окно «Создать новую трассировку» .
  6. В разделе «Устройство и тип» выберите устройство Android, для которого хотите создать профиль. Если оно не отображается в списке устройств , нажмите стрелку обновления, чтобы обновить список.

  7. В разделе «Приложение» выберите приложение, для которого хотите создать профиль. Если в пакете только одно действие, вы можете выбрать пакет вместо действия.

    AGI включает в себя пример приложения Vulkan. Чтобы использовать пример приложения вместо своего собственного, выполните следующие действия:

    1. Нажмите кнопку " ..." рядом с полем "Приложение" .

      Здесь отображается диалоговое окно «Выберите приложение для отслеживания» , в котором представлен список приложений, которые можно отследить на выбранном устройстве.

    2. В текстовом поле «Фильтр» введите gapid , чтобы отображались только приложения, в названии пакета которых содержится gapid .

    3. Разверните пакет и выберите com.google.android.gapid.VkSampleActivity , а затем нажмите OK .

      Это вернет вас к диалоговому окну «Создать новую трассировку» , в поле «Приложение» будет указано выбранное вами приложение.

  8. В разделе «Приложение» остальные поля оставьте пустыми.

  9. Нажмите ОК .

Теперь вы готовы использовать AGI для выполнения профилирования системы и фреймов.

Профилирование системы

Для составления профиля системы выполните следующие действия:

  1. На экране запуска AGI нажмите «Захватить новую трассировку» , чтобы отобразить диалоговое окно «Захват системного профиля» .

  2. В списке «Тип» выберите «Системный профиль» .

  3. В разделе «Начало и продолжительность» установите значение «Начало в» на «Вручную» , а значение «Продолжительность» на 2 .

  4. В разделе «Параметры трассировки» нажмите «Настроить» . Отобразится список параметров профилирования.

    Диалоговое окно «Настройка захвата»
    Рисунок 4: Параметры профилирования в диалоговом окне « Профиль системы захвата» .
  5. Выберите данные профилирования, которые вы хотите собрать.

  6. В разделе GPU нажмите «Выбрать» .

    Здесь отображается список счетчиков для выбора.

    Конфигурация счетчика
    Рисунок 5: Выбор прилавков.
  7. Нажмите кнопку «По умолчанию» , чтобы выбрать набор счетчиков по умолчанию, и нажмите кнопку «ОК» , чтобы вернуться к параметрам профилирования.

  8. Нажмите кнопку ОК , чтобы вернуться к главному диалоговому окну «Профиль системы захвата» .

  9. В разделе «Вывод» выберите выходной каталог для сохранения файлов трассировки, созданных в процессе профилирования. Поле «Имя файла» должно быть заполнено автоматически, но вы также можете его отредактировать.

  10. Нажмите ОК . Это запустит выбранное приложение на устройстве Android и отобразит всплывающее окно с кнопкой «Старт» .

  11. Нажмите кнопку «Старт» , чтобы начать сбор данных профилирования, и подождите несколько секунд, пока процесс завершится.

  12. Нажмите «Открыть трассировку» . Первоначально отобразится окно, похожее на systrace .

    Трассировка профиля системы
    Рисунок 6: Пользовательский интерфейс системного профилировщика.

    Помимо данных, доступных в systrace, AGI также отображает информацию о производительности графического процессора. Для получения дополнительной информации о просмотре данных профилирования системы см. раздел «Просмотр профиля системы AGI» .

Для получения информации о дополнительных настройках см. раздел «Параметры профилирования системы» .

Профиль рамы

Для анализа отдельного кадра из вашего приложения выполните следующие действия:

  1. На экране запуска AGI нажмите «Захватить новую трассировку» , чтобы отобразить диалоговое окно «Захватить новую трассировку» . В качестве альтернативы вы можете нажать кнопку «Захватить трассировку профиля кадра» .

  2. В списке «Тип» выберите Vulkan или OpenGL в ANGLE в зависимости от того, какой графический API использует ваше приложение. Убедитесь, что вы выбираете правильный API, иначе AGI не сможет перехватывать графические команды.

  3. В разделе «Начало и продолжительность» установите параметр «Начало в» в значение «Вручную» . Если вы нажали кнопку «Захват профиля кадра» , этот шаг уже выполнен.

  4. В разделе «Вывод» выберите выходной каталог для сохранения файлов трассировки. Поле «Имя файла» должно быть заполнено автоматически, но вы также можете его отредактировать.

  5. Необязательно: Некоторые приложения запускают отдельный процесс, который выполняет всю графическую обработку. Чтобы перехватить этот процесс, укажите его имя.

  6. Нажмите ОК . Это запустит ваше приложение на устройстве Android и отобразит всплывающее окно с кнопкой «Старт» .

  7. Нажмите кнопку «Старт» и подождите несколько секунд, пока завершится профилирование.

  8. Нажмите «Открыть трассировку» , чтобы просмотреть данные профилирования. Информацию о каждой панели в пользовательском интерфейсе Frame Profiler см. в разделе « Обзор профилирования кадров» .

Для получения информации о дополнительных настройках см. раздел «Параметры профилирования кадров» .