O que significa "zipalign" e qual é o seu significado?
Quando uma ROM afirma ser "zipaligned", o que isso significa e qual a diferença de uma ROM que não é "zipaligned"?
fonte
O que significa "zipalign" e qual é o seu significado?
Quando uma ROM afirma ser "zipaligned", o que isso significa e qual a diferença de uma ROM que não é "zipaligned"?
Esse mecanismo é descrito no site de desenvolvedores do Android da seguinte maneira:
O zipalign é uma ferramenta de alinhamento de arquivamento que fornece otimização importante para arquivos de aplicativos (.apk) do Android. O objetivo é garantir que todos os dados não compactados iniciem com um alinhamento específico em relação ao início do arquivo. Especificamente, faz com que todos os dados não compactados no .apk, como imagens ou arquivos brutos, sejam alinhados nos limites de 4 bytes. Isso permite que todas as partes sejam acessadas diretamente com mmap (), mesmo que contenham dados binários com restrições de alinhamento. O benefício é uma redução na quantidade de RAM consumida ao executar o aplicativo.
Em resumo: o .apk
conteúdo pode ser mais fácil / rápido / mais otimizado acessado devido à ordem dos dados dentro do arquivo compactado.
Para obter informações mais detalhadas, há um "guia completo" disponível em AddictiveTips: O que é Zipalign no Android e como criar aplicativos Zipaligned , que responde à segunda parte da sua pergunta:
Muito compreensivelmente, a situação seria reservada para pacotes de aplicativos desalinhados. A leitura de recursos seria lenta e o uso de memória estaria na extremidade superior do espectro. Também dependeria de quantos aplicativos desalinhados estão presentes. Por exemplo, se um número menor de aplicativos com um aplicativo doméstico não alinhado, você verá tempos de inicialização mais lentos. Este é o melhor cenário. Para o pior cenário, ter um número de aplicativos não alinhados resultará no sistema repetidamente iniciando e encerrando processos, lutando com atrasos e grande consumo de bateria.
struct x { uint16_t id; uint32_t data[100]; };
se desejar que ele seja alinhado em 32 bits; usestruct x { uint16_t id; uint16_t padding; uint32_t data[100]; };
Para adicionar acima como exatamente o zipalign funciona -
Fonte
fonte