Небольшой размер приложения напрямую связан с успешностью загрузки, особенно на развивающихся рынках с плохим подключением сетевых устройств или низкой скоростью сети. Это может привести к снижению уровня использования приложений, что, в свою очередь, снизит объем и охват вашей аудитории. Однако существует несколько способов уменьшить размер вашего приложения.
Лучшие практики
Загрузите приложение в виде пакета Android App Bundle
Самый простой способ немедленно сократить размер приложения при публикации в Google Play — загрузить его в виде Android App Bundle , который представляет собой новый формат публикации, который включает в себя весь скомпилированный код и ресурсы вашего приложения, а также откладывает создание APK и подписание в Google Play. .
Уменьшите размер кода времени выполнения
Проверьте код, который ваше приложение не использует во время выполнения, например большие классы или автоматически созданный код. Оптимизаторы кода, такие как R8, могут помочь оптимизировать и уменьшить размер кода, но они не могут справиться с кодом, защищенным константами времени выполнения. Замените проверочные флаги константами времени компиляции, чтобы максимально эффективно использовать различные инструменты оптимизации. Вы можете включить сжатие кода и ресурсов в файле конфигурации Gradle:
android {
buildTypes {
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
}
}
}
Удалить ненужные макеты
Объедините неиспользуемые макеты с небольшими изменениями пользовательского интерфейса и удалите все ненужные макеты, чтобы уменьшить общий размер кода приложения. Кроме того, вы можете динамически отображать макеты и представления везде, где это возможно. Это позволяет избежать рисования статических шаблонов и применять альтернативные макеты без технических затрат.
Переоцените редко используемые функции
Специально оптимизируйте для Android (версия Go), отключив функции с низкими показателями ежедневной активности пользователей (DAU). Примеры этого включают удаление сложной анимации, больших файлов GIF или любых других эстетических дополнений, не необходимых для успеха приложения.
Используйте динамическую доставку
Play Feature Delivery использует расширенные возможности пакетов приложений, позволяя доставлять определенные функции вашего приложения при определенных условиях или загружать их по требованию. Вы можете использовать функциональные модули для индивидуальной доставки. Уникальным преимуществом функциональных модулей является возможность настроить способ и время загрузки различных функций вашего приложения на устройства под управлением Android 5.0 (уровень API 21) или выше.
Уменьшить размер переводимой строки
Вы можете использовать свойство Android Gradle resConfigs
для удаления альтернативных файлов ресурсов, которые не нужны вашему приложению. Если вы используете библиотеку, включающую языковые ресурсы (например, AppCompat или Google Play Services), ваше приложение включает все переведенные языковые строки для сообщений библиотеки, независимо от перевода приложения. Если вы хотите сохранить только те языки, которые официально поддерживает ваше приложение, вы можете указать эти языки с помощью свойства resConfig
. Все ресурсы для неуказанных языков будут удалены.
Чтобы ограничить ваши языковые ресурсы только английским и французским, вы можете отредактировать defaultConfig
, как показано ниже:
android {
defaultConfig {
...
resConfigs "en", "fr"
}
}
Используйте выборочный перевод
Если данная строка не отображается в пользовательском интерфейсе приложения, вам не нужно ее переводить. Строки для целей отладки, сообщений об исключениях или URL-адресов должны быть строковыми литералами в коде, а не ресурсами.
Например, не утруждайте себя переводом URL-адресов.
<string name="car_frx_device_incompatible_sol_message">
This device doesn\'t support Android Auto.\n
<a href="https://support.google.com/androidauto/answer/6395843">Learn more</a>
</string>
Вы можете узнать <
и >
, поскольку это escape-символы для <
и >
. Они здесь необходимы, потому что если вы поместите тег <a>
внутри тега <string>
, то компилятор ресурсов Android отбросит их, поскольку он не распознает этот тег. Однако это означает, что вы переводите HTML-теги и URL-адрес на 78 языков. Вместо этого вы можете удалить HTML:
<string name="car_frx_device_incompatible_sol_message">
This device doesn\'t support Android Auto.
</string>
Объедините собственные двоичные файлы с общими зависимостями.
Если ваше приложение имеет разные реализации Java Native Interface (JNI) с общими базовыми зависимостями, то различные двоичные файлы увеличивают размер APK с помощью избыточных компонентов. Вы можете объединить несколько двоичных файлов JNI в один двоичный файл JNI, сохраняя при этом файлы Java и JNI отдельно. Это может значительно уменьшить размер вашего APK.