Dans le domaine des puces ARM qui est le facteur commun, l'ensemble de la pile Android, du noyau presque identique basé sur Linux, sont en fait 32 bits, compilés de manière croisée à partir d'un environnement hôte 32 bits/64 bits, l'environnement hôte étant généralement l'une des distributions de Linux. La distribution recommandée par Google pour la construction et la compilation croisée d'Android est la suivante Ubuntu .
La bibliothèque d'exécution Android (médias, graphiques, système de fichiers, pour n'en citer que quelques-uns) est également en 32 bits, mais lorsque nous atteignons la couche de la dalvikvm, le nombre de bits n'a plus d'importance car, à ce stade, les apks provenant du Google Play Store sont en bytecode natif (un "sous-produit" du code Java généré compilé en bytecode portable) qui cible la DalvikVM (machine virtuelle) qui, à son tour, interprète et traduit le bytecode en ciblant le jeu d'instructions ARM brut.
Froyo était le dernier Android qui permettait la compilation dans un environnement hébergé 32 bits dans lequel il était compilé de manière croisée en ciblant les puces ARM.
Gingerbread a été le premier des "futurs" Android, à l'époque, il y a environ trois ans, qui a introduit l'obligation d'utiliser un environnement hébergé 64 bits dans lequel il a été construit. Il y a eu de nombreuses manipulations pour que Gingerbread soit construit dans un environnement hébergé 32 bits.
ICS et JB, et les versions ultérieures, requièrent définitivement un environnement 64 bits pour accélérer la compilation et réduire les délais de construction.
Donc, pour résumer, ce que vous voyez sur le Play Store n'a aucune incidence sur l'utilisation de 32 ou 64 bits et n'est donc pas pertinent.
Remarque : pour une distribution Linux typique de 16 Go de RAM, quadruple cœur et 64 bits, le temps nécessaire à la construction d'ICS à partir de zéro est de 30 minutes maximum. Si cette distribution était une distribution Linux 32 bits, cela aurait pris plus de temps et aurait même pu provoquer un effondrement du processeur, car il n'y a tout simplement pas assez de puissance de traitement pour produire du code compilé en croisé, ce qui pourrait entraîner des problèmes de sécurité. est un processus très exigeant et éprouvant !
Preuve en est.
Tirez dans n'importe quel binaire ARM natif trouvé dans /system/bin
ou /system/xbin
par exemple, /system/bin/dalvikvm
Il s'agit du binaire Dalvik VM qui est responsable des couches supérieures de Java et des APK.
Maintenant, examinez le binaire en lançant cette commande : file dalvikvm
qui donne un résumé du type de fichier dont il s'agit, le résultat attendu serait le suivant :
dalvikvm : exécutable ELF 32-bit LSB, ARM, version 1 (SYSV), lié dynamiquement (utilise des librairies partagées), dépouillé.
Remarquez la référence à ELF 32 bits, qui est compilé de manière croisée pour ARM et est un exécutable binaire.
Bien, continuons, inspectons une bibliothèque partagée native trouvée dans /system/lib
par exemple, /system/lib/libandroid_runtime.so
maintenant le numéro file libandroid_runtime.so
le résultat attendu serait le suivant :
libandroid_runtime.so : ELF 32-bit LSB objet partagé, ARM, version 1 (SYSV), lié dynamiquement, dépouillé.
Encore une fois, remarquez qu'il s'agit d'un fichier ELF 32 bits, compilé de manière croisée pour ARM et d'une bibliothèque partagée.
La clé de la compilation croisée de l'hôte se trouve dans les sources de l'AOSP, c'est-à-dire que la version Gingerbread devait à l'origine être construite sur un système hôte 64 bits. lien se référant à comment corriger les scripts pour qu'ils soient compilés sur un hôte 32 bits ? qui a deux correctifs, trouvés ici, pour build/core.mk
y build/main.mk
( combiné ) sur la revue Gerrit de l'AOSP.
Par la suite, ce correctif s'est retrouvé dans les scripts de construction d'ICS. J'ai eu le privilège de compiler ICS sur une plateforme 32 bits, ce qui a pris 3 jours pour le faire ( c'était un portage d'ICS pour le Zte Blade ). Maintenant, les exigences sont accrues, vous faire Il faut absolument un hôte 64 bits pour permettre la compilation croisée de l'AOSP à partir de ICS :)