AAB — o que é, diferença do APK e princípio de funcionamento

Autor: IT Sectr Publicado: 2026-04-15 Tempo de leitura: 8 min

AAB (Android App Bundle) é um formato de publicação para aplicativos Android que substituiu o APK no Google Play em 2021. Ao contrário do APK, o AAB não é um arquivo de instalação — é um contêiner a partir do qual o Google Play gera dinamicamente APKs otimizados para cada dispositivo. De acordo com Android Developers, 2026, o formato reduz o tamanho do aplicativo baixado em média 15% ao eliminar recursos não utilizados.

Principais pontos

  • AAB é um formato de publicação para aplicativos Android a partir do qual o Google Play gera APKs para cada dispositivo.
  • Dynamic Delivery é um mecanismo que entrega apenas os módulos e recursos necessários para um dispositivo específico.
  • Obrigatório — desde agosto de 2021 o Google Play exige AAB para todos os novos aplicativos.
  • Economia — o tamanho do download é reduzido em 15–30% ao eliminar recursos desnecessários.
  • Ativos — AAB suporta até 2 GB sem arquivos OBB através dos módulos Play Asset Delivery.

O que é AAB

AAB (Android App Bundle) é um formato de publicação desenvolvido pelo Google como substituto do APK para distribuição através do Google Play. Internamente, o AAB é um arquivo ZIP com extensão .aab contendo código compilado, recursos e metadados. A diferença principal: o AAB não é instalado diretamente em um dispositivo.

Como funciona

O desenvolvedor envia o AAB para o Google Play Console. Quando um usuário tenta instalar o aplicativo, o Google Play analisa a configuração do dispositivo: densidade da tela (DPI), arquitetura da CPU, idioma e versão do Android. Com base nesta análise, é gerado um APK mínimo contendo apenas os componentes necessários.

Histórico de adoção

O Google apresentou o AAB em 2018 na conferência I/O. Desde agosto de 2021, o formato tornou-se obrigatório para todos os novos aplicativos no Google Play. Os aplicativos existentes podem continuar usando APK, mas os novos devem ser publicados apenas em AAB.

Como o AAB difere do APK

A diferença entre AAB e APK é fundamental: APK é um arquivo de instalação completo pronto para instalação. AAB é um contêiner com componentes fonte que requer processamento.

ParâmetroAPKAAB
TipoArquivo de instalaçãoContêiner de publicação
InstalaçãoDiretamente no dispositivoAtravés do Google Play
TamanhoArquivo completoComponentes fonte
MódulosTudo em um arquivoMódulos separados
AssinaturaDesenvolvedorGoogle Play
DistribuiçãoQualquer canalGoogle Play

APK é adequado para distribuição fora do Google Play — através de sites, e-mail ou sistemas MDM corporativos. O AAB está vinculado à infraestrutura do Google Play e não pode ser instalado diretamente. Para testar o AAB, é utilizada a ferramenta bundletool, que emula a geração de APK em uma máquina local.

Estrutura do arquivo AAB

A estrutura interna do AAB é semelhante ao APK, mas contém diretórios e arquivos adicionais para descrever os módulos e suas dependências.

Arquivo/diretórioFinalidade
base/Módulo base: código, recursos, manifesto
BundleConfig.pbConfiguração do bundle em formato protobuf
Bundle-metadata/Metadados sobre versões dos módulos
feature/Módulos dinâmicos (on-demand)
assets/Ativos do aplicativo
manifest/Manifestos de cada módulo

Módulo base (base)

O módulo base é um componente obrigatório do AAB. Ele contém o código principal, os recursos e o manifesto do aplicativo. Sem o módulo base, o aplicativo não pode ser compilado. Todos os outros módulos são opcionais e são conectados através do Dynamic Delivery.

Formato Protobuf

A configuração do AAB utiliza Protocol Buffers (protobuf) em vez de XML. Os arquivos .pb são mais compactos e são analisados mais rapidamente pela infraestrutura de servidores do Google. A ferramenta bundletool converte protobuf para um formato legível para depuração.

