Playing APK Golf

#статьи #разработка



Вы когда-нибудь задавались вопросом, насколько можно сжать размер APK?



Попалась статья, где автор задался целью максимально уменьшить размер apk «Hello World». Первоначально размер файла был 1.5mb. После определенных действий размер стал 1757 байт. Не слабая оптимизация, верно?



К сожалению, сжать apk файл обычного приложения не так просто, да и врядли получится сжать его в 3-5 раз. Но убрать пару лишних мегабайт реально. Вот несколько советов, которые помогут в этом.



1) Удалите неискользуемые ресурсы. Сделать это достаточно просто. Стоит запустить в Android Studio Refactor -> Remove unused resources. После этого обязательно проверьте, что не удалилось чего-то лишнего. Хотя бы запустите приложение и проверьте, что оно запускается.

2) Проанализируйте итоговый apk. Для этого надо воспользоваться командой Build -> Analyze APK. Посмотрите, какая категория имеет наибольший размер. Чаще всего этой категорией будет — ресурсы.

3) Переведите png в webp.

4) Удалите неиспользуемые языки. Я уже упоминал этот пункт. В этом посте. Лично я был удивлен, как много могут весить строковые ресурсы.

5) Примените App Bundle. Также это уменьшит размер файла приложения для пользователя. Упоминал об этом тут.

6) Удалите неиспользуемые библиотеки. Обязательно стоит время от времени анализировать текущий список зависимостей в проекте. Некоторые разработчики ради одного класса тянут целую зависимость. Еще часто после рефакторинга библиотека вообще не используется в проекте, но при этом остается в зависимостях. Также много «веса» добавляют нативные библиотеки. Анализируйте и их.



Может быть, вы знаете еще способы уменьшения размеров apk? Буду рад почитать их в комментариях.