19 votes

Que signifie zipalign et comment s'intègre-t-il dans la façon dont nous utilisons nos appareils Android ?

Que signifie "zipalign" et quelle est sa signification ?

Quand une ROM prétend être "zipaligned", qu'est-ce que cela signifie et quelle est la différence avec une ROM qui n'est pas "zipaligned" ?

21voto

Milner Points 533

Ce mécanisme est décrit à l Site des développeurs Android comme suit :

zipalign est un outil d'alignement d'archives qui fournit une optimisation importante aux fichiers d'applications Android (.apk). L'objectif est de garantir que toutes les données non compressées commencent avec un alignement particulier par rapport au début du fichier. Plus précisément, toutes les données non compressées du fichier .apk, telles que les images ou les fichiers bruts, sont alignées sur des limites de 4 octets. Cela permet d'accéder directement à toutes les portions avec mmap() même si elles contiennent des données binaires avec des restrictions d'alignement. L'avantage est une réduction de la quantité de RAM consommée lors de l'exécution de l'application.

En bref : .apk l'accès au contenu peut être plus facile/rapide/optimal en raison de l'ordre des données dans le fichier emballé.

Pour des informations plus approfondies, il existe un "guide complet" disponible sur AddictiveTips : Qu'est-ce que Zipalign dans Android et comment rendre les applications Zipalign ? ce qui répond à la deuxième partie de votre question :

De manière tout à fait compréhensible, la situation serait réservée aux paquets d'applications non alignés. La lecture des ressources serait lente et l'utilisation de la mémoire se situerait dans la partie supérieure du spectre. Cela dépendrait également du nombre d'applications non alignées présentes. Par exemple, si le nombre d'applications est moindre et que l'application principale n'est pas alignée, les temps de lancement des applications seront plus lents. Il s'agit du meilleur scénario possible. Dans le pire des cas, la présence d'un grand nombre d'applications non alignées entraînera le démarrage et l'arrêt répétés de processus, des décalages et une forte consommation de la batterie.

1voto

Aniket Thakur Points 289

Pour ajouter à ce qui précède, comment fonctionne exactement zipalign ?

Dans un environnement d'exploitation Android, plusieurs processus accèdent aux fichiers de données stockés dans chaque paquet d'applications. Par exemple, le programme d'installation lit le manifeste des données pour déterminer les autorisations associées ; le serveur système peut lire ces ressources pour de multiples raisons, comme l'affichage de notifications ; l'application Accueil, par exemple, lit les ressources pour obtenir le nom et l'icône de l'application. Étant donné qu'Android est basé sur une véritable infrastructure d'exploitation multitâche, ces fichiers font l'objet d'accès continus et répétés. Enfin, et surtout, l'application elle-même lit les données du manifeste.

Android étant basé sur Linux, le mappage de la mémoire joue un rôle essentiel dans la gestion efficace des processus. Essentiellement, l'alignement optimal pour le code de gestion des ressources du système d'exploitation Android est de 4 octets. Cela signifie que, si les APK sont mappés en mémoire sur des limites de 4 octets et alignés en conséquence, le système d'exploitation n'aura pas besoin de "lire" l'ensemble du paquet d'applications pour atteindre le manifeste de données souhaité. Chaque processus système saura à l'avance où chercher les ressources souhaitées et s'exécutera donc de manière beaucoup plus fluide et rapide.

En résumé, l'alignement zip d'un APK a pour effet d'aligner toutes les données non compressées du paquet sur des limites de 4 octets, ce qui permet d'accéder à toutes les parties directement avec la carte mémoire. La consommation de RAM est réduite pendant l'exécution car le code d'interrogation n'a pas à lire l'ensemble du paquet d'application.

Source :

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X