Android 14 готовится сделать работу пользователей сторонних магазинов приложений еще лучше благодаря новым API.
Google Play на сегодняшний день является самым популярным магазином приложений среди пользователей Android, но некоторые могут возразить, что он несправедливо занял свое первое место. Google подвергается тщательной проверке со стороны регулирующих органов и законодательных органов по всему миру из-за как он поддерживает свое доминирование в магазине приложений, и нет никаких признаков того, что это давление ослабнет в любое время скоро. Возможно, именно поэтому Google берет на себя инициативу по внедрению новых функций в Андроид 14 которые улучшают работу пользователей сторонних магазинов приложений.
Большинство сторонних магазинов приложений для Android на самом деле не могут конкурировать с Google Play, и дело не только в выборе приложений. В то время как собственные предустановленные магазины приложений всегда имели возможность выполнять автоматические обновления приложений, сторонние магазины приложений только недавно смогли выполнять автоматические обновления. Google добавил
API в Android 12 это позволяет сторонним приложениям хранить обновленные приложения без необходимости действий пользователя, уменьшая трение с помощью стороннего магазина приложений.Тем не менее, это по-прежнему оставляло сторонние магазины приложений в невыгодном положении, когда речь шла о функциональности, потому что они не могли легко узнать когда было бы безопасно сделать автоматическое обновление. Это то, что Google пытается решить в Android 14 с помощью нового API, который позволяет сторонним магазинам приложений выполнять «мягкие обновления».
Нежные обновления
В Android 14 добавлен новый API, который позволяет сторонним магазинам приложений проверять, выполняются ли определенные условия, прежде чем они приступают к автоматическому обновлению приложения. Установщик пакетов. API ограничений установки «может использоваться магазинами приложений для доставки автоматических обновлений, не нарушая работу пользователя (так называемое мягкое обновление) - например, магазин приложений может задержать обновления, когда обнаружит [sic], что приложение для обновления взаимодействует с пользователь."
Этот новый API позволяет сторонним магазинам приложений проверять, есть ли в приложении, которое они готовят для обновления, активная служба переднего плана. (isRequireAppNotForeground), каким-то образом взаимодействует с пользователем (isRequireAppNotInteracting) или находится на экране (исРекуиреаппнотопвисибле). Сторонние магазины приложений также могут проверять, находится ли устройство в спящем режиме (isRequireDeviceIdle) или в состоянии телефонного звонка (isRequireNotInCall).
Хотя API позволяет указать, какие условия проверять, в документации рекомендуется использовать предустановленные ограничения, поскольку «система знает лучше всего, как это сделать». Это логично, учитывая, что у Google было достаточно времени, чтобы придумать, как лучше всего обрабатывать автоматические обновления в собственном магазине приложений. Использование предустановки также полезно, как отмечается в документации, поскольку точность и эффективность мягких обновлений могут быть улучшены в будущих выпусках, если Google добавит больше ограничений в API.
Каждое условие, при котором PackageInstaller. API InstallConstaints позволяет проверить, что проверка уже может быть проверена через существующие API, но если система обрабатывает эти проверки, это намного проще и менее навязчиво. Например, сторонние магазины приложений, которые хотят проверить, активно ли используется приложение, которое они обновляют. пользователю в настоящее время придется использовать API, такой как UsageStats или AccessibilityService, оба чувствительные разрешения. Однако, если они будут использовать этот новый API Android 14, им не понадобятся эти разрешения для выполнения своей работы.
Обновить права собственности
Включение «мягких обновлений» — не единственное улучшение Android 14 для сторонних магазинов приложений. Существует также новый механизм «обновления прав собственности», который позволяет сторонним магазинам приложений стать эксклюзивным источником будущих автоматических обновлений для приложения, которое они установили впервые. Это будет означать, что если вы используете сторонний магазин приложений, потому что приложения, доступные через него, проверены сообщество, например, непроверенное обновление, доступное в других магазинах приложений, не будет автоматически отправлено в твое устройство.
Прямо сейчас, когда вы устанавливаете приложение через сторонний магазин приложений, ничто не мешает сторонним магазинам приложений обновить это приложение. В то время как API автоматических обновлений Android 12 позволяет сторонним магазинам приложений автоматически обновлять приложения, которые они установили впервые, сторонние магазины приложений не затрагиваются, поскольку они обладают привилегированными правами. INSTALL_PACKAGES разрешение.
Сторонние магазины приложений на Android 14 могут использовать новый setRequestUpdateOwnership метод в Установщик пакетов. SessionParams, однако, чтобы сообщить системе, что они претендуют на право собственности на обновление для приложения, которое они собираются установить. После того как для приложения включено принудительное обновление права собственности, всем другим магазинам приложений — даже тем, у которых есть разрешение INSTALL_PACKAGES — требуется действие от пользователя для обновления приложения. Владение обновлением может быть включено только во время первоначальной установки приложения, поэтому другой магазин приложений не сможет получать обновления, если рассматриваемое приложение не будет удалено и переустановлено с этого магазин. Магазины приложений могут проверить, включено ли право собственности на обновление для приложения, и если да, то какое приложение является владельцем обновления, с помощью нового InstallSourceInfo#getUpdateOwnerPackageName() API.
Сторонние магазины приложений должны хранить новые ENFORCE_UPDATE_OWNERSHIP разрешение на использование API-интерфейса обновления права собственности, но, поскольку это разрешение имеет уровень защиты «нормальный», оно будет предоставлено системой во время установки. Однако еще неизвестно, будет ли Google Play проверять использование этого разрешения/API.
Установить предварительное одобрение
Последний новый API Android 14, который я хотел выделить, это Установщик пакетов. Сессия#requestUserPreapproval. Этот API позволяет сторонним магазинам приложений запрашивать одобрение пользователя перед фиксацией сеанса установки. Я предполагаю, что это будет полезно для сторонних магазинов приложений, которые намеренно хотят запрашивать пользователя перед обновлением приложения в фоновом режиме.
Например, представьте, что магазин приложений, ориентированный на безопасность, хочет, чтобы его пользователь знал, когда обновление приложения добавляет новые разрешения; вместо автоматического обновления этого приложения, тем самым автоматически предоставляя это разрешение, если его уровень защиты «нормальный», магазин приложений может запрашивать пользователя перед выполнением обновления. В настоящее время, если пользователь отсутствует во время автоматического обновления, сторонний магазин приложений должен отслеживать сеанс установки и запрашивать его позже. Этот API упрощает этот процесс.
Android 14 представит множество новых функций и API-интерфейсов, когда он будет выпущен для публики в конце этого года. Хотя эти новые API не скрыты, как некоторые другие замеченные нами изменения, нет никакой гарантии, что эти API будут доступны разработчикам в стабильной версии. Это связано с тем, что заморозка API не произойдет до тех пор, пока Android 14 не достигнет «стабильности платформы» с бета-версией 3 в июне 2023 года, а на данный момент мы находимся только на DP1. Мы будем следить за будущими выпусками Android 14 DP и Beta, чтобы увидеть, останутся ли эти API или будут добавлены какие-либо новые API, относящиеся к сторонним магазинам приложений.