Найти в Дзене
Android разработка

Производительность Android приложений

Оглавление

Одно и то же Андроид приложения можно создать множеством разных способов. В зависимости от используемого подхода, с виду одинаковые программы могут потреблять разное количество ресурсов смартфона.

Приложения могут потреблять разное количество памяти, процессорного времени. По разному влиять на расход батареи. Скачивать больше или меньше данных по сети. В конечном счете все это влияет на look and feel вашего андроид приложения. И именно это и отличает качественную программу от не очень...

Профилировщик приложения в Android Studio

Профилировщик приложения в Android studio
Профилировщик приложения в Android studio

Встроенный в Android Studio профилировщик позволяет отследить все главные метрики производительности вашего приложения, такие как: память, процессор, использование сети и потребление энергии.

Мониторинг использования процессора

Приложение подвисает при переходе между экранами? Или просто долго отвечает при нажатии на кнопку? Вероятно процессор слишком сильно загружен в данный момент.

Чтобы понять, что именно тормозит выполнение программы достаточно

  • Перейти в CPU profiler в Android Studio
  • Нажать кнопку Record
  • Выполнить действия, которые вызывают зависание программы
  • Остановить запись
-2

Android Studio покажет какие методы сколько выполнялись. Так вы сможете найти узкое место вашего приложения.

Поиск утечек памяти в приложении

В Android Studio Profiler можно заметить, что иногда, при активном использовании приложения график Memory неустанно растет. Это может означать утечку памяти в вашей программе. Android Studio позволяет посмотреть какие объекты создавались при работе программы. Таким образом, повторяя действия, которые приводят к утечке памяти можно узнать, какой тип объектов утекает.

Утечки памяти в Android < 8.0

В устройствах под управлением Android версии меньше 8.0 нужно запустить allocation tracker, выполнить действия, которые приводят к утечке и остановить трекер. Вам будет показано какие объекты успели создастся.

-3

Утечки памяти в Android >= 8.0

Используете устройство с Android 8+ на борту? Все тоже самое, что описано выше, только Allocation Tracker включен всегда. Просто выбираете участок на графике, который нужно исследовать и получаете объекты, созданные в этот промежуток.

Leak Canary

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

Мониторинг использования данных по сети

Ваше приложение активно общается с backendом? Вы можете использовать встроенный в Android studio profiler. Кажется, что в какой-то момент времени приложение слишком часто обращается к сети? Логируйте обращения к сети и смотрите куда ходит ваше приложение.

Мониторинг производительности приложения в production

Даже если у вас на устройство приложение работает идеально, нет гарантий что тоже самое будет у пользователя. Существует ряд решений, которые позволяют следить за производительностью андроид (и iOS) приложений у конечных пользователей.

Для базовых целей подойдет решение от Firebase, оно бесплатное и, вероятно, Firebase уже подключен к вашему проекту.

Итак, мы рассмотрели как же определить, что в вашем Android приложении есть проблемы с производительностью, а про то как отлаживать вашу программу читайте в "Debug ошибок в Android приложениях".

Оригинал статьи размещен здесь: https://dimlix.com/android-app-performance/