Register now for Android Dev Summit 2019!

Perguntas frequentes

Esta página mostra respostas para as perguntas mais frequentes ou erros comuns que podem ser encontrados no desenvolvimento de um app instantâneo. Para mais informações sobre as diretrizes da experiência do usuário, leia as Práticas recomendadas da UX para apps no Google Play Instant e as Práticas recomendadas da UX para jogos no Google Play Instant.

Geral

  • Quais dispositivos são compatíveis com o Google Play Instant?

    O Google Play Instant é compatível com a maioria dos dispositivos que executam o Android 5.0 (API level 21) ou superior.

  • Os desenvolvedores precisam criar dois apps Android diferentes?

    Os desenvolvedores só precisam manter um projeto com uma única árvore de origem. Eles podem configurar o projeto para criar dois artefatos de compilação:

    • Versão instalável
    • Versão dos apps instantâneos

    O trabalho envolvido na inclusão do suporte para os apps instantâneos instaláveis ​​depende de como o app está estruturado no momento.

    Observação: A versão do app instantâneo precisa ser igual ou inferior à última versão do app instalável publicada.

  • Quais são os diferentes tipos de Android APIs e recursos que podem ser usados pelos apps instantâneos?

    A funcionalidade do Google Play Instant complementa um app Android existente. Isso significa que ele não substitui o app Android que já existe. Ele usa as mesmas Android APIs, o mesmo projeto e o mesmo código-fonte. A restrição de alguns recursos pode não corresponder às expectativas dos usuários em relação a um app que não está instalado. Por exemplo, um app instantâneo não pode usar serviços e enviar notificações em segundo plano nem acessar identificadores de dispositivos exclusivos.

  • Os usuários podem escolher instalar o app de maneira permanente?

    Os desenvolvedores podem permitir que os usuários instalem o app na Google Play usando o método showInstallPrompt().

  • Como funcionam as permissões no Google Play Instant?

    O Google Play Instant usa o modelo de permissões em tempo de execução introduzido no Android 6.0 (API de nível 23).

  • Quais permissões estão disponíveis para um app instantâneo?

    Consulte a lista na seção permissions no guia sobre como tornar um pacote de apps instantâneo.

  • Qual versão do SDK deve ser direcionada por um app instantâneo?

    O manifesto do seu app instantâneo precisa definir uma targetSdkVersion como 26 ou superior.

  • Há alguma limitação em relação a como um app instantâneo gerencia o tráfego de rede?

    Todo o tráfego de rede dos apps instantâneos precisa usar HTTPS. Os apps instantâneos não são compatíveis com HTTP.

  • Como o desenvolvedor publica um app instantâneo?

    Os desenvolvedores publicam os apps instantâneos usando o Google Play Console de forma similar aos apps Android existentes. Para mais informações, leia Distribuir seu app instantâneo.

  • O Smart Lock é obrigatório para apps instantâneos?

    Sim, os apps que exigem o login dos usuários precisam implementar o Smart Lock para senhas no Android.

  • Posso implementar um app instantâneo sem um app Android instalável?

    Não, é necessário ter uma versão instalável do seu app Android no Google Play.

  • Podemos usar WebPs para visualizações?

    Sim, você deve usar imagens no formato WebP para visualizações.

  • De que forma os apps instantâneos aparecem na Pesquisa Google na Web?

    Os apps instantâneos aparecem nos resultados da pesquisa da mesma forma que os apps instaláveis. Se houver um app instantâneo associado ao URL, ele será exibido com um ícone específico e um marcador com o texto “Instant”.

  • Posso usar o Google Play Instant para distribuir meu jogo?

    Sim, os jogos são totalmente compatíveis com o Google Play Instant. Para dar os primeiros passos, saiba como converter um jogo existente para um app instantâneo.

