Как уменьшить приложение (.apk) размер
помогите!
когда я устанавливаю свое приложение на телефон для тестирования,он показывает, что это огромный размер, 11.35 MB. Это очень простое приложение, которое позволяет пользователю просматривать забавные факты. Единственная причина, по которой я могу думать о том, что в drawables есть 14 JPEG-файлов, которые служат фоновыми изображениями забавных фактов. Средний размер составляет около 500 КБ.
Я хотел бы обрезать размер моего приложения, чтобы не использовать драгоценные ресурсы на устройстве пользователя. Помимо того, чтобы просто избавиться от фотографий, есть ли способы оптимизировать размер файла apk?
EDIT: фотографии-это фотографии, сделанные мной с помощью самого телефона Android.
22 ответов
Я бы рекомендовал вам обжать .jpg
файлы как можно больше, это должно значительно уменьшить размер вашего . Такой инструмент, какPaint.NET что бесплатно должно помочь вам сделать это. Он имеет большие изменения.
другие ответы упоминают сжатие изображений. Вы также можете попробовать ProGuard сжать свой байткод. вот статья при применении ProGuard к Android-приложению.
убедитесь, что ваши jpg не хранятся в более высоком разрешении, чем необходимо. Хороший телефон Android имеет разрешение экрана 1920x1200 или 2560x1440 (около 2015) 800 x 480, поэтому ваши фоны не должны содержать больше пикселей, чем это (если ваше приложение не поддерживает какое-то масштабирование). Кроме того, фотографии фона? Если нет, вы можете обнаружить, что использование векторного формата изображения, такого как svg, или с динамической палитрой, такой как gif, уменьшит размер файла даже больше.
обновление
с введением библиотеки поддержки 23.2, теперь вы можете заменить многие из ваших активов изображения с SVG (ж/ или без анимации), чтобы уменьшить размер apk дальше.
оригинал
Это может быть поздний ответ, но может быть полезно для будущих пользователей.
передать этот ссылке. Чтобы резюмировать страницу, он упоминает ниже ключевые моменты, которые помогут уменьшить размер apk в тотальность:
- использовать ProGaurd
- удалить любую отладочную информацию у вас есть в приложении (операторы, такие как Log.я.))( Они могут быть обернуты в состояние, которое включено только при тестировании приложения.
- использовать рекомендуемые форматы медиа
- изображение: PNG orJPG
- Аудио: AAC
- видео: кодек H264 AVC и
- сжать изображения используя OptiPNG или PNGCrush
- использовать 9patch to масштабирование изображений
- найти неиспользованные ресурсы используя этот и удалить их.
- избегайте использования нескольких ресурсов для достижения той же функциональности. Ресурсы не только ограничиваются изображениями,но и распространяются на API. Иногда сингулярный API может предоставить несколько результатов вместо использования двух или трех различных API. Дублированные строки и активы также являются пустой тратой места.
помимо оптимизации изображений, я также счел полезным проверить используемые вами библиотеки поддержки. У меня есть относительно простые платформы таргетинга приложений с API >=10, но мой APK оказался 2.2 M, или после использования ProGuard, 1.4 M. когда я заглянул в APK, код был 1.5 M, и было много дополнительных ресурсов (abc_*), о которых я ничего не знал.
затем я нашел это: https://developer.android.com/tools/support-library/features.html
оказывается, мне не нужен appcompat-v7, только поддержка-v4, и внесение этого изменения в мои зависимости уменьшило размер APK до 1.7 M (0.9 M с ProGuard). Понятно, что библиотеки поддержки несут много дополнительных (код и ресурс), поэтому убедитесь, что вы используете только те, которые вам нужны, может помочь.
(хотя -0.5 M не является значительным для приложения 11M, я размещаю это здесь, потому что я сохранил в конечном итоге на этой странице во время поиска решения...)
- использовать tinypng сжать png вашего проекта или файлы изображений формата jpg, он может значительно уменьшить размер изображения без потери качества изображения;
- некоторые изображения используют сжатие tinypng может искажение, вы можете преобразовать
эти изображения в формате webP, используйте 智图 или Испарта может конвертировать другой формат в webP; - использовать Lint проверить нет ресурсов использования и удалить его;
еще одна вещь, чтобы добавить на размер файла изображения-различные алгоритмы могут иметь значительное влияние на конечный размер. Я обнаружил, что Yahoo www.smushit.com намного эффективнее (по крайней мере, для .png), чем компрессоры и кодеки, которые у меня есть на моем компьютере прямо сейчас.
есть две вещи, которые я могу отметить из опыта.
- Если вы используете eclipse для создания файла apk, то ресурсы дублируются (по крайней мере, это произошло в моем случае), вы можете попробовать использовать ant и build.xml для создания apk и сравнения размера.
- Также посмотрите на сглаживание ресурсов. Ссылка для него здесь.
Я знаю, что я поздно здесь, чтобы ответить на этот вопрос, но я уменьшить размер приложения, используя методы ниже я хочу поделиться этими вещами со всеми.
1) - используйте изображения WebP вместо изображений Jpeg, это окажет огромное влияние на размер apk, если вы используете несколько изображений.
2) - Используйте VectorDrawables, если вы используете простые маленькие значки в своем приложении.
3) - используйте свойство tint View в xml, чтобы избежать нескольких одинаковых значков, но разных по цвету.
поиск DrawableTint и TintableImageview
4)-Используйте 9-патч изображения и избежать дублирования изображения или что-нибудь в коде приложения.
Ниже приведены ссылки для ссылки на сокращение APK размер.
https://developer.android.com/topic/performance/reduce-apk-size.html
https://developer.android.com/studio/build/configure-apk-splits.html#configure-split
https://developer.android.com/training/multiple-apks/index.html
формат изображения WebP: обеспечивает сжатие с потерями (например, JPEG), а также прозрачность (например, PNG), но может обеспечить лучшее сжатие, чем JPEG или PNG
четыре способа и размер вашего приложения станет от 11.35 MB до около 5 MB. Во-первых, проверьте компоненты приложения через App Analyzer (встроенная функция Android studio), просто нажмите на сборку сверху и нажмите Analyze APK. Он покажет вам все, что компоненты apk использует.
- Включить Proguard
- Включить ShrinkResource
- resConfigs (назовите его, например, если ваше приложение только на одном языке, например, английском, просто укажите resConfigs "Эн")
- конвертировать все изображения из .png или.jpg в webp (самое главное).
шагов для достижения этих шагов.
1 & 2. Для Proguard и ShrinkResource
в gradle просто добавьте
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
shrinkResources true
}
-
для resConfigs
defaultConfig { applicationId "com.goparties.gpuser" minSdkVersion 19 targetSdkVersion 27 resConfigs "en"
}
для преобразования всех изображений из .png или.jpg в webp
очень простой процесс: просто щелкните правой кнопкой мыши на папке drawable папка (drawable, drawable-hdpi, drawable-xhdpi и т.д.) и нажмите на convertToWebP (последний вариант).
минимальная версия SDK должна быть 18.
вот мы идем: теперь проанализируйте размер вашего приложения.
Бинго !!!!!!
Я думаю, что это в должности даст вам лучшее представление обо всех возможных методах использования, чтобы уменьшить размер apk с огромным отрывом.
Я дам вам отрывок из того же.
- используйте только необходимые библиотеки из служб Google Play.
- применить ProGuard к вашему приложению.
- уменьшать и уменьшать.
- принять векторные рисунки.
- используйте Android lint.
- разделить apk на основе архитектура
- добавление resConfigs в файлы gradle для указания языков локализации.
Это удаляет все другие строковые файлы, которые могли быть добавлены другими библиотеками на языках, которые вы даже не поддерживаете.
наряду с приведенными выше наиболее загруженными ответами, я хотел бы ответить последними инструментами из Android Studio Google.
Google недавно представила Android App Bundle в котором playstore автоматически доставил оптимизированную версию apk для конечных устройств. Теперь разработчикам просто нужно сгенерировать подписанный пакет и загрузить в play store, работа dev завершена. Не забывайте всегда использовать SVG-изображения.
также, пожалуйста, посмотрите в Deliver Особенности On-Demand с динамическими функциями
преобразовать в WebP
что значительно уменьшит размер приложения
это уменьшило размер приложения моего приложения, которое было 40 mb
to 25 mb
действия:
- Правой Кнопкой Мыши на
res
- преобразовать в
WebP
что это значит: он уменьшает размер до png
to . Качество также не разрушается
вот что вы можете сделать для уменьшения размера сборки по изображениям (также может работать для iOS) Здесь я делюсь отличным инструментом под названием "OPTIPNG" (вы можете скачать с здесь), который поможет нам уменьшить сборку специально с помощью изображений, это уменьшит размер изображения для PNGs мы используем без ухудшения качества (разрешение и цвет) изображения.
пример-Если ваш размер изображения выключен 698 КБ, то он будет просто уменьшен до 564 КБ
здесь это шаги выполнения для OPTIPNG 0.7.5
1) терминал - > CD / YourLocal путь OPTIPNG
2) тип "./настроить"
3) введите "sudo make install"
установки должно быть сделано сейчас
4) Введите " optipng / ваш путь изображения
вы получите результат в байт, а также можете проверить свой размер
вы также можете попробовать http://www.webresizer.com/resizer/ его онлайн-инструмент, сделал довольно хорошую работу для меня.
Я Trimage Image compressor для сжатия изображений и уменьшения размера apk.Он имеет хорошую скорость сжатия, прост в использовании, сохраняет качество изображения и также доступен в Ubuntu.Кроме того, я включил ProGuard и работал над проблемами корпии, чтобы уменьшить размер APK.
Ниже приведены способы уменьшения размера приложения. Подробно объясняется в следующей ссылке.
https://medium.com/@fahimsakri/put-your-apks-on-diet-cc3f40843c84#.m860q8s1u
должны быть
векторные рисунки
АПК шпагат
оптимизация png изображений
удалить неиспользуемые ресурсы
9-патч изображений
сжатие Jpeg изображений
удалить отладки информация
избежать дублирования
широко использовать корпию
повторное использование ресурса, когда это возможно
рекомендуемые форматы медиа
вы можете уменьшить размер apk по del R.class и заменяет ссылку на константу.
посмотреть этот: https://github.com/mogujie/ThinRPlugin
APK содержит zip-файл всех вещей, которые ваше мобильное приложение имеет, включая файлы классов Java, файлы ресурсов и другие.
один из простых способов сделать ваш APK меньше-уменьшить количество и размер ресурсов, которые он содержит. В частности, можно удалить ресурсы, которые больше не используются приложением, и вместо файлов изображений можно использовать масштабируемые Рисоваемые объекты.
использовать MinifyEnable true и ShrinkResources true
MinifyEnabled уменьшит ваш код по мере его сжатия. В то время как shrinkResources сокращает ресурсы.
чтобы использовать ShrinkResources, вы должны установить minifyEnbled true.
используйте изображения SVG вместо jpg, чтобы уменьшить размер apk. поместите файлы изображений в базу данных .. чтобы пользователи вашего приложения могли загрузить его из базы данных, и это значительно уменьшит размер приложения..