Preguntas frecuentes

Esta página incluye respuestas a las preguntas o los errores más frecuentes que puedes encontrar al desarrollar una app instantánea. Para obtener más información sobre las pautas de experiencia del usuario, consulta Prácticas recomendadas de UX para apps en Google Play Instant y Prácticas recomendadas de UX para juegos en Google Play Instant.

General

  • ¿Qué tipo de dispositivos son compatibles con Google Play Instant?

    Google Play Instant es compatible con la mayoría de los dispositivos que ejecutan Android 5.0 (API level 21) y versiones posteriores.

  • ¿Los desarrolladores deben compilar dos aplicaciones de Android diferentes?

    Los desarrolladores solo necesitan mantener un único proyecto con un único árbol fuente. Pueden configurar el proyecto para crear dos artefactos de compilación:

    • Versión para instalar
    • Versión para apps instantáneas

    El esfuerzo necesario para agregar compatibilidad con apps instantáneas en una app instalable depende de cómo esté estructurada la app instalable.

    Nota: La versión de la app instantánea debe ser igual o menor que la última versión publicada de la app instalable.

  • ¿Cuáles son los distintos tipos de API de Android y funcionalidades que pueden usar las apps instantáneas?

    La funcionalidad Google Play Instant complementa a una app de Android existente. Esto significa que no reemplaza esa app. Usa las mismas API de Android, el mismo proyecto y el mismo código fuente. Restringe algunas funciones que tal vez no respondan a las expectativas del usuario de una app que no está instalada. Por ejemplo, una app instantánea no puede usar servicios en segundo plano, enviar notificaciones en segundo plano ni acceder a identificadores de dispositivo únicos.

  • ¿Los usuarios pueden optar por instalar la app de manera permanente?

    Los desarrolladores pueden permitir a los usuarios instalar la app desde Google Play mediante el método showInstallPrompt().

  • ¿Cómo funcionan los permisos en Google Play Instant?

    Google Play Instant usa el modelo de permisos en tiempo de ejecución presentado en Android 6.0 (nivel de API 23).

  • ¿Qué permisos están disponibles para una app instantánea?

    Consulta la lista en la sección permisos de la guía acerca de cómo hacer que el conjunto de una app se pueda ejecutar como app instantánea.

  • ¿Qué versión de SDK debe utilizar una app instantánea?

    El manifiesto de tu app instantánea debe estar definido con targetSdkVersion en 26 o superior.

  • ¿Hay alguna limitación en cuanto a la manera en la que una app instantánea controla el tráfico de red?

    Todo el tráfico de red generado por las apps instantáneas debe usar HTTPS. Las apps instantáneas no admiten el uso de HTTP.

  • ¿Cómo hacen los desarrolladores para publicar apps instantáneas?

    Los desarrolladores publican sus apps instantáneas a través de la Google Play Console, de forma similar a como lo hacen con sus aplicaciones de Android existentes. Para obtener más información, consulta Cómo distribuir tu app instantánea.

  • ¿Se requiere Smart Lock para las apps instantáneas?

    Sí, las apps que requieren que los usuarios inicien sesión deben implementar Smart Lock para contraseñas en Android.

  • ¿Puedo implementar una app instantánea sin tener una aplicación Android instalable?

    No, debes tener una versión instalable de tu app de Android en Google Play.

  • ¿Puedo usar WebP para las vistas?

    Sí, debes usar WebP a fin de formatear las imágenes para las vistas.

  • ¿Cómo se muestran las apps instantáneas en una búsqueda web en Google?

    En los resultados de la búsqueda, las apps instantáneas se muestran de la misma manera que las aplicaciones instalables. Si hay una app instantánea asociada con la URL, la app aparece con un ícono de app y una etiqueta con el texto "Instant".

  • ¿Puedo usar Google Play Instant para distribuir mi juego?

    Sí, Google Play Instant admite juegos. Para comenzar, aprende a convertir un juego existente en una app instantánea.

Estructura, características y arquitectura del proyecto

  • ¿Las apps instantáneas y las aplicaciones instalables tienen archivos build.gradle independientes?

    Necesitas dos archivos build.gradle independientes si compilas tu app instalable y tu app instantánea a partir del mismo proyecto de Android Studio.

    • Compila tu app instalable a partir de un módulo que use las reglas de compilación de com.android.application.
    • Compila tu app instantánea a partir de un módulo que use las reglas de compilación de com.android.instantapp.

    Para obtener más información acerca de cómo crear una app instantánea, consulta la guía Cómo convertir un módulo de funciones en una app instantánea.

  • ¿Puedo compilar mi aplicación instalable de forma independiente de mi app instantánea?

    La estructura de proyecto recomendada, como se detalla en las guías Cómo convertir una app en un módulo de funciones base y Cómo convertir un módulo de funciones en una app instantánea, prioriza la separación de las funciones en módulos de biblioteca, donde la app instalable y la app instantánea dependan de esos módulos de biblioteca. Si sigues la estructura recomendada para el proyecto, puedes compilar cada función de forma independiente a partir de la aplicación instalable.

  • ¿El NDK es compatible con mi app instantánea?

    Sí. El NDK es compatible con dispositivos que ejecutan Android 5.0 (nivel de API 21) y versiones posteriores.

  • ¿Cómo navego entre actividades en una app instantánea?

    Para navegar de una actividad a otra, inicia una URL dedicada en una función distinta. Debes realizar las actividades a través de una URL. Para obtener más información acerca de la realización de actividades a través de una URL y la implementación de vínculos de app, consulta Cómo proporcionar acceso URL a una app instantánea.

  • ¿Puedo usar en mi aplicación principal una actividad de enrutamiento que se ocupe de los vínculos directos y de llamar a otras actividades cuando sea necesario?

    Las apps instantáneas también deben ser modulares en cuanto a su funcionalidad. Una actividad de enrutamiento central restringe la modularización. El uso de Android App Links permite que el framework de Android realice el enrutamiento, y a la vez facilita una mayor modularización.

  • ¿Puedo tener varias actividades en una misma función?

    Puede haber varias actividades en una sola función. No obstante, debes tener en cuenta el límite de tamaño de 4MB para las descargas de apps instantáneas. Además, cada función debe tener una única actividad como punto de entrada.

  • ¿Puedo compartir recursos entre funciones?

    Sí, los recursos de la función base están disponibles para todas las funciones. Los recursos incluidos en una función dependiente se limitan a esa función específica.

    Los nombres de los recursos basados en archivos deben ser diferentes en las funciones dependientes y la función base. Por ejemplo, si tu función base define un diseño en res/layout/feature_layout.xml y una función dependiente define otro diseño con el mismo nombre de archivo, la app instantánea podría cargar el diseño desde la función dependiente cuando en realidad se espera el diseño de la función base.

    A su vez, todos los recursos a los que se hace referencia en el manifiesto del módulo de una función deben estar presentes en el módulo de la función base.

  • Si hay dos funciones en la aplicación, ¿comparten la memoria?

    Sí, las funciones se ejecutan en el mismo proceso y comparten el contexto de la aplicación. Siempre que pertenezcan a la misma app instantánea, el comportamiento de las funciones es similar al de los diversos componentes de una aplicación individual. El acceso a componentes como el almacenamiento y los recursos es similar.

    Sin embargo, las apps instantáneas tienen algunas restricciones en comparación con los APK instalables. Para obtener más información, consulta la página de la política de Google Play Instant.

  • ¿Puedo tener varios fragmentos en un paginador de una sola actividad?

    Sí, puedes tener varios fragmentos en una sola actividad y definir los fragmentos relevantes para la actividad dentro de la función. Las actividades deben ser el punto de entrada principal en una función. Recuerda que los fragmentos no pueden asociarse a un vínculo directo ni iniciarse por separado de una actividad.

  • ¿La app instantánea debe tener un ícono de selector independiente?

    No, no debes ramificar tu IU. La app instantánea y la app instalable deben compartir el mismo ícono porque es importante que las dos apps proporcionen la misma apariencia. Por lo tanto, debes usar los mismos elementos visuales para ambas apps.

  • ¿Cómo me doy cuenta si mi app se está ejecutando como app instalable o app instantánea?

    Usa el método isInstantApp(). El método devuelve el valor true si el proceso actual es una app instantánea.

  • ¿Cómo puedo solicitar a los usuarios que instalen mi app desde mi app instantánea?

    Usa el método showInstallPrompt(). El usuario verá una solicitud de instalación de la versión regular del APK de la aplicación.

  • ¿Distintos APK de funciones corresponden a distintos artículos en Google Play?

    No, la app instantánea y la app instalable comparten el mismo nombre de paquete y corresponden al mismo artículo.

  • ¿Hay alguna restricción en cuanto al nombre de las funciones en mi app instantánea?

    Los módulos de las funciones respetan las convenciones de nomenclatura establecidas para nombres de paquetes de Java. Por ejemplo, no puedes usar guiones en los nombres de las funciones. Para obtener más información acerca de las convenciones de nomenclatura de paquetes de Java, consulta la documentación de Java.

  • ¿Cómo transfiero datos desde una app instantánea a una app instalada?

    En el caso de dispositivos que ejecutan Android 8.0 (nivel de API 26) o versiones posteriores, los datos de la app instantánea se transfieren automáticamente cuando comienza la instalación del APK si la app instalada está configurada para usar targetSandboxVersion 2.

    En el caso de apps instaladas que no estén configuradas para usar targetSandboxVersion 2, o en el caso de dispositivos que ejecutan Android 7.1 (nivel de API 25) o inferiores, considera usar la API de cookies (ejemplo) o la API de almacenamiento (ejemplo) para transferir los datos.

  • ¿Las apps instantáneas admiten el uso de MultiDex?

    Se puede usar MultiDex para apps instantáneas. Si tienes una app que cumple con el requisito de tamaño máximo pero incluye más métodos que el límite de DEX de 65,536 métodos, igual puedes habilitar MultiDex y publicarla como app instantánea.

Analytics, Google Play e implementación

  • ¿Puedo restringir la ejecución de mi app instantánea a países específicos?

    Las apps instantáneas están limitadas a los países donde la app instalable esté disponible. En esos países, los desarrolladores pueden elegir países a los que deseen dirigir su app instantánea.

  • ¿Es necesario que publique una app instalable para probar mi app instantánea en versión Alfa a través de Google Play?

    Para probar la implementación de tu app instantánea en el entorno de pruebas interno a través de Google Play, debes tener una versión borrador de la versión de tu app instalable en Google Play Console. Para obtener más información acerca de la implementación y la prueba de una app instantánea, consulta Cómo distribuir tu app instantánea.

Tamaño de la aplicación

Nota: Para los juegos en Google Play Instant, el límite de descarga es de 10 MB. Si eres desarrollador de juegos, sigue las pautas de esta sección, pero reemplaza cada instancia de 4 MB por 10 MB.

  • ¿Qué significa el límite de descarga total de 4MB?

    El tamaño de la app instantánea (función base más las funciones dependientes que haya incluidas) debe ser lo más pequeño posible. Cuanto más pequeña sea tu app, más sencilla de descargar será para los usuarios. Sin embargo, una vez que la app instantánea se ejecuta en el dispositivo del usuario, puedes descargar más datos y almacenarlos de forma interna. No hay un límite de 4MB estricto para almacenar datos en el almacenamiento interno del dispositivo.

    Para calcular el tamaño, descomprime el Instant App APK y examina los archivos del APK. Puedes usar el tamaño de disco de los archivos del APK o puedes abrir el analizador de APK y comprobar el valor de Raw File Size.

    Para una app instantánea con varias funciones, debes sumar el tamaño del APK de la función base al del APK de una función. El tamaño total de los dos APK debe ser menor que 4MB.

  • ¿Cómo se ve afectado el límite de 4MB por la densidad, la ABI o el idioma del APK?

    Para calcular el tamaño de la función, se suma el tamaño del APK de la función, el tamaño del APK de la función base y los tamaños más grandes de los APK de idioma, densidad de pantalla y ABI asociados con la función. Por ejemplo, si una función tiene tres idiomas, un APK de densidad de pantalla y ningún APK de ABI, el tamaño del APK de la función final se calcula sumando el tamaño del APK de la función, la función base, el APK más grande de idioma y el APK de la densidad de pantalla.

  • ¿Los usuarios deben descargar los APK de la función base y la función dependiente cada vez que descargan la misma app instantánea?

    Cuando los usuarios descargan una app instantánea, reciben la función base y la función dependiente. Cuando se solicita una segunda función o APK de función, el usuario recibe solo el APK de función de esa función específica. En tal caso, la función base no se vuelve a descargar.

    El sistema puede borrar el caché de apps instantáneas según sea necesario durante la recolección de elementos no usados. Si el usuario reinicia el teléfono, se borra la caché de las apps instantáneas. Esto significa que los usuarios deben volver a descargar la función base.

  • ¿Cuándo ocurre la validación de 4MB?

    La validación ocurre cuando subes tu app instantánea a la pista de producción de la Google Play Console.

  • Mis vínculos no se abren en una app instantánea al hacer clic en ellos desde otras apps. En cambio, se abren en un navegador de la app. ¿Hay alguna manera de garantizar que los usuarios sean direccionados a una app instantánea?

    Como los vínculos de las apps son URL regulares, las apps pueden obligar a que se abran en un navegador de la app. Considera usar Firebase Dynamic Links para contener tus URL y garantizar que los vínculos se abran siempre en tu app instantánea.

  • El manifiesto principal de mi app incluye otras URL u otros dominios de URL que no son compatibles o que no tengo. ¿Cuáles son las consecuencias?

    Si el propietario del dominio de una URL no está verificado, la app instantánea no se puede publicar.

  • Mi URL abre una actividad incorrecta. ¿Qué debo hacer?

    La actividad seleccionada se basa directamente en los elementos <intent-filter> de tu actividad. Busca errores comunes, como distintas actividades con atributos "android:pathPrefix" superpuestos. Por ejemplo, si una actividad define android:pathPrefix="/recordList" y otra define android:pathPrefix="/record", el comportamiento puede ser indefinido. Usa definiciones de ruta que no sean ambiguas, como android:path="/recordList" y android:pathPrefix="/record/". Esto permitiría que /recordList coincidiera con una lista de desplazamiento de todos los registros y /record/123 coincidiera con un registro específico.

Cómo ejecutar apps instantáneas en un dispositivo

  • ¿Existe una manera de que los usuarios puedan desactivar Google Play Instant?

    Sí. Los usuarios pueden elegir la desactivación cuando inician una app instantánea por primera vez. También pueden desactivar las apps instantáneas desde Configuración.

  • ¿Pueden dos apps instantáneas ejecutarse en paralelo?

    Sí, las apps instantáneas pueden ejecutarse en paralelo y los usuarios pueden pasar de una a la otra. Solo la app instantánea que se encuentra en primer plano tiene un ícono en el panel de notificaciones.

  • ¿Puede un usuario finalizar procesos de apps instantáneas y reiniciarlos desde Recientes o desde la pantalla inicial del dispositivo?

    Un usuario puede reiniciar una app instantánea desde Recientes o puede tocar la URL que la inició previamente.

    El proceso de la app instantánea se finaliza cuando la app instantánea queda en un estado inactivo. Sin embargo, el almacenamiento interno de la app, como las bases de datos de SQLite y las preferencias compartidas, permanece activo. Si el dispositivo está muy limitado, la app instantánea podría expulsarse y el almacenamiento interno se elimina. En este evento poco probable, debes restaurar el estado de la app instantánea desde los servidores.

  • ¿Una app instantánea puede iniciar otras apps instantáneas que están instaladas en el dispositivo del usuario?

    Las apps instantáneas pueden iniciar una app instalada mediante la activación de una intent implícita. Sin embargo, no puede iniciar la mayoría de las apps instaladas mediante una intent explícita. Es posible hacer que las aplicaciones instaladas interactúen con las apps instantáneas mediante intents explícitas.

  • ¿Qué app se abre cuando un usuario tiene una versión anterior de la app instalada y hace clic en una URL de app instantánea con funciones más nuevas?

    La app instalada siempre tiene prioridad por sobre una app instantánea.

  • ¿Cómo reciben los usuarios las versiones nuevas de una app instantánea? ¿Google la actualiza automáticamente en los dispositivos de los usuarios?

    La última versión de la app instantánea se proporciona a los usuarios nuevos y existentes cuyo caché de apps instantáneas haya caducado.