Одно и то же Андроид приложения можно создать множеством разных способов. В зависимости от используемого подхода, с виду одинаковые программы могут потреблять разное количество ресурсов смартфона.
Приложения могут потреблять разное количество памяти, процессорного времени. По разному влиять на расход батареи. Скачивать больше или меньше данных по сети. В конечном счете все это влияет на look and feel вашего андроид приложения. И именно это и отличает качественную программу от не очень...
Профилировщик приложения в Android Studio
Встроенный в Android Studio профилировщик позволяет отследить все главные метрики производительности вашего приложения, такие как: память, процессор, использование сети и потребление энергии.
Мониторинг использования процессора
Приложение подвисает при переходе между экранами? Или просто долго отвечает при нажатии на кнопку? Вероятно процессор слишком сильно загружен в данный момент.
Чтобы понять, что именно тормозит выполнение программы достаточно
- Перейти в CPU profiler в Android Studio
- Нажать кнопку Record
- Выполнить действия, которые вызывают зависание программы
- Остановить запись
Android Studio покажет какие методы сколько выполнялись. Так вы сможете найти узкое место вашего приложения.
Поиск утечек памяти в приложении
В Android Studio Profiler можно заметить, что иногда, при активном использовании приложения график Memory неустанно растет. Это может означать утечку памяти в вашей программе. Android Studio позволяет посмотреть какие объекты создавались при работе программы. Таким образом, повторяя действия, которые приводят к утечке памяти можно узнать, какой тип объектов утекает.
Утечки памяти в Android < 8.0
В устройствах под управлением Android версии меньше 8.0 нужно запустить allocation tracker, выполнить действия, которые приводят к утечке и остановить трекер. Вам будет показано какие объекты успели создастся.
Утечки памяти в 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/