Android 14 se prepara para mejorar aún más la experiencia de los usuarios de tiendas de aplicaciones de terceros gracias a las nuevas API.
Google Play es, con mucho, la tienda de aplicaciones más popular entre los usuarios de Android, pero algunos podrían argumentar que no se ganó el primer lugar de manera justa. Google ha sido examinado por las agencias reguladoras y los órganos legislativos de todo el mundo debido a cómo mantiene su dominio en la tienda de aplicaciones, y no hay señales de que esta presión se afloje en cualquier momento pronto. Quizá por eso Google está tomando la iniciativa de introducir nuevas funciones en androide 14 que mejoran la experiencia de los usuarios de tiendas de aplicaciones de terceros.
La mayoría de las tiendas de aplicaciones de terceros en Android no son realmente competitivas con Google Play, y no es solo por su selección de aplicaciones. Si bien las tiendas de aplicaciones preinstaladas de origen siempre han tenido la capacidad de realizar actualizaciones automáticas de aplicaciones, las tiendas de aplicaciones de terceros solo recientemente han podido realizar actualizaciones desatendidas. Google agregó
Sin embargo, esto dejó a las tiendas de aplicaciones de terceros en una gran desventaja en lo que respecta a la funcionalidad, porque no podían saberlo fácilmente. cuando sería seguro hacer una actualización automática. Eso es lo que Google está tratando de resolver en Android 14 con una nueva API que permite que las tiendas de aplicaciones de terceros realicen "actualizaciones suaves".
Actualizaciones suaves
Android 14 agregó una nueva API que permite que las tiendas de aplicaciones de terceros verifiquen si se cumplen ciertas condiciones antes de continuar con la actualización automática de una aplicación. El Paquete de instalación. API de restricciones de instalación “Puede ser utilizado por las tiendas de aplicaciones para entregar actualizaciones automáticas sin interrumpir la experiencia del usuario (referido como actualización suave) - por ejemplo, una tienda de aplicaciones puede retrasar las actualizaciones cuando descubre [sic] que la aplicación que se va a actualizar está interactuando con el usuario."
Esta nueva API permite que las tiendas de aplicaciones de terceros verifiquen si una aplicación que están preparando para actualizar tiene un servicio de primer plano activo (isRequireAppNotForeground), está interactuando con el usuario de alguna manera (isRequireAppNotInteracting), o está en la pantalla (isRequireAppNotTopVisible). Las tiendas de aplicaciones de terceros también pueden verificar si el dispositivo está en modo inactivo (isRequireDeviceIdle) o en una llamada telefónica (isRequireNotInCall).
Si bien la API permite especificar qué condiciones verificar, la documentación recomienda usar las restricciones preestablecidas como "el sistema sabe mejor cómo hacerlo.” Esto es lógico dado que Google ha tenido mucho tiempo para desarrollar la mejor manera de manejar las actualizaciones automáticas en su propia tienda de aplicaciones. Usar el ajuste preestablecido también es beneficioso, como se indica en la documentación, ya que la precisión y la eficiencia de las actualizaciones suaves pueden mejorarse en versiones futuras si Google agrega más restricciones a la API.
Cada condición que el PackageInstaller. InstallConstaints API permite que la verificación ya se pueda verificar a través de las API existentes, pero hacer que el sistema maneje estas verificaciones es mucho más fácil y menos intrusivo. Por ejemplo, tiendas de aplicaciones de terceros que desean verificar si una aplicación que están actualizando se está utilizando activamente. por el usuario actualmente tendría que usar una API como UsageStats o AccessibilityService, ambas sensibles permisos Sin embargo, si usan esta nueva API de Android 14, no necesitarán estos permisos para hacer su trabajo.
Actualizar propiedad
Habilitar las "actualizaciones suaves" no es la única mejora en Android 14 para las tiendas de aplicaciones de terceros. También hay un nuevo mecanismo de "propiedad de actualización" que permite que las tiendas de aplicaciones de terceros se conviertan en la fuente exclusiva de futuras actualizaciones automáticas de una aplicación que instalaron por primera vez. Esto significará que si está utilizando una tienda de aplicaciones de terceros porque las aplicaciones disponibles a través de ella son examinadas por el comunidad, por ejemplo, entonces una actualización no examinada que está disponible a través de otras tiendas de aplicaciones no se enviará automáticamente a tu dispositivo.
En este momento, cuando instala una aplicación a través de una tienda de aplicaciones de terceros, no hay nada que impida que una tienda de aplicaciones propia actualice esa aplicación. Si bien la API de actualizaciones desatendidas de Android 12 solo permite que las tiendas de aplicaciones de terceros actualicen silenciosamente las aplicaciones que instalaron por primera vez, las tiendas de aplicaciones propias no se ven afectadas ya que tienen los privilegios. INSTALAR_PAQUETES permiso.
Las tiendas de aplicaciones de terceros en Android 14 pueden usar el nuevo setRequestUpdateOwnership método en Paquete de instalación. Parámetros de sesión, sin embargo, para decirle al sistema que reclaman la propiedad de la actualización sobre la aplicación que están a punto de instalar. Una vez que se habilita la aplicación de propiedad de actualización para una aplicación, todas las demás tiendas de aplicaciones, incluso las que tienen el permiso INSTALL_PACKAGES, necesitan que el usuario actúe para actualizar la aplicación. La propiedad de la actualización solo se puede habilitar durante la instalación inicial de una aplicación, por lo que otra tienda de aplicaciones no podrá hacerse cargo de las actualizaciones a menos que la aplicación en cuestión se desinstale y se vuelva a instalar desde allí almacenar. Las tiendas de aplicaciones pueden verificar si la propiedad de la actualización está habilitada para una aplicación y, de ser así, qué aplicación es la propietaria de la actualización, a través de la nueva InstallSourceInfo#getUpdateOwnerPackageName() API.
Las tiendas de aplicaciones de terceros deben tener la nueva ENFORCE_UPDATE_OWNERSHIP permiso para usar la API de cumplimiento de propiedad de actualización, pero dado que este permiso tiene un nivel de protección de "normal", el sistema lo otorgará en el momento de la instalación. Sin embargo, queda por ver si Google Play auditará el uso de este permiso/API.
Instalar aprobación previa
La última nueva API de Android 14 que quería destacar es Paquete de instalación. Sesión#solicitudUsuarioAprobación previa. Esta API permite que las tiendas de aplicaciones de terceros soliciten la aprobación del usuario antes de realizar una sesión de instalación. Me imagino que esto será útil para las tiendas de aplicaciones de terceros que intencionalmente quieren avisar al usuario antes de actualizar una aplicación en segundo plano.
Por ejemplo, imagine que una tienda de aplicaciones centrada en la seguridad quiere informar a su usuario cuando una actualización de la aplicación agrega nuevos permisos; en lugar de actualizar automáticamente esa aplicación, otorgando así automáticamente ese permiso si su nivel de protección es "normal", la tienda de aplicaciones podría avisar al usuario antes de realizar la actualización. Actualmente, si un usuario no está presente durante una actualización automática, la tienda de aplicaciones de terceros tendría que realizar un seguimiento de la sesión de instalación y avisarle más tarde. Esta API simplifica ese proceso.
Android 14 presentará un montón de nuevas funciones y API cuando se lance al público a finales de este año. Si bien estas nuevas API no están ocultas como algunos de los otros cambios que detectamos, no hay garantía de que estas API estén disponibles para los desarrolladores en la versión estable. Esto se debe a que la congelación de la API no ocurrirá hasta que Android 14 alcance la "estabilidad de la plataforma" con Beta 3 en junio de 2023, y en este momento solo estamos en DP1. Estaremos atentos a las futuras versiones de Android 14 DP y Beta para ver si estas API se mantienen o si se agregan nuevas API relevantes para las tiendas de aplicaciones de terceros.