Configurar o envio instantâneo

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:

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:

  1. Abra o projeto do app no ambiente de desenvolvimento integrado.
  2. Selecione File > New > New Module na barra de menus.
  3. Na caixa de diálogo Create New Module, selecione Instant Dynamic Feature Module e clique em Next.
  4. Na seção Configure your new module, faça o seguinte:

    1. No menu suspenso, selecione a opção Base application module para o projeto do seu app.
    2. 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.
    3. 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.
    4. 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.
    5. 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>
      
    6. 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>
      
  5. 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:

  1. Selecione Run > Edit Configurations na barra de menus.
  2. No painel à esquerda da caixa de diálogo Run/Debug Configurations, selecione a configuração de Android App que você quer usar.
  3. 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.
  4. 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.