Почему App Bundle весит больше, чем файл .apk? - PullRequest
0 голосов
/ 16 ноября 2018

Мое приложение после установки весило 12 МБ, когда я использовал старый добрый .apk.Я хотел переключиться с помощью Android App Bundle, поэтому я:

  1. Используется

    Gradlew связка

получить файл .aab (вес: 15 МБ - для сравнения .apk был 16 МБ)

Используется

build-apks для bundletool, который создает файл .apks, который весит 80 МБ!

Используется

bundletool install-apks

и установлен на моем телефоне, но только для чистой установки весит 25 МБ! Так что вместо взвешивания меньше предыдущая ~ 16 МБ после установки - весит гораздо значительнее.

Я проверил это на Moto G5, Android Oreo, который (drawables: xxhdpi)

Я что-то не так сделал?Может быть, это ошибка в bundletool?

РЕДАКТИРОВАТЬ: При использовании флага --connected-device на шаге 2. Сгенерированные .apks гораздо меньше, но в конце (шаг 3)окончательное хранилище моего приложения по-прежнему 25/26 МБ: (

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Размер, сообщаемый Android, равен размеру, который ваше приложение принимает на устройстве: поскольку платформа оптимизирует файл dex, размер, который он занимает на устройстве, может быть намного больше, чем фактический размер файла, который вы видите на своем компьютере.

И размер, сообщаемый Play Console, равен размеру загружаемого файла, который обычно меньше размера файла, который вы видите на своем компьютере, поскольку он еще больше сжат

0 голосов
/ 16 ноября 2018

Что я понял из https://developer.android.com/guide/app-bundle/

Bundle - это новый формат загрузки, включающий все скомпилированные приложения код и ресурсы

Динамическая доставка в Google Play использует ваш пакет приложений для Android для создания и обслуживать APK, которые оптимизированы для каждой конфигурации устройства. это приводит к уменьшению загрузки приложения для конечных пользователей путем удаления неиспользуемых код и ресурсы, необходимые для других устройств.

Таким образом, в основном apk будет собираться с использованием динамической доставки, которая объединит только необходимые ресурсы и обеспечит оптимизацию сборки, установленной на конкретном проекте. Не упоминается, что размер пакета меньше, но он гарантирует, что размер загрузки для конечного пользователя будет меньше.

Но почему мы должны рассмотреть возможность использования пакета приложений для Android?

Во-первых, подход продвигает чистую и отделенную структуру для вашей кодовой базы. Из-за того, как работают пакеты (и особенно с динамической доставкой, о которой мы поговорим позже), модульность по функциям станет частью вашего приложения. Это похоже на модульный подход в приложениях Instant или общие модульные подходы. В любом случае, это помогает разделить различные части вашего приложения и облегчить работу с базой кода.

Там, где ранее нам, возможно, требовалось создать несколько APK для разных версий API, типов устройств и т. Д. - Пакеты приложений Android означают, что теперь мы можем просто загрузить один артефакт со всеми ресурсами нашего приложения, и инструменты потребуют забота о том, что должно быть построено и доставлено нашим пользователям. Это существенно автоматизирует этот процесс для нас и означает, что мы можем перенести этот фокус на другие части нашего процесса разработки.

Поскольку App Bundle будет создавать APK, предназначенный для конкретного устройства и его конфигурации, это означает, что доставляемые APK обычно имеют меньший размер. Это будет зависеть от вашего приложения, поскольку основная экономия будет зависеть от плотности / локализационных ресурсов и любого другого неиспользуемого кода. Некоторые из этих экономий по размерам, полученные ранними пользователями App Bundles, показывают отличные результаты:

Известные приложения

Пакеты приложений знакомят нас с новой концепцией, известной как динамическая доставка. Это позволяет нашим приложениям предоставлять пользователям новые функции и позволяет их загружать и устанавливать во время выполнения в качестве расширения нашего приложения. Это позволяет нам уменьшить первоначальный размер нашего приложения и предлагать эти дополнения только тем пользователям, которые могут их использовать.

И вскоре формат пакетов приложений будет поддерживать мгновенное включение для пакетов - это означает, что пользователи смогут запускать наши функциональные модули мгновенно, не устанавливая наше приложение, аналогично тому, как сейчас работают мгновенные приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...