Получи случайную криптовалюту за регистрацию!

​​Уменьшение размера apk-файла #android Тема уменьшения разм | Android Live 🤖

​​Уменьшение размера apk-файла
#android

Тема уменьшения размера apk-файла очень важна для любого приложения, несмотря на то, что Интернет дешевеет, а памяти становится больше (хоть и не всегда).

Есть статистика, которая говорит о том, что около 70% пользователей оценивает размер приложения перед его загрузкой. Поэтому, если совсем не задумываться об этом, то можно получить ситуацию, когда ваше приложение не будет загружено только лишь из-за этой характеристики.

Давайте сделаем небольшой чек-лист, где опишем, что надо сделать, чтобы apk-файл занимал минимальное количество памяти.

Запускаем Analyze APK tool, которая встроена в Android Studio. Найти её можно в меню Analyze -> Analyze APK… После выбора файла, мы получим описание того, что занимает большую часть памяти.

Удаляем неиспользуемые библиотеки. Первое, довольно затратное по времени дело — это анализ тех библиотек, которые есть у вас в проекте, но не используются. Ещё обратите внимание на большие библиотеки из которых вы используете всего пару компонентов. Быть может, их можно вынести отдельно в ваш код и удалить лишнюю зависимость. Приятный бонус — у вас просто станет меньше зависимостей, а меньше кода = меньше багов

Включаем Proguard и R8. У этих инструментов есть возможность удаления неиспользуемого кода в приложении, а также обфускация. И то, и другое — крутая фича, которую мы получим, если включим minifyEnabled true в build.gradle. Обязательно настройте правила и проверьте, чтобы итоговый apk корректно собирался и не падал.

Удаляем неиспользуемые ресурсы. Очищаем неиспользуемые строки и ресурсы при помощи Refactor -> Remove unused resources.

Используем vector drawable и webp. При использовании изображений отдавайте предпочтение этим форматам вместо png или jpeg.
Кстати, не стоит делать копии векторных ресурсов, если они отличаются только цветом, ведь цвет легко поменять при помощи свойства tint.

Убираем неиспользуемые языки. Вы удивитесь, насколько много лишних строк скрывается в приложении от библиотек. Если ваше приложение переведено на один или два языка, то есть смысл оставить только их и выкинуть неиспользуемое. Сделать это можно при помощи resConfigs "en", который прописываем также в build.gradle.

Включаем Dynamic Feature. Если в вашем приложении есть функциональность, которая не нужна всем пользователям или же её можно загрузить позже, то есть смысл динамически подгружать её во время использования приложения.

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