
Con una variedad de nuevas herramientas y características anunciadas en
Android Dev Summit , se debe prestar especial atención a la API de actualizaciones en la aplicación (IAU) que permite a los desarrolladores aumentar la velocidad de entrega de características, correcciones de errores y mejoras de rendimiento para usuarios activos. Dado que esta característica finalmente se
lanzó después de Google I / O 2019, en este artículo profundizaré en la API de IAU, describiré en detalle los flujos de usuarios recomendados y proporcionaré algunos ejemplos de código. Además, compartiré alguna experiencia sobre la integración de IAU en la aplicación
Pandao , una plataforma de mercado para productos chinos.
La nueva API permite a los desarrolladores iniciar un nuevo flujo de solicitud de actualización en la aplicación para impulsar a los usuarios activos a actualizar la aplicación. Las IAU complementan el mecanismo de actualización automática de Google Play existente, pero, desafortunadamente, no tienen ningún impacto en las intenciones de algunos usuarios de deshabilitar cualquier tipo de actualizaciones. La solicitud de IAU se puede implementar de dos maneras, que proporcionan una experiencia de usuario completamente diferente.
- El flujo flexible solicita a los usuarios que descarguen una actualización en segundo plano y la instalen en un momento conveniente. Se supone que debe usarse en casos en que todavía es apropiado que un usuario use la versión anterior de la aplicación mientras se lanzaba la nueva.

- El flujo inmediato requiere que los usuarios descarguen e instalen una actualización antes de continuar usando la aplicación. Se supone que debe usarse en casos, mientras que es crucial para los desarrolladores evitar el uso de la aplicación antes de que se aplique la actualización.

