Android bundle что это за программа

Содержание

Урок 15. Передача данных между экранами — пунктами назначения. Android Navigation. Bundle vs Safe Args

Продолжаем серию уроков по разработке android-приложений в Android Studio на языке Kotlin.

На прошлом уроке мы выполняли навигацию по условию, авторизован пользователь или нет.

На этом уроке

На этом уроке рассмотрим возможности передачи данных между экранами – пунктами назначения навигации в андроид-приложении. Создадим приложение с двумя экранами. На первом экране будет поле для ввода имени и кнопка отправки, а на втором экране будет отображаться приветствие с именем, которое мы указали. Таким образом, мы передадим данные (имя) с первого экрана на второй.

Передача данных между экранами

В процессе работы приложения часто возникает необходимость передавать данные между экранами. В уроке №5 мы рассматривали возможность передачи данных между активити с помощью интента. Для передачи данных между фрагментами такой способ не подходит, поскольку часто фрагменты отображаются в одном и том же активити.

App Bundles: Building your first app bundle — MAD Skills

Bundle или Safe Args?

В этом уроке мы рассмотрим два способа передачи данных между фрагментами: традиционный – с помощью наборов данных Bundle и типобезопасный – при помощи безопасных аргументов SafeArgs. Первый способ относительно прост – создаем набор данных «ключ-значение» типа Bundle и передаем через action в первом фрагменте, и извлекаем во втором фрагменте.
Второй способ потребует немного больше кода. На первый взгляд он может показаться сложнее, поскольку используется кодогенерация – среда разработки создает необходимые классы вместо вас. Но мы попробуем разобраться и вы увидите, что ничего особо сложного там нет. По сути, SafeArgs – просто обертка над Bundle. Тем не менее, разработчики настоятельно рекомендуют применять именно SafeArgs, как типобезопасный способ передачи данных между фрагментами в процессе навигации.

Создаем проект

Откройте среду разработки Android Studio и создайте новый проект с использованием шаблона Empty Activity.

Создаем граф навигации

Далее перейдите в папку res и создайте в ней папку navigation. Внутри папки navigation создайте Navigation Resource File с именем nav_graph.xml и корневым элементом .

Если вы забыли добавить в проект необходимые для поддержки навигации библиотеки – Android Studio предложит это сделать за вас, показав предупреждение.

Добавляем пункты назначения – фрагменты

Добавьте новые пункты назначения. Для этого:

  1. В окне редактора дизайна нажмите кнопку «New destination»
  2. Выберите «Create new destination»
  3. Далее в окне добавления фрагмента выберите Fragment (Blank):

Создайте таким образом два фрагмента:

  • FragmentOne
  • FragmentTwo

Чтобы фрагменты из графа навигации отображались на экране, не забудьте добавить в макет главного активити activity_main.xml компонент fragment — хост навигации вместо TextView:

Создаем action

Вернемся в nav_graph.xml и добавим action для перехода. Можно просто соединить фрагменты стрелкой на экране редактора дизайна, и в коде графа навигации добавится секция :

Добавим аргумент

Для передачи данных нужно использовать элемент , добавим его в граф навигации. Для этого выделите второй фрагмент в редакторе дизайна и справа в панели атрибутов на вкладке Arguments нажмите плюс. Укажите имя аргумента, например, MyArg и значение по умолчанию. Тип можно не указывать. Я передам в качестве дефолтного значения текст «Hello, Android!».

Значение по умолчанию будет отображаться, если мы ничего не передадим из первого фрагмента во второй.

Подготовим макеты фрагментов

Измените макет разметки первого фрагмента fragment_one.xml таким образом:

Здесь мы оставили текстовое поле, которое теперь отображает текст «Ваше имя?». Ниже TextView добавлен EditText для возможности вписать туда имя, и кнопка отправки ImageButton, значок для которой был скачан с сайта https://material.io/resources/icons/
Вы также можете скачать его оттуда, либо взять из исходников этого проекта по ссылке в конце текстовой версии урока.

Введенный на первом экране текст будем передавать во второй фрагмент для отображения в текстовом поле. Откройте макет второго фрагмента fragment_two.xml и сделайте так, чтобы элемент TextView был посредине. Для этого можно заменить корневой FrameLayout, например, на ConstraintLayout. Также добавьте идентификатор для TextView.

