O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Criar um app instantâneo que usa o plug-in de recursos

Cuidado: o fluxo de trabalho nesta página é válido apenas para os desenvolvedores que criaram um app instantâneo usando o Android Studio 3.1.

É altamente recomendável usar o Android Studio 3.3 ou posterior para criar um pacote de apps instantâneos.

Este guia ensina como configurar seu ambiente de desenvolvimento para trabalhar com apps instantâneos. Em seguida, você aprenderá a criar um app instantâneo com o assistente Create project ou a partir de um app que já existe. Você saberá como executar e depurar um projeto do Android Studio que contém um app instantâneo. Por fim, o guia mostrará recursos relacionados à publicação de apps instantâneos.

Faça o download do Android Studio 3.0 ou posterior antes de seguir as etapas deste guia.

Preparar seu ambiente de desenvolvimento

No Android Studio, abra o Android SDK Manager. Na guia SDK Platforms verifique se o Android 6.0 (API de nível 23) ou posterior está instalado.

Depois disso, abra a guia SDK Tools e instale os pacotes a seguir:

  • Android SDK Build-Tools 26.x ou posterior
  • Android SDK Platform Tools 25.x ou posterior
  • Ferramentas do SDK Android (mais recente)
  • SDK de desenvolvimento do Google Play Instant (mais recente)
  • Repositório de suporte (mais recente)
    • Todas as dependências do Repositório de suporte (versão mais recente de cada uma)

Solicitar somente permissões compatíveis

Os apps instantâneos só podem usar permissões da lista no guia sobre como Tornar seu app instantâneo usando o Android App Bundle.

Criar seu app instantâneo

Você pode criar um app instantâneo usando um dos fluxos de trabalho a seguir:

Criar um novo projeto de app instantâneo

Para criar um app instantâneo, siga as seguintes etapas:

  1. Abra o Android Studio e crie um novo projeto:
    • Se você ainda não abriu um projeto, na janela Welcome to Android Studio, clique em Start a new Android Studio project.
    • Se você já tem um projeto aberto, selecione File > New Project.
  2. Na janela Create Android Project, faça o seguinte:
    1. Na caixa Application name, insira "My First Instant App".
    2. Na caixa Company domain, insira "example.com".
    3. Deixe a opção Package name como "com.example.myfirstinstantapp".
    4. Clique em Next.
  3. Na janela Target Android Devices, faça o seguinte:
    1. Verifique se a opção Phone and Tablet está selecionada.
    2. Na lista Minimum SDK, marque a opção Include Android Instant app support. Clique em Next.
  4. Na janela Customize Instant App Support, mantenha as configurações padrão. Clique em Next.
  5. Na janela Add an Activity to Mobile, selecione Empty Activity. Clique em Next.
  6. Na janela Configure Activity, faça o seguinte:
    • Na caixa Instant App URL Host, insira "myfirstinstantapp.example.com" (sem as aspas).
    • Na caixa Instant App URL route, insira "/hello" (sem as aspas).
    • Mantenha os valores padrão das outras configurações.
    • Clique em Finish.

O Android Studio criará e carregará os arquivos do seu novo projeto.

Modularizar um app existente

Esta seção descreve como converter um app monolítico existente em um app modularizado e como adicionar funções de instantaneidade ao app recém-modularizado.

Criar módulos de recursos básicos e de APK

Para criar apps instantâneos, primeiro é necessário criar os seguintes módulos:

  • Um módulo de recursos básicos, ou módulo de recursos, que será empacotado em todos os apps instantâneos que você criar. Ele é diferente do módulo básico do Android App Bundle, que contém tanto a experiência do app instantâneo quanto a experiência inicial do app instalado.
  • Um módulo mínimo que contém somente o código compartilhado essencial para a compilação do arquivo do APK do app.

Depois de concluir essa etapa, o processo de compilação do app será separado da lógica do app, o que permite a conversão de parte do módulo baseado em lógica para um app instantâneo.

Designar seu app como um módulo de recursos básicos

Quando você cria um app, ele contém automaticamente um módulo denominado "app". Esta seção descreve como declarar a lógica do app como parte de um módulo de recursos básicos.

Para mover a lógica do app para um módulo de recursos básicos, siga as etapas a seguir:

  1. Renomeie o módulo para algo como base.
  2. Atualize as declarações de importação dos recursos do app para que elas se refiram ao módulo recém-renomeado.
  3. Abra o arquivo base/build.gradle do módulo e designe o módulo como um módulo de recursos fazendo a seguinte mudança:

    base/build.gradle

        // Replace
        // apply plugin: 'com.android.application'
        // with
        apply plugin: 'com.android.feature'
  4. Esse módulo representa o módulo de recursos básico do app. Para marcá-lo como tal, configure a sinalização baseFeature como true:

    base/build.gradle

        android {
            ...
            baseFeature true
            ...
        }

    Observação: se seu app tem somente um módulo de recursos, ele precisa ser designado como o módulo de recursos básicos.

