Как уменьшить размер APK файла?

Всем известно, что Android Market накладывает ограничение на размер публикуемых программ. Сегодня в магазине можно разместить приложение, размер которого не превосходит 50 Мб, но что же делать, если Вы вылезли за это ограничение?Дэвид Карлссон, архитектор приложений из Sony Ericsson, дает несколько советов, которые помогут уменьшить размер вашего apk файла.
Что такое APK формат?
APK— аббревиатура от Android application package (файл архива Android программы). Каждое Android приложение упаковывается в apk архив, содержащий исполняемый код (.dex файлы), ресурсы, активы и файл манифеста. Фактически apk представляет собой обычный zip архив, поэтому не имеет смысла предварительно сжимать файлы ресурсов каким-нибудь архиватором.
Почему нужно стремиться к экономии памяти? Размер памяти на смартфоне ограничен несколькими мегабайтами, а пользователю нужно хранить кучу разной информации: фотографии, музыку, архив сообщений. Поэтому размер приложения отнюдь не последний фактор, учитываемый пользователем при поиске программ.
Как уменьшить размер APK файла?

Ниже приводится несколько полезных советов, которые помогут вам уменьшить размер ваших Android программ.
Используйте ProGuard
ProGuard— это обфускатор, попутно сжимающий размер кода. Как известно, Java приложения компилируются в байт-код, из которого довольно просто восстановить java исходник. Для усложнения жизни любителям реверс-инженерии придумали обфускаторы. Обфускатор служит для запутывания исходного кода программы, при сохранении исходной функциональности. Получается рабочий исходник, мало пригодный для чтения человеком. Программа ProGuard помимо собственно обфускации сжимает исходный код, делает его более быстрым и менее требовательным к памяти. Очень важно после использования ProGuard провести тщательное тестирование полученного приложения. Возможны ситуации, когда в ходе оптимизации и обфускации кода изменяется его функциональность. В таких случаях важно позаботиться о сохранении symbol mapping, чтобы можно было восстановить из обфусцированного кода исходный и попытаться выявить источник проблем.
Удаляйте отладочную информацию
Дэвид рекомендует перед компиляцией финальной версии программы убрать из нее все связанные с отладкой конструкции, поскольку они не несут для пользователя ничего полезного.
Входящий в состав Android SDK компилятор умеет автоматически удалять отладочный код из релиза, но программист должен позаботиться о правильном оформлении своей программы, поместив отладочные команды в специальный блок:
if (debug)
Часто начинающие разработчики оформляют отладочный код в виде отдельных методов
public void myDebugPrint() < if (Debug) < Log.v(TAG, “Debug …”); >> … myDebugPrint() …
Это не лучшее решение, поскольку на этапе сборки релиза будет удален блок if (Debug) , но сам методmyDebugPrint() и его вызов останутся нетронутыми и будут занимать место.
Удаляйте отладочные символы из нативных библиотек
Использование символов отладки имеет смысл, когда ваше приложение находится в стадии разработки. Если Вы решили собрать релиз, Дэвид рекомендует удалить символы отладки из нативных библиотек (.so файлы). Это можно сделать, вызвав команду arm-eabi-strip из Android NDK.
Используйте рекомендуемые медиа форматы
Если ваше приложение содержит графику, видео и аудио данные, использование «правильных» форматов может положительно сказаться на размере приложения. Дэвид рекомендует использовать следующие форматы:
- Рисунки: PNG и JPEG. Формат PNG позволяет добиваться хорошей компрессии при отсутствии ухудшения качества картинки. JPEG хорош для больших по разрешению картинок.
- Аудио: Используйте ACC Audio. Этот формат обеспечивает лучшую компрессию, чем широко распространенные mp3 и Ogg Vorbis. Никогда не используйте wav. Это формат для профессиональных музыкантов. В нем не используется компрессия и содержится много избыточной информации. Часто wav используется для декодирования сжатого аудио потока. Обычно такой подход сопровождается заметными временными задержками. Android имеет средства для воспроизведения сжатого аудио потока лишенные этого недостатка (Sound Pool API).
- Видео: Используйте формат H264 AVC. Если видеофайл имеет большое разрешение, обязательно перекодируйте его под разрешение экрана целевого устройства.
Компрессируйте PNG файлы
Довольно часто получаемые в результате работы графических редакторов PNG файлы плохо скомпрессированы и их размер может быть дополнительно уменьшен с помощью специальных утилит:OptiPNGилиPNGCrush. Обе эти программы пересжимают PNG файл, сохраняя качество картинки. Программы перебирают параметры PNG фильтров и настроек алгоритма сжатия и создают на выходе файл с оптимальными параметрами.
Используйте 9patch PNG для масштабируемых изображений
9patch PNG— специальный формат, который может быть использован для создания растягиваемых подложек. Наиболее часто этот формат используется для создания кнопок и других элементов пользовательского интерфейса. В рамках 9patch картинка разбивается на 9 сегментов — четыре угла, четыре грани и центральная часть. На основе такой картинки можно создавать подложки произвольного размера, при этом угловые сегменты никак не масштабируются; ребра и центральный сегмент растягиваются (многократно повторяются), заполняя промежутки между углами. Ниже показана 9patch картинка и две сгенерированные на ее основе кнопки. Применение этого формата позволяет существенно уменьшить размер графики, необходимой для создания интерфейса.