Estrutura, recursos e arquitetura do projeto

  • Os apps instantâneos e instaláveis têm arquivos build.gradle separados?

    Se você criar apps instaláveis e instantâneos a partir do mesmo projeto do Android Studio, será preciso separar os arquivos build.gradle.

    • Crie seu app instalável a partir de um módulo que usa as regras de compilação com.android.application.
    • Crie seu app instantâneo a partir de um módulo que usa as regras de compilação com.android.instantapp.

    Para mais informações sobre como criar um app instantâneo, consulte o guia sobre como Converter um módulo de recursos para um app instantâneo.

  • Posso criar meu app instalável separadamente do instantâneo?

    A estrutura de projeto recomendada, conforme discutido nos guias Converter um app para um módulo de recursos base e Converter um módulo de recursos para um app instantâneo prioriza a separação da funcionalidade em módulos de biblioteca, em que o app instalável e o instantâneo dependem desses módulos. Se você seguir a estrutura de projeto recomendada, será possível criar cada recurso do app instalável separadamente.

  • O NDK é compatível com meu app instantâneo?

    Sim. O NDK é compatível com dispositivos que executam o Android 5.0 (API de nível 21) e superior.

  • Como posso navegar entre atividades em um app instantâneo?

    Você pode navegar entre diferentes atividades iniciando um URL dedicado em um recurso diferente. Você precisa abordar atividades por meio de um URL. Para mais informações sobre a abordagem de atividades por meio de um URL e a implementação de links de apps, consulte Conceder acesso de URL a um app instantâneo.

  • Posso usar uma atividade de roteamento no meu app principal que lide com links diretos e chame outras atividades conforme a necessidade?

    Os apps instantâneos também precisam ser funcionalmente modulares. Uma atividade de roteamento central restringe a modularização. O uso do Android App Links permite que a estrutura do Android realize o roteamento, aumentando a modularização.

  • Posso ter mais de uma atividade em um só recurso?

    Você pode ter várias atividades em um só recurso. Entretanto, é preciso lembrar do limite de tamanho de 4MB para downloads de apps instantâneos. Além disso, cada recurso precisa ter só uma atividade como ponto de entrada.

  • Posso compartilhar funcionalidades entre recursos?

    Sim, as funcionalidades no recurso base estão disponíveis para todos os recursos. As funcionalidades contidas em um recurso dependente são limitadas a ele especificamente.

    Você precisa manter os nomes dos recursos baseados em arquivos distintos entre os recursos dependentes e o base. Por exemplo, se o recurso base definir um layout em res/layout/feature_layout.xml, e um recurso dependente especificar um layout diferente com o mesmo nome de arquivo, o app instantâneo poderá carregar o layout do recurso dependente em vez do layout do recurso base, como era esperado.

    Além disso, todos os recursos referenciados pelo manifesto de um módulo de recursos precisam estar presentes no módulo de recursos base.

  • Se o app tiver dois recursos, eles compartilham a memória?

    Sim, os recursos são executados no mesmo processo e compartilham o contexto do app. Desde que pertençam ao mesmo app instantâneo, os recursos funcionam de forma semelhante a diferentes componentes de um app. Componentes como armazenamento e recursos podem ser acessados de modo semelhante.

    Entretanto, os apps instantâneos têm algumas restrições em comparação aos APKs instaláveis. Para mais informações, consulte a página da política do Google Play Instant.

  • Posso ter vários fragmentos em um view-pager de uma só atividade?

    Sim, você pode ter vários fragmentos em uma só atividade e definir os fragmentos relevantes à atividade no recurso. As atividades precisam ser o ponto de entrada principal de um recurso. Lembre-se de que os fragmentos não podem ser associados a links diretos nem iniciados de maneira independente de uma atividade.

  • O app instantâneo deve ter um ícone na tela de início específico?

    Não, você não deve desmembrar sua IU. O app instantâneo e o app instalável devem compartilhar o mesmo ícone porque é importante que ambos ofereçam a mesma aparência e o mesmo estilo. Por isso, você deve usar os mesmos elementos visuais para os dois apps.

  • Como posso descobrir se meu app está sendo executado como um app instalável ou um instantâneo?

    Use o método isInstantApp(). O método retornará true se o processo atual for um app instantâneo.

  • Como posso solicitar que os usuários instalem meu app a partir do meu app instantâneo?

    Use o método showInstallPrompt(). Isso mostrará ao usuário uma solicitação de instalação da versão regular do APK do app.

  • Ter diferentes APKs para recursos significa ter listagens distintas no Google Play?

    Não, o app instantâneo e o app instalável têm o mesmo nome de pacote e listagem.

  • Existem restrições para nomear recursos no meu app instantâneo?

    Os módulos de recursos seguem as mesmas convenções de nomenclatura estabelecidas para nomes de pacotes Java. Por exemplo, você não pode usar hifens em nomes de recursos. Para mais informações sobre convenções de nomenclatura de pacotes Java, consulte a documentação Java.

  • Como faço para transferir dados de um app instantâneo para um instalado?

    Para dispositivos que executam o Android 8.0 (API de nível 26) ou superior, os dados do app instantâneo são transferidos automaticamente quando a instalação do APK é iniciada. Isso ocorrerá se o app instalado estiver configurado para usar targetSandboxVersion 2.

    Para apps instalados e não configurados para usar o targetSandboxVersion 2 ou dispositivos que executam o Android 7.1 (API de nível 25) ou inferior, considere usar a API de cookie (Exemplo) ou API de armazenamento (Exemplo) para transferir os dados.

  • O multidex é compatível com apps instantâneos?

    O multidex é compatível com apps instantâneos. Se você tiver um app que satisfaça o requisito de tamanho máximo, mas contenha mais métodos do que o limite de dex de 65.536 métodos, você ainda poderá ativar o multidex e publicá-lo como um app instantâneo.