Dynamic Delivery e módulos do aplicativo

Dynamic Delivery é a tecnologia principal sobre a qual o AAB é construído. Ela permite entregar ao usuário apenas as partes do aplicativo que correspondem ao seu dispositivo e idioma, bem como carregar módulos adicionais sob demanda.

Tipos de módulos

Os módulos Install-time são carregados junto com o APK base durante a instalação. Os módulos Conditional são entregues apenas quando as condições são atendidas — por exemplo, um módulo com materiais para telas 4K. Os módulos On-demand são carregados a pedido do usuário dentro do aplicativo.

Play Asset Delivery (PAD)

Para recursos grandes (até 2 GB), o Play Asset Delivery é usado em vez de arquivos OBB. O PAD suporta os mesmos três modos de entrega: install-time, fast-follow (imediatamente após a instalação) e on-demand.

kotlin
// Carregamento de módulo on-demand via SplitInstallManager
val manager = SplitInstallManagerFactory
    .create(context)

val request = SplitInstallRequest
    .newBuilder()
    .addModule("level_pack_3")
    .build()

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("AAB", "Module installed")
    }

Configuração do módulo no Gradle

Cada módulo dinâmico é descrito em um arquivo build.gradle separado com o tipo de entrega especificado. Um módulo pode conter seus próprios recursos, código e manifesto, independentes do aplicativo base.

Compilação do AAB via Gradle

A compilação do AAB é feita através do Android Gradle Plugin com a tarefa bundleRelease (ou bundleDebug). O resultado é um arquivo .aab no diretório build/outputs/bundle/.

Configuração de compilação

Nenhuma configuração especial é necessária para compilar o AAB — o Android Gradle Plugin suporta bundles por padrão. Basta especificar a tarefa bundle em vez de assemble.

kotlin
// build.gradle.kts — compilação do AAB com assinatura
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}
// Tarefa: ./gradlew bundleRelease

Teste local via bundletool

O Google fornece a ferramenta bundletool para gerar APKs a partir do AAB em uma máquina local. O comando `bundletool build-apks --bundle=app.aab --output=app.apks` cria um conjunto de APKs para teste em diferentes configurações de dispositivos.

bundletool também pode descompactar o AAB, exibir sua configuração e verificar a integridade da assinatura antes do envio para o Google Play Console. Para depuração, o comando `bundletool dump manifest --bundle=app.aab` é usado para mostrar o manifesto do módulo base.

Configuração de splits no AAB

Por padrão, o AAB divide os recursos em três dimensões: idioma, densidade da tela (density) e arquitetura da CPU (abi). O desenvolvedor pode desabilitar qualquer divisão no build.gradle — por exemplo, se o aplicativo suporta apenas inglês. Desabilitar uma divisão significa que os recursos para todas as variantes serão incluídos no APK base.

Otimização de recursos — o AAB converte automaticamente PNG para WebP sem perda de qualidade, comprime recursos não utilizados e remove strings duplicadas. Essas otimizações são aplicadas no lado do Google Play ao gerar o APK final. Como resultado, o usuário recebe um APK 15–25% menor que o arquivo completo.

Publicação do AAB no Google Play

O processo de publicação do AAB no Google Play Console difere do APK apenas no formato do arquivo enviado. O console aceita .aab, verifica sua estrutura, assinatura e configuração de módulos, e então gera APKs para cada tipo de dispositivo.

App Signing by Google Play

Ao enviar o AAB, o Google Play assume o gerenciamento das chaves de assinatura. O desenvolvedor envia um pacote assinado com uma chave upload, e o Google re-assina os APKs gerados com sua própria chave. Isso simplifica a rotação de chaves e a recuperação de acesso em caso de perda do keystore.

Testes antes do lançamento

O Google Play Console fornece um teste de AAB integrado: você pode baixar o APK gerado para um dispositivo específico ou executar testes internos através dos tracks Internal Testing, Closed Alpha e Open Beta.

Problemas comuns com AAB e soluções

