Почему Google меняет формат приложения для Android? — CloudSavvy ИТ

Робот Androidquietbits / Shutterstock.com

Приложения Android исторически распространялись в виде APK-файлов (пакетов Android). APK содержит скомпилированную версию приложения, а также важные медиаресурсы, такие как значки и звуки. Они также включают файл манифеста, предоставляющий информацию о приложении системе Android, а также набор сертификатов и ключей подписи, которые подтверждают личность издателя.

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

На Google I / O 2021, Объявил Google что AAB станет форматом приложения Android по умолчанию. С конца августа в Play Маркет будет требоваться отправка новых публикаций приложений в виде AAB. Конечным пользователям, которые используют только Play Store, ничего делать не нужно. Для разработчиков история немного сложнее.

Преимущества App Bundle

Первоначально AAB был представлен как способ решения некоторых общих проблем с упаковкой в ​​экосистеме Android. Android работает на тысячах устройств, охватывающих огромный диапазон размеров экранов, базовых показателей производительности и архитектур ЦП. Формат APK не масштабируется, чтобы соответствовать этому разнообразию, поскольку каждый пакет содержит все ресурсы приложения.

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

В App Bundle используется другой подход. По замыслу они «связывают» несколько разных версий приложения в один логический пакет. Затем Play Store отправляет только соответствующие биты каждому устройству, которое запрашивает установку. Он будет производить нужный пакет по запросу для каждого пользователя, поэтому американский пользователь с 10-дюймовым устройством Intel получит другую загрузку, чем немецкий человек с 5-дюймовым телефоном ARM. Важно отметить, что устройства по-прежнему получают APK-файлы — пользователи никогда не будут напрямую взаимодействовать с App Bundle. Разница в том, что APK-файлы создаются динамически в облаке.

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

Что изменится в APK?

Google постепенно откажется от поддержки APK с августа 2021 года. Новые приложения, представленные в Play Store, необходимо будет выпускать в виде набора приложений. Существующие приложения на основе APK по-прежнему будут поддерживаться, и разработчики смогут продолжать выпускать обновления. Эти приложения описаны как «освобожденные в настоящее время», что говорит о том, что в будущем, возможно, потребуется выпускать обновления как AAB.

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

Пользователи более старых версий Android не увидят преимуществ, поскольку их устройство не сможет собирать «разделенные» пакеты в работающее приложение. Устаревшие версии ОС по-прежнему смогут устанавливать приложения App Bundle из Play Store — система связывания будет понимать, что работает со старым устройством, и вместо этого будет обслуживать обычный универсальный APK.

А как насчет недостатков?

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

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

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

Более того, теперь Google мог сам публиковать обновления приложений, возможно, если бы правительство вынудило это сделать. Это уже есть способность для автоматической установки приложений на устройства Android. Теперь у него есть ключи к королевству разработчиков, он может выполнять запросы на скрытую установку неутвержденных обновлений существующих приложений.

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

Риск якобы снижается за счет «Прозрачность кода» система. Это предназначено для того, чтобы дать разработчикам и конечным пользователям возможность проверить, соответствуют ли загруженные APK-файлы пакету, который был отправлен в Play Store, что исключает возможность вторжения.

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

Пакеты приложений и сторонние магазины приложений

Наборы приложений также представляют угрозу для открытой природы экосистемы Android. В последние годы Google усиливает руководящую роль. Пакеты приложений — это еще один удар по сравнению со сторонними магазинами приложений, которые предлагают прямую загрузку APK.

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

В настоящее время разработчики смогут загружать подписанные автономные APK из Play Store после того, как они отправят наборы приложений. Эти APK-файлы будут готовы к загрузке в сторонние магазины приложений, поэтому непосредственного риска для этой модели развертывания нет. Тем не менее, это по-прежнему неудобство для разработчика — вам нужно либо вручную загрузить подписанные APK-файлы, либо создать их отдельно на своем локальном компьютере.

Google объявила об обязательном переходе на App Bundle всего через несколько дней после того, как Microsoft представила Windows 11 с поддержкой приложений Android из Amazon App Store. Хотя переход на App Bundles длится пару лет, решение Google сделать этот шаг сейчас может быть направлено на ограничение влияния партнерства Microsoft / Amazon, которое будет поддерживать только обычные APK.

Заключение

Android App Bundle — это новый формат компиляции приложений, который намного эффективнее обычного APK. Хотя устройства в конечном итоге получат APK, каждый из них будет специально адаптирован к версии ОС, форм-фактору устройства и активному языку.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *