Converter apk para aab

Converter APK para AAB

Crie um Android App Bundle publicável a partir do projeto original, não de um APK finalizado.

Converter ficheiros APK online

Ainda não temos um conversor online dedicado para APK para AAB, mas pode converter ficheiros APK online para estes formatos:

Como converter apk para aab arquivo

O Google Play exige Android App Bundles para novos uploads de aplicativos, portanto um desenvolvedor pode precisar de um AAB quando uma build antiga existe apenas como um APK. Um APK pode ser instalado diretamente, mas um AAB normalmente precisa ser recompilado a partir do projeto Android original ou reconstruído localmente a partir do APK.

O que é o formato APK

Um APK é um pacote de aplicativo Android que telefones, tablets, dispositivos Android TV e emuladores instalam diretamente. Ele é um arquivo baseado em ZIP que contém código compilado, recursos, o manifesto, assets, bibliotecas nativas e informações de assinatura do APK.

O Android Studio e o Android Gradle Plugin geram APKs por meio de tarefas do Gradle, como ./gradlew assembleRelease. Os desenvolvedores também recebem APKs de servidores de build, serviços de teste, extração de dispositivos e distribuição fora do Google Play. Um APK é um formato de instalação; um dispositivo Android não instala um AAB diretamente.

O que é o formato AAB

Um AAB, ou Android App Bundle, é um pacote de publicação que contém os módulos e recursos compilados de um aplicativo. O Google Play o processa em APKs específicos para cada dispositivo, selecionando a densidade de tela, os recursos de idioma, a arquitetura da CPU e os dynamic features necessários, em vez de entregar tudo em um único APK universal.

Isso pode reduzir o tamanho do download e habilita o Google Play Feature Delivery e o Play Asset Delivery. Um AAB normalmente é produzido a partir de um projeto do Android Studio ou Gradle com ./gradlew bundleRelease, que geralmente cria app/build/outputs/bundle/release/app-release.aab. A release build deve ter uma configuração de assinatura válida antes de poder ser carregada.

Como criar um AAB a partir do projeto original

  1. Abra o projeto em uma versão compatível do Android Studio e sincronize as versões do Gradle e do Android Gradle Plugin. Use as versões exigidas pelo projeto em vez de atualizá-las indiscriminadamente.
  2. Verifique o application ID, o version code, as release dependencies, os product flavors, as bibliotecas nativas, as declarações do manifesto e a configuração de assinatura.
  3. No Android Studio, selecione Build → Generate Signed Bundle / APK, escolha Android App Bundle, selecione a release variant e forneça as credenciais do keystore e da key. Como alternativa, execute ./gradlew bundleRelease no diretório do projeto.
  4. Recupere o resultado em app/build/outputs/bundle/release/. Um projeto multi-module pode colocar o bundle no diretório de saída do módulo correspondente.
  5. Valide e teste o bundle com o bundletool oficial do Google. Por exemplo, bundletool validate --bundle=app-release.aab verifica sua estrutura. Para criar APKs instaláveis para um dispositivo conectado, execute bundletool build-apks --bundle=app-release.aab --output=app.apks --connected-device, fornecendo as opções de keystore necessárias caso o bundletool precise assinar os APKs gerados, e depois execute bundletool install-apks --apks=app.apks.

O Android Studio é a opção adequada para desktop porque preserva a configuração do Gradle, o processamento de recursos, a assinatura, as variantes de build e os módulos dynamic-feature. O bundletool é o utilitário de linha de comando do Google para validar, inspecionar, criar e instalar conjuntos de APKs a partir de um AAB; ele não converte um APK finalizado arbitrário em um projeto de código-fonte ou bundle equivalente.

Se apenas o APK estiver disponível

Não existe uma conversão confiável com um único comando de um APK finalizado para um AAB equivalente. A compilação, o processamento de recursos, a redução de código, a resolução de dependências e a assinatura já ocorreram, e o APK não contém o projeto Gradle completo necessário para reproduzir essas etapas.

Para um aplicativo que você possui, a reconstrução é possível, mas constitui uma nova build, e não uma conversão de formato de arquivo:

  1. Decodifique os recursos e o manifesto com apktool d app.apk -o decoded-app.
  2. Inspecione o código Java ou semelhante a Kotlin decompilado com jadx-gui app.apk. A saída decompilada serve como referência e geralmente precisa de correções substanciais antes de poder ser compilada.
  3. Crie um projeto no Android Studio e restaure a estrutura de pacotes, os recursos, os assets, as declarações do manifesto, as bibliotecas nativas, as dependências, as configurações do Gradle e todos os módulos dynamic-feature necessários.
  4. Resolva as diferenças de compilação e runtime, configure o application ID e o version code corretos e, em seguida, gere e assine o release bundle com ./gradlew bundleRelease.

Conversores online genéricos de APK para AAB não são um substituto adequado para esse processo. Nenhum serviço online confiável consegue recuperar de forma consistente o código-fonte e a configuração de build ausentes a partir de um APK, e o upload de um APK pode expor código proprietário, credenciais incorporadas, certificados ou dados do aplicativo. Mantenha a reconstrução local; use o Google Play Console apenas para fazer upload e testar o AAB resultante.

Limitações de compatibilidade e publicação

  • Um bundle recompilado pode se comportar de maneira diferente porque a ofuscação, os recursos removidos, o código gerado, as configurações de build nativo e as versões das dependências podem não ser recuperáveis a partir do APK.
  • Uma atualização deve usar o mesmo application ID e uma identidade de assinatura aceita pelo aplicativo existente. Com o Google Play App Signing, o upload deve usar a upload key registrada; possuir um APK não concede permissão para publicar uma atualização.
  • Um APK extraído de um dispositivo pode ser apenas um split de um aplicativo instalado. Uma instalação completa pode conter APKs split base, de configuração e de recursos, portanto um único split extraído não pode recriar o bundle original.
  • Um AAB é um formato de publicação, não um formato normal de sideloading. Para instalação direta, compile um APK ou use o bundletool para gerar o APK set apropriado a partir do bundle.
  • Teste a saída da release em versões representativas do Android, densidades de tela e arquiteturas de CPU, especialmente após reconstruir bibliotecas nativas ou dynamic features.

Comparação de formato: APK vs AAB

Como os formatos APK e AAB se comparam nas propriedades mais importantes para esta conversão.

Comparação dos formatos de arquivo APK e AAB
Propriedade .APK Android Package .AAB Android App Bundle
Padrão aberto Não Não
Compressão Ambos —
Tamanho típico do arquivo Médio Pequeno
Abre num navegador web Não Não
Edição posterior Não editável diretamente Não editável diretamente
Suporte a metadados Básico Básico
Legível em texto simples Não Não
Mais usado para Incorporação em aplicações Incorporação em aplicações
Introduzido 2008 2018
Desenvolvedor Google Google
Tipo MIME application/vnd.android.package-archive —