Google всё чаще сталкивается с натиском регулирующих органов разных стран, в том числе по вопросу доминирующего положения корпорации на рынке магазинов приложений. Поэтому «корпорация добра» внедряет в Android несколько функций, которые пригодятся RuStore, F-Droid и другие сторонние маркетплейсы.
Обновление ПО в фоновом режиме
Ещё в Android 12 инженеры Google обновили системный класс PackageInstaller.SessionParams, отвечающий за установку и обновление приложений в ОС.
Как и прежде, стороннему магазину необходимо выдать разрешение на инсталляцию из неизвестных источников. Но раньше при каждой попытке установить или обновить программу не из Google Play система просила подтвердить действие во всплывающем окне.
Начиная с Android 12 сторонние маркетплейсы могут обновлять софт в фоновом режиме. Для этого необходимо соответствовать следующим критериям:
в магазине выбрано новое поведение процесса установки ПО;
инсталлируемое приложение предназначено для Android 10 или выше;
магазин обновляет себя же или заменяет программу, ранее установленную через этот маркетплейс.
Обновление приложений без помех пользователю
В Android 14 появится интерфейс PackageInstaller.InstallConstraints. API отдаёт информацию о том, взаимодействует ли прямо сейчас пользователь с приложением, которое планирует обновить. Также сторонние маркетплейсы могут выяснить, находится ли устройство в спящем режиме или в состоянии телефонного разговора.
Интерфейс включает предустановленную схему проверки активности устройства. «Корпорация добра» рекомендует разработчикам использовать именно её, ведь у компании большой опыт обработки фоновых обновлений приложений через Google Play. Тем не менее магазины могут задать собственную систему условий.
Выбор приоритетного магазина для апдейта
Ещё один новый метод в PackageInstaller.SessionParams разрешает магазину программ сообщать системе, что только ему делегировано право на обновление конкретного софта.
Допустим, на гаджете установлены несколько маркетплейсов и каждый предлагает свежую версию требуемого ПО. Апдейт выполнит только тот магазин, который заявил о таком праве. Пользователь может выдать упомянутую привилегию лишь во время первоначальной инсталляции приложения.