Удаляйте неиспользуемые ресурсы
Как правило, папка res содержит несколько неиспользуемых ресурсов. Для их удаления можно использовать специальную утилитуandroid-unused-resources, которая сканирует Ваш исходный код и удаляет из проекта неиспользуемые ресурсы.
Избегайте дублирования
Убедитесь, что в вашем приложении не дублируется функциональность и активы (строки, рисунки и т.п.). Важно понимать, какие Android API вы используете, и знать их функциональность. Может получиться, что в вашей программе для решения задачи, которую можно решить средствами уже подключенных API, подключается новый API. Дублирование кода, например, включение в программу функций делающих одно и то же, также ведет к разбуханию APK файлов.
P.S. От редактора. Практика показывает, что многие разработчики в силу незнания или лени пренебрегают этими простыми приемами. Мы настоятельно рекомендуем заботиться о своих пользователях и распространять только оптимизированные приложения.
Как очистить память на Android-смартфоне: 7 способов
Память может закончиться даже на смартфоне с огромным хранилищем. Гаджет будет работать медленнее, приложения станут открываться дольше. Особенно эта проблема актуальна для тех, кто много фотографирует и снимает видео. Как освободить память на смартфоне, сохранив важные данные, рассказывает редакция ZOOM.CNews.
Автор Елизавета Пудова

Как очистить память на Android-смартфоне: 7 способов
Дата публикации: 04.01.2024
Кроме фото и видео память наших мобильных устройств также занимают многочисленные приложения, остаточные данные и всевозможный «системный мусор». Мы разобрались, как освободить память Android-смартфонов и не удалить ничего лишнего.
1. Удалите ненужные файлы и приложения
Самый простой способ, не требующий никаких дополнительных знаний и инструментов. Система сама покажет вам, чем занята память вашего смартфона. Для этого зайдите в раздел «Хранилище» или «Память» (название пунктов меню могут быть разными в зависимости от оболочки и версии Android). Телефон предоставит цветную схему, показывающую, чем занята его память.
Пересмотрите свои фотографии, видео, музыку, документы и другие файлы и удалите всё, что вам больше не нужно. Это могут быть дубликаты фото и приложения, которые вы больше не используете. Также на многих смартфонах найдутся фотографии, видео или документы, сохраненные когда-то, но уже давно не нужные. Удалите их или перенесите, например, в облако.