Dado que este último caso de uso es menos importante y apropiado para la aplicación Pandao, discutiremos en detalle el primero.
Integración de flujo flexible de IAU
Caso de uso
El flujo flexible de IAU consta de los siguientes pasos.
- La aplicación solicita a Google Play que compruebe las actualizaciones disponibles mediante Play Core Library.
- Si hay una actualización disponible, la aplicación solicita a Google Play que muestre el diálogo de IAU. Google Play muestra el diálogo de solicitud de actualización al usuario.
- Si el usuario acepta la solicitud de actualización, Google Play descarga una actualización en segundo plano, brindándole al usuario un monitoreo de estado elegante en la barra de estado.
- Si el proceso de descarga se completa mientras la aplicación está en segundo plano, Google Play completa automáticamente la instalación. Para los casos en que la descarga se completa mientras la aplicación está en primer plano, tenemos que definir una lógica personalizada para completar la actualización. Considere varias mejores prácticas para la implementación.
- La aplicación inicia el proceso de instalación mientras muestra una pantalla de Google Play con el progreso de la instalación para el usuario. Una vez completada la instalación, la aplicación se reinicia y se abre una versión actualizada. En este caso, se recomienda mostrar un diálogo adicional para permitir al usuario confirmar explícitamente que está listo para reiniciar la aplicación en este momento. Este es un flujo altamente recomendado .
- La aplicación espera hasta que pasa a segundo plano y luego completa la actualización en silencio. Por un lado, esta opción es menos invasiva en términos de experiencia del usuario. Pero, por otro lado, requiere que el desarrollador implemente una característica difícil para detectar cada vez que la aplicación pasa a un segundo plano.
En situaciones excepcionales, la finalización de la actualización se aplazará automáticamente a la tarea en segundo plano de Google Play. Esta opción no se recomienda para el uso explícito porque no proporciona ninguna garantía sobre la instalación de una actualización.
Requisitos básicos para pruebas manuales
Para realizar manualmente el flujo de actualización completo en el dispositivo de prueba, debe tener al menos dos versiones de la aplicación con el número de versión diferente: una versión de origen y una versión de destino.
- La versión de origen con el número de versión superior debe publicarse en Google Play, esta es la versión que Google Play identificará como una actualización disponible. La versión de destino con el número de versión inferior y la función integrada de IAU deben instalarse en su dispositivo, esta es la versión que se actualizará. La cuestión es que, cuando la aplicación solicita a Google Play que verifique las actualizaciones disponibles, compara el número de versión de la aplicación instalada con el número de versión de la última compilación disponible en Google Play. Por lo tanto, la función IAU se activará solo en caso de que el número de versión en Google Play sea superior a la versión real de la aplicación en el dispositivo.
- Tanto la versión de origen como la de destino deben tener el mismo nombre de paquete y deben estar firmadas con el mismo certificado de lanzamiento .
- Android 5.0 (API nivel 21) o superior.
- Juega Core library 1.5.0 o superior.
Código de muestra
Esta sección contiene un código de muestra para el uso de IAU, que también se puede encontrar en
la documentación oficial . Para comenzar, es necesario agregar la biblioteca Play Core al archivo gradle de nivel de módulo.
dependencies { ... implementation "com.google.android.play:core:1.5.0" }
A continuación, creemos una instancia del administrador de IAU y agreguemos devoluciones de llamada a la tarea
AppUpdateInfo
. El resultado de esta tarea contiene información sobre la disponibilidad de una actualización, la intención de iniciar una actualización si está disponible y el progreso actual de la descarga de la actualización si ya ha comenzado.
En términos de cómo activar el diálogo de solicitud de actualización de Google Play en el código, recibirá un
PendingIntent
en el objeto
AppUpdateInfo
, que puede comenzar con
startIntentSenderForResult
. Este diálogo solicita al usuario que inicie la actualización.
appUpdateManager.startUpdateFlowForResult(
Para monitorear el estado de actualización, puede agregar
InstallStateUpdatedListener
al administrador de IAU. Asegúrese de que su
InstallStateUpdatedListener
tenga en cuenta el ciclo de vida.
Tan pronto como se descargue la actualización (estado
DOWNLOADED
), la aplicación debe reiniciarse para completar la actualización. Se puede iniciar fácilmente llamando a
appUpdateManager.completeUpdate()
, pero se recomienda mostrar una barra de bocadillos para permitir que el usuario confirme explícitamente que está listo para reiniciar la aplicación en este momento.
Snackbar.make( rootView, "An update has just been downloaded from Google Play", Snackbar.LENGTH_INDEFINITE ).apply { setAction("RELOAD") { appUpdateManager.completeUpdate() } show() }
Error "La actualización no está disponible"
En primer lugar, verifique los requisitos mencionados en la sección "Requisitos básicos de implementación". Si completa con éxito los pasos anteriores para cumplir con todos los requisitos, aunque la actualización, de acuerdo con la
onSuccess
llamada de
onSuccess
, aún no está disponible, preste atención al siguiente truco. La razón más probable es que la aplicación Google Play aún no conoce la actualización debido al mecanismo de almacenamiento en caché interno. Para asegurarse de tener el caché actualizado cuando realice las pruebas manualmente, puede actualizar la versión en caché yendo a la pantalla "Mis aplicaciones y juegos" en la aplicación Google Play. Como alternativa, simplemente puede borrar el caché de la aplicación Google Play en la configuración. Tenga en cuenta que esto es solo un problema para las pruebas y no afecta a los usuarios finales ya que la memoria caché se actualiza diariamente de todos modos.
Flujo flexible de IAU en Pandao
Como parte del programa de acceso temprano, integramos el flujo flexible de IAU (implementación recomendada) en la aplicación Pandao, es decir, una aplicación de mercado que ofrece productos de fabricantes y vendedores chinos. El diálogo de IAU se mostró en la pantalla principal, por lo que el número máximo de usuarios pudo interactuar con él. Inicialmente, decidimos mostrar el diálogo de las IAU no más de una vez al día para evitar que los usuarios en riesgo se molesten.
Dado que las pruebas A / B son un paso fundamental en cada ciclo de vida de nuevas funciones, decidimos evaluar el efecto de las IAU en la aplicación Pandao. Dividimos al azar a nuestros usuarios en dos grupos no superpuestos. El primero es un grupo de control sin IAU funcional que representa la línea de base 'sin cambios', y el segundo es un grupo de prueba con diálogo de IAU.
Fig. 1. Pruebas A / B para IAU (flujo flexible) en la aplicación Pandao.En las últimas versiones, medimos el porcentaje de usuarios activos para cada versión de la aplicación. Se descubrió que entre los usuarios activos con la última versión disponible en un momento, la mayor parte era del grupo B, es decir, usuarios con la función IAUS. Como puede ver en las líneas moradas de la fig. 1, en los primeros días después de la publicación de la versión de la aplicación 1.29.1, el número de usuarios activos con la función IAU excedió el número de usuarios sin esta función. La situación opuesta se puede observar para las versiones anteriores de la aplicación, ver líneas azules y rojas después de la publicación de la versión 1.29.1 de la aplicación. Por lo tanto, se puede afirmar que los usuarios con IAU tienden a actualizar la versión de la aplicación más rápidamente.
Fig. 2. Tasa de confirmación en el diálogo de IAU (flujo flexible) en la aplicación Pandao .
De acuerdo con los datos analíticos de Pandao (ver figura 2), la conversión para hacer clic en el botón de confirmación en el diálogo de IAU alcanza valores máximos en los primeros días del lanzamiento y luego disminuye constantemente hasta la próxima actualización de la aplicación. Se puede observar el mismo patrón en la conversión al hacer clic en el botón de instalación en un snack bar, que inicia la instalación de la actualización descargada. En consecuencia, parece que la tasa de conversión promedio en ambos casos es directamente proporcional a la frecuencia de las emisiones. En Pandao, la tasa de conversión promedio medida durante un mes excede el 35% por hacer clic en el botón de confirmación y el 7% por hacer clic en el botón de instalación.
Sugerimos que la reducción de la tasa de confirmación a lo largo del tiempo es solo un problema de la experiencia del usuario, porque las personas que estén interesadas en la nueva versión de la aplicación se actualizarán con bastante rapidez, y las que no estén interesadas en actualizar continuarán sin estarlo. En base a esta información, decidimos retirar a algunos usuarios si no están interesados en actualizar, en lugar de preguntarles todos los días. Parece ser una buena práctica probar diferentes lógicas de solicitud basadas en `` obsolescencia '', es decir, qué antigüedad tiene la versión, cuántas veces un usuario ya les ha pedido una actualización, etc., en lugar de arriesgarse a molestar a los usuarios.
Como resultado, las IAU demostraron resultados valiosos durante la prueba A / B, por lo que implementamos esta función para todos los usuarios.
Segmentos reconocidos
Quiero agradecer a varios colegas por su contribución a este artículo. Gracias a Maryna Pliashkova
Maryna_Pliashkova , Alexander Chernyy
alexchernyy , Ilia Nazarov
RolaRko , Gleb Bodyachevskiy, Daniil Polozov
jokerdab , Anastasia Kulik, Vladislav Breus y Vladislav Goldin
Vladiskus .