O Google Play Instant permite que os usuários interajam com seu app sem instalar APKs no dispositivo. Eles podem conhecer seu app usando o botão "Testar agora" da Google Play Store ou um URL criado por você. Essa forma de entregar conteúdo facilita o aumento do engajamento com o app.
Só é possível ativar instantaneamente um recurso se você também ativar instantaneamente o módulo base do app. Isso acontece porque, se um usuário quiser experimentar um dos módulos de recursos instantâneos do app, o dispositivo também precisará fazer o download do módulo base do app para ver códigos e recursos comuns. Para oferecer compatibilidade com o Google Play Instant, o download do módulo base e do recurso precisa atender a vários critérios:
- Tamanho máximo: o tamanho combinado do módulo base instantâneo e do módulo de recursos instantâneos precisa ser de, no máximo, 10 MB. Para saber mais, leia Ativar experiências instantâneas reduzindo o tamanho do app ou jogo.
- Atividade em segundo plano: um módulo ativado instantaneamente não pode usar serviços em segundo plano. Além disso, esse módulo não pode enviar notificações ao ser executado em segundo plano.
Se você criar um módulo de recursos instantâneos usando o Android Studio 3.5 ou uma versão mais recente, como descrito nesta seção, o ambiente de desenvolvimento integrado ativará o recurso instantâneo nos módulos base e de recursos, incluindo os itens a seguir no manifesto de cada módulo:
<manifest xmlns:dist="http://schemas.android.com/apk/distribution"
... >
<dist:module dist:instant="true" />
...
Além disso, quando alguém fizer o download do seu app e instalá-lo, os módulos de recursos instantâneos serão transferidos e instalados automaticamente com o APK base do app. Assim, o ambiente de desenvolvimento integrado também inclui o seguinte no módulo de recursos instantâneos.
<dist:module ...>
<dist:delivery>
<dist:install-time />
</dist:delivery>
</dist:module>
Esse comportamento significa que, quando você define dist:instant="true"
, não é possível
incluir <dist:on-demand />
. No entanto, você pode solicitar módulos instantâneos sob
demanda na sua experiência instantânea
usando a biblioteca Play Feature Delivery.
Configurar um novo módulo para entrega instantânea
Para adicionar um módulo de recursos instantâneos ao projeto do app usando o Android Studio, faça o seguinte:
- Abra o projeto do app no ambiente de desenvolvimento integrado.
- Selecione File > New > New Module na barra de menus.
- Na caixa de diálogo Create New Module, selecione Instant Dynamic Feature Module e clique em Next.
Na seção Configure your new module, faça o seguinte:
- No menu suspenso, selecione a opção Base application module para o projeto do seu app.
- Especifique um nome para o módulo em Module name. O ambiente de desenvolvimento integrado usa esse nome para identificar o
módulo como um subprojeto do Gradle no
arquivo de configurações do Gradle. Quando o
pacote de apps é criado, o Gradle usa o último elemento do nome do
subprojeto para inserir o atributo
<manifest split>
no manifesto do módulo de recursos. - Especifique o nome do pacote do módulo. Por padrão, o Android Studio sugere um nome de pacote que combina o nome do pacote raiz do módulo base com o nome do módulo especificado na etapa anterior.
- Selecione uma opção em Minimum API level para definir o nível mínimo de API com que o módulo será compatível. Esse valor precisa corresponder ao do módulo base.
Use a opção Module title para especificar o título do módulo em até 50 caracteres. A plataforma usa esse título para identificar o módulo para os usuários. Por isso, o módulo base do app precisa incluir o título do módulo como um recurso de string, que você pode traduzir. Durante a criação do módulo usando o Android Studio, o ambiente de desenvolvimento integrado adiciona o recurso de string ao módulo base para você e injeta a seguinte entrada no manifesto do módulo de recursos:
<dist:module ... dist:title="@string/feature_title"> </dist:module>
Marque a caixa ao lado de Fusing se você quiser que esse módulo esteja disponível para dispositivos com Android 4.4 (nível 20 da API) e versões anteriores e seja incluído em vários APKs. O Android Studio injeta o seguinte no manifesto do módulo para refletir sua escolha:
<dist:module> <dist:fusing dist:include="true" /> </dist:module>
Clique em Finish.
Quando o Android Studio terminar de criar seu módulo, inspecione o conteúdo no painel Project (selecione View > Tool Windows > Project na barra de menus). O código, os recursos e a organização padrão precisam ser semelhantes aos do módulo padrão do app.
Depois de implementar um recurso que você quer transferir por download sob demanda, aprenda a solicitá-lo usando a biblioteca Play Feature Delivery.
Implantar o app
Durante o desenvolvimento do app com suporte a módulos de recursos, você pode implantar o app em um dispositivo conectado, como faria normalmente, selecionando Run > Run na barra de menus ou clicando em Run na barra de ferramentas.
Se o projeto do app incluir um ou mais módulos de recursos, você poderá escolher quais recursos incluir ao implantar o app modificando a configuração de execução/depuração existente da seguinte maneira:
- Selecione Run > Edit Configurations na barra de menus.
- No painel à esquerda da caixa de diálogo Run/Debug Configurations, selecione a configuração de Android App que você quer usar.
- Em Dynamic features to deploy, na guia General, marque a caixa ao lado de cada módulo de recursos que você quer incluir durante a implantação do app.
- Clique em OK.
Por padrão, o Android Studio não implanta seus módulos instantâneos como uma experiência instantânea nem usa pacotes de apps para implantar seu app. Em vez disso, o ambiente de desenvolvimento integrado cria e instala no seu dispositivo APKs otimizados para a velocidade de implantação em vez do tamanho do APK. Para configurar o Android Studio para criar e implantar APKs e experiências instantâneas a partir de um pacote de apps, modifique sua configuração de execução/depuração.