Передаем данные через Bundle

В классе FragmentOne переопределим метод onViewCreated и напишем в нем такой код:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) < super.onViewCreated(view, savedInstanceState) val imgButton : ImageButton = view.findViewById(R.id.imgButton) val editText : EditText = view.findViewById(R.id.editText) val bundle = Bundle() imgButton.setOnClickListener < val name = editText.text val hello = «Привет, $name» bundle.putString(«MyArg», hello) findNavController().navigate(R.id.fragmentTwo, bundle) >>

Обратите внимание – переменные кнопки и поля для ввода текста мы инициализируем через метод findViewById, как мы это делали на первых уроках. Этот способ требует больше повторяющегося кода в отличие от использования ViewBinding и DataBinding для привязки элементов разметки, однако многие программисты пользуются именно этим способом, как самым простым и надежным.
Объявим также переменную для набора данных Bundle.

Далее присваиваем слушатель кнопке, и по ее нажатию производим следующие действия:

  • Инициализируем переменную name и сохраняем в нее текст из поля ввода;
  • Переменная hello уже содержит текст и добавляет в него текст переменной name;
  • В переменную bundle передаем переменную hello с ключем «MyArg»
  • Обращаемся к контроллеру навигации и реализуем переход к FragmentTwo с передачей идентификатора макета фрагмента и bundle в метод navigate контроллера.

Принимаем данные через Bundle

В коде класса FragmentTwo также переопределяем метод onViewCreated и пишем в него код:

override fun onViewCreated(view: View, savedInstanceState: Bundle?)

Здесь мы инициализируем TextView и переменную text. В эту переменную мы сохраняем значение из переданного Bundle, обращаясь к нему через его геттер arguments, и получаем строку с ключом «MyArg». Далее передаем ее для отображения в текстовое поле.

Читайте также:
Subway что это за программа

Тестирование приложения

Запустите приложения на эмуляторе или смартфоне. На первом экране с полем ввода и кнопкой введите имя и нажмите кнопку отправки. Откроется второй экран, где будет отображен текст приветствия с введенным именем.

Подключение в проект Safe Args

Несмотря на простоту этого способа, официальные разработчики все же рекомендуют выполнять передачу данных между фрагментами посредством Safe Args, так как этот способ является типобезопасным.

Чтобы добавить поддержку Safe Args в проект, в файле build.gradle верхнего уровня пропишите:

buildscript < repositories < google() >dependencies < def nav_version = «2.3.3» classpath «androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version» >>

Вы также должны применить один из двух доступных плагинов.

Если ваш проект на языке Java, или смешанный, на Java и Kotlin, добавьте эту строку в файл build.gradle модуля app вашего приложения:

apply plugin: «androidx.navigation.safeargs»

А если проект только на Kotlin, то добавьте эту:

apply plugin: «androidx.navigation.safeargs.kotlin»

Также вы должны для поддержки AndroidX указать android.useAndroidX=true в файле gradle.properties .

Передача данных через Safe Args

Теперь изменим код фрагментов.

Метод onViewCreated класса FragmentOne:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) < super.onViewCreated(view, savedInstanceState) val imgButton : ImageButton = view.findViewById(R.id.imgButton) val editText : EditText = view.findViewById(R.id.editText) //val bundle = Bundle() imgButton.setOnClickListener < val name = editText.text val hello = «Привет, $name» /*bundle.putString(«MyArg», hello) findNavController().navigate(R.id.fragmentTwo, bundle)*/ val action = FragmentOneDirections.actionFragmentOneToFragmentTwo(hello) findNavController().navigate(action) >>

Поскольку мы теперь не работаем с Bundle напрямую, в методе onViewCreated закомментируем строку объявления его переменной.

Далее в слушателе нажатия кнопки вместо сохранения аргумента в bundle и передачи его контроллеру, будем использовать сгенерированный средой разработки класс FragmentOneDirections. В его функцию actionFragmentOneToFragmentTwo передаем строковую переменную hello и затем это все передаем методу navigate контроллера навигации.

А если мы откроем класс FragmentOneDirections, то увидим, что внутри он использует все тот же Bundle.