Завершая процесс очистки, посмотрите, не остались ли удаленные файлы в корзине. Удалите их и оттуда тоже.
Также обязательно проверьте раздел «Загрузки» — в нем может храниться большое количество неиспользуемых файлов, в том числе тяжелые apk.
2. Очистите кэш приложений
Все приложения, установленные на телефон, создают кэш-файлы. Они нужны для быстрой загрузки программ и сохранениях их последних настроек. Например, в кэше будут последние прослушанные аудиосообщения в месседжерах или треки в ВК Музыке – и вы сможете включить их без интернета. Все эти данные занимают немало места и не всегда нужны пользователям.
Освободить память можно, используя встроенную функцию очистки. Для этого нужно зайти в «Хранилище»/«Память» смартфона, как описано в предыдущем пункте. Если устройство не предлагает автоматически удалить кэшированные файлы, то вы можете сделать это вручную.
Откройте раздел «Приложения» в настройках. Открывайте их по очереди — для каждой программы будет доступен раздел «Память», в котором указан объем кэша. Выберите «Очистить кэш» или просто нажмите на строку, где он отображается.


Подробно о том, как очистить кэш WhatsApp и Telegram, можно прочитать в нашей статье. Временные данные этих мессенджеров могут занимать гигабайты памяти. Для удаления кэша можно использовать и дополнительные приложения, например, Cleaner и др.
3. Очистите данные приложений
Еще один способ очистки памяти, но более радикальный, чем чистка кэша. Объем данных, которые хранят программы, также указан в разделе «Приложения». Это уже не временные файлы, а постоянные: они постоянно накапливаются и занимают огромное количество памяти. Например, мессенджеры сохраняют на устройство фотографии, видео, аудиосообщения и другие вложения. А стриминговые сервисы вроде Яндекс Музыки и Кинопоиск HD сохраняют во внутренних данных музыку и кино, которые вы скачали для офлайн-прослушивания и просмотра.
Если кликнуть в настройках по определенному приложению, то вы увидите пункт «Очистить данные». Его активация освободит довольно много места в памяти. Но прежде чем нажать на кнопку, помните, что это действие удалит все фотографии, видео и отправленные/полученные документы из приложений. Кроме того, при удалении данных заодно очистится кэш. А еще будет стерта история поиска внутри приложений и данные для входа в аккаунты – то есть придется везде заново авторизоваться.


Если вы не хотите такой глобальной чистки, то попробуйте удалить ненужные файлы вручную. Так, многие приложения создают в проводнике отдельные папки для своих фото и видео. А в мессенджерах, например, в WhatsApp, можно отключить автоматическую загрузку медиафайлов – это также позволит сэкономить память на Android-смартфоне.
4. Используйте облачные хранилища
Вовсе не обязательно хранить все фотографии и видео в памяти смартфона или на SD-карте, а потом вручную перекидывать их на компьютер или жесткий диск. Для этого можно воспользоваться так называемыми облачными хранилищами данных. Самые известные из них – это Яндекс.Диск, Google Диск, Облако Mail.Ru, Dropbox, Mega, OneDrive, Box, pCloud и др.
Больше всего бесплатной памяти предоставляют Mega (20 Гбайт) и Google Диск (15 Гбайт).
У многих облачных хранилищ, например, у Яндекс Диска, есть функция автозагрузки фото и видео. Ее особенно оценят любители мобильной фотосъемки, у которых быстро заканчивается место в памяти устройств. И это не только помощь при переполненном хранилище, но и защита на тот случай, если с самим телефоном или его данными что-то случится. Фотографии и видео, сохраненные в облаке, не потеряются.
Файлы передаются на Диск в фоновом режиме, от пользователя не требуется никаких дополнительных усилий. Яндекс предлагает два способа автозагрузки. Первый – фотографии загружаются в папку «Фотокамера», при этом они занимают место на Диске. Второй способ – безлимитная автозагрузка и фото, и фото, при которой они не занимают место на диске. Однако безлимит работает только по подписке Яндекс 360.


