A biblioteca Play Core permite testar localmente a capacidade do seu app de fazer o seguinte, sem se conectar à Play Store:
- Solicitar e monitorar instalações de módulos.
- Processar erros de instalação.
- Use
SplitCompat
para acessar módulos.
Esta página descreve como implantar os APKs divididos do seu app no dispositivo de teste para que a Play Core use esses APKs automaticamente para simular solicitações, downloads e instalação de módulos da Play Store.
Embora não seja necessário fazer mudanças na lógica do app, você precisa atender aos seguintes requisitos:
- Faça o download e instale a versão mais recente do
bundletool
. Você precisa dobundletool
para criar um novo conjunto de APKs instaláveis a partir do pacote do seu app. - Verifique se o app usa a Play Core 1.7.2 ou versão mais recente. Para saber mais, consulte Incluir a biblioteca Play Core no seu projeto.
Criar um conjunto de APKs
Crie os APKs divididos do seu app da seguinte maneira, se ainda não tiver feito isso:
- Crie um pacote de apps usando um dos seguintes métodos:
- Use o Android Studio e o Plug-in do Android para Gradle para criar e assinar um Android App Bundle.
- Crie seu pacote de apps na linha de comando.
Use
bundletool
para gerar um conjunto de APKs para todas as configurações do dispositivo com o seguinte comando:bundletool build-apks --local-testing --bundle my_app.aab --output my_app.apks
A sinalização --local-testing
inclui metadados nos manifestos dos APKs que
permitem que a biblioteca Play Core saiba usar os APKs divididos locais para testar
a instalação de módulos de recursos sem se conectar à Play Store.
Implantar seu app no dispositivo
Depois de criar um conjunto de APKs usando a sinalização --local-testing
, use bundletool
para instalar a versão base do app e transferir outros APKs para o armazenamento local do dispositivo. Você pode executar as duas ações com o seguinte comando:
bundletool install-apks --apks my_app.apks
Agora, quando você iniciar o app e concluir o fluxo do usuário para fazer o download e instalar
um módulo de recursos, a biblioteca Play Core usará os APKs que bundletool
transferiu para o armazenamento local do dispositivo.
Simular um erro de rede
Para simular instalações de módulo da Play Store, a biblioteca Play Core usa uma alternativa ao SplitInstallManager
, chamada FakeSplitInstallManager
, para solicitar o módulo. Quando você usa bundletool
com a sinalização --local-testing
para criar um conjunto de APKs e implantá-los no dispositivo de teste, ele inclui metadados que instruem a biblioteca Play Core a alternar automaticamente as chamadas de API do seu app para invocar FakeSplitInstallManager
, em vez de SplitInstallManager
.
FakeSplitInstallManager
inclui uma sinalização booleana que pode ser ativada para simular um erro de rede na próxima vez que seu app solicitar a instalação de um módulo. Para acessar FakeSplitInstallManager
nos testes, é possível conseguir uma instância dele usando o FakeSplitInstallManagerFactory
, conforme mostrado abaixo:
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);