Теперь изменим код метода onViewCreated класса FragmentTwo:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) < super.onViewCreated(view, savedInstanceState) val tv :TextView = view.findViewById(R.id.tvFragmentTwo) //val text = arguments?.getString(«MyArg») val args: FragmentTwoArgs by navArgs() val text = args.MyArg tv.text = text >

Вместо получения строки из Bundle инициализируем переменную класса FragmentTwoArgs, который хранит данные, переданные нами из первого фрагмента. Мы можем извлечь данные, обращаясь к свойству экземпляра класса по имени аргумента, которое мы указали при его создании в графе навигации. Здесь мы передаем его в текстовое поле.

Если открыть FragmentTwoArgs, мы увидим, что это дата-класс с публичной переменной, имя которой совпадает с именем нашего аргумента. Эта переменная получает свое значение посредством Bundle, а также имеет значение по умолчанию – это фраза «Hello, Android!» — та самая, которую мы указали как значение по умолчанию аргумента в графе навигации.

Оба класса – FragmentTwoArgs и FragmentOneDirections – сгенерированы средой разработки, их можно найти в папке build модуля app нашего проекта.

Тестирование приложения

При запуске приложения открывается первый экран с предложением ввести имя. После ввода и нажимаем кнопку отправки и видим второй экран с приветствием, в котором использовано введенное имя. Таким образом, данные с первого экрана передаются во второй.

Если в коде второго фрагмента ничего не передать в переменную action, то на втором экране будет отображаться значение аргумента по умолчанию.

Исходный код

На этом наш урок закончен, исходный код проекта вы можете скачать по ссылке.
Вопросы задавайте в комментариях. До встречи на следующем уроке.

Источник: www.fandroid.info

Что такое Android App Bundle (AAB)

Что такое Android App Bundle (AAB)

Возможно, Вы слышали термин «APK». Однако все более распространенным становится новый термин «Android App Bundle» (AAB). Так что же такое AAB и заменит ли он APK?

Что такое Android App Bundle

Начиная с августа 2021 года, Google будет требовать, чтобы все приложения Android, опубликованные в Play Store, использовали формат «Android App Bundle». Раньше приложения могли использовать формат AAB или старый формат APK.

Так что же такое Android App Bundle и чем он отличается от APK? APK (Android App Package) — это, по сути, файл .ZIP, который включает в себя все файлы и коды, необходимые для запуска приложения. Ваше устройство загружает все эти ресурсы независимо от того, нужны они ему или нет.

AAB имеет все те же ресурсы, но также включает компоненты, называемые «Динамические функции» и «Пакеты активов». Преимущества этих функций заставляют Google отказываться от APK в пользу AAB.

Проще говоря, App Bundle включает в себя все компоненты для создания APK. Когда Вы загружаете App Bundle из Play Store, он создает APK, предназначенный для Вашего конкретного устройства.

Каковы преимущества AAB

Android App Bundle имеют несколько преимуществ. Прежде всего, AAB создают APK-файлы меньшего размера. Поскольку Bundle создает приложение специально для Вашего устройства, могут потребоваться не все компоненты, что приведет к уменьшению размеров файлов.

Также не все эти компоненты нужно загружать заранее. Концепция «динамической доставки» означает, что Вы изначально получаете приложение, которое может загружать и устанавливать новые функции по мере необходимости. Поэтому, если Вы никогда не используете определенные функции, они не загружаются на Ваше устройство.

Короче говоря, преимущество AAB в том, что они просто более гибкие и динамичные. Меньшие размеры файлов, более простая предварительная загрузка и предоставление компонентов по мере необходимости делают APK-файлы более разумными.

Заменят ли App Bundles файлы APK

Когда Google объявил, что для Play Store потребуются пакеты Android App Bundle вместо APK, возникло общее недоразумение: означает ли это, что Вы больше не сможете устанавливать APK на свое устройство? Ответ — нет.

Фактически, как объяснялось в разделе выше, App Bundle создают APK-файлы. APK — это то, что запускает Android, но AAB — это то, что разработчик загружает в Play Store.

App Bundles могут заменять APK-файлы в Play Store, но не на самих устройствах Android. Вы по-прежнему можете загружать APK-файлы на свое устройство, как всегда. Фактически, Вы также можете загружать неопубликованные файлы AAB. Будьте уверены, что это всего лишь изменение в Play Store, а не в том, как ОС Android работает с файлами приложений.

Источник: android-example.ru