Автоматическая загрузки фото и видео работает также с облаком от Google. Для этого понадобится скачать приложение Google Фото. Для активации автозагрузки нужно зайти в раздел «Настройки — «Автозагрузка и синхронизация» и переключить бегунок в правое положение. Также в настройках можно выбрать, хотите ли вы, чтобы фотографии загружались через мобильный интернет или в роуминге; определить размер фото и разрешить загрузку видео.
Сервис поможет существенно сэкономить время благодаря функции «Освободить место на устройстве». Все загруженные в облако файлы будут автоматически удалены со смартфона.



Однако безлимитная автозагрузка на Google Диск также работает только после оплаты подписки. Как оплачивать зарубежные сервисы во времена санкций, мы рассказывали в отдельной статье.
5. Перенесите приложения на карту памяти
Не секрет, что много места в памяти устройства занимают приложения. Часть из них можно перенести на карту памяти. Правда, не все. Системные приложения, даже если вдруг вы сможете их перенести, работать с SD-карты не будут. Но без проблем перемещаются сторонние приложения, которые вы установили сами.
Для изменения места хранения приложения можно использовать как возможности самой системы Android – при условии, что ваша версия поддерживает такое действие. Или взять на вооружение специальные программы.
Первый вариант – самый простой. Чтобы его использовать, зайдите в «Настройки» телефона, найдите пункт «Приложения». Выберите нужное (не забудьте закрыть его перед переносом). Затем кликните по пункту «Изменение места хранения», «Изменить» или «Переместить на SD-карту». Эта кнопка может быть спрятана в подпункте «Хранилище», «Память» или просто в списке действий, которые предлагают предпринять с приложением. Название пунктов зависит от марки вашего телефона и версии системы.
При переносе нужно учитывать то, что иногда перенесенные на карту памяти приложения начинают работать медленнее (особенно это касается игр).

Второй путь переноса приложений на SD карту – использование специальных программ. Например, одна из самых простых и надежных – AppMgr III (App 2 SD). Для работы с ней (по крайней мере, для переноса приложений на карту) не требуются root-права.

6. Используйте встроенные средства очистки памяти или специальные приложения
Прежде чем искать сторонние приложения для очистки памяти, попробуйте воспользоваться средствами, которые предлагает система Android. Название утилиты может быть разным и зависит от модели смартфона: «Оптимизация», «Очистка», «Очиститель» и пр. Например, на Xiaomi это приложение называется «Очистка». Оно обычно находится на домашнем экране, среди списка установленных программ или как отдельный пункт в «Настройках». После запуска утилита сканирует систему, находит и удаляет ненужные данные, тем самым освобождая место в памяти устройства.

Если вы не удовлетворены работой встроенного «чистильщика», то можете установить одну из программ, которые помогут очистить память вашего телефона. Например, с такой задачей отлично справляется SD Maid. Для активизации большинства функций пользователю не потребуются root-права. У программы есть базовая бесплатная версия. Приложение находит дубликаты, объемные папки и пустые директории, помогает удалить кэш и остаточные файлы уже удаленных программ. При этом можно не бояться, что приложение удалит что-то нужное: у него есть ручная фильтрация и настройка исключений.

Среди других известных «приложений-уборщиков» – Avira Optimizer, CCleaner, Clean Master, Super Cleaner.
7. Сбросьте настройки смартфона до заводских
Наверное, самый радикальный способ очистки памяти Android-смартфона – сброс настроек до заводских. Метод подходит только для самых чрезвычайных случаев, когда ничто другое не помогло, а смартфон отказывается нормально функционировать из-за заполненного хранилища. Также сброс можно использовать перед продажей гаджета, чтобы удалить с него все свои файлы: фото, документы, приложения, контакты и т.п. Поэтому перед выполнением действия обязательно сделайте резервную копию важных данных.

Кнопка сброса на Android находится в разделе «Система и обновление» – «Сброс». Убедитесь, что выбрали сброс всех данных или восстановление заводских настроек – опции могут называться по-разному.
Как уменьшить размер приложений для Android во время разработки

