Qu’est-ce que l’armeabi et pourquoi ils l’utilisent?

Je vois cette bibliothèque (armeabi) plusieurs fois quand j’explore les sources ouvertes.

J’ai cherché une explication sur net, mais tous les résultats que j’ai trouvés en parlent et ne le définissent pas.

Qu’est-ce que cet armeabi et pourquoi l’utilisent-ils dans les applications Android?

Les appareils Android ont des processeurs. Beaucoup de ces processeurs sont basés sur l’architecture ARM, alors que certains sont basés sur x86, et que quelques autres sont basés sur MIPS.

Certaines applications Android utilisent le kit de développement natif (NDK) pour créer du code C / C ++ à associer à leur application. Le code C / C ++ doit être compilé pour une architecture de processeur spécifique. Le NDK place la version du code C / C ++ compilée pour chaque architecture dans un répertoire spécifique à l’architecture. Un de ces répertoires est armeabi/ , qui concerne un processeur ARM générique. Il existe également armeabi-v7/ (pour un processeur compatible ARM v7), x86/ (pour les processeurs x86), etc.

ABI – Interface binary d’application

EABI – Interface binary d’application embarquée

Donc, ARMEABI sont des binarys compilés correspondant à l’architecture du processeur de votre appareil Android.

par exemple

arm64-v8a (Nexus 5x) – 64 bits – ARM Cortex-A35, ARM Cortex-A53, ARM Cortex-A57, ARM Cortex-A72, ARM Cortex-A73

armeabi-v7a – 32 bits – ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17

entrer la description de l'image ici

Pour inclure les jniLibs binarys * .so en utilisant Android Studio 2.3, placez-les dans le dossier src/main/jniLibs et ajoutez la configuration suivante à votre fichier * .gradle:

 android { sourceSets { main { jniLibs.srcDirs = ['src/main/jniLibs'] } } } dependencies { comstack fileTree(dir: 'jniLibs', include: ['*.so']) } 

J’ai récemment vu un très bon article sur les différents processeurs et des suggestions sur la façon de maintenir la taille de l’APK tout en les prenant en charge. L’article donne quelques informations sur les points suivants:

  • mips
  • mips64
  • X86
  • X86–64
  • arm64-v8a
  • armeabi
  • armeabi-v7a