Analytics, Google Play e implantação

  • Posso restringir o lançamento do meu app instantâneo a países específicos?

    Os apps instantâneos são limitados aos países em que o app instalável está disponível. Nesses locais, os desenvolvedores podem escolher a quais países direcionar o app instantâneo.

  • Preciso publicar um app instalável para testar meu app instantâneo em uma faixa Alfa por meio do Google Play?

    Para testar a implantação do seu app instantâneo na faixa de teste interno por meio do Google Play, você precisa ter um formato de rascunho da versão instalável do seu app no Google Play Console. Para saber mais sobre como implantar e testar seu app instantâneo, consulte Distribuir seu app instantâneo.

Tamanho do app

Observação: Para jogos no Google Play Instant, o limite de download é de 10 MB. Se você é desenvolvedor de jogos, siga as orientações nesta seção, mas substitua cada instância de 4 MB por 10 MB.

  • O que significa o limite de download de 4MB?

    O tamanho do app instantâneo (recurso base mais qualquer recurso dependente incluído) deve ser o menor possível. Quanto menor o seu app, mais fácil é o download dos usuários. Entretanto, quando seu app estiver sendo executado no dispositivo do usuário, você poderá fazer o download de dados adicionais e mantê-los no armazenamento interno. Não há um limite rígido de 4MB para manter dados no armazenamento interno do dispositivo.

    Para calcular o tamanho, descompacte o Instant App APK e verifique os arquivos do APK. Você pode usar o tamanho de disco dos arquivos do APK ou abrir o APK Analyzer e verificar o valor Raw File Size.

    Para um app instantâneo com vários recursos, você precisa adicionar o tamanho do APK de recursos base a um só deles. O tamanho total dos dois APKs precisa ser menor que 4MB.

  • Como os APKs de densidade, ABI ou idioma afetam o limite de 4MB?

    O tamanho do recurso é calculado adicionando o tamanho do APK de recursos e de recursos base, assim como os maiores tamanhos de APKs de densidade da tela e de ABI associados ao recurso. Por exemplo, se um recurso tiver três APKs de idiomas, um de densidade de tela e nenhum de ABI, o tamanho final do APK de recursos será derivado da adição do tamanho do APK de recursos, do recurso base, do maior idioma e da densidade da tela.

  • Os usuários precisam fazer o download do APK de recursos base e dependentes sempre que fizerem o download do mesmo app instantâneo?

    Quando os usuários fazem o download de um app instantâneo, eles recebem o recurso base e o dependente. Quando um segundo recurso ou um APK de recursos é solicitado, o usuário recebe somente o APK de recursos para esse recurso específico. Nesse caso, o recurso base não é transferido por download novamente.

    O sistema pode limpar o cache de apps instantâneos conforme a necessidade durante a coleta de lixo. Se o usuário reinicializar o telefone, o cache dos apps instantâneos será apagado. Isso significa que os usuários precisarão fazer o download novamente do recurso base.

  • Quando a validação de 4MB ocorre?

    A validação ocorre quando você faz o upload do seu app instantâneo na faixa de produção do Google Play Console.

  • Meus links não abrem em um app instantâneo quando recebem cliques de outros apps. Eles abrem dentro de um navegador no app. Existe uma forma de garantir que os usuários sejam direcionados para um app instantâneo?

    Como os links de apps são URLs comuns, os apps podem forçá-los a serem abertos em um navegador no app. Use o Firebase Dynamic Links para agrupar os URLs e garantir que os links sempre sejam abertos no seu app instantâneo.

  • Meu manifesto do app principal inclui outros URLs ou outros domínios de URL que não são compatíveis nem de minha propriedade. Quais são as consequências disso?

    Se a propriedade do domínio de um URL não for verificada, o app instantâneo não poderá ser publicado.

  • Meu URL está abrindo a atividade errada. O que eu devo fazer?

    A atividade selecionada é baseada diretamente nos elementos <intent-filter> da sua atividade. Verifique erros comuns, como atividades diferentes sobrepondo atributos "android:pathPrefix". Por exemplo, se uma atividade definir android:pathPrefix="/recordList" e outra definir android:pathPrefix="/record", o comportamento poderá ser indefinido. Use definições de caminho não ambíguas, como android:path="/recordList" e android:pathPrefix="/record/". Isso permitirá que /recordList corresponda a uma lista de rolagem de todos os registros e que /record/123 corresponda a um registro específico.

