Приложение имеет низкую производительность, если оно медленно реагирует, показывает прерывистую анимацию, зависает или потребляет слишком много энергии. Устранение проблем с производительностью включает в себя профилирование вашего приложения или определение областей, в которых ваше приложение неэффективно использует такие ресурсы, как процессор, память, графика или аккумулятор устройства. В этом разделе описаны инструменты и методы 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, выполните следующие действия:
- Создайте конфигурацию запуска/отладки, если у вас ее еще нет.
- Выберите вариант сборки выпуска ( Сборка > Выбрать вариант сборки ).
- Нажмите Дополнительные действия. > Приложение профиля с низкими накладными расходамиили «Приложение» профиля с полными данными («приложение» — это имя конфигурации запуска, поэтому у вас оно может быть другим). Чтобы выбрать один из двух вариантов, см. Требования . Приложение откроется на тестовом устройстве, а панель «Профилировщик» откроется в Android Studio.
Если эти инструкции вам не подходят, см. раздел Создание и запуск профилируемого приложения вручную .
Начать профилирование
Чтобы запустить задачу профилирования, выполните следующие действия:
Выберите процесс из списка на вкладке «Главная» на панели «Профилировщик» . В большинстве случаев вам потребуется выбрать верхний процесс, представляющий ваше приложение.
Выберите задачу профилирования в разделе «Задачи» . Подробнее о заданиях смотрите на других страницах этого раздела. Не все задачи профилирования доступны для каждого процесса. Если вы не знаете, с чего начать, получите общее представление о производительности, проверив свое приложение в реальном времени .
Используйте раскрывающийся список «Запустить задачу профилировщика», чтобы выбрать, следует ли запускать задачу профилировщика при запуске или присоединить его к процессу во время его выполнения. Если вы пытаетесь сократить время запуска приложения или зафиксировать процесс, происходящий во время запуска приложения, вам следует включить запуск; в противном случае вы можете начать профилирование в текущем состоянии вашего приложения.
Нажмите Запустить задачу профилировщика . Задача запускается на отдельной вкладке.
Взаимодействуйте со своим приложением, чтобы активировать действия.
Остановите запись (если применимо), дождитесь ее анализа и посмотрите результаты.
Сравнивайте, экспортируйте и импортируйте трассировки
Когда вы останавливаете задачу профилирования, она автоматически сохраняется на вкладке «Прошлые записи» на панели «Профилировщик» . Вы можете использовать эти сохраненные записи для сравнения использования ресурсов в различных сценариях. Записи сохраняются на время текущего сеанса Android Studio; если вы хотите сохранить их дольше, экспортируйте их, нажав «Экспорт записи». . Не все типы трассировок можно экспортировать.
Чтобы импортировать трассировку, например, из предыдущего запуска Android Studio, нажмите «Импортировать запись». на вкладке «Прошлые записи» и выберите файл трассировки. Вы также можете импортировать файл, перетащив его в окно редактора Android Studio.
Редактировать конфигурацию записи
Чтобы изменить конфигурацию записи задач профилировщика, щелкните настройки профилировщика. . Есть две основные настройки, которые вы можете переключать:
- Для задач, включающих выборку, интервал выборки представляет собой время между каждой выборкой. Чем короче указанный вами интервал, тем быстрее вы достигнете ограничения размера файла для записанных данных.
- Ограничение размера файла представляет собой объем данных, которые можно записать на подключенное устройство. Когда вы прекращаете запись, Android Studio анализирует эти данные и отображает их в окне профилировщика. Если вы увеличите лимит и запишите большой объем данных, Android Studio займет гораздо больше времени для анализа файла и может перестать отвечать на запросы.