Criar um módulo de APK mínimo

Além de criar um módulo de recursos básicos, também é necessário criar um módulo mínimo. Esse módulo contém o código compartilhado necessário para compilar o arquivo do APK do app.

Para criar um módulo mínimo, siga as etapas a seguir:

  1. Selecione File > New > New Module...
  2. Na caixa de diálogo Create New Module exibida, selecione Phone & Tablet Module. Clique em Next.
  3. Na janela Phone & Tablet Module, escolha um nome para o módulo e para o pacote. Este guia usa apk como nome do módulo.

    Clique em Next.

  4. Na janela Add an Activity to Mobile, selecione Add No Activity. Clique em Finish.

O Android Studio concluirá a criação do módulo mínimo e o carregará na janela do projeto.

Associar o módulo mínimo com módulos de recursos

Você criou um módulo de recursos, mas o Android Studio não o inclui no arquivo do APK, a menos que ele tenha sido associado ao módulo mínimo do app. Para fazer isso, siga as seguintes etapas:

  1. Como é preciso sempre declarar o ID do aplicativo no módulo do Gradle que declara com.android.application, mova a linha applicationID de um módulo de recursos para o módulo mínimo.

    Para fazer isso, siga as instruções destes snippets de código:

    base/build.gradle

        android {
           defaultConfig {
               // Remove this line
               // applicationId "com.mycompany.example"
               ...
           }
           ...
        }
    
        dependencies {
              // Add this line to declare this module's dependency
              // on the minimal module
              application project(":apk")
        }

    apk/build.gradle

        android {
            ...
            defaultConfig {
                // replace
                // applicationId "com.mycompany.example.apk"
                // with
                applicationId "com.mycompany.example"
                ...
            }
            ...
        }
  2. O módulo mínimo precisa depender de cada módulo de recursos do seu app. Para fazer isso, atualize as dependências de compilação, conforme mostrado no snippet de código a seguir:

    apk/build.gradle

        dependencies {
            implementation project(':base')
            // If your app contains feature modules other than the base feature module,
            // add dependency lines that are similar to the following:
            // implementation project(':feature1')
            // implementation project(':feature2')
        }
  3. No módulo de recursos básicos, atualize o arquivo AndroidManifest.xml para que ele inclua o conteúdo a seguir:

    base/src/main/AndroidManifest.xml

        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:tools="http://schemas.android.com/tools"
                  package="com.mycompany.example">
        ...
        </manifest>
  4. Cada arquivo de manifesto do seu app precisa referenciar um pacote único. Por isso, atualize o nome no AndroidManifest.xml do APK da seguinte maneira:

    apk/src/main/AndroidManifest.xml

        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                  package="com.mycompany.example.app">
        </manifest>

Criar mais módulos de recursos para o Google Play Instant

É mais fácil atualizar seu app usando módulos de recursos. Esses módulos também facilitam a criação de apps instantâneos, em que os usuários podem clicar em um link para acessar a funcionalidade de um módulo de recursos específico, sem ter que instalar seu app.

Se você está criando um módulo de recursos do zero, pode adicionar recursos para o Google Play Instant imediatamente.

Para criar um novo módulo de recursos para o Google Play Instant, siga as seguintes etapas:

  1. No Android Studio, selecione File > New > New Module...
  2. Na janela Create New Module exibida, selecione Instant App. Clique em Next.
  3. Dê um nome ao novo módulo de recursos. Este guia usa o nome "instant". Clique em Finish.

O Android Studio concluirá a criação e a compilação do novo módulo de recursos do seu app instantâneo.

Verificar a dependência do módulo de recursos básico

Verifique se o módulo de recursos inclui uma dependência do módulo de recursos básico do seu app:

instant/build.gradle

dependencies {
        implementation project(':base')
    }
    

Ativar a função "Testar agora"

Figura 1. O botão "Testar agora" que é exibido para um app instantâneo.

O Google Play Instant permite oferecer seu app instantâneo aos usuários sem que eles tenham que clicar em um URL. Essa experiência, denominada "Testar agora", está disponível na Play Store, conforme mostrado na Figura 1.

Há duas opções para oferecer essa função no seu app:

  1. Mantenha sua atividade padrão como ponto de entrada para a experiência "Testar agora".
  2. Adicione URLs a atividades e declare um URL padrão, que se tornará o ponto de entrada para a experiência "Testar agora".
Usar uma atividade padrão

Uma atividade que inclui o seguinte filtro de intents se torna o ponto de entrada:

<activity android:name="com.example...MainActivity" ... >
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    
Criar um URL padrão

