Профилируйте производительность вашего приложения

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

Чтобы узнать, как запускать автономные профилировщики без запуска всей интегрированной среды разработки Android Studio (только для Windows или Linux), см. раздел Запуск автономного профилировщика .

Требования

Чтобы профилировать свое приложение, мы рекомендуем иметь следующее:

  • Приложение с вариантом сборки выпуска, в котором включена profileable конфигурация манифеста, также известное как профилируемое приложение. По умолчанию в приложениях для этой конфигурации установлено значение true. Чтобы проверить или изменить эту конфигурацию, откройте манифест вашего приложения или файл AndroidManifest.xml и найдите в разделе <application> profileable конфигурацию манифеста:

    <profileable android:shell="true" />
    
  • Виртуальное или физическое тестовое устройство с API уровня 29 или выше и Google Play.

  • Плагин Android Gradle 7.3 или выше.

Профилируемые и отлаживаемые приложения

Профилируемое приложение позволяет выполнять большинство распространенных задач профилирования, но вместо этого вам следует использовать отлаживаемое приложение, если вам нужно записывать выделения Java/Kotlin или сохранять дамп кучи. Отлаживаемый процесс приложения и устройство с API уровня 26 или выше также позволяют просматривать временную шкалу взаимодействия , которая показывает взаимодействие пользователя и события жизненного цикла приложения, в представлениях задач, которые ее предоставляют.

Отлаживаемое приложение основано на варианте debug сборки вашего приложения и позволяет использовать такие инструменты разработки, как отладчик ; однако это связано с некоторыми затратами на производительность. Профилируемое приложение основано на варианте сборки release вашего приложения и позволяет выполнять подмножество распространенных задач профилирования без снижения производительности отладочной сборки.

Создайте и запустите профилируемое приложение

Чтобы создать и запустить профилируемое приложение в Android Studio, выполните следующие действия:

  1. Создайте конфигурацию запуска/отладки, если у вас ее еще нет.
  2. Выберите вариант сборки выпуска ( Сборка > Выбрать вариант сборки ).
  3. Нажмите Дополнительные действия. > Приложение профиля с низкими накладными расходамиили «Приложение» профиля с полными данными («приложение» — это имя конфигурации запуска, поэтому у вас оно может быть другим). Чтобы выбрать один из двух вариантов, см. Требования . Приложение откроется на тестовом устройстве, а панель «Профилировщик» откроется в Android Studio.

Если эти инструкции вам не подходят, см. раздел Создание и запуск профилируемого приложения вручную .

Начать профилирование

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

  1. Выберите процесс из списка на вкладке «Главная» на панели «Профилировщик» . В большинстве случаев вам потребуется выбрать верхний процесс, представляющий ваше приложение.

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

  3. Используйте раскрывающийся список Запустить задачу профилировщика, чтобы выбрать, следует ли запускать задачу профилировщика при запуске или присоединяться к процессу во время его выполнения. Если вы пытаетесь сократить время запуска приложения или зафиксировать процесс, происходящий во время запуска приложения, вам следует включить запуск; в противном случае вы можете начать профилирование в текущем состоянии вашего приложения.

  4. Нажмите Запустить задачу профилировщика . Задача запускается на отдельной вкладке.

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

  6. Остановите запись (если применимо), дождитесь ее анализа и посмотрите результаты.

Сравнивайте, экспортируйте и импортируйте трассировки

Когда вы останавливаете задачу профилирования, она автоматически сохраняется на вкладке «Прошлые записи» на панели «Профилировщик» . Вы можете использовать эти сохраненные записи для сравнения использования ресурсов в различных сценариях. Записи сохраняются на время текущего сеанса Android Studio; если вы хотите сохранить их дольше, экспортируйте их, нажав «Экспорт записи». . Не все типы трассировок можно экспортировать.

Чтобы импортировать трассировку, например, из предыдущего запуска Android Studio, нажмите « Импортировать запись» . на вкладке «Прошлые записи» и выберите файл трассировки. Вы также можете импортировать файл, перетащив его в окно редактора Android Studio.

Редактировать конфигурацию записи

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

  • Для задач, включающих выборку, интервал выборки представляет собой время между каждой выборкой. Чем короче указанный вами интервал, тем быстрее вы достигнете ограничения размера файла для записанных данных.
  • Ограничение размера файла представляет собой объем данных, которые можно записать на подключенное устройство. Когда вы прекращаете запись, Android Studio анализирует эти данные и отображает их в окне профилировщика. Если вы увеличите лимит и запишите большой объем данных, Android Studio займет гораздо больше времени для анализа файла и может перестать отвечать на запросы.