Sobre os Android App Bundles

Um Android App Bundle é um formato de publicação que inclui todo o código e recursos compilados do app e adia a geração e a assinatura do APK para o Google Play.

O Google Play usa o pacote de apps para gerar e disponibilizar APKs otimizados para cada configuração de dispositivo. Assim, somente o código e os recursos necessários para um dispositivo específico são salvos para executar o app. Não é mais necessário criar, assinar e gerenciar vários APKs para otimizar a compatibilidade com dispositivos diferentes, e os usuários recebem downloads menores e mais otimizados.

A maioria dos projetos de app não exige muito esforço para criar pacotes de apps com suporte para a veiculação de APKs otimizados. Se você já organiza o código e os recursos do seu app de acordo com as convenções estabelecidas, crie Android App Bundles assinados usando o Android Studio ou a linha de comando e faça upload deles para o Google Play. A veiculação otimizada do APK se tornará um benefício automático.

Ao usar o formato de pacote de apps para publicar seu app, também é possível aproveitar o Play Feature Delivery, que permite adicionar módulos de recursos ao projeto do app. Esses módulos contêm funções e recursos que somente são incluídos no seu app com base nas condições que você especifica, ou que estão disponíveis posteriormente para download usando a Biblioteca Play Core no ambiente de execução.

Os desenvolvedores de jogos que publicam apps com pacotes podem usar o Play Asset Delivery, a solução do Google Play para fornecer grandes quantidades de recursos de jogos que oferece aos desenvolvedores métodos de entrega flexíveis e alto desempenho.

Assista o vídeo a seguir e veja motivos para publicar seu app usando os Android App Bundles.

Restrição de tamanho de download compactado

A publicação com Android App Bundles ajuda os usuários a instalar seu app com os menores downloads possíveis e aumenta o tamanho do download compactado. Ou seja, quando um usuário faz o download do seu app, o tamanho total dos APKs compactados exigidos para a instalação (por exemplo, APK base + APKs de configuração) precisa ser de, no máximo, 4 GB. Qualquer download subsequente, como o download de um módulo de recurso (e os APKs de configuração dele) sob demanda, também precisa atender a essa restrição de tamanho de download compactado. Os pacotes de recursos não contribuem para esse limite, mas têm outras restrições de tamanho.

Se o Play Console constatar que qualquer um dos possíveis downloads do app ou dos recursos sob demanda está acima dos limites de tamanho máximo, você vai receber um erro.

Lembre-se de que os Android App Bundles não são compatíveis com arquivos de expansão de APK (*.obb). Portanto, se você encontrar esse erro ao publicar seu pacote de apps, use um dos seguintes recursos para reduzir os tamanhos de download de APK compactados:

  • Ative todos os APKs de configuração definindo enableSplit = true para cada tipo de APK de configuração. Isso garante que os usuários façam o download apenas do código e dos recursos necessários para executar o app no dispositivo deles.
  • Reduza seu app removendo códigos e recursos não usados.
  • Siga as práticas recomendadas para reduzir o tamanho do app ainda mais.
  • Considere converter recursos que são usados apenas por alguns dos usuários em módulos de recursos que podem ser baixados posteriormente, sob demanda. Lembre-se de que isso pode exigir alguma refatoração do app. Portanto, tente usar as outras sugestões descritas primeiro.

Outras considerações

Confira a seguir problemas conhecidos ao criar ou disponibilizar seu app com os Android App Bundles. Se você tiver problemas que ainda não estão descritos aqui, informe um bug.

  • As instalações parciais de apps transferidos por sideload (ou seja, apps que não são instalados pela Google Play Store e não têm um ou mais APKs divididos necessários) falham em todos os dispositivos certificados pelo Google e dispositivos com Android 10 (API de nível 29) ou mais recente. Ao fazer o download do seu app na Google Play Store, o Google garante que todos os componentes necessários estejam instalados.
  • Se você usa ferramentas que modificam dinamicamente as tabelas de recursos, os APKs gerados em pacotes de apps podem se comportar de maneira inesperada. Portanto, é recomendável desativar essas ferramentas ao criar um pacote de apps.

  • É possível definir propriedades na configuração do build de um módulo de recurso que entrem em conflito com as dos módulos base (ou outros). Por exemplo, você pode definir buildTypes.release.debuggable = true no módulo base e como false em um módulo de recurso. Esses conflitos podem causar problemas na criação e no ambiente de execução. Lembre-se de que, por padrão, os módulos de recursos herdam algumas configurações do build do módulo base. Portanto, é necessário compreender quais configurações precisam ser mantidas e quais precisam ser omitidas na configuração do build do módulo de recurso.

Outros recursos

Para saber mais sobre Android App Bundles, consulte os seguintes recursos.

Postagens do blog (links em inglês)

Vídeos