Você compila seu primeiro app Android, clica em baixar e, de repente, há dois arquivos: um terminando em .apk e outro terminando em .aab. Qual você manda para o seu amigo? Qual vai para o Google Play? Dá para simplesmente renomear um no outro?
Resposta curta: o APK é para instalar, o AAB é para publicar no Google Play. Você quase sempre quer os dois. Veja o porquê, em linguagem simples.
O que é um APK
APK significa Android Package. É o arquivo que o Android realmente instala. Dentro dele estão o código do seu app, suas imagens e layouts, o manifesto que descreve o app (nome, nome do pacote, permissões) e uma assinatura digital que comprova quem o compilou.
Um APK é completo por si só. Você pode copiá-lo para um celular, tocar nele e instalar. Pode anexá-lo a um e-mail, colocá-lo no seu site ou entregá-lo a um testador. Todo app em todo celular Android acaba virando um ou mais APKs, até os que vieram do Google Play.
O que é um AAB
AAB significa Android App Bundle. O Google o descreve como um formato de publicação: ele contém todo o código compilado e os recursos do seu app, mas deixa a etapa final, gerar e assinar os APKs, para o Google Play.
Essa é a diferença principal. Você não consegue tocar em um AAB no celular e instalá-lo. É um pacote que você entrega à loja, e a loja o transforma em APKs instaláveis.
Para que isso? Porque os celulares são diferentes. Um celular barato com tela pequena não precisa das imagens extragrandes feitas para tablet, e um celular configurado em espanhol não precisa do seu texto em japonês. A partir de um único bundle, o Google Play gera APKs otimizados para cada configuração de dispositivo, então cada celular baixa só o código e os recursos de que precisa. Os usuários têm downloads menores, e você não precisa mais compilar e gerenciar um APK separado para cada tipo de dispositivo.
Por que o Google Play exige um AAB
Desde agosto de 2021, apps novos no Google Play precisam ser publicados como Android App Bundles. Se você criar um app novo no Play Console hoje e tentar enviar um APK, ele não será aceito para esse app. Você envia o AAB, e o Play cuida do resto.
O formato de bundle também funciona com recursos extras do Play, como o Play Feature Delivery e o Play Asset Delivery, que permitem que apps grandes baixem partes de si mesmos depois. Para um app pequeno típico feito a partir de um site ou de arquivos HTML, você não vai precisar disso. O ponto é simplesmente que o AAB é o ingresso para a loja.
Assinatura de apps do Play e a chave de upload
Todo app Android precisa ser assinado, e toda atualização precisa ser assinada com a mesma chave da versão já instalada. Perdeu a chave, não consegue mais lançar atualizações desse app. Isso era um risco real para pequenos desenvolvedores, e é um grande motivo para o Google ter criado a Assinatura de apps do Play.
Com a Assinatura de apps do Play existem duas chaves:
- A chave de assinatura de apps. O Google guarda esta em sua própria infraestrutura segura de chaves e a usa para assinar os APKs entregues aos celulares dos usuários.
- A chave de upload. Esta fica com você. Você a usa para assinar seu AAB antes de enviá-lo ao Play Console, para que o Google saiba que o envio veio mesmo de você.
A parte boa é o que acontece se algo der errado. Se você perder sua chave de upload, ou achar que outra pessoa a tem, você não fica trancado fora do seu app. Você cria uma nova chave de upload, exporta o certificado dela e pede uma redefinição no Play Console. Apps novos entram na Assinatura de apps do Play automaticamente.
Mesmo com essa rede de segurança, trate sua chave como as chaves de casa do seu app. Faça backup em um lugar seguro, como um drive na nuvem ou um gerenciador de senhas, e use o mesmo arquivo de chave em todas as atualizações.
Por que você ainda quer um APK
Se o Google Play só aceita AABs, você pode achar que o APK está obsoleto. Não está. Há muitas tarefas que só um APK consegue fazer:
- Testar no seu próprio celular. Antes de enviar qualquer coisa, você quer instalar o app e passar por todas as telas. Um APK instala em segundos.
- Compartilhar com amigos, clientes ou colegas de trabalho. Nem todo app precisa estar em uma loja pública. Uma ferramenta interna para uma equipe pequena, um app de cardápio para um restaurante ou um projeto escolar podem simplesmente ser compartilhados como APK.
- Outras lojas e seu próprio site. Algumas lojas de apps alternativas e muitos downloads diretos ainda funcionam com arquivos APK.
- Verificações rápidas antes de um lançamento. Se um testador relatar um bug, você pode enviar um APK corrigido em minutos, em vez de esperar a análise da loja.
Uma coisa para saber sobre compartilhar APKs: quando a Assinatura de apps do Play está ativada, a cópia que os usuários recebem do Google Play é assinada com a chave de assinatura de apps do Google, enquanto o APK que você mesmo compila é assinado com a sua chave de upload. O Android trata essas assinaturas como diferentes, então um celular que instalou o seu APK não consegue simplesmente atualizá-lo pelo Google Play, e vice-versa. Para testadores isso geralmente não é problema; basta desinstalar a versão de teste antes de instalar pela loja. Lembre também que o Google está implementando a verificação de desenvolvedores para apps instalados em dispositivos Android certificados, o que afeta APKs compartilhados fora da loja. Falamos disso em um artigo separado.
Comparação rápida
- Instalar direto no celular: APK sim, AAB não.
- Enviar ao Google Play como app novo: AAB sim, APK não.
- Quem assina o app final que os usuários instalam: no APK, você; no AAB no Play com a Assinatura de apps do Play, o Google, usando a chave de assinatura de apps.
- Tamanho do download para os usuários: um APK é o mesmo arquivo para todos; a partir de um AAB, o Play gera APKs menores por dispositivo.
Como o Free HTML to APK te dá os dois
Quando você compila com o Free HTML to APK, não precisa escolher um formato e depois descobrir como conseguir o outro. Na etapa de saída, escolha APK + AAB e você recebe os dois do mesmo build:
- um APK assinado para instalar no seu próprio celular e compartilhar com testadores, e
- um Android App Bundle, assinado com a sua chave, pronto para enviar ao Play Console, onde essa chave funciona como sua chave de upload para a Assinatura de apps do Play.
O compilador do site freehtmltoapk.com funciona a partir da URL de um site, de arquivos HTML, de um ZIP ou de uma pasta. É grátis, não precisa de conta e não adiciona marca d'água. Você pode deixar que ele crie uma chave de assinatura para você, ou usar o arquivo de chave que já tem (.jks, .keystore, .p12 ou .pfx) quando estiver atualizando um app existente. Se preferir trabalhar de qualquer lugar, o app Android "HTML to APK: Website to App" compila do mesmo jeito, direto no seu celular.
Seja qual for a que você usar, a regra é a mesma: mantenha sua chave segura e compile todas as atualizações com ela.
De qual arquivo você precisa?
Se você está testando ou compartilhando diretamente, precisa do APK. Se está publicando no Google Play, precisa do AAB. Se está fazendo as duas coisas, como a maioria das pessoas, compile os dois e guarde-os junto com sua chave de assinatura.
Pronto para fazer um bundle? Veja HTML para AAB para compilar um, e o guia de publicação no Google Play para todas as etapas, da configuração do Play Console ao seu primeiro lançamento.