Execução de apps instantâneos em um dispositivo

  • Existe uma forma de os usuários cancelarem a inscrição no Google Play Instant?

    Sim. Os usuários podem cancelar essa inscrição quando iniciarem um app instantâneo pela primeira vez. Eles também podem fazer isso desativando os apps instantâneos em Settings.

  • Dois apps instantâneos podem ser executados paralelamente?

    Sim, apps instantâneos podem ser executados em paralelo, e os usuários podem usá-los alternadamente. Somente o app instantâneo em primeiro plano terá um ícone na aba de notificações.

  • Um usuário pode encerrar o processo de apps instantâneos e reiniciá-lo em Recents ou na tela inicial do dispositivo?

    Um usuário pode reiniciar um app instantâneo em Recents ou tocando no URL que o abriu anteriormente.

    O processo do app instantâneo é encerrado quando ele fica em estado inativo. No entanto, o armazenamento interno do app, como bancos de dados SQLite e preferências compartilhadas, permanece ativo. Se o dispositivo for muito limitado, o app instantâneo poderá ser despejado, e armazenamento interno dele será excluído. Neste caso improvável, você precisa restaurar o estado do app instantâneo nos servidores.

  • Os apps instantâneos podem iniciar outros apps instalados no dispositivo do usuário?

    Os apps instantâneos podem iniciar um app instalado, disparando um intent implícito. No entanto, não é possível iniciar a maioria dos apps instalados usando um intent explícito. Os apps instalados podem ser disponibilizados para interagir com apps instantâneos por meio de intents explícitos.

  • Qual app será aberto se um usuário tiver uma versão mais antiga do app instalado e clicar no URL de um app instantâneo com recursos mais recentes?

    O app instalado sempre tem preferência sobre um app instantâneo.

  • Como os usuários podem receber versões mais recentes de um app instantâneo? O Google o atualiza automaticamente nos dispositivos dos usuários?

    A versão mais recente do app instantâneo é disponibilizada a usuários novos e aos existentes com o cache de apps instantâneos expirado.