Sobre os Android App Bundles
O que é o Android App Bundle (AAB)?
Lançado em 2018, o Android App Bundle (AAB) é um formato de publicação para Android compatível com o Google Play e outras app stores e com ferramentas de compilação, como Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity e Unreal.
Qual é a diferença entre AABs e APKs?
Os pacotes de apps são apenas para publicação e não podem ser instalados em dispositivos Android. O pacote do Android (APK) é o formato executável e instalável do Android para apps. Os pacotes de apps precisam ser processados por um distribuidor em APKs para que possam ser instalados nos dispositivos.
O AAB é um formato reservado que só pode ser usado no Google Play?
Não, o AAB não é reservado. O pacote de apps é de código aberto, de modo que qualquer app store pode ser compatível. Os pacotes são compatíveis com o Google Play e algumas outras app stores.
A criação de AABs impede que eu publique em outras app stores?
Não, não é proibido publicar em outras app stores. Ao criar seu app, você pode criar AABs e APKs ao mesmo tempo, dependendo do formato de publicação necessário para cada app store.
Quanto trabalho é necessário para usar um AAB?
Para a maioria dos apps, criar um AAB é equivalente a criar um APK, já que isso envolve apenas escolher AAB em vez de APK no momento da compilação. Em alguns apps, pode ser necessário fazer algumas mudanças para aproveitar todos os benefícios dos AABs.
Algum desenvolvedor já está usando o AAB?
Sim. Mais de 1 milhão de apps e jogos usam pacotes de apps para publicar as versões de produção no Google Play, incluindo a maioria dos apps conhecidos, que representam bilhões de instalações ativas. Se você usa o Google Play para instalar apps, muitos dos apps no dispositivo foram publicados como pacotes de apps.
Os AABs impedem que os usuários transfiram apps por sideload?
Não, eles não impedem que os usuários instalem APKs de nenhuma fonte. Como o AAB é apenas um formato de publicação, ele não muda o funcionamento da plataforma Android.
Se um desenvolvedor usar AABs para entregar APKs otimizados, isso significa que os usuários que compartilharem esses APKs poderão ter problemas?
Sempre houve casos raros no Android em que os APKs não podiam ser transferidos diretamente de um dispositivo para outro, independentemente de o app ser publicado por APKs ou AABs. Especificamente, quando os APKs são otimizados para um dispositivo (por exemplo, para uma arquitetura de chip específica), a transferência desses APKs diretamente para outro dispositivo poderá ter problemas se o dispositivo de destino não corresponder às propriedades do dispositivo original. Nessas situações, é necessário instalar um APK ou um conjunto de APKs adequados ao dispositivo de destino.
Posso publicar em várias app stores?
Sim, você pode publicar em várias app stores, independente de usar ou não os AABs. É possível publicar AABs no Google Play e em outras app stores compatíveis e, ao mesmo tempo, publicar APKs em outras app stores ou sites que não sejam compatíveis com AABs.
O requisito do AAB se aplica a apps particulares publicados no Google Play gerenciado?
Não, apps particulares no Google Play gerenciado podem ser publicados com APKs ou AABs. Ao criar um novo app particular, você pode escolher Mudar a chave de assinatura do app e desativar a Assinatura de apps do Google Play para publicar um APK autoassinado particular.
Sobre a Assinatura de apps do Google Play
O que é a Assinatura de apps do Google Play?
Cada APK no Android precisa ser assinado criptograficamente com uma chave de assinatura do app para poder ser instalado. A plataforma Android usa a chave para garantir que as atualizações de apps correspondam ao app instalado em um dispositivo para que, após uma instalação inicial, cada atualização de app seja enviada pelo mesmo proprietário de chave. Isso reduz o risco de atualizações de apps maliciosos. Lançada em 2017, a Assinatura de apps do Google Play é o serviço de gerenciamento de chaves do Google Play que protege e gerencia as chaves de assinatura de apps dos desenvolvedores referentes a apps distribuídos pelo Google Play. Além disso, a Assinatura de apps do Google Play executa a operação de assinatura nos APKs gerados pelo Google Play a partir dos AABs enviados. A Assinatura de apps do Google Play é necessária para que novos apps possam usar AABs.
Por que o Google lançou a Assinatura de apps do Google Play?
Durante anos, as chaves de assinatura de apps foram um desafio para os desenvolvedores do Google Play. Perder a chave significava não conseguir mais fornecer atualizações de apps aos usuários, e uma chave comprometida coloca os usuários em risco de receber atualizações maliciosas. É comum na distribuição de software que os canais de distribuição armazenem e gerenciem as chaves do software que eles distribuem, porque isso reduz os riscos. A Assinatura de apps do Google Play foi lançada em 2017 para eliminar o risco de perda das chaves de distribuição, para proteger os usuários após uma violação e oferecer aos desenvolvedores os benefícios do investimento contínuo em segurança do Google.
Como o Google garante a segurança da Assinatura de apps do Google Play?
O Google protege as chaves dos desenvolvedores na mesma infraestrutura segura e líder do setor usada para proteger as próprias chaves. As chaves são armazenadas criptografadas em servidores de gerenciamento de chaves dedicados e bloqueados, com ACLs rigorosas e trilhas de auditoria invioláveis que abrangem todas as operações. As operações e as práticas recomendadas de segurança da nuvem do Google estão detalhadas on-line.
Posso escolher a chave de assinatura que o Google Play usa no meu app?
Sim, ao criar um novo app, você pode escolher que o Google gere e armazene uma chave de assinatura do app em seu nome ou escolher sua própria chave de assinatura e fazer upload de uma cópia dela.
Quero usar a mesma chave de assinatura do app no Play e em outras app stores. Isso ainda é possível?
Se você decidiu usar a mesma chave de assinatura em várias app stores depois de considerar como as atualizações do app funcionam, ainda é possível fazer isso. Isso permitirá que cada app store atualize o app para várias lojas. Você tem duas opções:
- É possível gerar uma chave localmente e fazer upload de uma cópia dela para o Google Play. Dessa forma, você pode usar a mesma chave usada pelo Google Play ao criar seu app para outras app stores.
- Você pode usar uma chave gerada pelo Google para a Assinatura de apps do Google Play, fazer o download de APKs de distribuição no Play Console assinados com essa chave e usar os APKs para distribuição em outras app stores ou sites.
Posso usar a Assinatura de apps do Google Play para um app criado antes de agosto de 2021 sem fornecer uma cópia da minha chave de assinatura do app?
Sim, a Assinatura de apps do Google Play oferece suporte para a opção "Upgrade de chave" para apps criados antes de agosto de 2021. Isso permite que o app comece a usar a Assinatura de apps do Google Play com uma nova chave de assinatura. No entanto, para usar essa opção, depois de fazer upgrade, será necessário fazer upload de dois itens em cada versão: um pacote de apps e um APK legado assinado com sua chave de assinatura do app antiga. O Google Play usará seus AABs para gerar APKs assinados com a chave atualizada para novas instalações e atualizações. Ao mesmo tempo, o Google Play usará seus APKs legados em atualizações de apps para usuários que já tenham o app instalado. Com o tempo, as instalações legadas migrarão para a chave atualizada, por exemplo, quando os usuários migrarem para um novo dispositivo móvel.
É possível usar a mesma chave de assinatura em apps criados antes e depois de agosto de 2021?
Em geral, não é recomendável usar a mesma chave de assinatura em vários apps. É mais seguro usar uma chave exclusiva em cada app. No entanto, se você precisar usar a mesma chave de assinatura em vários apps, isso será possível. Você pode fazer upload de uma cópia da chave de assinatura existente do app ao configurar a Assinatura de apps do Google Play. Se você não quiser compartilhar a chave de assinatura existente do app, use a nova opção de "upgrade de chave" para o app anterior a agosto de 2021 e comece a usar a Assinatura de apps do Google Play. Dessa forma, seus apps anteriores e posteriores a agosto de 2021 poderão usar a mesma chave nova.
Posso mudar a chave de assinatura do app usada pela Assinatura de apps do Google Play em algum momento?
Sim, é possível mudar a chave dos apps solicitando um upgrade de chave no Play Console.
Como posso verificar se o Google Play não fez mudanças inesperadas no meu código?
A qualquer momento, é possível fazer o download de artefatos do Google Play e do Explorador de pacotes de apps no Play Console e inspecionar esses artefatos. Além disso, em breve a API Play Developer oferecerá a capacidade de verificar APKs antes de confirmá-los em uma faixa de lançamento. Além disso, é possível usar um recurso opcional chamado transparência do código para pacotes de apps. Com a transparência do código, você e os usuários finais podem manter uma app store como o Google Play para contabilizar o código exibido.
Como funciona a transparência do código para pacotes de apps?
A transparência do código é um recurso opcional que possibilita manter uma app store distribuindo o app para contabilizar o código exibido. Para usar a transparência do código, no tempo de compilação, você gera um arquivo de transparência no seu app que representa o código, especificamente um arquivo que contém hashes do código do app. Assine-o com sua chave de transparência do código privada. Você nunca precisará fornecer sua chave de transparência do código ao Google. Em seguida, em um dispositivo, você pode inspecionar um APK instalado e verificar se o arquivo de transparência do código assinado ainda corresponde ao código do APK. Isso garante que, mesmo que o próprio APK tenha sido assinado novamente durante a distribuição, o código verificado quanto à transparência não tenha sido modificado. Caso haja uma incompatibilidade, isso significa que o código foi modificado durante a distribuição. A transparência do código não substitui as assinaturas do APK e não faz parte da plataforma Android.
Como publicar apps e jogos grandes no Google Play
Quais são os limites de tamanho de app do Google Play ao usar os AABs?
O tamanho máximo de download compactado para um módulo base gerado por um AAB é 200 MB. Ou seja, o Google Play vai gerar primeiro o módulo base e, em seguida, todos os módulos ou pacotes de recursos adicionais do AAB. Em seguida, o Google Play verifica se o tamanho máximo cumulativo de download compactado total que um dispositivo individual recebe não é maior que 4 GB.
O Google Play é compatível com arquivos de expansão (OBBs) para AABs?
Não, o Google Play não é compatível com arquivos de expansão para AABs. Os arquivos de expansão (OBBs) são uma solução legada específica do Google Play para publicar apps e jogos grandes usando APKs. Há alternativas do Google e de terceiros para AABs maiores que 200 MB.
Como publicar um app ou jogo com mais de 200 MB no Google Play?
Apps e jogos grandes que usam AABs podem usar os serviços de entrega do Google Play, como o Play Asset Delivery ou o Play Feature Delivery, para exceder o limite de 200 MB ou podem usar redes de fornecimento de conteúdo de terceiros.
Quais benefícios o Play Asset Delivery oferece em comparação aos arquivos de expansão (OBBs)?
No Google Play, os APKs precisam de arquivos de expansão separados (OBBs) para disponibilizar recursos adicionais aos usuários. No entanto, como os OBBs não são assinados e e ficam armazenados fora do app, eles não são muito seguros. Com o Play Asset Delivery (PAD), jogos com mais de 200 MB podem substituir o OBB publicando o jogo inteiro como um único pacote de apps na Play Store. Além de oferecer um processo de publicação mais tranquilo e modos de entrega flexíveis, o PAD faz com que as atualizações precisem de menos armazenamento do dispositivo. Como resultado, ele pode gerar taxas de instalação mais altas. Por fim, agora que cerca de 80% dos dispositivos oferecem suporte à ASTC, o recurso de segmentação por formato de compactação de textura do PAD permite fornecer a ASTC para esses dispositivos. Você pode direcionar para o maior número possível de dispositivos e usar o hardware e o armazenamento disponíveis.
Recursos de entrega do Google Play desbloqueados por AABs
Quais são os exemplos de novos recursos oferecidos pelo Google Play para desenvolvedores que usam os AABs?
As app stores, como o Google Play, processam os AABs em APKs instaláveis. A responsabilidade pelos APKs possibilita oferecer novos recursos e serviços que trazem benefícios a desenvolvedores e usuários. O Google Play já oferece esses serviços que são amplamente usados e valorizados pelos desenvolvedores. Dois exemplos são o Play Feature Delivery e o Play Asset Delivery.
O que é o Play Feature Delivery?
Um dos recursos de pacotes de apps é que eles permitem separar um app em vários módulos, chamados de "módulos de recursos". Esses módulos podem ser entregues dinamicamente aos usuários e dispositivos em momentos diferentes, ao contrário de antes, quando tudo precisava ser entregue como um único arquivo no momento da instalação. O Play Feature Delivery permite que você personalize quais módulos de recursos serão entregues em qual dispositivo e quando, com os modos de entrega no tempo de instalação, condicional e sob demanda. Dessa forma, você pode reduzir o tamanho do seu app, gerando mais instalações, e personalizar a experiência dele. Por exemplo, é possível entregar um recurso raramente usado, como suporte ao cliente sob demanda, para os usuários que precisam dele em vez de fazer isso no momento da instalação, reduzindo o tamanho da instalação inicial para todos os usuários. Ou você pode oferecer sua experiência completa em dispositivos de última geração e entregar uma experiência de app menor com recursos opcionais sob demanda para dispositivos básicos que têm restrições de armazenamento e de dados.
O que é o Play Asset Delivery?
Com o Play Asset Delivery, os desenvolvedores de jogos podem melhorar a experiência do usuário e reduzir o tempo de espera dele, fornecendo recursos grandes dinamicamente no momento ideal. Os jogos que usam o Play Asset Delivery também podem usar a segmentação por formato de compactação de textura, para que os usuários só recebam os recursos adequados para o dispositivo, sem desperdício de espaço ou de largura de banda.
Esses recursos de entrega do Google Play estão disponíveis em outras app stores?
Não, o Play Feature Delivery e o Play Asset Delivery envolvem apps e jogos em interface direta com a Google Play Store. Esses serviços opcionais são exemplos da diferença do Google Play em relação a outras app stores e agregam valor e utilidade a desenvolvedores e usuários do Google Play. Outras app stores que usam pacotes de apps e APKs oferecem seus serviços específicos aos desenvolvedores.