lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

Información general

Apps instantáneas Android permite la ejecución de aplicaciones nativas de Android en respuesta al inicio de una URL, sin instalar la aplicación. Cuando Google Play Store recibe una solicitud de una URL que coincide con un app instantánea, envía el código necesario al dispositivo Android que envió la solicitud. Luego, el dispositivo ejecuta la aplicación.

Nota: Apps instantáneas Android solo funciona en dispositivos Android con Android 6.0 (nivel de API 23) o versiones posteriores.

Aplicaciones como funciones

Apps instantáneas Android ofrece un método nuevo y único para compilar aplicaciones, en el caso de los desarrolladores, y para consumir aplicaciones, en el caso de los usuarios. Antes de presentar los conceptos principales de Apps instantáneas Android, es necesario comprender algunos términos básicos.

En un nivel muy básico, las aplicaciones tienen al menos una función o tarea: por ejemplo, buscar una ubicación en un mapa, enviar un correo electrónico o leer las noticias diarias. Muchas aplicaciones ofrecen varias funciones. Por ejemplo, una aplicación de mapa podría permitir a los usuarios buscar restaurantes cercanos o enviar vínculos a ubicaciones por correo electrónico, además de buscarlas en un mapa. Cada una de esas acciones (buscar una ubicación, buscar restaurantes cercanos, compartir vínculos a una ubicación) es una función dentro de la aplicación de mapa.

Con Apps instantáneas Android, los usuarios pueden descargar una sola función de una aplicación desde Google Play Store sin necesidad de descargar e instalar la aplicación completa. Cuando los usuarios solicitan una función de una app instantánea, reciben solo el código necesario para ejecutar esa función específica; ni más ni menos. Una vez que los usuarios terminan de usar la función, el sistema puede desechar el código de esta.

Volviendo al ejemplo anterior de la aplicación de mapa, la app instantánea de mapa puede exhibir cada una de sus funciones como una entidad discreta dentro de la aplicación. Los usuarios pueden descargar y usar solo la función de buscador de ubicaciones, solo la de guía de restaurantes o solo la de compartición. Cuando los usuarios realizan un cambio a otra aplicación, el sistema puede quitar de forma segura el código de la función.

Cada función de la app instantánea debe tener al menos una clase Activity que sirva como punto de entrada para esa función. Una actividad de punto de entrada aloja la IU para la función y define el flujo general de usuarios. Cuando los usuarios inician la función en sus dispositivos, la actividad de punto de entrada es lo primero que ven. Una función puede tener más de una actividad de punto de entrada, pero solo necesita una.

Módulos y APK de la función

Para poder proporcionar la descarga de funciones a pedido, debes dividir tu aplicación en módulos más pequeños y agruparlos en módulos de función.

Cuando compilas un proyecto de app instantánea, el resultado de la compilación es un APK de apps instantáneas que contiene uno o más APK de función. Cada APK de la función se compila a partir de un módulo de función en tu proyecto y el usuario puede descargarlo a pedido e iniciarlo como una app instantánea.

Cada app instantánea debe tener un APK básico de función (y solo uno). Si tu app instantánea tiene una sola función, solo necesitas el APK básico de función; los demás APK de función son opcionales. Si tu app instantánea tiene varias funciones, el APK básico de función generalmente contiene recursos compartidos y archivos de código de los que dependen otras funciones. Siguiendo con el ejemplo de la app instantánea de mapa, el APK básico podría contener el archivo styles.xml básico de la aplicación de mapa o una clase de estructura de datos para modelar ubicaciones y puntos de interés. El APK básico de la función se descarga siempre, independientemente de que el usuario solicite la función o no.

Puedes tener otros APK de función además del APK básico. Los APK adicionales de función pueden contener partes de la aplicación que corresponden a una función. El APK de función contiene la actividad de punto de entrada para la función y recursos exclusivos que esta última requiere.

Cuando los usuarios solicitan una función de una app instantánea, obtienen dos APK de función; el APK de función correspondiente y el APK básico de función. Si el mismo usuario solicita otra función de la misma app instantánea, podría recibir solo el APK de función debido a que ya descargó el APK básico de función. Por supuesto, si la app instantánea solo tiene una función y, por consiguiente, un solo APK básico de función, los usuarios solo recibirán el APK básico de función.

En el siguiente diagrama se ilustra la relación entre APK de apps instantáneas y los APK de función.

Solicitar funciones desde Google Play Store

Para descargar una función de una app instantánea de Google Play Store, los usuarios solo necesitan hacer clic en un vínculo. Cuando Google Play Store recibe una solicitud para una app instantánea, analiza la URL a fin de determinar la función que solicitó el usuario. Después de encontrar una coincidencia, Google Play Store envía los APK de función correspondientes a esa función al dispositivo del usuario y Tiempo de ejecución de apps instantáneas luego inicia la función. Si Google Play Store no puede encontrar una coincidencia, alerta a Tiempo de ejecución de apps instantáneas en el dispositivo. Tiempo de ejecución de apps instantáneas luego envía y transmite una intent al sistema para controlar la URL.

Por este motivo, cada actividad de punto de entrada en una app instantánea debe ser direccionable: debe corresponder a una dirección URL única. Si las direcciones URL para las funciones en una app instantánea comparten un dominio, cada función debe corresponder a una ruta de acceso diferente dentro de ese dominio.

Siguiendo con el ejemplo anterior sobre la app instantánea de mapa, la aplicación tiene tres funciones independientes: buscador de ubicaciones, restaurantes cercanos y compartir ubicación. Estas funciones comparten un dominio web: “example.com”. Para proporcionar una dirección URL única para cada función, la app instantánea especifica una ruta de acceso diferente debajo del dominio para cada función.

Función Dirección URL
Buscador de ubicaciones http://example.com/finder
Restaurantes cercanos http://example.com/restaurants
Compartir ubicación http://example.com/share

Como se mencionó anteriormente, una función puede tener varias actividades de punto de entrada. Por ejemplo, podría tener dos actividades relacionadas que el usuario podría alternar, y cada actividad podría tener su dirección URL propia. El manifiesto para la función debe especificar una ruta de acceso para cada actividad y un orden de prioridad para las actividades, en caso de que haya varias coincidencias.

Por ejemplo, imagina que la función de buscador de ubicaciones de la aplicación instantánea de mapas tiene dos actividades: una de búsqueda y una de información detallada. La dirección URL de la actividad de información detallada es similar a la de la actividad de búsqueda, con la salvedad de que la primera lleva un ID numérico adjunto a la URL.

Actividad Dirección URL Ruta de acceso a la URL Prioridad
Búsqueda http://example.com/finder/ '/finder/' 1
Detalles http://example.com/finder/<ID> '/finder/*' 100

Si Google Play Store recibe una solicitud para la URL 'http://example.com/finder/1234', coincidirá con las actividades de búsqueda y e información detallada. Google Play Store debe escoger una de las dos actividades como punto de partida para la función. Debido a que la app instantánea especifica que la actividad de información detallada tiene prioridad sobre la actividad de búsqueda, Google Play Store le especifica a Tiempo de ejecución de apps instantáneas que inicie la función desde la actividad de información detallada.

Próximos pasos

Para comenzar a desarrollar tu propia app instantánea, consulta la Guía de introducción.