por que apk desalinhado é necessário?


151

O Android gradle produz apk em dois binários: desalinhado e alinhado.

O documento dizia ...

Depois de assinar o APK com sua chave privada, execute zipalign no arquivo. Essa ferramenta garante que todos os dados descompactados iniciem com um alinhamento de bytes específico, relativo ao início do arquivo. Garantir o alinhamento nos limites de 4 bytes fornece uma otimização de desempenho quando instalado em um dispositivo. Quando alinhado, o sistema Android consegue ler arquivos com mmap (), mesmo que contenham dados binários com restrições de alinhamento, em vez de copiar todos os dados do pacote. O benefício é uma redução na quantidade de RAM consumida pelo aplicativo em execução.

Parece que o apk alinhado é altamente recomendado para distribuir. Para mim, só uso o apk alinhado como resultado e ignoro o apk não alinhado .

O apk desalinhado tem algum uso especial durante o desenvolvimento?

Respostas:


197

É um processo de duas etapas. O apk não alinhado é apenas um produto intermediário.

  1. o apk desalinhado é gerado
  2. o desalinhado fica alinhado e produz o apk alinhado

3
Obrigado pela resposta rápida. Então, podemos dizer que apk desalinhado é apenas uma coisa provisória?
Youngjae 27/02

1
Certo. Alguns IDEs o produzem como produto final para a compilação de depuração para acelerar o processo de compilação.
Flx 27/02/14

2
desalinhar o arquivo apk ajuda a depurar o aplicativo? Obrigado :)
hqt 14/09/14

11
não, não faz. é basicamente o mesmo conteúdo que o arquivo zip alinhado, apenas os limites do arquivo não estão alinhados aos blocos 4b.
FLX

49

O APK não alinhado (assinado) é necessário porque a assinatura de um apk alinhado desfaz o alinhamento.

Dos documentos :

Cuidado: o zipalign deve ser executado somente após o arquivo .apk ter sido assinado com sua chave privada. Se você executar o zipalign antes de assinar, o procedimento de assinatura desfará o alinhamento.

Veja esta resposta para mais. Aqui está o processo de compilação detalhado: insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.