Русские Блоги
Некоторые из них добавляет разумны: типичные для Android устройств увеличились память, то почему бы вам не использовать эти дополнительные памяти, чтобы обеспечить лучший пользовательский опыт?
но, ИметьОдна точка, все HD графика, инновационные возможности и богатый мультимедийный контент, оказывают негативное влияние на пользователей, никто не хочет, чтобы приложение, вам нужно скачать навсегда, а затем взять большой кусок памяти памяти в!
Существует даже доказательство того, что существует отрицательная корреляция между размером APK и количество людей, загрузки приложений. в соответствии сПоследние исследования Для каждого увеличения 6MB, размер APK будет снижена на 1% после увеличения на странице в Google Play.
Все меры, которые можно предпринять, чтобы уменьшить размер APK, этоВсеПорекомендуйте пользователь скачать приложение, поэтому в этой статье я покажу вам, как создать тоньше, тоньше APK-, и убедитесь, что ваше приложение запускается как много устройств, как это возможно.
Android расслоение приложений: поддержка большего количества устройств при одновременном снижении размеров APK
Всякий раз, когда вы разрабатываете Android приложений, вам нужно оптимизировать код и ресурсы для различной плотности экрана, архитектур процессора, языка и многих других факторов, чтобы убедиться, что приложение совместимо с таким количеством различных устройств, как это возможно. К сожалению, это также означает, что каждый, кто скачивает приложение получитБольшое количествоОни никогда не будут использовать код и ресурсы.
В течение долгого времени, поддержка как много устройств, как это возможно без существенного увеличения размера APK всегда была проблема с разработчиками Android. Тем не менее, Android цели команды, чтобы изменить все это с помощью нового формата выпуска, который предназначен, чтобы помочь вам поддерживать различные устройства Android.Снижаться размер APK. в соответствии сРазработчики Android Официальный блогГоворя, через этот новыйAndroid App Bundle ( .aab ) Формат Опубликуйте приложение, вы должны быть в состоянии уменьшить размер APK на 35%.
Будет ли ваше приложение.aabПосле того, как формат файл будет загружен, Google Play будет использовать этот файл для генерации:
- Основной APK, которые содержат весь код и ресурсы, необходимые для обеспечения основных функций приложения. Все загрузки приложения будет получать то же базовое APK.
- Множественные конфигурации АПК подходят для различных конфигураций устройств. Каждый раз, когда кто-то загружает приложение, они получают APK конфигурации для их конкретного устройства, а только код и ресурсы, которые они на самом деле нужно.
Чтобы построить приложение как знаковое приложение пачка Android, сначала выберите на панели инструментов Android StudioBuild > Generate Signed Bundle / APK 。 Затем выберите "Android App Bundle”Установите флажок, а затем нажмите кнопку "Следующий шаг" 。 Теперь откройтемодульВыпадающий список, а затем выберитеappКак ваш базовый модуль.
Следуйте инструкциям на экране для завершения процесса сборки. Android Studio теперь будет генерировать один.aabФайл, и сохранить его в компьютереAndroidAppBundle / app / releaseСправочник.
Готовый.aabКогда файл будет загружен в Google Play, просто перейдитеGoogle Play консоли,Тогда выбирайСоздание приложения 。
Система попросит вас ввести некоторую базовую информацию о приложении, а затем нажмите кнопку "Создайте" Затем нажмите «спасти" 。 В левом меню консоли, выберите "версия приложения 。 Определить, какой трек вы хотите передать это приложение, а затем выберите его "управлять"Кнопка, а затем нажмитеСоздать релиз 。
В ответ на запрос регистрации подписи приложений в Google Play, которая необходима для использования формата расслоения App. выбиратьПросмотр документов , Затем выберите .aab файл для загрузки.
Наконец, нажмите кнопку "спасти"Для того, чтобы сохранить конфигурацию.
После того как приложение будет загружено на консоль, вы можете использовать приложение расслоение формата, чтобы увидеть, сколько места были сохранено. Для этого, пожалуйста, выберите из меню слева "релиз приложения ”。 Найти трек, который вы загруженный Bundle, затем выберитеEdit release,Затем нажмите, чтобы развернутьAndroid App Bundleчасть.
выбиратьИсследовать пакет приложений Вы увидите приблизительную оценку сохраненного пространства, выраженную в процентах.
Функция доставки динамическим модулем функции
Для проекта, нет необходимости для одного или нескольких из основных функций, поставляемых с приложением. Вы, как правило, можно разделить на опциональныйДинамическая функция APKДля того, чтобы уменьшить размер APK, то пользователь может загрузить эти функции по мере необходимости.
Для создания динамического функционального модуля, выберите на панели инструментов Android Studioдокумент > Новое строительство > Новый модуль . 。 выбиратьДинамический модуль функции , Затем выберитеСледующий шаг 。
Здесь вы можете открытьБазовыйМодуль приложений раскрывающийся список, а затем выберите базовый модуль. Назовите его для вашего модуля, а затем нажмите кнопку "Следующий шаг" 。 ВыбиратьРазрешение по требованиюФлажок. Если ваш проект поддерживает Android 4.4 или более ранней версии, вам все равно необходимо включитьFusing Поскольку это позволит динамический функциональный модуль для использования в качестве нескольких APK для этих устройств.
И, наконец, обеспечить общедоступное имя для модуля, который будет виден для конечных пользователей. ЩелчокЗаканчивать 。
Разрешить доступ к динамическим функциональным модулям
После того, как вы создали динамический функциональный модуль, вам необходимо предоставить пользователь способом запроса во время выполнения. Откройте свой уровень модуля build.gradle Файл, а затем добавить в Google Play Ядро библиотеки в качестве зависимостей проекта:
Открыть «чтобы загрузить модуль динамической функции» Activity или" Fragment , Затем добавить следующее:
Теперь вы можете добавить код и ресурсы в динамические функциональные модули, и пользователь будет иметь возможность запрашивать модуль во время выполнения.
Сначала попробуйте, прежде чем купить: обеспечить немедленное APK приложения
Это не может быть на APK может быть установлен традиционный смысл, но вы можете предоставить часть применения в качестве легкого автономного приложения Instant APK, то пользователь может загрузить по требованию. Для тех, кто находится в крайне ограниченной памяти или ограниченные данные плана борется, приложение мгновенного может быть единственным возможным способом, чтобы испытать их в своем приложении.
КМгновенное приложение из трех частей серии, мы создали универсальный Instant приложение APK ,ДолженAPKПодключенные к уникальному URL. отображение URL позволяет поддерживать доступ из любого места в сети гиперссылок Instant App, включая форумы, твиты, сообщения Facebook и блог. Однако, отображение URL является многоступенчатым процессом, который требует, чтобы иметь веб-домен, в котором вы можете Руководили проекты assetlinks.json документ.
В последней версии Android Studio, создать Instant Apps APK проще, так как теперь вы не разводитсялюбой Instant App URL, тем самым устраняя все сложности, связанные с отображением URL.
После выпуска приложения мгновенного нет URL, пользователи будут иметь возможность передавать приложения Google Play List "Попробуй это сейчас. "Кнопка доступа.
Для того, чтобы создать такой «свободный URL» приложения мгновенного, вам необходимо:
- Android-студия версии 3.2 или позже.
- Мгновенная приложение Разработка SDK версия 1.3.0 или более поздняя версия.
- Последняя версия Android SDK и инструмент платформы сборки.
Мгновенное приложение поддержка проекта имеет уникальную структуру. Если вы будете модульной стандартной практики в рамках процесса разработки приложений, то вам, возможно, потребуется только внести некоторые коррективы в проект, но если ваш проектНетModular, то будьте готовы потратить некоторое время, чтобы реструктурировать.
Для поддержки Instant Apps, необходимо создать следующие модули:
- Модуль прикладных программ. Это «стандартный» Прикладной модуль может быть установлен.
- Базовый модуль. Он содержит код и ресурсы, которые будут использоваться во всех модулях проекта, например, начиная значок приложения.
- функциональный модуль. Он содержит код и ресурсы, необходимые для обеспечения функции независимой.
- Модуль Instantapp. Это контейнер, который будет в конечном счете использовать каждый функциональный модуль вашего проекта и превратить его в Instant App APK.
Если вы хотите, чтобы начать новый проект, то вам повезло: вы можете создать пустой проект уже имеет Instant Apps структуру. Просто создайте новый нормальный проект, но при появлении запроса, выберите "Этот проект будет поддерживать приложения в режиме реального времени ". 。
Вы можете добавить код, как обычно и ресурсов для каждого модуля.
Чтобы проверить URL без Instant App, вам необходимо совместимое устройство, согласно официальной документации Android, устройство работает под управлением Android 5.1 или выше версии «самого» физического устройства. Если вы используете симулятор, вы нужно использовать Android версии 8.1 или более поздней версии, x86 архитектуры и включает в себя AVD (Android Virtual Device) Google API. Кроме того, необходимо войти в действительный счет Google на испытательном оборудовании или AVD.
Чтобы проверить Instant App, пожалуйста, выберите из панели инструментов Android Studio"запустить" > "запустить . «а затем выберите»Изменение конфигурации " .
В меню слева выберитеInstantApp 。 Так как мы тестируем без URL быстрорастворимых приложения, так что найтиURLПоле и удалить весь текст. Теперь выберитезапустить 。 Если устройство подсказки вы выбрать, чтобы присоединиться Instant программы App, пожалуйста, нажмите "Да, я. " 。
Теперь, ваш Instant App должен появиться на экране, без необходимости установки и не требует URL!
При публикации приложения, вы можете завершить процесс подписания, чтобы создать два отдельных Устанавливаемые и Instant App APK, и проект может быть построен в комплект поставки приложения.
Опубликовано приложение с поддержкой расслоение приложения мгновенного
В Android Studio 3.3 Beta 1, а затем вы можете мгновенные приложения с комбинацией пакетов приложений для создания и установки приложения Instant содержит одновременное.aabдокумент.
Чтобы опубликовать приложение, чтобы включить в Instant App.aabФайл, откройте проектInstantappМодуль.
В этом модулеAndroidManifest.xmlФайл, добавьте следующее:
Откройте модуль приложенияbuild.gradleФайлы, и убедитесь, что ваши варианты обмена мгновенными versionCode Менее монтируемый versionCode :
В строке меню выберите Android StudioBuild > Generate Signed Bundle / APK А затем построить свой обычный App Bundle, и убедитесь, что его ключевой релиз подписи.
Удалить все неиспользуемые методы, классы, поля, свойства и ресурсы
Для кода и неиспользованных ресурсов, легко найти свой путь в проект, особенно при использовании библиотеки. Потому что они будут добавлять нулевое значение для вашего приложения, так что вы всегда должны отслеживать и удалять ненужные активы, и есть несколько инструментов, которые могут помочь вам:
Попробуйте новый R8 код Shrinker
Код термоусадочной может помочь вам уменьшить размер вашего APK путем удаления неиспользуемого кода и ресурсов.
Android Studio 3.3 бета 1 просмотр наступающего R8 инструмента восстановления кодов, инструмент также может быть выполнена в дополнение к сахару и декодирования, а также в соответствии с Google, его код вниз быстрее, чем ProGuard.
Для того, чтобы попробовать себя R8, убедитесь, что вы работаете в Android Studio 3.3 бета 1 или более поздней версии, а затем добавьте следующееgradle.propertiesДокумент:
2. ProGuard сокращение кода
На момент написания статьи, R8 все еще находится в состоянии предварительного просмотра, так что перед конюшней, вы можете предпочесть использовать Proguard удалить неиспользуемые классы из кода, методов, полей и свойств.
Чтобы включить ProGuard, добавьте следующую строку в уровне модуляbuild.gradleДокумент:
Обратите внимание, что Proguard может удалить код приложений на самом деле необходимости, поэтому перед выпуском Proguard вы всегда должны проверять его.
3. Включить сокращение ресурсов
После включения уменьшенного размера кода вы можете уменьшить использование ресурсов для идентификации и удаления ненужных ресурсов:
4. Улучшение Android Lint код
Lint является статическим инструментом сканирования можно определить неиспользуемые ресурсы кода. Однако Lint на самом деле не удаляет эти ресурсы, поэтому вам нужно проверить их отчеты и вручную удалить идентифицированный ресурс.
Для запуска Lint, пожалуйста, выберите из панели инструментов Android-студия "анализировать " >“ Проверьте код . ”。 Если Lint обнаруживает какие-либо ресурсы, на которые нет ссылок, то это будет "результат испытаний"Они перечислены в окне.
Ваш PNG, JPEG и BMP преобразован WebP
Если ваш проект содержит много объектов, можно сделать, затем сжимает его можно значительно уменьшить размер вашего APK.
Если проект minSdkVersion Есть 18 или более, может быть PNG, JPEG, BMP и форматы WebP конвертировать их в компресс.
Во-первых, удерживайте нажатой клавишу Control и щелкните рисунок, который вы хотите преобразовать, а затем выберите "Старинное WebP . . «Выбор между кодированием без потерь или с потерями кодирования. Когда результат кодирования больше, чем исходное изображение,выбирать" Пропустить изображения " Затем нажмите «Конечно"Преобразовать изображение.
Android-студия для использования анализатора для проверки вашего APK APK
Иногда вы можете полностью определить причину APK полностью вне контроля.
Вы можете использовать новую студию Androidанализатор APKAPK определить максимальный размер участников права. С помощью этого инструмента вы можете исследовать абсолютный и относительный размер различных типов файлов, и даже размер одного файла, так что вы будетеТочноОсновное внимание следует знатькакиеместо.
Для анализа APK просто выберите из строки меню «Студия Android».Construct» >“ Анализ АПК " 。
В следующем окне выберите соответствующий APK. APK анализатор откроется в новой панели.
Для каждого файла и папки APK Analyzer может показать вам:
- Оригинальный размер файла. Именно на этом диске несжатого размере.
- Скачать размер. Это, как ожидается, чтобы сжать размер товара, так как он будет доставлен в Google Play.
- Процент от общего размера загрузки. Процент APK Этот проект представляет собой процент от общего числа загрузок в.
Это не единственная функция APK анализатор может предложить.
Представьте , что вы успешно сократить размер вашего APK и выпустила небольшое приложение, приложение получило восторженные отзывы на отзывы пятизвездных на Google Play — это не значит , что вы можете не беспокоиться о размере вашего APK! В какой-то момент, вам нужно будет выпускать обновления, а это значит, что размер APK станет серьезной проблемой снова.
Мониторинг APK из выпуска на другой путь выпуска всегда хорошая идея, но если размер APK был значительно увеличен, то выaffimМы хотим, чтобы поближе посмотреть на то, что произошло.
Вы можете использовать анализатор APK выделить все различия между текущим и предыдущим APK APK, которые могут помочь вам оптимизировать региональные и даже полностью удалить активы к нулю.
Для сравнения APK, сначала выберите из строки меню «Студия Android».Construct» >“ Анализ АПК " 。
Затем выберите последнюю версию APK. В верхнем правом углу анализатора APK, выборПо сравнению с предыдущим APK . Затем выберите APK предыдущую версию. Всплывающее окно должно появиться, выделить все различия между текущим и предыдущим APK APK.
Не забудьте Android Go!
Развивающиеся рынки представляют собой наиболее быстро растущих пользователей смартфонов в мире, в то время как рост Oppo и Vivo бренды такие доказательства, устройство недорогой, вероятно, занимают доминирующее положение на этом быстро растущем рынке.
Для того, чтобы помочь Android привлечь растущую новую аудиторию, Google выпустил Android Go, это Android-версия улучшенных возможностей производительности и хранения данных, разработано, чтобы обеспечить лучший опыт для бюджетного оборудования (в том числе менее 1 Гб памяти устройства).
пользователи Android Go могут получить доступ ко всему Google Play магазина, но Google фокусируется на приложениях для оптимизации Android Go, приложение занимает менее 40Мб включены на устройстве пользователя.
Следуя рекомендации, приведенные в этой статье, вы должны быть в состоянии использовать APKКаждыйЗначительно уменьшил размер APK человека. Тем не менее, если вы хотите, специально для Android Перейти вниз других пользователей, вы можете использоватьМногофункциональный Android APKОпубликовано платформа, оптимизированная для Android Go APK.
Чтобы создать специальное приложение для Android Go, вам нужно создать APK, АПК имеет то же «нормальное» имя пакета приложений и подписание сертификата, но имеет уникальную версию кода.
При создании Android Go APK вам также нужно добавить следующее в список:
в заключение
В этой статье я представил все основные способы уменьшить размер APK создать изящнее, стройнее приложения, эти приложения могут быстро загружать и занимают меньше места на устройстве пользователя.
Как уменьшить размер приложения (.apk)
Когда я устанавливаю свое приложение на телефоне для тестирования, он отображается, чтобы быть ОГРОМНЫМ размером, 11.35 МБ. Это очень простое приложение, которое позволяет пользователю просматривать интересные факты. Единственная причина, по которой я могу думать, состоит в том, что в чертежах есть 14 файлов JPEG, которые служат в качестве фоновых изображений забавных фактов. Средний размер их составляет около 500 КБ.
Я хотел бы обрезать размер моего приложения, чтобы не использовать драгоценные ресурсы на пользовательском устройстве. Есть ли способ оптимизировать размер файла apk, кроме как избавиться от фотографий?
ИЗМЕНИТЬ: фотографии — это фотографии, сделанные мной с помощью телефона Android.
19 ответов
Я бы рекомендовал максимально сжать файлы .jpg , это должно значительно уменьшить размер вашего файла .apk . Инструмент, такой как Paint.NET, который является бесплатным, должен помочь вам в этом. Он имеет большие варианты изменения размера.
Другие ответы говорят о сокращении изображений. Вы также можете попробовать ProGuard уменьшить размер байт-кода. Здесь статья о применении ProGuard к Android-приложению.
Убедитесь, что ваш jpg не сохранен в любом более высоком разрешении, чем необходимо. Хороший Android-телефон имеет разрешение экрана 1920×1200 или 2560×1440 (около 2015 года) 800 x 480, поэтому ваши фоны не должны содержать больше пикселей, чем это (если ваше приложение не поддерживает какое-то масштабирование). Кроме того, фотографии фона? Если нет, вы можете обнаружить, что использование векторного формата изображения, такого как svg, или одного с динамической палитрой типа gif, еще больше уменьшит размер файла.
UPDATE
С введением библиотеки поддержки 23.2 теперь вы можете заменить многие из ваших объектов изображения на SVG (без анимации), чтобы уменьшить размер apk.
ОРИГИНАЛ
Это может быть поздний ответ, но может быть полезен для будущих пользователей.
Отправьте ссылку . Чтобы суммировать страницу, в ней упоминаются ниже ключевые моменты, которые помогут уменьшить размер apk в совокупности:
- Используйте ProGaurd
- Удалите любую информацию об отладке, которую вы используете в приложении (такие заявления, как Log.i()). Они могут быть завернуты в состояние, которое разрешено только при тестировании приложения.
- Используйте рекомендуемые форматы носителей.
- Изображение: PNG orJPG
- Аудио: AAC
- Видео: H264 AVC
- Используйте tinypng сжимайте свой проект png или jpg формат файлов изображений, он может значительно уменьшить размер изображения без потери качества изображения;
- Некоторые изображения используют tinypng compress могут искажать, вы можете конвертировать эти изображения в формате webP, используйте 智 图 или iSparta может конвертировать другой формат в webP;
- Использовать Lint для проверки неиспользуемых ресурсов и их удаления;
Помимо оптимизации изображений, я также счел полезным проверить библиотеки поддержки, которые вы используете. У меня есть относительно простые платформы таргетинга приложений с API >= 10, но мой APK оказался 2.2M или после использования ProGuard, 1.4M. Когда я заглянул в APK, код был 1.5M, и было много дополнительных ресурсов (abc_ *), о которых я ничего не знал.
Оказывается, мне не нужен appcompat-v7, только поддержка-v4, и внесение этого изменения в мои зависимости уменьшило размер APK до 1.7M (0.9M с ProGuard). Понятно, что в библиотеках поддержки много дополнительных (код и ресурс), поэтому убедитесь, что вы используете только те, которые вам нужны, могут помочь.
(Несмотря на то, что -0.5M не имеет значения для 11-мегабайтного приложения, я размещаю это здесь, потому что я продолжал заканчиваться на этой странице при поиске решения. )
Еще одна вещь, которую нужно добавить в размер файла изображения — разные алгоритмы могут существенно повлиять на конечный размер. Я обнаружил, что Yahoo www.smushit.com намного эффективнее (по крайней мере, для .png), чем компрессоры и кодеки, которые у меня есть на моем компьютере прямо сейчас.
Формат изображения WebP: обеспечивает сжатие с потерями (например, JPEG), а также прозрачность (например, PNG), но может обеспечить лучшее сжатие, чем JPEG или PNG
Я знаю, что я опаздываю здесь, чтобы ответить на этот вопрос, но я уменьшаю размер своего приложения, используя нижеприведенные методы, поэтому я хочу поделиться этими вещами со всеми.
1). Используйте изображения WebP вместо изображений Jpeg, это окажет огромное влияние на размер apk, если вы используете несколько изображений.
2) -Используйте VectorDrawables, если вы используете простые маленькие значки в своем приложении.
3) — Использовать свойство tint View в xml, чтобы избежать нескольких одинаковых значков, но различаться по цвету.
поиск DrawableTint и TintableImageview
4). Используйте 9-патч-изображения и избегайте дублирования изображения или чего-либо в коде приложения.
Хватит это терпеть: приложения «толстеют» и тормозят
Парадоксально: несмотря на развитие технологий и возросшие объёмы памяти смартфонов, на современный гаджет вы можете установить приложений меньше, чем несколько лет назад. Хватит это терпеть! Разбираемся в причинах и ищем методы борьбы с раздутыми программами.
Размер десяти самых популярных приложений на iOS за 5 лет вырос в 9 раз
Согласно статистике, собранной компанией Sensor Tower, пять лет назад набор из 10 наиболее популярных приложений для платформы iOS занимал всего 200 МБ. Сегодня они же весят уже больше 1,8 ГБ. Их аппетит вырос в невероятные девять раз, в то время как минимальный объём внутренней памяти новых iPhone — всего в четыре раза (с 16 до 64 ГБ). Программы увеличились по-разному: если Spotify «растолстела» всего в шесть раз, то Snapchat — в рекордные 51. И дело не только в гигабайтах. Разросшиеся приложения начинают тормозить. Почему так происходит? Есть несколько причин.
Причина 1. Метрики и трекинг
Казалось бы, новые функции — это всегда хорошо. Так и есть, когда речь идёт о новых возможностях для пользователей. Но с каждым днём в приложениях появляется всё больше кода, реализующего сомнительную функциональность. Любая программа для заказа бургеров отслеживает, сколько времени вы провели в том или ином разделе, сколько раз нажали на определённую кнопку, и даже записывает экран во время работы. За желание разработчиков знать о нас всё мы с вами расплачиваемся не только снижением приватности и мобильным трафиком, но и сокращением свободного места в памяти смартфона.
График времени, проведённого пользователем в разных разделах приложения, построенный на основе внутренних метрик
Причина 2. Лишние ресурсы
С предыдущим пунктом тесно связано дублирование ресурсов: в крупных фирмах над разными частями приложения трудятся разные люди, использующие одни и те же файлы для модулей. При подготовке релизных версий об этом просто-напросто забывают. Как результат — 40 МБ «избыточного веса» в клиенте Facebook. Компания время от времени чистит установочные пакеты от мусорных файлов, но эта музыка будет вечной, а батареек у них хватит надолго.
Внутренняя структура приложения Facebook в апреле 2017 года с указанием дублированных ресурсов
На удивление нерационально реализована работа с ресурсами в приложениях для iOS: в файлы программ (.ipa) попадают иконки сразу для всех устройств, начиная от iPod Touch и заканчивая iPad Pro. В то же время в Android принято добавлять всего один набор графики для всех аппаратов, который затем будет отмасштабирован для разных разрешений и размеров экранов. Чтобы улучшить ситуацию, Apple пару лет назад представила технологию App Thinning — она позволяет гаджетам скачивать только необходимый набор графики. Однако описанная ситуация нередко встречается и сейчас.
Сравнение размеров универсального приложения для iOS (серый столбец) и программ, собранных под конкретные устройства
Причина 3. Неоптимальный код
Существует распространённое выражение, известное во множестве вариаций: «железо стоит дешевле времени разработчика». К сожалению, это действительно так. Пользователь рано или поздно купит новый смартфон, куда установят ещё более мощный процессор и ещё больше памяти. Так зачем вкладывать усилия в качество кода, когда «и так схавают»?
Главный бич современной разработки прикладного ПО — сторонние повторно используемые подпрограммы и «костяки» приложений (библиотеки и фреймворки). Само собой, в них как в инструментах, облегчающих написание кода, нет ничего плохого. Но нередко бывает, что программа тянет библиотеку весом несколько мегабайт ради единственной функции. А если таких функций и, соответственно, библиотек много? Это разработчикам для iPhone хорошо — у них новые релизы iOS приходят разом на все аппараты, вышедшие за последние годы. А в Android актуальных версий системы всегда по нескольку штук, и приложения должны уметь работать со всем этим зоопарком. Код, обеспечивающий совместимость, отнюдь не добавляет программе «лёгкости».
alt=»Хватит это терпеть: приложения «толстеют» и тормозят» width=»836″ height=»300″ />Диаграмма распределения версий Android на конец октября 2018 года
В мире iOS тоже не всё гладко: переход на язык программирования Swift увеличил объём тех же программ в три-четыре раза. Виноваты не только внутренние особенности языка (большие типы данных по умолчанию, увеличенный размер стандартных библиотек, дополнительные тесты и проверки, попадающие в финальную версию). Сыграла злую шутку и лень разработчиков, которые не хотят задумываться о выборе правильных типов данных и других методах оптимизации.
Сравнение размеров шаблонных приложений для iOS на языках Swift и Objective-C
Причина 4. Бесполезные функции
Неприятная тенденция последних лет — появление огромного количества «велосипедов». Вместо стандартных возможностей, предоставляемых системой, разработчики добавляют такие же, но собственные — например, браузеры или фотогалереи. И если есть настройка «Открывать ссылки в браузере», то спрятана она далеко в меню. А стоит в каждый мессенджер встроить по веб-просмотрщику или камере — и никакой памяти в смартфоне не хватит.
Ещё один популярный тренд: производители стремятся сделать из программ комбайны и добавляют в них новые функции, которые почему-то считают очень полезными. Пользователи-то думают иначе: зачем, скажем, файловому менеджеру «ES Проводник» диспетчер задач, анализатор SD-карты и аудиоплеер? Или вот бенчмарк AnTuTu: он не только получил целый набор дополнительных тестов, которыми почти никто не пользуется, но ещё и надоедает виджетом в панели уведомлений, пока не отключишь его вручную.
Слева — «ES Проводник», справа — AnTuTu
Причина 5. Рост требований к приложениям
Технический прогресс стремителен. Уже свершился переход на 64-битные чипсеты, а рост разрешений экранов и не думает останавливаться — куда-то же нужно девать возросшие процессорные мощности? И если с переходом на архитектуры большей разрядности размер программ изменился единовременно и сравнительно немного, то дальнейшее увеличение ppi в смартфонах сделает приложения заметно крупнее. Проблема не возникла бы при рациональном использовании ресурсов, но это, как мы уже выяснили, не всегда бывает так.
Все размеры иконок, необходимые для поддержки iOS-устройств
Как усмирить разжиревшие приложения
Увы, мы не в силах заставить разработчиков писать качественный код и тратить время на оптимизацию. Однако пара способов увеличить объём свободной памяти всё-таки есть.
Перенос приложений на карту памяти. Если ваш смартфон оснащён специальным слотом, вы можете установить карточку microSD и использовать её для хранения программ. Процесс переноса приложений в Android не изменялся с незапамятных времён. Достаточно найти нужное в настройках и нажать кнопку «Перенести на карту памяти» или «Изменить место хранения» (в зависимости от модели гаджета).
Несмотря на то, что карты памяти бывают весьма вместительными, у способа есть ряд недостатков. Некоторые программы в принципе не могут быть перенесены (за это отвечают их создатели), а какие-то после переноса теряют часть функциональности или начинают работать нестабильно. Можно обойти ограничения, применив опцию объединения внутренней и внешней памяти в Android, но тогда не получится использовать карту в других устройствах, а её извлечение запросто лишит вас части установленных приложений.
Использование веб-версий. Изрядная часть привычных нам приложений — не более чем веб-клиенты сайтов. Сюда относятся среди прочего клиенты социальных сетей и приложения вроде YouTube. Понятно, что нативные программы обычно имеют большую функциональность. Но если вы готовы от неё отказаться (предположим, вам не нужны мгновенные уведомления из соцсети), то браузер станет вполне неплохим вариантом.
Использование облегчённых приложений. «Ожирение» некоторых программ уже настолько велико, что владельцы бюджетных смартфонов попросту не могут ими нормально пользоваться — не только из-за большого объёма, но и медленной работы. Поразительно, но многие разработчики решили не оптимизировать существующие программы, а сделать их облегчённые версии. Сначала речь шла только о собственных инициативах создателей (так появилось приложение Facebook Lite), но затем Google представила Android Go — сборку операционной системы для недорогих устройств. Помимо общей оптимизации Android Go открывает в Google Play доступ к облегчённым версиям более чем полусотни популярных программ как от самой Google, так и от сторонних компаний.
Google Maps Go почти не отличается от обычного приложения, но занимает в памяти смартфона считаные килобайты и использует Chrome в качестве движка
Если же на вашем гаджете установлена обычная версия Android, то загрузить Go-версии приложений можно вручную из apk-файлов. Найти их удастся, например, на нашем форуме.