Sobre os Android App Bundles

Um Android App Bundle é um formato de publicação que inclui todos os recursos e códigos compilados do seu app e adia a geração e a assinatura do APK no 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.

Na maioria dos projetos de app, não é necessário muito esforço para criar pacotes de apps compatíveis com a veiculação de APKs otimizados. Por exemplo, se você já organiza o código e os recursos do app de acordo com as convenções estabelecidas, basta criar Android App Bundles assinados usando o Android Studio ou a linha de comando e enviá-los para o Google Play. A veiculação otimizada do APK torna-se um benefício automático.

Ao usar o formato de pacote de apps para publicá-los, você também tem a opção de usar 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 oferecem aos desenvolvedores métodos de envio 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 limite de tamanho de download compactado para 200 MB. 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, 200 MB. Qualquer download subsequente, como o 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 descobrir durante o upload que um dos possíveis downloads do app ou dos recursos sob demanda tem mais de 200 MB, você vai receber um erro.

Não se esqueça que os Android App Bundles não podem ser usados 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. 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 certo nível de refatoração do seu app. Portanto, tente usar as outras sugestões descritas acima primeiro.

Outras considerações

Veja a seguir os problemas conhecidos ao criar ou disponibilizar seu app com os Android App Bundles. Se você tiver problemas que não estão descritos abaixo, 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.
  • Atualmente, é possível alterar propriedades na configuração do build de um módulo de recurso que entram em conflito com as configurações 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