В этом разделе описывается, как выполнить профилирование системы и профилирование кадров в приложении Android с помощью Android GPU Inspector (AGI).
Это краткое руководство предназначено для разработчиков, знакомых с разработкой графики на Android.
Требования к компьютеру
Компьютер, на котором работает AGI, должен соответствовать следующим требованиям:
Требуется одна из следующих операционных систем:
Windows : Windows 7 или выше.
macOS : Эль-Капитан (10.11) или выше.
Linux : требуется 64-разрядная версия Java JDK или JRE 8 (или новее); Рекомендуется Ubuntu Trusty Tahr (14.04 или выше) .
Загрузите и установите 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 перед профилированием.
Если вы используете бета-драйверы графического процессора, включите следующие метаданные в тег
<application>
манифеста Android:<meta-data android:name="com.android.graphics.developerdriver.enable" android:value="true" />
Требования к устройству Android
У AGI есть следующие требования к устройствам Android:
Поддерживаемое устройство Android под управлением Android 11 или более поздней версии .
USB-кабель.
Отладка по adb должна быть включена, а устройство должно быть доступно через adb. Если опция «Установить через USB» присутствует, включите ее.
Проверка устройства
Для AGI требуется совместимый драйвер графического процессора. Чтобы гарантировать предоставление достоверных данных профилирования, AGI запускает проверку при первом подключении нового устройства, которая занимает около десяти секунд. После прохождения проверки вы сможете использовать устройство для профилирования Android-приложений.
Не беспокойте устройство во время проверки. Это может привести к сбою проверки устройства. Если устройство не прошло проверку, но настроено правильно, вы можете повторить проверку, повторно выбрав устройство.
Проверка — это одноразовый шаг для устройства, а результаты кэшируются для будущего использования AGI. Однако AGI снова запустит проверку, если настройки устройства изменятся, например, если обновится драйвер графического процессора или версия Android.
Если устройство указано в списке поддерживаемых , вы можете ожидать, что AGI пройдет проверку. Если устройства нет в списке, его драйвер графического процессора, скорее всего, несовместим с AGI.
Если ваше устройство поддерживается, но не проходит проверку
Убедитесь, что вы выполнили все требования Android и компьютер , описанные в предыдущих разделах, и что устройство правильно подключено к компьютеру с помощью USB-кабеля.
Если все требования соблюдены, сообщите о проблеме в нашем репозитории GitHub и опишите ее поведение.
Если ваше устройство не поддерживается
Мы работаем с нашими OEM-партнерами, чтобы добавить поддержку большего количества устройств. Вы можете сообщить о проблеме в нашем репозитории GitHub и запросить поддержку устройства.
Сбор данных профилирования
В следующих разделах описывается, как собирать данные профилирования и открывать полученный файл трассировки, чтобы можно было проанализировать результаты.
Настройте параметры Android
Прежде чем приступить к профилированию, необходимо настроить эти параметры приложения и устройства Android, которые определяют приложение и устройство для профилирования.
С помощью USB-кабеля подключите устройство Android к компьютеру.
Запустите AGI на своем компьютере.
При первом запуске AGI отображается экран приветствия , на котором предлагается указать путь к исполняемому файлу adb. AGI сохраняет эти настройки в файле
.agic
в вашейHOME
папке. Если вы это уже сделали, можете пропустить этот шаг.Рисунок 1. Экран приветствия . Введите путь к исполняемому файлу adb в поле «Путь к adb» . Флажки после этого поля являются необязательными.
Нажмите «Начать» , чтобы отобразить экран запуска.
Рис. 2. Главный экран запуска Android GPU Inspector. На экране запуска нажмите «Записать новую трассировку» . Откроется диалоговое окно «Захват новой трассировки» . Альтернативно вы можете нажать кнопку трассировки «Записать профиль системы» .
Рисунок 3. Диалоговое окно «Захват новой трассировки» . В разделе «Устройство и тип» выберите устройство Android, которое хотите профилировать. Если оно не отображается в списке устройств , щелкните стрелку перезагрузки, чтобы обновить список.
В разделе «Приложение» выберите приложение, которое хотите профилировать. Если в пакете только одно действие, вместо действия можно выбрать пакет.
AGI включает образец приложения Vulkan. Чтобы использовать образец приложения вместо собственного, выполните следующие действия:
Нажмите кнопку ... рядом с полем «Приложение» .
Откроется диалоговое окно «Выбор приложения для отслеживания» , в котором отображается список приложений, которые можно отслеживать на выбранном устройстве.
В текстовом поле «Фильтр» введите
gapid
, чтобы отображать только те приложения, которые содержатgapid
в имени пакета.Разверните пакет и выберите com.google.android.gapid.VkSampleActivity , а затем нажмите «ОК» .
Вы вернетесь в диалоговое окно «Захват новой трассировки» , в котором поле «Приложение» будет заполнено выбранным вами приложением.
В разделе «Заявление» остальные поля оставьте пустыми.
Нажмите ОК .
Теперь вы готовы использовать AGI для профилирования системы и кадров.
Профилирование системы
Чтобы профилировать систему, выполните следующие действия:
На экране запуска AGI нажмите «Захватить новую трассировку» , чтобы отобразить диалоговое окно «Записать профиль системы» .
В списке Тип выберите Профиль системы .
В разделе «Начало и продолжительность» установите для параметра «Начало в» значение «Вручную» , а для «Длительность» — значение
2
.В разделе «Параметры трассировки» нажмите « Настроить» . Отобразится список параметров профилирования.
Рис. 4. Параметры профилирования в диалоговом окне «Захват профиля системы» . Выберите данные профилирования, которые вы хотите собрать.
В разделе GPU нажмите «Выбрать» .
Отобразится список счетчиков для выбора.
Рисунок 5: Выбор счетчиков. Нажмите «По умолчанию» , чтобы выбрать набор счетчиков по умолчанию, и нажмите «ОК» , чтобы вернуть параметры профилирования.
Нажмите «ОК» , чтобы вернуться в главное диалоговое окно «Профиль системы захвата» .
В разделе «Вывод» выберите «Каталог вывода» для хранения файлов трассировки, созданных во время профилирования. Поле «Имя файла» должно заполняться автоматически, но вы также можете его отредактировать.
Нажмите ОК . При этом выбранное приложение запускается на устройстве Android и отображается всплывающее окно с кнопкой «Пуск» .
Нажмите кнопку «Пуск» , чтобы начать сбор данных профилирования, и подождите пару секунд, пока процесс завершится.
Нажмите «Открыть трассировку» . Начальное отображаемое представление похоже на systrace .
Рисунок 6: Пользовательский интерфейс профилировщика системы. В дополнение к данным, доступным в systrace, AGI также показывает информацию о производительности графического процессора. Дополнительные сведения о просмотре данных профилирования системы см. в разделе Просмотр профиля системы AGI .
Информацию о дополнительных настройках см. в разделе Параметры профилирования системы .
Профиль рамы
Чтобы профилировать отдельный кадр из вашего приложения, выполните следующие действия:
На экране запуска AGI нажмите «Захватить новую трассировку», чтобы отобразить диалоговое окно «Захват новой трассировки» . Альтернативно вы можете нажать кнопку трассировки профиля кадра захвата .
В списке «Тип» выберите «Vulkan» или «OpenGL on ANGLE» в зависимости от того, какой графический API использует ваше приложение. Убедитесь, что вы выбрали правильный вариант, иначе AGI не сможет захватывать никакие графические команды.
В разделе «Начало и продолжительность» для параметра «Начало» выберите значение « Вручную» . Если вы нажали кнопку «Отслеживание профиля кадра захвата» , этот шаг уже завершен.
В разделе «Вывод» выберите «Каталог вывода» для хранения файлов трассировки. Поле «Имя файла» должно заполняться автоматически, но вы также можете его отредактировать.
Необязательно: некоторые приложения запускают другой процесс, который выполняет всю обработку графики. Чтобы захватить этот процесс, укажите его имя.
Нажмите ОК . При этом ваше приложение запускается на устройстве Android и отображается всплывающее окно с кнопкой «Пуск» .
Нажмите кнопку «Пуск» и подождите несколько секунд, пока профилирование завершится.
Нажмите «Открыть трассировку» , чтобы просмотреть данные профилирования. Информацию о каждой панели пользовательского интерфейса Frame Profiler см. в разделе Обзор профилирования кадров .
Сведения о дополнительных настройках см. в разделе Параметры профилирования кадров .