Новый способ публикации приложений с помощью Android App Bundle

Android Tools

На недавно прошедшей Google I/O 2018, среди множества нововведений, объявили также о добавлении нового формата приложений.

Читайте также:
Punkbuster services что это за программа можно ли удалить

Этот формат получил название Android App Bundle и представляет собой улучшенный способ сборки вашего приложения. С его помощью можно легко оптимизировать размер приложения, при этом не нужно будет вносить какие-либо изменения в код. Android App Bundle включает весь скомпилированный код и ресурсы, отсеивая затем то, что не нужно конкретному устройству.

Важно! На данный момент Android App Bundle работает только в preview-версии Android Studio. Последняя версия Android Studio 3.2 Canary доступна здесь.

Формат Android App Bundle

Android App Bundle представляет собой файл (с расширением .aab), который загружается в Google. Каждый бандл включает скомпилированный код и ресурсы для всех модулей приложения и поддерживаемых конфигураций устройств.

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

Из этих модулей Google Play генерирует различные APK, которые предоставляются пользователям, такие как: базовые APK, dynamic feature APK, конфигурационные APK и (для устройств, которые не поддерживают разделённые APK) мульти-APK. Каталоги, окрашенные в синий цвет, представляют собой код и ресурсы, которые Google Play использует для создания конфигурационного APK для каждого модуля.

Примечание: бандл нужно создавать для каждого уникального приложения или applicationID. То есть, если вы используете несколько product flavor в своём приложении для создания различных APK, и каждая из этих веток использует уникальный applicationID, то вам нужно будет создать отдельный бандл для каждой ветки.

Код и ресурсы для каждого модуля организованы аналогично стандартным APK, и это логично, поскольку каждый из этих модулей может быть сгенерирован как отдельный APK. Ниже можно увидеть более подробное описание некоторых файлов и каталогов Android App Bundle:

  • base/, feature1/, feature2/. Каждый из этих каталогов представляет собой модуль приложения. Базовый модуль приложения всегда содержится в базовом каталоге бандла. Директории же с дополнительными особенностями, каждой из которых присваивается специальное имя, находятся отдельно.
  • файлы Protocol Buffer (.pb). Эти файлы содержат метаданные, которые помогают описать содержимое бандла в магазинах приложений. Например, BundleConfig.pb, находящийся в корневом каталоге бандла, предоставляет информацию о самом бандле, например, какая версия build tools используется для сборки. Другие файлы, такие как recourse.pb и native.pb, описывают, как определённый код и ресурсы должны использоваться для различных конфигураций устройств. Google Play использует эту информацию для генерации APK, оптимизированного для устройства пользователя.
  • manifest/. В отличие от APK, бандлы хранят файл AndroidManifest.xml каждого модуля в отдельном каталоге.
  • dex/. В отличие от APK, бандлы хранят DEX-файлы каждого модуля в отдельном каталоге.
  • root/. Этот каталог хранит файлы, которые позже перемещаются в директорию root любого APK, который включает в себя модуль, в котором находится этот каталог. Например, каталог base/root/ бандла может включать ресурсы Java, которые загружаются приложением с помощью использования Class.getResources(). Эти файлы позже перемещаются в директорию root APK приложения и каждого мульти-APK, которые генерирует Google Play. Пути в этом каталоге также сохраняются, то есть, подкаталоги тоже перемещаются вместе с root.
    Примечание: если содержимое этого каталога конфликтует с другими файлами и каталогами в корне APK, Play Console отклонит загрузку бандла. Например, вы не сможете включить каталог root/lib/, поскольку он будет конфликтовать с каталогом lib, уже находящимся в APK.
  • res/, lib/, assets/. Эти каталоги идентичны тем, что используются в стандартном APK. При загрузке приложения, Google Play проверяет в этих каталогах и пакетах только те файлы, которые соответствуют конфигурации целевого устройства.

Сборка App Bundle с помощью Android Studio

Создание бандла с помощью Android Studio очень похоже на создание APK. Для сборки достаточно выбрать в меню Build — Build Bundle(s)/APK(s) > Build Bundle(s) и IDE создаст бандл для выбранного варианта сборки и разместит его в каталоге //build/outputs/bundle/.

Если создаётся бандл для debug-версии приложения, Android Studio автоматически подпишет бандл с помощью отладочного ключа подписи. Для загрузки бандла в Google Play он должен быть подписан.

