как уменьшить размер приложения android
Размер приложения
Отслеживайте и оптимизируйте размер приложений – компактные приложения быстрее скачиваются, и у них больше успешных установок
Оптимизация размера приложения
Узнайте, что больше всего влияет на размер приложения при скачивании и на устройстве, и определите, как его можно оптимизировать.
Сравнение с другими приложениями
Сравнивайте размер своего приложения с другими решениями в Google Play и определяйте варианты оптимизации
Отслеживание устройств с нехваткой места в хранилище
Узнайте, сколько пользователей могут удалить приложение из-за нехватки свободного места на устройстве
Рекомендации
Публикуйте приложения в формате наборов Android App Bundle. Это позволит оптимизировать APK-файлы для разных устройств.
Уменьшите размер при установке, разделив приложение на функциональные модули, которые скачиваются по мере необходимости с помощью Play Feature Delivery.
Передавайте игровые объекты, используя Play Asset Delivery.
Убирайте необязательные фрагменты кода с помощью инструментов минимизации, таких как ProGuard и R8.
Подробнее
Справочный центр Play Console
Узнайте, какие данные входят в отчет о размере приложения в Play Console
Документация для разработчиков
Сделайте свое приложение ещё компактнее с помощью удобных инструментов и полезных рекомендаций
О наборах Android App Bundle
Узнайте, как сделать приложение компактнее, упростить процесс выпуска и предоставлять функции по запросу с помощью наборов App Bundle
Учебный курс по набору Android App Bundle
Проходите бесплатные курсы и узнавайте больше о наборах App Bundle, динамических функциях, подписании приложений в Google Play и других возможностях
Узнайте, как компании Riafy Technologies удалось сделать приложение более компактным и увеличить количество установок с помощью наборов Android App Bundle.
Расширение аудитории
Используйте отчеты и инструменты оптимизации, чтобы привлекать больше новых пользователей, и получайте уникальную статистику по тенденциям рынка, доступную только в Google Play.
Отчет об источниках трафика
Узнайте, как различные факторы, такие как похожие запросы, переходы и поиск в Google Play, влияют на общее количество пользователей по странам.
Статистика
Запрашивайте, анализируйте и сравнивайте уникальные показатели приложения в Play Console. Находите ответы, анализируйте тенденции на основе собственных показателей и сравнивайте производительность своего приложения с аналогичными продуктами.
Страница приложения
Совершенствуйте страницу приложения в Google Play, чтобы завоевать внимание пользователей.
Эксперименты со страницей приложения
Увеличьте количество установок и показатели удержания пользователей, оптимизировав страницу приложения в Google Play. Подберите самые эффективные локализованные тексты и графику с помощью A/B-тестирований.
Дополнительные функции
Используйте функцию «Размер приложения»
Отслеживайте и оптимизируйте размер приложений – компактные приложения быстрее скачиваются, и у них больше успешных установок
Подпишитесь на новости Google Play для разработчиков
Играем в APK-гольф. Уменьшение размера файлов Android APK на 99,9%
В гольфе выигрывает тот, у кого меньше очков.
Применим этот принцип в Android. Мы собираемся поиграть в APK-гольф и создать приложение минимально возможного размера, которое можно установить на Android 8.0 Oreo.
Базовый уровень
Затем установим APK на смартфон Nexus 5x под Oreo, чтобы убедиться, что всё работает.
Прекрасно. Наш APK весит примерно полтора мегабайта.
APK Analyser
Полтора мегабайта кажутся слишком большим размером с учётом того, что делает наше приложение (а оно ничего не делает), так что давайте изучим проект и поищем, где по-быстрому сэкономить на объёме. Вот что сгенерировал Android Studio:
Вопреки нашим первоначальным предположениям, похоже, что самый большой файл — Dex, а на ресурсы приходится всего 20% от размера APK.
Файл | Размер | ||||||
---|---|---|---|---|---|---|---|
classes.dex | 74% | ||||||
res | 20% | ||||||
resources.arsc | 4% | ||||||
META-INF | 2% | ||||||
AndroidManifest.xml | classes.dex — главный виновник раздутого APK, он занимает 73% всего объёма и поэтому станет первой целью оптимизации. Этот файл содержит весь наш скомпилированный код в формате Dex, а также список внешних методов во фреймворке Android и библиотеку поддержки. В пакете android.support перечисляется более 13 000 методов, что кажется излишним для приложения типа «Hello World». РесурсыВ директории res находится большое количество файлов шаблонов, чертежей (drawables) и анимаций, которые сразу не видны в интерфейсе Android Studio. Опять же, они вытянуты из библиотеки поддержки и занимают около 20% размера APK. Файл resources.arsc также содержит список всех этих ресурсов. ПодписьЗдесь нет очевидных целей для оптимизации. AndroidManifestВключаем минификациюМы ещё не пробовали включить опцию минификации и сжатия ресурсов в файле build.gradle для нашего приложения. Сделаем это. shrinkResources удалит из APK любые ресурсы, на которые нет прямой ссылки. Могут возникнуть проблемы, если вы получаете доступ к ресурсам не напрямую, но к нашему приложению это не относится. 786 КБ (уменьшение на 50%)Мы наполовину уменьшили размер APK без видимого изменения в работе программы. Если вы ещё не включили minifyEnabled и shrinkResources в своём приложении, это самая главная вещь, которую следует вынести из этой статьи. Можно легко сэкономить несколько мегабайт, потратив всего парочку часов на конфигурацию и тестирование. Прощай, AppCompat, мы едва тебя узнали108 КБ (уменьшение на 87%)Матерь божья, файл уменьшился почти в десять раз: с 786 КБ до 108 КБ. Единственным заметным изменением стало только изменение цвета тулбара, который окрасился в дефолтную тему ОС. На директорию res теперь приходится 95% размера APK из-за всех этих иконок лаунчера. Если бы эти иконки делал наш дизайнер, мы бы попытались конвертировать их в WebP, более эффективный формат, который поддерживается в API 15 и более поздних версиях. К счастью, Google уже оптимизировала наши drawables, хотя в противном случае мы бы и сами могли оптимизировать их и удалить из PNG ненужные метаданные с помощью ImageOptim. 6808 байт (уменьшение на 94%)Мы избавились почти от всех ресурсов, так что неудивительно, что размер APK уменьшился примерно на 95%. В файле resources.arsc по-прежнему упоминаются следующие ресурсы: Файл шаблона (6262 байта, сокращение на 9%)Выглядит как неплохой обмен. Имя приложения (6034 байта, сокращение на 4%)Давайте удалим strings.xml и заменим android:label в манифесте AndroidManifest буквой «A». Это кажется маленьким изменением, но удаление записи из resources.arsc уменьшает количество символов в манифесте и удаляет файл из директории res. Каждая мелочь идёт на пользу — мы только что сэкономили 228 байт. Иконка лаунчера (5300 байт, сокращение на 13%)Документация для resources.arsc в репозитории Android Platform объясняет, что каждый ресурс APK упоминается в resources.arsc с целочисленным идентификатором. У этих ID два пространства имён:
Так что произойдёт с нашим APK, если мы поставил ссылку на ресурс в пространстве имён 0x01? По идее, мы получим более красивую иконку и одновременно уменьшим размер своего файла. Само собой, вам никогда не следует доверять системным ресурсам вроде иконок в реальном рабочем приложении. Такой метод провалит валидацию в Google Play, а некоторые производители ещё и по-своему определяют белый цвет, так что действуйте осторожно. Манифест (5252 байта, сокращение на 1%)Мы ещё не трогали манифест. Удаление этих аттрибутов экономит 48 байт. Хак Proguard (4984 байта, сокращение на 5%)Похоже, что классы BuildConfig и R ещё остались в файле Dex. Уточнение правила Proguard удалит ненужные классы. Обфускация (4936 байт, сокращение на 1%)Обфусцируем имя для класса Activity. Для обычных классов Proguard автоматически делает это, но поскольку имя класса Activity вызывается через Intents, его не обфусцировали по умолчанию. META-INF (3307 байт, сокращение на 33%)В данный момент мы подписываем приложение одновременно подписями v1 и v2. Это кажется лишней тратой ресурсов, потому что v2 обеспечивает превосходную защиту и производительность, хешируя весь APK целиком. Давайте уберём галочку для подписи v1 в интерфейсе Android Studio и сгенерируем подписанный APK. Попробуем сделать и наоборот.
Похоже, теперь мы будем использовать v2. Куда мы идём — там не нужны IDEПришло время редактировать APK вручную. Используем следующие команды: Детальный обзор процесса подписи APK см. здесь. В общем, Gradle генерирует неподписанный архив, zipalign делает выравнивание по границе байта для несжатых ресурсов, чтобы оптимизировать потребление RAM после загрузки APK, и в конце запускается криптографическая процедура подписи APK. Неподписанный и невыровненный APK весит 1902 байт, то есть процедура добавляет примерно 1 килобайт. Несоответствие размеров файлов (2608 байт, сжатие на 21%)Хаки со сжатием (2599 байт, сокращение на 0,5%)Теперь изменим все оставшиеся строки на ‘c’, обновив версии до 26, а затем сгенерируем подписанный APK. Это уменьшает размер ещё на 9 байт. Хотя количество символов в файле не изменилось, но дело в том, что увеличилась частотность символа ‘c’. В результате алгоритм сжатия сработал более эффективно. Привет, ADB (2462 байт, сокращение на 5%)Можно ещё сильнее оптимизировать манифест, удалив фильтр намерения Launch для класса Activity. С этого момента будем запускать приложение следующей командой: Вот новый манифест: Мы также избавились от иконки лаунчера. Очистка от ссылок на методы (2179 байт, сокращение на 12%)По изначальным условиям, мы должны подготовить APK, который способен установиться на устройство. Исходные файлы теперь выглядят следующим образом: Используем adb для проверки, что APK успешно установился, это можно также проверить через «Настройки». Оптимизация Dex (1961 байт, сокращение на 10%)Я потратил несколько часов, изучая формат файла Dex ради этой оптимизации, поскольку разные механизмы вроде контрольных сумм и смещений затрудняют ручное редактирование. Иногда глупейшее решение — самое лучшее. Понимание манифеста (1961 байт, сокращение на 0%)Манифест неподписанного APK — это файл в бинарном формате XML, который вроде бы официально не документирован. Можно изменить содержимое файла с помощью редактора HexFiend. Непонимание манифеста (1777 байт, сокращение на 9%)А попробуем набросать случайных символов по всему файлу, а затем установить APK, не изменяя указанный размер файла. Так мы проверим, осуществляется ли проверка контрольной суммы, и как наши изменения повлияют на смещения в заголовке файла. Удивительно, но такой манифест воспринят как валидный APK на Nexus 5X под Oreo: Для максимальной выгоды нужно заменить все эти глупые символы нулевыми байтами. Это поможет распознать важные части файла в HexFiend, а также сократит несколько байт благодаря хаку сжатия, упомянутому выше. Манифест UTF-8Вот важные компоненты Manifest, без которых APK не установится. Некоторые вещи очевидны, такие как теги манифеста и пакета. В пуле строк видны versionCode и название пакета. Шестнадцатиричный манифестНо вряд ли здесь можно найти другие варианты для оптимизации. Готово? (1757 байт, сокращение 1%)Изучим окончательный APK. В течение всего этого имени в APK было указано моё имя в подписи v2. Создадим новое хранилище ключей, в котором используется хак для сжатия. Мы сэкономили 20 байт. Шаг 5: Признание1757 байт — это очень мало, чёрт возьми. И насколько я знаю, это самый маленький существующий APK. Однако я разумно полагаю, что кто-нибудь из Android-сообщества способен выполнить дальнейшие оптимизации и ещё улучшить результат. Если вы умудритесь уменьшить файл с нынешних 1757 байт, присылайте пулл-реквест в репозиторий, где хостится самый маленький APK, или сообщайте в твиттере. (С момента публикации статьи файл уже уменьшили до 820 байт — прим. пер.) Как уменьшить размер APK файла?
Что такое APK формат?APK— аббревиатура от Android application package (файл архива Android программы). Каждое Android приложение упаковывается в apk архив, содержащий исполняемый код (.dex файлы), ресурсы, активы и файл манифеста. Фактически apk представляет собой обычный zip архив, поэтому не имеет смысла предварительно сжимать файлы ресурсов каким-нибудь архиватором. Почему нужно стремиться к экономии памяти? Размер памяти на смартфоне ограничен несколькими мегабайтами, а пользователю нужно хранить кучу разной информации: фотографии, музыку, архив сообщений. Поэтому размер приложения отнюдь не последний фактор, учитываемый пользователем при поиске программ. Как уменьшить размер APK файла?
Используйте ProGuardProGuard— это обфускатор, попутно сжимающий размер кода. Как известно, Java приложения компилируются в байт-код, из которого довольно просто восстановить java исходник. Для усложнения жизни любителям реверс-инженерии придумали обфускаторы. Обфускатор служит для запутывания исходного кода программы, при сохранении исходной функциональности. Получается рабочий исходник, мало пригодный для чтения человеком. Программа ProGuard помимо собственно обфускации сжимает исходный код, делает его более быстрым и менее требовательным к памяти. Очень важно после использования ProGuard провести тщательное тестирование полученного приложения. Возможны ситуации, когда в ходе оптимизации и обфускации кода изменяется его функциональность. В таких случаях важно позаботиться о сохранении symbol mapping, чтобы можно было восстановить из обфусцированного кода исходный и попытаться выявить источник проблем. Удаляйте отладочную информациюДэвид рекомендует перед компиляцией финальной версии программы убрать из нее все связанные с отладкой конструкции, поскольку они не несут для пользователя ничего полезного. Входящий в состав Android SDK компилятор умеет автоматически удалять отладочный код из релиза, но программист должен позаботиться о правильном оформлении своей программы, поместив отладочные команды в специальный блок: Часто начинающие разработчики оформляют отладочный код в виде отдельных методов Удаляйте отладочные символы из нативных библиотекИспользование символов отладки имеет смысл, когда ваше приложение находится в стадии разработки. Если Вы решили собрать релиз, Дэвид рекомендует удалить символы отладки из нативных библиотек (.so файлы). Это можно сделать, вызвав команду arm-eabi-strip из Android NDK. Используйте рекомендуемые медиа форматыЕсли ваше приложение содержит графику, видео и аудио данные, использование «правильных» форматов может положительно сказаться на размере приложения. Дэвид рекомендует использовать следующие форматы: Компрессируйте PNG файлыДовольно часто получаемые в результате работы графических редакторов PNG файлы плохо скомпрессированы и их размер может быть дополнительно уменьшен с помощью специальных утилит:OptiPNGилиPNGCrush. Обе эти программы пересжимают PNG файл, сохраняя качество картинки. Программы перебирают параметры PNG фильтров и настроек алгоритма сжатия и создают на выходе файл с оптимальными параметрами. Используйте 9patch PNG для масштабируемых изображенийУдаляйте неиспользуемые ресурсыКак правило, папка res содержит несколько неиспользуемых ресурсов. Для их удаления можно использовать специальную утилитуandroid-unused-resources, которая сканирует Ваш исходный код и удаляет из проекта неиспользуемые ресурсы. Избегайте дублированияУбедитесь, что в вашем приложении не дублируется функциональность и активы (строки, рисунки и т.п.). Важно понимать, какие Android API вы используете, и знать их функциональность. Может получиться, что в вашей программе для решения задачи, которую можно решить средствами уже подключенных API, подключается новый API. Дублирование кода, например, включение в программу функций делающих одно и то же, также ведет к разбуханию APK файлов. Как изменить масштаб приложение на АндроидЕсли значки на экране телефона плохо видно, то можно настроить их подходящий размер. Изменить параметры экрана возможно при помощи стандартных средств и сторонних приложений. Давайте рассмотрим самые эффективные способы, как увеличить или уменьшить значки на экране телефона Андроид. p, blockquote 1,0,0,0,0 —> Данная статья подходит для всех брендов, выпускающих телефоны на Android 10/9/8/7: Samsung, HTC, Lenovo, LG, Sony, ZTE, Huawei, Meizu, Fly, Alcatel, Xiaomi, Nokia и прочие. Мы не несем ответственности за ваши действия. p, blockquote 2,0,0,0,0 —> Внимание! Вы можете задать свой вопрос специалисту в конце статьи. p, blockquote 3,0,0,0,0 —>
На что масштаб оказывает влияние?Самое важное, на что влияет большой масштаб экрана – это количество информации на 1 странице. Чем больше масштаб, тем больше информации поместится на экране. Это избавит пользователя от необходимости слишком часто перелистывать страницы на смартфоне. Маленький масштаб, наоборот, существенно снижает возможность просмотра большого числа информации на экране и создаёт определённые неудобства для человека.
Вот что затронет изменение масштаба: А на это изменения не повлияют:
Альтернативный способЕсть еще один способ изменить масштаб в ОС Android, который не требует использования настроек для разработчика, но обладает меньшей гибкостью. Для того, чтобы увеличить или уменьшить шрифт, найдите подменю «Специальные возможности». В чистом Андроиде он расположен в главном меню, в MIUI – в подменю «Расширенные настройки». Найдите пункт «Масштаб изображения на экране» и в открывшемся меню используйте кнопки «+» и «-» для смены размера элементов интерфейса. Он меняется сразу, на экране наглядно демонстрируется размер шрифта. Однако эта регулировка не столь плавная, как в параметрах разработчика, и не позволяет менять показатель DPI плавно. Как и предыдущий способ, этот тоже ограничен размером 320 DPI, ниже которого выставить параметр не получается. К сожалению, обойти это ограничение Андроида без установки альтернативной прошивки нельзя, поэтому придется подбирать наиболее подходящий вариант из доступных.
часто бывает, что даже максимально возможный масштаб оказывается недостаточным, особенно для людей с проблемами зрения Даже имея гигантский экран в смартфоне, на нем может быть неудобно читать текст. Можно использовать стандартный прием – увеличить масштаб в настройках Android. Однако часто бывает, что даже максимально возможный масштаб оказывается недостаточным, особенно для людей с проблемами зрения. Существует способ обойти ограничения ОС и задать более удобный масштаб. Все действия выполнены на телефоне Huawei Y6 Prime 2018. Сначала скачайте на компьютер пакет Android Debug (ADB) с официального сайта Android Developer. Для Windows его размер чуть меньше 11 МБ. Распакуйте архив в любую папку, например, platform-tools. Откройте в телефоне режим разработчика. Для этого зайдите в настройки и включите соответствующий переключатель. В некоторых телефонах необходимо предварительно в разделе «Система» найти «Номер сборки» и нажать на него 7-10 раз подряд. Зайдите в меню «Для разработчиков» и включите переключатель «Отладка по USB». Подключите смартфон кабелем USB к компьютеру. На ПК запустите командную строку cmd.exe, нажав Windows + R, и введите в окне cmd. В командной строке перейдите в папку со скачанным ADB, введя команду CD и путь к папке. Например: cd c:temporary_downloadsplatform-tools В командном окне введите adb device, чтобы проверить, подключен ли ваш гаджет, – на экране должен появиться серийный номер. Затем введите adb shell dumpsys display, чтобы узнать параметры экрана. Найдите значения DPI и разрешение. Запишите эти цифры отдельно, чтобы можно было вернуться к ним впоследствии. В Huawei Y6 Prime 2018 это 720х1440 и 320 (272,955х270,933) dpi. Введите команду adb shell wm density с цифрой желаемого DPI. Например, adb shell wm density 240. Экспериментальным путем подберите наилучшее значение. Для большинства телефонов параметр DPI находится в пределах от 120 до 640. По завершении настройки введите команду adb reboot для перезагрузки смартфона. Гаджет предоставлен магазином MOYO Как мне масштабировать размер шрифта выше? 2 ответаКак изменить размер шрифта logcat в Android Studio 1.0.0? Я только нашел способ изменить цвет шрифта в Android Studio. Я регулировал размер шрифта android studio (gui) в его настройках, но (похоже) Я набрал что-то не так, и размер шрифта изменился на 100+. Теперь я не вижу ничего, кроме одного символа на всем экране, и я не могу перейти к настройкам, чтобы изменить его обратно. Что же мне теперь делать? Какой файл. Для MacBook Пользователей: Чтобы изменить размер шрифта: Для увеличения и уменьшения масштаба в Редакторе: Похожие вопросы:Размер шрифта в редакторе Android Studio кажется слишком маленьким. Как я могу сделать размер шрифта больше? Я знаю, как изменить размер шрифта в android studio, но можно ли изменить размер шрифта android studio в режиме презентации. Как изменить размер шрифта logcat в Android Studio 1.0.0? Я только нашел способ изменить цвет шрифта в Android Studio. Я регулировал размер шрифта android studio (gui) в его настройках, но (похоже) Я набрал что-то не так, и размер шрифта изменился на 100+. Теперь я не вижу ничего, кроме одного символа на всем. Как изменить размер шрифта пользовательского интерфейса в Android Studio? Все предыдущие ответы сосредоточены на изменении размера шрифта в Редакторе. У меня есть приложение Apple Watch, которое я хотел бы масштабировать размер шрифта в зависимости от размера экрана. В настоящее время единственный способ, который я нашел для масштабирования. На самом деле у меня нет вопроса, но я просто хочу поделиться своими знаниями здесь. Это обмен знаниями о том, как автоматически масштабировать размер шрифта в echarts.js на основе размера div. Я использую проекты Android Studio fo Flutter, и одна вещь, которую я хотел бы улучшить,-это размер всплывающего шрифта в окне редактора. Я думаю, что то же самое актуально для разработчиков a java. Я не хочу изменять размер шрифта самого Android Studio, а скорее размер шрифта приложения, над которым я работаю. Все результаты поиска, которые я нашел, говорят о пользовательском интерфейсе или.
Включить принудительное увеличение в Chrome на AndroidGoogle Chrome является браузером по умолчанию на большинстве устройств Android. Чтобы включить принудительное масштабирование в Chrome, откройте приложение на своем устройстве Android, а затем нажмите значок меню в правом верхнем углу. В раскрывающемся меню нажмите «Настройки». В меню «Настройки» прокрутите вниз и коснитесь «Специальные возможности», чтобы войти в меню специальных возможностей Chrome. Нажмите на флажок «Принудительно изменять масштаб», чтобы включить его. Вы также можете изменить ползунок «Масштабирование текста», чтобы увеличить общий размер текста на любых веб-страницах, если хотите. С включенной опцией «Принудительно изменять масштаб» Chrome теперь позволяет увеличивать любой веб-сайт, включая те, которые ограничивают масштабирование. Чтобы увеличить масштаб, используйте жесты пальцами.
С современными телефонами довольно часто бывает неудобно работать одной рукой, особенно когда нужно приблизить или отдалить изображенный контент. Обычно для масштабирования используется жест щипок, при котором необходимо задействовать обе руки. Но на некоторых программах Google изменять размер изображения можно одним пальцем. Подобный жест работает в Google Photos, Google Maps и Google Chrome (версии iOS Chrome это не касается). Чтобы изменить масштаб, тапните дважды по экрану, но не поднимайте палец после последнего прикосновения. Удерживая палец, двигайтесь вниз для увеличения масштаба и вниз – для уменьшения.
Далеко не всем подходит стандартный размер шрифта в ОС Android: для кого-то он слишком мелкий, а для других наоборот – крупный. В любом случае, если вас не устраивает этот параметр в своем телефоне или планшете – выход есть. В одной из прошлых статей я уже писал о том, как установить собственный шрифт на планшет или смартфон. Сегодня я расскажу, как с помощью бесплатного приложения Big Font уменьшить, или же увеличить размер шрифта. Приложение позволяет изменить масштаб шрифта от 50% до 300%, но для своей работы требует наличия Root-прав. Если у вас их нет, рекомендую прочитать эту статью. Если же вы вообще не знаете что такое Root, узнать можете здесь. Инструкция по использованию приложения Big FontПрограмма может вносить изменения в системные файлы, поэтому перед всеми манипуляциями лучше сделать резервную копию данных вашего устройства. Справка для ПКСправка для моб. устройств triangle-downДля увеличения масштаба на сайте m.facebook.com можно использовать встроенные функции устройства. Чтобы поменять масштаб в приложении Facebook для Android, используйте функцию увеличения. Чтобы включить увеличение: Чтобы использовать функцию увеличения: Настройка масштаба также может быть доступна в мобильном браузере Android. Чтобы использовать функцию изменения масштаба: Настройка размера текста не влияет на то, как видят публикацию ваши друзья. Подробнее о том, почему короткие текстовые публикации могут выглядеть крупнее остальных независимо от заданных настроек. Если же вы хотите изменить размер уже созданного виджета, нажмите и удерживайте палец на нужном виджете до появления рамки, а затем потяните необходимую сторону вверх/вниз или вправо/влево, чтобы установить нужный размер. Чтобы выйти из режима редактирования, нажмите на пустом месте на экране за пределами виджета. Актуально для Android версий 9.0 и выше.
|