Как сжать файл apk
Сжимаем APK, стараясь сохранить его работоспособность / Хабр
/ PxHere / PD
Оптимизация веса APK — это нетривиальная, но очень актуальная во времена Instant App, задача. Включение proguard избавит вас от ненужного кода, если ваши зависимости можно определить на этапе компиляции, но в APK есть ещё несколько видов файлов, которые можно исключить из сборки.
Под катом о том, как сделать зависимости — определяемыми на этапе компиляции, какие файлы можно исключить из сборки и как это сделать, а так же, разберём, как исключить из сборки неиспользуемые компоненты, если у вас несколько приложений с общей кодовой базой.
- Прежде, чем применять советы из статьи, оптимизируйте APK по гайду от Google. Эта статья для тех, кому недостаточно стандартных оптимизаций.
- Под словом "proguard" я подразумеваю оптимизирующий компилятор с минификацией.
- Под компонентом я имею в виду некую фичу продукта с точки зрения бизнеса. В нашем случае, это просто набор файлов в неком пакете. Gradle-модуль у нас один на всё приложение.
Вес нашего APK, оптимизированного по гайду от Google составлял 4.4 мб
.
Начнём с простого. Если вы не используете kotlin-reflect, то можете исключить из сборки мета-информацию о kotlin-классах. Сделать это можно следующим образом:
В build.gradle (Module: app)
android { packagingOptions { exclude("META-INF/*.kotlin_module") exclude("**.kotlin_builtins") exclude("**.kotlin_metadata") } }
Для Java-рефлексии не нужны файлы *.kotlin_module
, *.kotlin_builtins
и *.kotlin_metadata
. Определить, какую рефлексию вы используете, очень просто. Если вы пишите obj::class.<method>
, то вы используете kotlin-рефлекцию, если же obj::class.java.<method>
, то java-рефлексию.
Итог оптимизации для нас: -602.1 кб
Иногда библиотеки тянут за собой зависимости для случаев, которые никогда не произойдут в вашем приложении. Например, ktor-client тянет вместе с собой kotlin-reflect (0.5 мб!).
Я боролся с такими случаями следующим образом: собирал APK с minifyEnabled = true
, закидывал его в анализатор Android Studio, загружал
mapping.txt
и искал пакеты, которые, по идее, не должны присутствовать в сборке. Например, kotlin.reflect
. После запускал ./gradlew app:dependencies
в папке проекта для поиска зависимостей (не забудьте увеличить длину истории в терминале. Дерево зависимостей может быть большим!). По этому дереву легко понять, что ссылается на лишние зависимости и исключить их. В build.gradle
вашего модуля:
dependencies { implementation("io.ktor:ktor-client-core:$ktorVersion") { exclude(group: "org.jetbrains.kotlin", module: "kotlin-reflect") } implementation("io.ktor:ktor-client-okhttp:$ktorVersion") { exclude(group: "org.jetbrains.kotlin", module: "kotlin-reflect") } }
Этот код убирает зависимость библиотеки ktor-client на kotlin-reflect. Если хотите исключить что-то другое — подставьте свои значения.
!!! Очень осторожно пользуйтесь этим советом! Перед исключением зависимостей, убедитесь, что вам они не нужны. Если вы этого не сделаете, то приложение может начать падать в продакшене !!!
Итог оптимизации для нас: -500.3 кб
К сожалению, proguard не удаляет лишние файлы разметки на языке XML из папки layout. Неиспользуемые XML могут использовать "тяжёлые" виджеты и proguard не сможет исключить из сборки их тоже! Чтобы избежать такого, удалите неиспользуемые ресурсы с помощью Refactor -> Remove unused resources...
Если вы, как и мы, используете runtime DI, то проверьте, нет ли у вас provider'ов для тех зависимостей, которые вы не используете. Proguard не может исключить их из сборки потому что они не являются неиспользуемыми с точки зрения компилятора. Вы используете их при построении графа зависимостей.
Инструменты отладки могут занимать неожиданно много места. Например, stetho
весит около 0.2 мб
после сжатия! В любом случае, лучше исключить из релизной сборки всю отладочную инфраструктуру, чтобы никто не смог узнать о вашем приложении слишком много, просто скачав его из Google Play.
Вы можете сделать так, чтобы для дебага и для релиза использовались разные версии одних и тех же файлов. Для этого в папке src
, рядом с
main
, создайте папки debug
и release
. Теперь вы можете написать функцию initStetho
, которая инициализирует Stetho в файле src/debug/java/your/pkg/Stetho.kt
и функцию initStetho
, которая не делает ничего, в файле src/release/java/your/pkg/Stetho.kt
.
На всякий случай, сделайте так, чтобы эта зависимость включалась только в дебаговые сборки. Сделать это можно, заменив implementation
на debugImplementation
в build.gradle
. Чаще всего, proguard исключает ненужные файлы даже без этого шага, но не всегда. Ответ на вопрос "почему?" ниже в тексте статьи.
Иногда на одной кодовой базе выпускаются несколько разных версий приложения. Это могут быть разные версии для разных стран или регионов, или, как в нашем, случае, для разных клиентов. Ниже советы о том, как разгрузить платформу.
/ PxHere / PD
Мы разрабатываем конструктор мобильных приложений E-SHOP. У нас несколько десятков клиентов и у каждого свой индивидуальный набор компонентов. Некоторые компоненты используются всеми клиентами, некоторые — только частью. Наша задача — включить в сборку клиента только те компоненты, которые ему нужны.
Для каждого клиента мы создаём отдельный productFlavor. Это удобно, потому что легко сделать разные ресурсы для разных клиентов, IDE предоставляет графический интерфейс для переключения между flavor'ами, и хорошо работают кэши. А ещё можно генерировать для каждого клиента свой
BuildConfig.java
. Значения полей этого класса известны на этапе компиляции. Это то, что нам нужно! Создаём поле типа boolean
для каждого компонента.
android { productFlavors { client1 { buildConfigField("boolean", "IS_CATALOG_ENABLED", "true") } client2 { buildConfigField("boolean", "IS_CATALOG_ENABLED", "false") } } }
Это — упрощённая версия конфигурации. Настоящая сложна из-за интеграции с нашим CI.
Теперь известно, активен ли компонент, на этапе компиляции, и proguard может исключить его из сборки!
Теперь проблема с неиспользуемыми XML-layouts приобретает новый масштаб! Нельзя просто взять и удалить разметку какого-нибудь компонента просто потому, что некоторым клиентам он не нужен.
В нашем приложении в XML одного из редкоиспользуемых компонентов, использовался виджет, который ссылался на библиотеку распознавания изображений firebase.ml.vision
. Она весит около 0.2 мб, что немало. Было принято решение добавлять этот виджет кодом вместо того, чтобы объявлять его в разметке. После этого proguard смог исключить vision
из сборки для клиентов, которым он не нужен.
Итог оптимизации для нас: -222.3 кб для среднего APK
Есть 2 способа сказать proguard, что ваш класс нельзя минифицировать: написать правило в файле proguard-rules.pro
или поставить аннотацию @Keep
. В библиотеке play-services-vision
на корневом классе стоит именно эта аннотация. Поэтому 0.2 мб висело мёртвым грузом даже в тех приложениях клиентов, которым не нужно распознавание изображений.
Я не нашёл простого и безопасного способа убрать эту аннотацию. Если вы знаете, как — напишите, пожалуйста, в комментариях.
К счастью, библиотека firebase.ml.vision
, которая является более новой версией play-services-vision
, не использует эту аннотацию и мы решили проблему, перейдя на неё.
Последний, но не по значимости пункт. DI при отключаемых компонентах. Тут всё просто: для каждого компонента мы используем свой контейнер, а общие зависимости подключаем через отдельный модуль.
Итог оптимизации для нас: -20.1 кб для среднего APK
- Вес среднего APK уменьшился с
4.4 мб
до3.1 мб
, а минимального — до2.5 мб
! - Код приложения не пострадал, а улучшился. Теперь с DI проще работать
Все оптимизации, представленные в статье — это "низковисящие фрукты". Их довольно легко внедрить и быстро получить результат. До -43% для уже оптимизированного APK в нашем случае. Надеюсь, я сэкономил ваше время тем, что перечислил всё в одном месте.
Всем спасибо!
Как уменьшить размер приложения (.apk) Oh! Android
Когда я устанавливаю свое приложение на телефоне для тестирования, он показывает, что это ОГРОМНЫЙ размер, 11,35 МБ . Это очень простое приложение, которое позволяет пользователю просматривать интересные факты. Единственная причина, по которой я могу думать, состоит в том, что в чертежах есть 14 файлов JPEG, которые служат в качестве фоновых изображений забавных фактов. Средний размер их составляет около 500 КБ.
Я хотел бы обрезать размер моего приложения, чтобы не использовать драгоценные ресурсы на устройстве пользователя. Есть ли способ оптимизировать размер файла apk, кроме как избавиться от фотографий?
EDIT: фотографии – это фотографии, сделанные мной с помощью телефона Android.
Я бы рекомендовал вам сжать файлы .jpg
как можно больше, это должно значительно уменьшить размер вашего файла .apk
. Инструмент, такой как Paint.NET, который является бесплатным, должен помочь вам в этом. Он имеет большие варианты изменения размера.
Другие ответы говорят о сокращении изображений. Вы также можете попробовать попробовать ProGuard уменьшить ваш байт-код. Вот статья о применении ProGuard к Android-приложению.
Убедитесь, что ваши jpg не сохранены в любом более высоком разрешении, чем необходимо. Хороший Android-телефон имеет разрешение 1920×1200 или 2560×1440 (около 2015) 800 x 480 , поэтому ваши фоны не должны содержать больше пикселей, чем это (если ваше приложение не поддерживает какое-то масштабирование). Кроме того, фотографии фона? Если нет, вы можете обнаружить, что использование векторного формата изображения, такого как svg, или одного с динамической палитрой, например gif, еще больше уменьшит размер файла.
ОБНОВИТЬ
С введением библиотеки поддержки 23.2 теперь вы можете заменить многие из ваших объектов изображения на SVG (без анимации), чтобы уменьшить размер apk.
ОРИГИНАЛ
Это может быть поздний ответ, но может быть полезен для будущих пользователей.
См. Эту ссылку . Чтобы суммировать страницу, в ней упоминаются ниже ключевые моменты, которые помогут уменьшить размер apk в совокупности:
- Использовать ProGaurd
- Удалите любую информацию об отладке, которую вы имеете в приложении (такие заявления, как Log.i ()). Они могут быть завернуты в состояние, которое разрешено только при тестировании приложения.
- Использовать рекомендуемые форматы носителей
- Изображение: PNG orJPG
- Аудио: AAC
- Видео: h364 AVC
- Сжатие изображений с использованием OptiPNG или PNGCrush
- Используйте 9patch для масштабирования изображений
- Найдите неиспользуемые ресурсы с помощью этого инструмента и удалите их .
- Избегайте использования нескольких ресурсов для достижения той же функциональности. Ресурсы не только ограничивают изображения, но распространяются на API. Иногда сингулярный API может предоставлять несколько результатов вместо использования двух или трех разных API. Дублированные строки и активы также являются пустой тратой пространства.
Помимо оптимизации изображений, я также счел полезным проверить библиотеки поддержки, которые вы используете. У меня есть относительно простые платформы таргетинга приложений с API> = 10, но мой APK оказался 2.2M или после использования ProGuard, 1.4M. Когда я заглянул в APK, код был 1.5M, и было много дополнительных ресурсов (abc_ *), о которых я ничего не знал.
Затем я нашел это: https://developer.android.com/tools/support-library/features.html
Оказывается, мне не нужен appcompat-v7, только поддержка-v4, и внесение этого изменения в мои зависимости уменьшило размер APK до 1.7M (0.9M с ProGuard). Понятно, что в библиотеках поддержки есть много дополнительных (код и ресурс), поэтому убедитесь, что вы используете только те, которые вам нужны, могут помочь.
(Несмотря на то, что -0.5M не является существенным для приложения 11M, я публикую это здесь, потому что я продолжал заканчиваться на этой странице, ища решение …)
- Используйте tinypng, сжимайте файлы изображений вашего проекта png или jpg, он может значительно уменьшить размер изображения без потери качества изображения;
- Некоторые изображения используют tinypng compress могут искажать, вы можете конвертировать
Эти изображения в формате webP, используйте 智 图 или iSparta, чтобы преобразовать другой формат в webP; - Используйте Lint, чтобы проверить использование ресурсов и удалить их;
Еще одна вещь, чтобы добавить размер файла изображения – разные алгоритмы могут существенно повлиять на конечный размер. Я обнаружил, что http://www.smushit.com Yahoo намного эффективнее (по крайней мере, для .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
Я думаю, что этот пост даст вам лучшее представление обо всех возможных методах, которые можно использовать для уменьшения размера apk с огромным запасом.
Я дам вам отрывок из этого же.
- Используйте только необходимые библиотеки из Служб Google Play.
- Примените ProGuard к своему приложению.
- Минимизировать и сжать.
- Принять векторные образы.
- Используйте андроид-линт.
- Разделите apk на основе архитектур
- Добавление resConfigs в файлы gradle для указания языков локализации.
Это удаляет все другие строковые файлы, которые могли быть добавлены другими библиотеками на языках, которые вы даже не поддерживаете.
Вот что вы можете сделать для уменьшения размера сборки с помощью изображений (также может работать для iOS). Здесь я использую отличный инструмент под названием «OPTIPNG» (вы можете скачать отсюда ), что поможет нам свести сборку с помощью изображений, Это уменьшит размер изображения для PNG, которые мы используем, без ухудшения качества (Разрешение и цвет) изображения.
Пример. Если размер вашего изображения не соответствует 698 КБ, тогда он будет простым уменьшенным размером до 564 КБ
Вот шаги выполнения для OPTIPNG 0.7.5
1) Терминал -> CD / YourLocal путь OPTIPNG
2) введите «./configure»
3) введите «sudo make install»
Интелляция должна быть сделана сейчас
4) введите «optipng / your image path
Вы получите результат в байте и можете также проверить свой размер
Вы также можете попробовать http://www.webresizer.com/resizer/ Его онлайн-инструмент, сделал для меня довольно хорошую работу.
Я использовал компрессор изображения Trimage для сжатия изображений и уменьшения размера apk. Он имеет хорошую степень сжатия, прост в использовании, сохраняет качество изображения и также доступен в Ubuntu. Кроме того, я включил ProGuard и работал над проблемами Lint, чтобы уменьшить APK размер.
Ниже приведены способы уменьшить размер приложения. Подробно объясняется в следующей ссылке.
https://medium.com/@fahimsakri/put-your-apks-on-diet-cc3f40843c84#.m860q8s1u
Proguard
Векторные чертежи
Apk расщепляется
Оптимизация изображений png
Удалить неиспользуемые ресурсы
9-патч-изображения
Сжатие изображений Jpeg
Удалить отладочную информацию
Избегайте дублирования
Широко использовать lint
Использовать ресурс по возможности
Рекомендуемые форматы носителей
Вы можете уменьшить размер apk по del R.class и заменить ссылку на константу.
Смотрите это: https://github.com/mogujie/ThinRPlugin
APK содержит zip-файл всех вещей, которые есть в вашем мобильном приложении, включая файлы классов Java, файлы ресурсов среди других.
Один из простых способов уменьшить ваш APK – уменьшить количество и размер ресурсов, которые он содержит. В частности, вы можете удалить ресурсы, которые ваше приложение больше не использует, и вместо файлов изображений можно использовать масштабируемые объекты Drawable.
Формат изображения WebP: обеспечивает сжатие с потерями (например, JPEG), а также прозрачность (например, PNG), но может обеспечить лучшее сжатие, чем JPEG или PNG
Преобразование изображений в WebP
Используйте SVG-изображения вместо jpg, чтобы уменьшить размер apk. Поместите свои файлы изображений в базу данных .. чтобы пользователи вашего приложения могли загрузить его из базы данных, и это значительно уменьшит размер приложения.
Как уменьшить и сжать файл apk в android Oh! Android
Вы можете сжать файл APK (rar, zip), но его нужно распаковать, чтобы работать.
Если файл apk, который можно распространять, вы можете:
- Используйте файлы расширения: http://developer.android.com/google/play/expansion-files.html.
- Создайте несколько версий apk: http://developer.android.com/google/play/publishing/multiple-apks.html (например, файлы hdpi для устройств ldpi)
-
Использовать ProGuard
ProGuard – это бесплатный инструмент для сжатия файлов Java, оптимизатор, обфускатор и преверизатор. Он обнаруживает и удаляет неиспользуемые классы, поля, методы и атрибуты. Он оптимизирует байт-код и удаляет неиспользуемые инструкции. Он переименовывает остальные классы, поля и методы, используя короткие бессмысленные имена. Наконец, он предопределяет обработанный код для Java 6 или более поздней версии или для Java Micro Edition.
Если вы используете Eclipse, файл конфигурации по умолчанию будет автоматически добавлен в ваш проект. Но эта конфигурация по умолчанию охватывает только общие случаи, поэтому вам, скорее всего, придется отредактировать ее для своих нужд.
-
Удалить неиспользуемые ресурсы: https://code.google.com/p/android-unused-resources/
- Оптимизируйте свои изображения с помощью таких инструментов, как оптимизаторы 9patch и png
- Удалите все, что используется только для целей отладки (классы отладки или даже методы Log ()). Также попробуйте удалить ненужные файлы .so
Вы можете ZipAlign подписанный apk сжать его.
Применение:
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
Пример:
D:\android-sdk\android-sdk\tools>zipalign -f -v 4 "C:\Users\Joisar\Desktop\project_name\appname_signed.apk" "C:\Users\Joisar\Desktop\project_name\appname__zipaligned.apk"
Заметка:
Просьба проверить apk, является ли оно zipaligned или нет, следуя команде, если это не zipaligned, а затем сделайте это.
zipalign -c -v 4 "C:\Users\Joisar\Desktop\project_name\appname_signed.apk"
Найти проблему
Вы можете анализировать APK из Android Studio. Это показывает вам различные файлы в своих каталогах и их размеры, как абсолютные, так и относительно всего APK:
Проверка неиспользуемых ресурсов
Это самое простое: Покажет вам, помимо прочего, неиспользуемые ресурсы:
Просто удалите их из своего проекта.
Использование векторных изображений
Vector Drawables обеспечивают одно четкое изображение для всех разрешений, что значительно уменьшает размер вашей графики. Как обычно, вы можете использовать их для значков и т. Д., Но не для фотографий. Не-векторизованные изображения могут быть уменьшены с помощью тримажа .
Proguard minify
Добавьте в app/build.gradle
чтобы включить proguard для удаления неиспользуемых классов из вашего проекта:
buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
Как уменьшить приложение (.apk) размер
помогите!
когда я устанавливаю свое приложение на телефон для тестирования,он показывает, что это огромный размер, 11.35 MB. Это очень простое приложение, которое позволяет пользователю просматривать забавные факты. Единственная причина, по которой я могу думать о том, что в drawables есть 14 JPEG-файлов, которые служат фоновыми изображениями забавных фактов. Средний размер составляет около 500 КБ.
Я хотел бы обрезать размер моего приложения, чтобы не использовать драгоценные ресурсы на устройстве пользователя. Помимо того, чтобы просто избавиться от фотографий, есть ли способы оптимизировать размер файла apk?
EDIT: фотографии-это фотографии, сделанные мной с помощью самого телефона Android.
22 ответов
Я бы рекомендовал вам обжать .jpg
файлы как можно больше, это должно значительно уменьшить размер вашего . Такой инструмент, какPaint.NET что бесплатно должно помочь вам сделать это. Он имеет большие изменения.
другие ответы упоминают сжатие изображений. Вы также можете попробовать ProGuard сжать свой байткод. вот статья при применении ProGuard к Android-приложению.
31
автор: Mauricio Scheffer
убедитесь, что ваши jpg не хранятся в более высоком разрешении, чем необходимо. Хороший телефон Android имеет разрешение экрана 1920x1200 или 2560x1440 (около 2015) 800 x 480, поэтому ваши фоны не должны содержать больше пикселей, чем это (если ваше приложение не поддерживает какое-то масштабирование). Кроме того, фотографии фона? Если нет, вы можете обнаружить, что использование векторного формата изображения, такого как svg, или с динамической палитрой, такой как gif, уменьшит размер файла даже больше.
13
автор: Dana the Sane
обновление
с введением библиотеки поддержки 23.2, теперь вы можете заменить многие из ваших активов изображения с SVG (ж/ или без анимации), чтобы уменьшить размер apk дальше.
оригинал
Это может быть поздний ответ, но может быть полезно для будущих пользователей.
передать этот ссылке. Чтобы резюмировать страницу, он упоминает ниже ключевые моменты, которые помогут уменьшить размер apk в тотальность:
- использовать ProGaurd
- удалить любую отладочную информацию у вас есть в приложении (операторы, такие как Log.я.))( Они могут быть обернуты в состояние, которое включено только при тестировании приложения.
- использовать рекомендуемые форматы медиа
- изображение: PNG orJPG
- Аудио: AAC
- видео: кодек h364 AVC и
- сжать изображения используя OptiPNG или PNGCrush
- использовать 9patch to масштабирование изображений
- найти неиспользованные ресурсы используя этот и удалить их.
- избегайте использования нескольких ресурсов для достижения той же функциональности. Ресурсы не только ограничиваются изображениями,но и распространяются на API. Иногда сингулярный API может предоставить несколько результатов вместо использования двух или трех различных API. Дублированные строки и активы также являются пустой тратой места.
11
автор: Vaibhav Singhal
помимо оптимизации изображений, я также счел полезным проверить используемые вами библиотеки поддержки. У меня есть относительно простые платформы таргетинга приложений с 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), чем компрессоры и кодеки, которые у меня есть на моем компьютере прямо сейчас.
3
автор: ProjectJourneyman
есть две вещи, которые я могу отметить из опыта.
- Если вы используете eclipse для создания файла apk, то ресурсы дублируются (по крайней мере, это произошло в моем случае), вы можете попробовать использовать ant и build.xml для создания apk и сравнения размера.
- Также посмотрите на сглаживание ресурсов. Ссылка для него здесь.
2
автор: omermuhammed
Я знаю, что я поздно здесь, чтобы ответить на этот вопрос, но я уменьшить размер приложения, используя методы ниже я хочу поделиться этими вещами со всеми.
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
преобразование изображений в WebP
четыре способа и размер вашего приложения станет от 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 с динамическими функциями
1
автор: Suresh Maidaragi
преобразовать в 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 / ваш путь изображения
вы получите результат в байт, а также можете проверить свой размер
0
автор: Kirtikumar A.
вы также можете попробовать http://www.webresizer.com/resizer/ его онлайн-инструмент, сделал довольно хорошую работу для меня.
Я Trimage Image compressor для сжатия изображений и уменьшения размера apk.Он имеет хорошую скорость сжатия, прост в использовании, сохраняет качество изображения и также доступен в Ubuntu.Кроме того, я включил ProGuard и работал над проблемами корпии, чтобы уменьшить размер APK.
0
автор: Bhuvnesh Varma
Ниже приведены способы уменьшения размера приложения. Подробно объясняется в следующей ссылке.
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. поместите файлы изображений в базу данных .. чтобы пользователи вашего приложения могли загрузить его из базы данных, и это значительно уменьшит размер приложения..
-1
автор: Ameer Khalifullah
Как сжимать и распаковывать Zip и RAR архивы на Android
Если вы используете свой смартфон Android и вам необходимо передавать большие файлы на компьютер или с него, размер этих файлов может затруднить процесс. Сжатие или сжатие этих файлов облегчает процесс. Однако вы не можете сжимать или распаковывать эти файлы на Android, если вы не используете стороннее приложение.
Если ваша работа требует отправки больших файлов или если вы просто хотите отправить кому-то большое количество фотографий, zip-файлы являются необходимостью. В этой статье объясняется, как сжимать или распаковывать большие файлы на смартфоне Android с помощью приложения под названием RAR.
RAR — это инструмент для декомпрессии, разработанный людьми, создавшими WinRAR, и их Windows-приложение преследует ту же цель. Используя мобильное приложение, вы можете распаковывать файлы в форматах RAR, ZIP, TAR, GZ, BZ2, XZ, 7z, ISO и ARJ. Однако вы можете архивировать или сжимать файлы только в форматах RAR и ZIP.
Использование этого приложения позволит вам легко управлять этими типами файлов. Следующие шаги показывают, что вам нужно сделать.
Как использовать RAR для распаковки файлов на Android – пошаговая инструкция
- Загрузите и установите RAR из Play Store.
- Откройте приложение RAR. Это приведет вас прямо к вашим файлам.
- Найдите каталог, в который был загружен файл. Нажмите на папку, содержащую файл.
- Нажмите, чтобы проверить файл для распаковки.
- Нажмите кнопку Извлечь.
- Выберите нужный путь назначения, нажав на кнопку и выбрав опцию. Вы можете выбрать другой путь, нажав на Обзор. Вы также можете просто использовать путь по умолчанию.
- Нажмите ОК
Затем программа отобразит файлы, которые были в папке ZIP.
Как создать ZIP архив на Android – пошаговая инструкция
Также просто создать файл zip на вашем телефоне, чтобы вы могли легко отправить его по электронной почте или другим способом по вашему выбору.
- Откройте приложение RAR.
- В диспетчере файлов выберите файлы, которые вы хотите отправить, установив соответствующий флажок. Убедитесь, что общий размер не превышает 707 МБ.
- Нажмите кнопку «Архив».
- Выберите формат файла, который вы хотите использовать, из RAR, ZIP или RAR 4.x.
- Измените путь назначения, если вы хотите использовать что-то отличное от пути по умолчанию.
- При желании вы также можете добавить пароль в папку, в которой ваш получатель должен будет открыть файлы.
- Если вы хотите удалить файлы, установите этот флажок. Вы также можете создать солидный архив. Надежный архив — это архив, содержащий специальный метод сжатия, который обрабатывает файлы, содержащиеся в архиве, как непрерывный поток данных. Вы должны зарегистрироваться в качестве RAR, чтобы эта опция работала.
- Нажмите на ОК.
Теперь вы можете отправлять эти файлы, не беспокоясь о том, не получит ли ваш получатель их из-за их большого размера. Просто выберите папку, установив флажок, щелкните три точки в верхнем правом углу, выберите метод, который вы хотите использовать для отправки файлов, и все готово.
Как Уменьшить Размер Файла Apk
Следуйте приведенным ниже инструкциям,
1. Используйте значок значка формата.svg.
Его время попрощаться с PNG и приветствовать векторные чертежи. Есть несколько преимуществ их использования. Нам не нужно беспокоиться о разных DPI устройствах, а также помогает уменьшить размер APK. В Support Library 23.2 теперь мы можем использовать свойство app: srcCompat ImageView вместо android: src, чтобы сделать его обратно совместимым. Когда вы загружаете значок системного приложения из библиотеки значков дизайна материалов Google, загрузите формат .svg вместо.pngs. Это помогло нам сократить размер нашего приложения на 1 Мб.
2. Сжатие PNG
Мы используем PNG для наших прохождений по экрану для всех плотностей экрана. PNG были очень высокого качества и размера, которые просто раздували размер нашего приложения! В Weather Stream v1.2, когда мы начали оптимизировать размер нашего приложения, мы сжимали наши прошивные экраны и стрелу! Проходные экраны были ~ 1/10-го размера, которые были раньше! (Да! 1/10). Это безумие! Мы быстро создали сборку и проверили качество изображения в различных плотностях экрана, выглядели точно так же. Быстрый поиск в Google даст вам множество инструментов, которые помогут вам сжать ваши PNG. Мы также избавились от ресурсов ldpi после просмотра Device Metrics, совместно используемого командой Google Design.
3. Используйте только определенные библиотеки служб Google Play.
До Google Play Services 6.5 нам пришлось скомпилировать весь пакет. Но теперь мы можем выборочно скомпилировать его в наше приложение. Теперь мы используем Google Cloud Messaging, Google Maps и Google Location API.
4. Используйте Proguard
Proguard используется для обфускации кода, а также удаляет неиспользуемый код Java из зависимостей. Результат после использования Proguard - это меньший размер файла apk, который трудно перестроить. Чтобы включить proguard:
build.gradle
android {
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
5. Усадочные ресурсы
Плагин Android Gradle поддерживает возможность автоматического исключения неиспользуемых ресурсов во время процесса сборки, используя свойство shrinkResources gradle. Только это уменьшило размер apk на ~ 0,5 Мб. Чтобы воспользоваться этим в своих выпусках, просто добавьте shrinkResources true к вашей конфигурации выпуска.
build.gradle
android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
...
//Other parameters
debuggable false
jniDebuggable false
renderscriptDebuggable false
}
}
}
6. res Конфликт
Атрибут resConfigs удаляет все остальные локализованные ресурсы при создании приложения. В нашем случае "Anti-Theft Screen Lock" поддерживает только английский язык. Хотя все библиотеки поддержки могут иметь локализованные папки для других языков. Что нам не нужно. Итак, добавьте следующую строку, чтобы в файл APK можно было добавлять только английские ресурсы.
defaultConfig {
//...
//...
//... //strip other than english resources
resConfigs "en"
}
Как сжать видео файл в андроиде?
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- Вакансии Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
- Реклама Обратитесь к разработчикам и технологам со всего мира
- О компании
Загрузка…
- Авторизоваться зарегистрироваться
-
текущее сообщество
6 лучших бесплатных приложений для сжатия видео на Android [Обновление 2019]
5 декабря 2020 г. • Проверенные решения
Если вы создали смешное видео с друзьями или вы запечатлили чудесную сцену на природе, вы можете отправить видео кому-нибудь.Или, может быть, вы хотите загрузить его в Интернете. Проблема в том, что некоторые видео имеют очень большой размер файла, что затрудняет их загрузку или отправку кому-либо. Вот почему вам может потребоваться сжать видео на Android , прежде чем вы сможете его отправить.
Хорошей новостью является то, что вы можете легко использовать бесплатные приложения на своем телефоне Android для сжатия этих видео. Затем вы можете удалить исходное видео, освободить место на телефоне и отправить видео кому угодно! Вот шесть приложений для сжатия видео на Android.
Таблица сравнения
Перед тем, как погрузиться в 6 приложений, вот сравнительная таблица, проанализированная нами с точки зрения версии, формата файла и так далее. Я уверен, что это даст вам полное представление.
Видео Сжатие | Изменить размер видео | Видеокомпрессор от Sunshine | Компрессор видео и фильмов | Видео Дитер 2 | Видео Компрессор | |
---|---|---|---|---|---|---|
Версия Android | Y | Y | Y | Y | Y | Y |
версия iOS | N | N | N | N | N | N |
Поддерживаемый формат файла | MP3, MP4, AVI, WMV... | / | MP3, MP4 ... | MP3, MP4, FLV ... | MP3, MP4 ... | MP4,3GP и AVI |
Сжатие HD | Y | Y | Y | Y | Y | / |
Поделиться видео напрямую | Y | Y | Y | Y | Y | Y |
Бесплатно или нет | Y | Y | Y | Y | Y | Y |
Шесть лучших бесплатных Android-приложений для сжатия видео
1.Видео Сжатие
Сжатие видео значительно упрощает сжатие видео, а затем публикацию их в социальных сетях, таких как Facebook, Google+, WhatsApp и других.
Плюсов:
- Можно настроить качество видео между высоким, нормальным и низким для разных уровней сжатия.
- Простой в использовании интерфейс и очень быстрый процесс сжатия.
- Поддерживает все форматы видео.
- Позволяет удалять аудио по запросу, что еще больше уменьшает размер файла.
- При необходимости можно преобразовать видео в файл MP3, содержащий только аудио.
Минусы:
- Иногда сложно удалить новые видеофайлы из приложения.
- Не всегда работает функция отправки видео пользователю через смс.
2.Изменить размер видео
С помощью Resize Video вы можете легко сжимать видео на телефонах и планшетах Android. Вы можете выбрать размер видео по своему вкусу и даже обрезать длину видео перед сжатием.
Плюсов:
- Легкая возможность изменения размера, а также обрезка и обрезка видео.
- Удаляйте аудио из видео и добавляйте музыку к видео, когда хотите.
- Делитесь видео в социальных сетях, таких как Facebook, Gmail и других.
- Сохраняйте и удаляйте видео через приложение.
Минусы:
- Некоторые пользователи были недовольны уровнем изменения размера их видео. Они хотели, чтобы их видео еще больше уменьшилось.
3. Видеокомпрессор Sunshine
Video Compressor от Sunshine - один из немногих компрессоров мульти-видео, доступных в Play Store.Вы можете превратить несколько видео в один сжатый файл, чтобы сэкономить место на телефоне.
Плюсов:
- При желании сжимает множество больших файлов в один файл меньшего размера.
- Оптимизирует файловое пространство за счет перезаписи сжатых видео, освобождая в среднем на 90 процентов больше места на вашем телефоне.
- Варианты настроек FHD, HD и SD для сжатия. SD будет иметь самый низкий размер файла.
- Мгновенно передавайте сжатые видео.
Минусы:
- Сжимает только те файлы, которые вы создаете на своем телефоне, а не файлы, загруженные из различных сетевых источников.
4. Компрессор видео и фильмов
Videos & Movies Compressor предлагает поддержку всех популярных видеоформатов. Приложение позволяет легко сжимать видео на Android, а затем делиться им с друзьями или семьей.
Плюсов:
- Поддерживаются все форматы видео и фильмов.
- Выберите размер с помощью ползунка, регулирующего степень усадки.
- Выберите свое видео в галерее, что позволяет легко выбрать правильное видео.
- Будет сжиматься в фоновом режиме, чтобы вы могли выполнять другие задачи на своем телефоне.
Минусы:
- Нет возможности для сжатия нескольких видео в один файл.
- Иногда качество изображения сильно ухудшается, если вы слишком сильно сжимаете размер.
5. Видео Дитер 2
С Video Dieter очень просто решить, насколько сжать ваше видео. Помните, что каждое уменьшение размера файла снижает качество, поэтому вам нужно найти правильный баланс. Программное обеспечение также упрощает обмен видео.
Плюсов:
- Легко обрезать ненужные части видео.
- Возможность очень быстро перекодировать файлы.
- Перед началом сжатия установите желаемое разрешение и качество.
- Возможность замедлять видео или включать таймлапс.
Минусы:
- Ограниченные возможности для изменения имен файлов или настройки места сохранения файлов.
6.Видео Компрессор
Video Compressor - один из самых простых способов уменьшить размер ваших видеофайлов, прежде чем вы их сохраните или поделитесь ими. Даже если у вас нет опыта сжатия видео или их преобразования в другие форматы, вы можете сделать это с помощью этой программы.
Плюсов:
- Используйте галерею, чтобы выбрать видео, которое хотите сжать.
- Поддержка MP4, 3GP и AVI.
- Предварительный просмотр видео перед отправкой или сохранением.
Минусы:
- Некоторые форматы видео не поддерживаются.
Заключение
Используя любое из этих бесплатных приложений, вы можете легко сжимать видео на устройствах Android. Независимо от того, используете ли вы планшет или смартфон, вы можете сжать видео до гораздо меньшего размера без ущерба для его качества.
Теперь вы можете отправлять свои видео друзьям намного быстрее и легко загружать их в социальные сети, такие как Instagram, Facebook, Twitter или Google+.И вам даже не нужно использовать компьютер или другое устройство - все это делается с помощью этих бесплатных приложений, доступных в Android Play Store!
Лиза Браун
Лиза Браун - писательница и любительница всего видео.
Подписаться @Liza Brown
.Сжатие PDF, PPT, Word, Excel, JPEG, PNG и TIFF онлайн
Сжать PDF
Создан на основе официальной библиотеки Adobe PDF для создания лучшего в своем классе компрессора PDF. Самый безопасный способ сжатия PDF в Интернете
Сжать PPT, DOC и XLS
Уникальное и безупречное сжатие файлов Microsoft Office.Улучшение за 20 лет, это единственный способ надежно уменьшить файлы PPT, DOC и XLS.
Компрессор PNG, TIFF и JPEG
Сжимайте изображения JPEG, PNG и TIFF на 50-80%, сохраняя при этом разрешение и прозрачность. Идеально подходит для оптимизации изображений для вашего сайта
Надежно и надежно
Ваши файлы передаются в зашифрованном виде и ненадолго хранятся на наших защищенных серверах приложений Microsoft Azure перед удалением.Подробнее читайте в нашей политике конфиденциальности.
Просто на любом устройстве
Простой интерфейс браузера с возможностью перетаскивания для сжатия файлов в Windows, Mac или Linux без использования ресурсов компьютера.
.Как просмотреть содержимое файла APK для Android?
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- Вакансии Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
- Реклама Обратитесь к разработчикам и технологам со всего мира
- О компании