Qual é a vantagem de criar um APK assinado?
Os pontos importantes para entender sobre a assinatura de aplicativos Android são:
- Todos os aplicativos devem ser assinados. O sistema não irá instalar uma aplicação num emulador ou num dispositivo se não estiver assinada.
- Para testar e depurar a sua aplicação, as ferramentas de compilação assinam a sua aplicação com uma chave de depuração especial que é criada pelas ferramentas de compilação do SDK do Android.
- Quando estiver pronto para lançar a sua aplicação para os utilizadores finais, deve assiná-la com uma chave privada adequada. Você não pode publicar uma aplicação que seja assinada com a chave de depuração gerada pelas ferramentas SDK.
- Você pode usar certificados autoassinados para assinar suas aplicações. Não é necessária nenhuma autoridade de certificado.
- O sistema testa um certificado de assinante's data de expiração somente na hora da instalação. Se um certificado de assinante do aplicativo's expirar após a instalação do aplicativo, o aplicativo continuará a funcionar normalmente.>li>li> Você pode usar ferramentas padrão - Keytool e Jarsigner - para gerar chaves e assinar seu aplicativo .apk.li>li> Após assinar seu aplicativo para lançamento, recomendamos que você use a ferramenta de alinhamento zip para otimizar o pacote final do APK.
Por que significa:
Alguns aspectos da assinatura do aplicativo podem afetar a forma como você aborda o desenvolvimento do seu aplicativo, especialmente se você está planejando lançar vários aplicativos.
Em geral, a estratégia recomendada para todos os desenvolvedores é assinar todos os seus aplicativos com o mesmo certificado, durante toda a vida útil esperada dos seus aplicativos. Existem várias razões pelas quais você deve fazer isso:
>ul>li>Application upgrade - Ao lançar atualizações para sua aplicação, você deve continuar a assinar as atualizações com o mesmo certificado ou conjunto de certificados, se você quiser que os usuários sejam capazes de atualizar sem problemas para a nova versão. Quando o sistema está instalando uma atualização para uma aplicação, ele compara o(s) certificado(s) da nova versão com os da versão existente. Se os certificados corresponderem exatamente, incluindo os dados do certificado e a ordem, então o sistema permite a atualização. Se você assinar a nova versão sem usar certificados correspondentes, você também deve atribuir um nome de pacote diferente para a aplicação - neste caso, o usuário instala a nova versão como uma aplicação completamente nova.>Application modularity - O sistema Android permite que aplicações assinadas pelo mesmo certificado sejam executadas no mesmo processo, se as aplicações assim o solicitarem, para que o sistema as trate como uma única aplicação. Desta forma você pode implantar seu aplicativo em módulos, e os usuários podem atualizar cada um dos módulos de forma independente, se necessário.li>li>Code/data sharing através de permissões - O sistema Android fornece execução de permissões baseadas em assinaturas, de forma que um aplicativo possa expor a funcionalidade a outro aplicativo que é assinado com um certificado especificado. Ao assinar vários aplicativos com o mesmo certificado e usando verificações de permissões baseadas em assinaturas, seus aplicativos podem compartilhar código e dados de forma segura.Outra consideração importante na determinação de sua estratégia de assinatura é como definir o período de validade da chave que você usará para assinar seus aplicativos.
- Se você planeja suportar atualizações para um único aplicativo, você deve garantir que sua chave tenha um período de validade que exceda a vida útil esperada desse aplicativo. Um período de validade de 25 anos ou mais é recomendado. Quando o período de validade da sua chave's expirar, os usuários não poderão mais atualizar sem problemas para novas versões da sua aplicação.
- Se você assinar várias aplicações distintas com a mesma chave, você deve garantir que o período de validade da sua chave's exceda a vida útil esperada de todas as versões de todas as aplicações, incluindo as aplicações dependentes que possam ser adicionadas à suíte no futuro.
- Se você pretende publicar seu(s) aplicativo(s) no Google Play, a chave que você usa para assinar o(s) aplicativo(s) deve ter um período de validade terminando após 22 de outubro de 2033. O Google Play reforça este requisito para garantir que os utilizadores possam actualizar aplicações quando novas versões estiverem disponíveis.
Source: Documentação do Android