После того, как Android Studio завершит создание подписанного бандла, его можно будет открыть и проанализировать. Анализ бандла позволяет проверить содержимое и работает аналогично APK Analyzer.

Для создания App Bundle IDE использует тот же инструмент с открытыми исходным кодом, называемый bundletool, который Google Play использует для последующего преобразования бандла в подписанные APK.

Прежде чем загрузить бандл в консоль Google Play, его нужно подписать. Чтобы создать подписанный App Bundle, нужно выполнить следующие действия:

  1. Выбрать в меню Build — Generate Signed Bundle/APK.
  2. В появившемся диалоге выбрать Android App Bundle и нажать Next.
  3. В выпадающем списке выбрать модуль, для которого требуется создать бандл, после чего нажать Next.
  4. Предоставить информацию о созданном ключе подписи либо создание нового ключа подписи. Вы можете использовать те же ключи, которые используете для генерации подписи APK.
  5. Если вы хотите, чтобы Android Studio также сохранила ключ подписи в виде зашифрованного файла, то нужно поставить флажок Export encrypted key. Чтобы иметь возможность загружать бандл, необходимо также загрузить этот зашифрованный файл в консоль Google Play и зарегистрировать подписку приложения с помощью Google Play.
  6. Нажать Next.
  7. Выбрать папку назначения для бандла, тип сборки и product flavor проекта.
  8. Нажать Finish.

После того, как Android Studio завершит создание подписанного бандла, его можно будет найти и проанализировать, выбрав соответствующую опцию во всплывающем уведомлении. Если был выбран экспорт ключа подписи, то к нему можно будет быстро перейти, щёлкнув по стрелке вниз в правом нижнем углу всплывающего уведомления, чтобы развернуть его, и затем выбрав Show Exported Key File.

Загрузка App Bundle в консоль Google Play

После того, как бандл создан, его можно загрузить в Google Play для проверки, тестирования или публикации приложения. Прежде чем приступить к работе, следует соблюсти следующие условия:

  1. Зарегистрироваться в программе Google Play App Signing.
  2. Если приложение включает dynamic feature modules, то его можно загружать и тестировать через внутренний тестовый трек консоли Google Play. Однако чтобы опубликовать приложение, нужно принять программу Dynamic Feature, которая на данный момент находится в стадии бета-версии.
  3. Google Play поддерживает загрузку приложений размером не более 100 МБ.

Анализ APK с помощью проводника

Когда бандл загружен, Google Play автоматически генерирует разделённые APK и мульти-APK для всех конфигураций устройств, поддерживаемых приложением. В Play Console можно можно использовать App Bundle Explorer для просмотра всех вариантов APK, сгенерированных Google Play; анализа данных, таких как поддерживаемые устройства и экономия размера APK; загрузки созданных APK для тестирования.

Читайте также:
Что за программа ipsgeofence

Обновление приложения

После загрузки приложения в Play Console, для обновления приложения достаточно повысить код версии, а также создать и загрузить новый бандл. Затем Google Play сгенерирует обновлённые APK с новым кодом версии и будет предоставлять их по мере необходимости.

Заключение

Использование Android App Bundle даёт большие преимущества для оптимизации APK приложений. С помощью этого способа мы обновили одно из наших приложений, «Менеджер паролей от Wi-Fi сетей«, заменив в нём стандартный APK на App Bundle. Таким образом, размер APK файлов уменьшился на целый мегабайт, что является очень хорошим результатом.

Кроме того, Google на данный момент тестирует дополнение к App Bundle, Dynamic feature modules, с помощью которого можно разбивать базовый APK на части, которые будут докачиваться при необходимости, пока что эта технология находится в бета-версии.

Возможно, единственным недостатком банлдов на данный момент назвать необходимость использовать preview-версию Android Studio, однако эта проблема временная.

Источник: android-tools.ru

Отличие Android App Bundle (.aab) от APK файла

Традиционно приложения Android были доступны в формате APK, но все стало меняться с появлением Android App Bundle и различных дополнительных расширений, таких как APKM, XAPK или файлы ZIP с несколькими APK.

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

Что такое Android App Bundle (.aab)