С ростом цифровизации к мобильным устройствам и мобильным приложениям, которые мы используем в повседневной жизни, предъявляются все более высокие требования. Объем мобильного хранилища увеличился до 256 ГБ, и он обязательно увеличится, поскольку мы удовлетворяем потребности клиентов, добавляем новые функции и поддерживаем приложения на экранах разных размеров.
Согласно отчету, 74% людей в мире используют Android, и около 70% пользователей смотрят размер приложения перед его установкой.
И, к нашему удивлению, 70 % людей на развивающихся рынках обращают внимание на размер приложения, потому что их беспокоит стоимость данных. и место для хранения телефона?
Поскольку вы читаете эту статью, у вас есть две возможности. Либо вы обычный пользователь (читатель), который сталкивается с этой проблемой, как и я, либо нанимаете разработчика приложений для Android, который может не позволить пользователям столкнуться с этой проблемой, просто уменьшив количество приложений для Android в течение жизненного цикла разработки приложений для Android.
Но эта статья посвящена тому, как вы можете оптимизировать или уменьшить размер Android APK во время разработки приложений для Android. Поэтому, если вы новичок или опытный разработчик приложений для Android, эти методы и способы наверняка помогут вам разработать нормальное и стандартное приложение для Android, которое не потребует больше места.
Размер Android-приложения имеет значение
В этом мире, управляемом мобильными устройствами, популярность мобильных приложений растет день ото дня. И по этой причине это также увеличивает спрос разработчиков приложений, которые разрабатывают приложения на базе Android и iOS для обеих платформ. Но, имея хороший опыт разработки приложений для Android и iPhone, мы увидели, что не каждое приложение для Android или iOS соответствует требованиям и становится успешным. Другими словами, можно сказать, что не каждый пользователь смартфона предпочитает каждое приложение.
Но знаете почему? Каковы реальные причины этого? Что ж, мы выяснили, что согласно отчету Google, если размер приложения превышает 150 МБ, , который ранее составлял 100 МБ, шансы на его установку снизятся на 30%. Кроме того, при увеличении размера на каждые 6 МБ установка коэффициент конверсии может снизиться на 1 %. Согласно исследованию, 65% людей не будут устанавливать приложение, если узнают, что оно слишком большое. Они будут избегать таких приложений из-за большого потребления интернет-данных, а также занимают больше места.
Теперь Google придумал лучшее решение. Он придумал Android App Bundle, и это позволяет вам устанавливать приложения, даже не загружая основные элементы, которые в любом случае присутствуют в других приложениях в Play Store, что помогает уменьшить размер почти на 35%, по мнению Google.
Итак, теперь вопрос в том, что если вашему приложению для Android требуется больше места? И знаете, если ваше приложение занимает больше места, то люди вообще не предпочтут его скачивать. Вы можете понять тот факт, что ни один пользователь не хочет сталкиваться с проблемами, потратив много данных только на одно приложение.
Итак, теперь давайте посмотрим, как уменьшить размер приложения для Android или размер APK во время разработки приложения для Android.
1. Используйте Android App Bundle, чтобы уменьшить размер приложения
Когда вы разработали приложение для Android и готовы выпустить его, вам нужно выбрать между APK и Android App Bundle. Android App Bundle заставит Google Play создать APK только для тех конкретных пользователей, которым требуются функции.
Набор приложений для Android
- Для формата публикации, состоящего из скомпилированного кода и ресурсов вашего приложения, используется Android App Bundle, который задерживает создание APK и подписание в Google Play.
- Для Android App Bundle ограничение на размер сжатой загрузки – 150 МБ. Комплект приложений нельзя использовать с файлами расширения APK.
2. Используйте Proguard
Чтобы уменьшить размер APK вашего приложения, Proguard, вероятно, является одним из самых полезных инструментов. Это напрямую уменьшит файлы исходного кода до минимума и может уменьшить размер файла APK до 90%.
- Всякий раз, когда вы используете «Proguard, попробуйте использовать все варианты».
- Proguard помогает избежать разногласий по поводу сгенерированного APK или пакета, если он используется во всех вариантах при разработке.
- ProGuard не может переименовывать или удалять любые поля в этих классах данных, поскольку они должны соответствовать сериализованному формату.
3. Используйте плагин Android Size Analyzer
Чтобы значительно уменьшить размер вашего приложения для Android, вы можете использовать плагин Android Studio. С APK Analyzer разработчики Android могут выполнять следующие действия:
- Просмотрите полный и сравнительный размер APK.
- Знайте состав файлов DEX.
- Быстрый просмотр окончательных версий файлов в APK, таких как файл AndroidManifest.xml.
- Проведите параллельное сравнение двух APK.
4. Оптимизация изображения
Изображения с более высоким разрешением всегда являются лучшим и первым выбором для привлечения пользователей на сайт. Поскольку новейшее мобильное устройство поставляется с камерой с хорошим разрешением, размер изображения также можно было бы уменьшить, разбавив разрешение. В случае, если вы не хотите терять качество изображения, вам необходимо преобразовать изображения .jpg или .png в .webp.
Использование изображений без уменьшения размера может повлиять на качество приложения. Вместо того, чтобы загружать или использовать исходное изображение в своем приложении, преобразуйте изображения .jpg и .png в веб-формат. Для файлов png вы также можете использовать такие инструменты, как pngcrush или Zopflipng. Для файлов jpg вы можете использовать такие инструменты, как packJPG и Guetzli. Вы также можете использовать векторную графику, поскольку она делает изображение простым и использует пространство.
Это факт, что изображения могут творить чудеса без статических ресурсов. Во время выполнения фреймворка достаточно для динамического рисования таких изображений. Кроме того, использование объектов Vector Drawables — отличная идея при создании небольших приложений.
Поскольку эти приложения могут занимать минимальное место в файле APK и создавать изображения, соответствующие правилам дизайна материалов, использование Vector Drawables является ценным. Следует также позаботиться о спорах, которые могут возникнуть в связи с использованием ЦП и ОЗУ в качестве сложных объектов.
5. Поддержка определенных плотностей экрана
Чтобы уменьшить размер приложения для Android, правильное использование определенной плотности экрана — еще один отличный вариант. Существует миллион устройств на базе Android с различной плотностью экрана. Тем не менее, мы не используем всю плотность экрана и можем исключить то, что не требуется.
Чтобы отказаться от объединения всех неиспользуемых плотностей экрана в ваше приложение, проанализируйте, чтобы определить процент пользователей с устройствами с определенной плотностью. Если это процентное соотношение незначительно, у вас есть причина устранить их и уменьшить размер вашего приложения.
6. Удаление мертвого кода
Размер APK-файла напрямую связан со скоростью загрузки вашего приложения, занимаемой им памятью и потребляемой мощностью. Таким образом, любой неиспользуемый или неподходящий код, оставленный ради сохранения, только добавит мусора. Вот почему удаление неработающего кода или удаление кода необходимо для того, чтобы ваше приложение оставалось активным и активным все время, весь день.
Это удаление кода повысит качество исходного кода и уменьшит необходимость поддерживать размер кода, что в целом покажет здоровое приложение.
7. Повторно используйте свой ресурс
Повторное использование действительно лучше и проще, чем удаление. Это удивительный способ использовать свои ресурсы по-разному. Это обеспечивает плавную прокрутку. Это может помочь вам уменьшить окончательный размер вашего Android APK. Вы можете исключить те ресурсы, которые представляют собой только вращающийся эквивалент другого ресурса.
Предположим, у вас могут быть тактичные ресурсы, чтобы охарактеризовать разновидности изображения, относящиеся к оттенкам, оттенкам и направлению. Однако вы можете использовать те же ресурсы для других изображений.
8. Поддержка нескольких файлов APK
Некоторые APK состоят из контента, который загружается, но практически не используется. Например, надстройки вроде дополнительных языков не всегда нужны, однако скачиваются абы как. Это занимает дополнительные места в вашем хранилище и увеличивает приложение.
Однако эта проблема заставила разработчика задуматься над поиском лучших решений для загрузки только определенных частей приложения, полезных для пользователей. К сожалению, загрузить полезную часть APK невозможно.
Но чтобы оно работало ближе к этим решениям, вы можете загрузить приложение через магазин Google Play через Android App Bundle, который позволяет Google включать оптимизированные APK на основе конфигурации устройства. Для этого вы можете разделить одно приложение на несколько APK. После этого пользователи могут получать только те APK, которые им выгодны в соответствии с конфигурацией их устройства.
9. Избегайте перечислений
Перечисления сомнительны. Один можно легко добавить в любом месте в диапазоне от 1,0 до 1,4 КБ в файл class.dex приложения. Они могут потреблять много высокой скорости, если есть сложные фреймворки или общие библиотеки.
Итак, как вы можете преодолеть эту проблему? Что ж, с помощью ProGuard вы можете преобразовать перечисления в целые числа, и конечным результатом будет приложение уменьшенного размера.
Последние мысли
Ну, это всего лишь простые методы, которые вы можете реализовать в своем приложении для Android на этапе разработки приложения для Android. Это, несомненно, поможет вам понять, как можно уменьшить размер приложения или APK-файла и повысить эффективность.
Будучи разработчиком приложений для Android, вы должны помнить об этих методах при разработке приложения. Уменьшая размер приложения, вы поощряете больше людей загружать его на свои смартфоны.
- Впервые опубликовано [здесь] (https://theonetechnologies.com/blog/post/5-ways-to-reduce-android-app-size)*
Как уменьшить размер APK?

Можно ли как-то уменьшить размер APK файла?
Все знают, что Google Play накладывает ограничение на размер публикуемых приложений. Сегодня авторы могут разместить программы, размер которых не превышает 50мб. Но что делать в ситуации если вы превысили данное ограничение?
В такой ситуации вам помогут советы собранные в данной статье.
Вас также может заинтересовать статья «Декомпиляция APK онлайн».
Как уменьшить размер APK
Вот список способов с помощью которых можно значительно сократить размер APK приложения. В целом советы очень простые:
- Используйте Proguard, он безжалостно избавляется от неиспользуемого кода и сокращает имена классов, методов и полей.
- Настройте разделение APK для разных версий Android.
- Прогоняйте приложение через redex.
- Используйте утилиту lint чтобы избавиться от ненужных ресурсов.
- Используйте gradle-директиву shrinkResources для удаления неиспользуемых ресурсов.
- Переходите на векторные иконки.
- Удалите любые библиотеки для отладки из финального приложения.
- Замените изображения в форматах PNG и JPG на WebP.
- Используйте оптимизатор TinyPNG или Optipng для сокращения размера PNG.
Как уменьшить размер APK на 99,99%
Playing APK Golf — весьма любопытная статья о том, до какой степени можно сократить размер APK-файла, если очень сильно захотеть. Интересные факты:
- Даже «пустое» приложение для Android 8 весит 1,5 Мбайт, пятую часть из которых занимают стандартные иконки и ресурсы, а почти мегабайт — код (classes.dex).
- Classes.dex включает в себя более 13 тысяч методов из support-библиотек, в том числе AppCompatActivity и ConstraintLayout. Все эти support-библиотеки нужны, чтобы приложение корректно работало не только в новых версиях Android, но и во всех поддерживаемых.
- Android абсолютно безразлично, умеет ли приложение что-либо делать и есть ли в нем какой-то код вообще.
- Минимально возможный размер APK, который удалось получить, — 1757 байт. Это пустое приложение без кода, которое не умеет ничего делать и которое нельзя запустить.
При участии сообщества размер APK удалось уменьшить до 678 байт. Репозиторий на GitHub.
На этом все. Надеюсь данные советы помогли вам уменьшить размер APK приложения.