A migração para o AAB pode causar problemas, especialmente em projetos com muitos módulos dinâmicos ou configuração complexa de recursos.

Erros de configuração de módulos

Se um módulo dinâmico referencia recursos do módulo base com um nome incorreto, o Google Play rejeita o AAB durante a verificação. Solução — use a verificação lint antes de compilar e teste todos os módulos via bundletool localmente.

Divisões por idioma e impacto no desempenho

A divisão por idiomas pode retardar a inicialização do aplicativo se os recursos para a localidade atual forem carregados dinamicamente. A recomendação do Google é não dividir idiomas se houver menos de 10, ou usar install-time para os mais populares.

Compatibilidade com SDKs de terceiros

Alguns SDKs (análise, publicidade, mapas) requerem acesso ao manifesto completo e aos recursos. A verificação de compatibilidade com AAB é uma etapa obrigatória antes da migração. A maioria dos principais SDKs (Firebase, Google Ads, Crashlytics) são totalmente compatíveis com AAB desde 2022. Para verificar a compatibilidade, utiliza-se o bundletool com a flag --validate, que emula a geração de APK do lado do servidor.

Versionamento do AAB

O AAB usa o versionCode do manifesto do módulo base. Ao contrário do APK, o AAB também suporta versionCode para cada módulo separadamente — isso permite atualizar partes individuais do aplicativo sem uma reinstalação completa. O Dynamic Delivery rastreia os módulos instalados e entrega apenas os componentes modificados durante as atualizações através do Google Play.

Monitoramento e análise do AAB

O Google Play Console fornece análises detalhadas para cada AAB: quantos APKs foram gerados, quais splits tiveram demanda, qual o tamanho médio de download por dispositivo. O Android Vitals mostra métricas de desempenho dos APKs gerados. Esses dados ajudam a otimizar a configuração de splits e reduzir o tamanho de download para diferentes categorias de dispositivos.

Perguntas frequentes

O AAB pode ser instalado diretamente em um telefone?

Não, o AAB não foi projetado para instalação direta. O Google Play o converte em um APK para um dispositivo específico. Para testes em um telefone, utiliza-se bundletool, que gera APKs a partir do AAB localmente.

Como o AAB reduz o tamanho do aplicativo?

O Google Play gera APK apenas com os recursos correspondentes ao dispositivo do usuário: uma densidade de tela, uma arquitetura de CPU, um idioma. Recursos para outras configurações não são incluídos, economizando 15–30% do tráfego de download.

O AAB é obrigatório para aplicativos existentes?

Não, os aplicativos existentes podem continuar publicando APK. O requisito do AAB aplica-se apenas a novos aplicativos. O Google recomenda, mas não exige, a atualização de projetos existentes para o AAB.

Como migrar de APK para AAB?

Altere a tarefa de compilação de assembleRelease para bundleRelease, verifique a compatibilidade de todos os SDKs, configure o App Signing no Google Play Console e envie o primeiro AAB através de um track existente.

O AAB suporta bibliotecas nativas?

Sim, o AAB inclui bibliotecas nativas nos módulos. O Google Play entrega apenas os arquivos .so para a arquitetura de CPU do dispositivo. Isso é especialmente importante para jogos em Unity e Unreal Engine com grandes compilações nativas.

Resumo

  • AAB é um contêiner para publicar aplicativos Android, a partir do qual o Google Play gera APKs direcionados.
  • Dynamic Delivery entrega apenas recursos correspondentes ao dispositivo do usuário — economia de tráfego de 15–30%.
  • Modularidade — o aplicativo é dividido em módulos base, condicionais e on-demand com diferentes estratégias de carregamento.
  • Obrigatório — desde 2021 todos os novos aplicativos no Google Play são publicados em formato AAB.
  • App Signing — o Google Play gerencia as chaves de assinatura, simplificando a rotação e recuperação.
  • Testes são feitos via bundletool, que emula a geração de APK do lado do servidor localmente.
  • Play Asset Delivery substitui arquivos OBB, suportando até 2 GB de ativos com modos de carregamento flexíveis.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também