В наборах приложений для Android нет ничего нового. Google представил их нам на Google I/O в 2018 году как новый формат публикации, который уменьшит размер загрузок для пользователей, что, согласно исследованиям Google, приводит к большему количеству загрузок и меньшему количеству удалений.

По сути, App Bundle содержит все ресурсы приложения, хотя его нельзя установить непосредственно на мобильный телефон. То есть включены база и остальная часть рекурсора, такая как графика, макеты и тексты для всех возможных конфигураций.

При таком большом количестве вещей внутри возникает вопрос: как может быть одно из преимуществ App Bundle в том, что они занимают меньше? Ответ заключается в том, что App Bundle, который создает разработчик, занимает больше, чем APK. Наименьший размер — это скачиваемый APK, который доходит до пользователей и который Google Play генерирует из указанного App Bundle.

То же приложение, опубликованное в App Bundle, занимает больше, чем в APK, но не файл, который пользователи будут скачивать в Google Play.

На самом деле это намного проще, чем кажется. Если разработчик создает приложение и публикует его в формате APK, это нормально, что включены все ресурсы, например графика на 30 языках, поддерживаемых приложением. Для простоты, если размер каждого изображения составляет 100 КБ, в указанном APK-файле будет 3000 КБ.

Пакет приложений в формате .AAB включает в себя абсолютно все, но серверы Google анализируют его содержимое и генерируют файлы APK со всеми возможными конфигурациями, включая только ресурсы указанной конфигурации. То есть пользователь загружает APK, который вместо графики для 30 языков включает только те, которые настроены на мобильном устройстве. Вместо 3000 КБ это 100 или 200 КБ.

Что, если пользователь позже изменит язык мобильного телефона? К счастью, все предусмотрено. В таком случае Google Play загружает дополнительные языковые файлы из вашего магазина. То же самое относится к модульным дополнительным функциям, которые включены в приложение и которые могут быть загружены позже, но не включены в первоначальную загрузку.

Как видим, уменьшение размера загрузки — главное преимущество этого формата по сравнению с традиционной публикацией в APK, хотя и не единственное преимущество. В прошлом Google выделял 16 веских причин для разработчиков использовать App Bundle вместо APK: меньшее время разработки, дополнительная информация в консоли Google Play, более короткое время компиляции, модульные функции .

Чем APK отличается от Android App Bundle (.aab)?

До сих пор мы много говорили о App Bundle с точки зрения разработчиков приложений, но как пользователь, чем один отличается от другого? Вопрос действительно сложный, потому что как пользователь вы не должны сталкиваться с App Bundles: это пакет для разработчиков, которые публикуют свои приложения в Google Play. Как пользователь, вы ничего не можете с этим поделать, по крайней мере, без необходимых инструментов и знаний.

И все же мы находим их в конкретном случае: когда мы хотим установить приложения из-за пределов Google Play (на сторонних сайтах), и они доступны не в APK, а в App Bundle. То, что мы здесь загружаем, на самом деле не является оригинальным пакетом приложений, а представляет собой набор APK-файлов, созданных Google для различных конфигураций.

То есть, в то время как приложения, опубликованные с помощью APK, представляют собой один APK, приложения, опубликованные как App Bundle, имеют базовый APK и несколько APK для разных конфигураций, называемых разделенными APK. Это усложнило жизнь веб-сайтам для загрузки приложений Android, которым пришлось создавать альтернативы, такие как формат APKM для APKMirror или XAPK, на trashbox.ru и других сайтах.

APKM, XAPK и другие форматы — это ZIP-файлы со строкой APK внутри, которые необходимо установить одновременно.

APKM, XAPK или ZIP, полный APK, не являются пакетом приложений, хотя и являются их побочным эффектом. Все они представляют собой ZIP-файл, который включает в себя базовый APK и дополнительные APK для поддерживаемых архитектур, языков или любого другого доступного варианта. Они не могут быть установлены сами по себе, как APK, но требуется специальное приложение-установщик, способное устанавливать «фрагменты» вместе.

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

С помощью App Bundle, который загружает разработчик, Google генерирует бесчисленное количество пользовательских APK-файлов, которые позволяют ускорить загрузку приложений. App Bundle и APK не противоположны, а дополняют друг друга. Это хорошее изобретение, хотя, несомненно, усложняет установку приложений из внешних источников.

Источник: www.technodor.info

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru