La biblioteca de Play Core te permite probar de forma local la capacidad de tu app para hacer lo siguiente, sin necesidad de conectarte a Play Store:
- Solicitar y supervisar las instalaciones de módulos
- Procesar los errores de instalación
- Usar
SplitCompat
para acceder a módulos
En esta página, se describe cómo implementar los APK divididos de tu app en el dispositivo de prueba para que Play Core use automáticamente esos APK a fin de simular la solicitud, descarga e instalación de módulos desde Play Store.
Si bien no necesitas realizar ningún cambio en la lógica de tu app, deberás cumplir con los siguientes requisitos:
- Descarga e instala la versión más reciente de
bundletool
. Necesitasbundletool
para compilar un nuevo conjunto de APK instalables desde el paquete de tu app. - Asegúrate de que tu app use Play Core 1.7.2 o una versión posterior. Para obtener más información, consulta Cómo incluir la biblioteca de Play Core en tu proyecto.
Cómo compilar un conjunto de APK
Si aún no lo hiciste, compila los APK divididos de tu app de la siguiente manera:
- Crea un paquete de aplicación para tu app con uno de los siguientes métodos:
- Usa Android Studio y el complemento de Android para Gradle a fin de compilar y firmar un Android App Bundle.
- Compila tu paquete de aplicación desde la línea de comandos.
Usa
bundletool
a fin de generar un conjunto de APK para todas las configuraciones del dispositivo con el siguiente comando:bundletool build-apks --local-testing --bundle my_app.aab --output my_app.apks
La marca --local-testing
incluye metadatos en los manifiestos de tus APK que permiten que la biblioteca de Play Core sepa usar los APK de división local para probar la instalación de los módulos de funciones sin necesidad de conectarse a Play Store.
Cómo implementar tu app en el dispositivo
Después de compilar un conjunto de APK con la marca --local-testing
, usa bundletool
para instalar la versión base de tu app y transferir los APK adicionales al almacenamiento local de tu dispositivo. Puedes realizar ambas acciones con el siguiente comando:
bundletool install-apks --apks my_app.apks
Ahora, cuando inicias tu app y completas el flujo de usuarios para descargar e instalar un módulo de funciones, la biblioteca de Play Core usa los APK que bundletool
transfirió al almacenamiento local del dispositivo.
Cómo simular un error de red
Para simular las instalaciones de módulos desde Play Store, la biblioteca de Play Core usa una alternativa a SplitInstallManager
, llamada FakeSplitInstallManager
, para solicitar el módulo. Cuando usas bundletool
con la marca --local-testing
para compilar un conjunto de APK y, luego, implementarlos en el dispositivo de prueba, se incluyen metadatos que le indican a la biblioteca de Play Core que debe cambiar automáticamente las llamadas a la API de tu app a fin de invocar FakeSplitInstallManager
, en lugar de SplitInstallManager
.
FakeSplitInstallManager
incluye una marca booleana que puedes habilitar para simular un error de red la próxima vez que tu app solicite instalar un módulo. Para acceder a FakeSplitInstallManager
en tus pruebas, puedes obtener una instancia usando FakeSplitInstallManagerFactory
, como se muestra a continuación:
Kotlin
// Creates an instance of FakeSplitInstallManager with the app's context. val fakeSplitInstallManager = FakeSplitInstallManagerFactory.create(context) // Tells Play Core Library to force the next module request to // result in a network error. fakeSplitInstallManager.setShouldNetworkError(true)
Java
// Creates an instance of FakeSplitInstallManager with the app's context. FakeSplitInstallManager fakeSplitInstallManager = FakeSplitInstallManagerFactory.create(context); // Tells Play Core Library to force the next module request to // result in a network error. fakeSplitInstallManager.setShouldNetworkError(true);