Se você oferece acesso de URL a seu app instantâneo, é necessário incluir um URL padrão. É esse URL que é invocado quando o usuário clica em Testar agora na Google Play Store ou quando ele fixa seu app instantâneo em uma tela de início. Normalmente, o URL padrão corresponde à atividade principal do app, encontrada no módulo de recursos básicos.

Para adicionar um URL padrão, inclua um atributo <meta-data> no módulo do app que contém a atividade principal, conforme mostrado no snippet de código a seguir:

base/manifests/AndroidManifest.xml

<activity android:name="com.example.base.MainActivity" ... >
        <meta-data android:name="default-url"
                   android:value="https://example.com/welcome" />
    </activity>
    

Oferecer acesso de URL a um app instantâneo

Se você quer que os usuários consigam abrir seu app instantâneo fora da Play Store, por exemplo, em um banner no site do app, conclua uma destas tarefas:

  • Use a API Launch:

    https://play.google.com/store/apps/details?id=package_name&launch=true
  • Adicione links de app ao app. Cada link de app é um URL específico seu que, quando clicado, carrega uma determinada atividade no app instantâneo.

Associar seu domínio com o app

O URL Mapping Editor ajuda a associar os links do app às respectivas atividades que devem ser exibidas como pontos de entrada para seu app instantâneo. Para saber mais, consulte Verificar links de apps para Android.

Verifique se o link do app aparece no arquivo de manifesto do módulo de recursos que é iniciado quando os usuários clicam no link. O exemplo a seguir inclui esse tipo de link para um módulo de recursos denominado "survey":

survey/manifests/AndroidManifest.xml

<activity android:name="com.example.survey_module.SurveyActivity" ... >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:scheme="http"
                android:host="example.com"
                android:pathPrefix="/survey" />
        </intent-filter>
    </activity>
    

Se depois de concluir essas etapas, um navegador tentar carregar um URL em vez do app instantâneo, limpe o banco de dados DevMan executando o seguinte comando:

$ adb shell pm clear com.google.android.instantapps.devman
    

Enviar os usuários diretamente ao app instantâneo

Você pode enviar os usuários diretamente ao app quando eles clicam no link relacionado. Para fazer isso, ofereça a verificação de links de apps seguindo as etapas a seguir:

  1. Declare associações de site com seu app instantâneo.
  2. Adicione a função de verificação automática a cada elemento <intent-filter> correspondente a um link de app:

    survey/manifests/AndroidManifest.xml

        <activity android:name="com.example.survey.SurveyActivity" ... >
             <intent-filter android:autoVerify="true">
                 ...
             </intent-filter>
        </activity>

Se você criou links para seu app instantâneo, pode carregar outro módulo de recursos de uma das maneiras a seguir:

  • Invoque um intent que carregue um URL associado ao módulo de recursos.
  • Use a Play Core Library.

Executar o app instantâneo

Você pode implantar apps instantâneos na maioria dos dispositivos com o Android 5.1 (API de nível 21) ou posterior. Se você não tem um dispositivo de teste, leia a seção a seguir para saber como configurar um emulador e executar apps instantâneos.

Para executar o projeto no Android Studio, faça o seguinte:

  1. Abra a janela Project clicando em View > Tool Windows > Project e selecione Run > Run 'instantapp'.
  2. Na janela Select Deployment Target, selecione o dispositivo em que você quer executar o app.

O Android Studio compilará o app e o instalará no dispositivo de teste ou no emulador.

Configurar um emulador compatível com apps instantâneos

Para configurar seu emulador para executar apps instantâneos, siga as etapas a seguir:

  1. Crie um Dispositivo virtual Android. Para usar todos os recursos mais recentes relacionados a apps instantâneos, configure o dispositivo para que ele execute o Android 8.1 (API de nível 27) ou posterior, use a arquitetura x86 e inclua APIs do Google.

  2. Inicie o emulador e faça login em uma Conta do Google de teste.

  3. No menu de configurações do sistema, acesse Google > Apps instantâneos e ative a opção "Instant Apps Android".

Implantar o app instantâneo para publicação

Para preparar seu app instantâneo para publicação, siga as etapas a seguir:

  1. No Android Studio, selecione Build > Generate Signed APK...
  2. Na janela Generate Signed APK, selecione o módulo instantapp. Clique em Next.
  3. Conclua as etapas descritas no artigo Distribuir sua experiência instantânea.
  4. Navegue para o Google Play Console para concluir o fluxo de trabalho, conforme descrito no artigo Preparar e lançar versões. Lembre-se de fazer upload do APK do app instantâneo.

Para saber mais sobre como preparar e lançar seu app no Google Play Console, consulte Assinar o app.

Outros recursos

Saiba mais sobre o Google Play Instant em:

Codelab: Criar seu primeiro app instantâneo (em inglês)
Adicione a compatibilidade com o Google Play Instant a um app existente.
Codelab: Criar um app instantâneo com vários recursos (em inglês)
Modularize um app com vários recursos.