Le programme que j'ai écrit a compilé quatre fichiers so armeabi, armeabi-v7a, arm64-v8a et x86. Je voulais réduire la taille de l'APK en supprimant les fichiers so, mais après avoir supprimé certaines fonctions de certains modèles, des erreurs seront ensuite signalées. J'ai découvert que WeChat ne compilait que les fichiers armeabi so, sans armeabi-v7a, arm64-v8a. Comment x86 fonctionne-t-il sur les téléphones mobiles équipés de différents processeurs ?
Parce qu'armeabi prend en charge l'exécution sous armeabi, armeabi-v7a, arm64-v8a, et prend également en charge certains x86. Il n'existe pratiquement pas de téléphones mobiles à architecture mips sur le marché, donc en théorie, un seul armeabi peut prendre en charge tous les téléphones mobiles. armeabi fonctionne sous v7 v8, mais l'efficacité sera différente.
Vous pouvez lire ceci sur ce que vous devez savoir sur Android donc les fichiers
Tous les appareils x86/x86_64/armeabi-v7a/arm64-v8a prennent en charge les fichiers .so de l'architecture armeabi, il semble donc que supprimer les fichiers .so d'autres ABI soit une bonne astuce pour réduire la taille de l'APK. Mais en réalité ce n’est pas le cas : cela n’affecte pas seulement les performances et la compatibilité de la bibliothèque de fonctions.
Les appareilsx86 peuvent très bien exécuter les bibliothèques de fonctions de type ARM, mais rien ne garantit que des plantages ne se produiront pas à 100 %, en particulier pour les anciens appareils. Les appareils 64 bits (arm64-v8a, x86_64, mips64) peuvent exécuter des bibliothèques de fonctions 32 bits, mais lors de l'exécution en mode 32 bits, l'exécution de versions 32 bits des composants ART et Android sur une plate-forme 64 bits perdra le 64 bits. -bit optimisations des performances (ART, webview, médias, etc.).
Il peut être chargé dynamiquement.
Tout d'abord, armeabi est compatible avec d'autres architectures armeabi-v7a, arm64-v8a et x86. Deuxièmement, vous venez de voir le répertoire WeChat armeabi. Vous pouvez également placer des fichiers SO d'autres architectures dans ce répertoire, puis choisir le fichier SO de l'architecture à charger via le code.