Il s’agit peut-être d’une question dupliquée, mais je n’arrive pas à la trouver. Je me demande comment nous pouvons obtenir l’ABI d’un téléphone à l’aide d’un code. Je sais qu'il y a différentes interfaces qui peuvent être dictées dans un fichier Gradle. Mais le problème est de savoir comment obtenir exactement le ABI d'un périphérique donné, de sorte que je puisse le copier manuellement dans le dossier system/lib/en utilisant SuperSU. Merci.
Android.productFlavors {
// for detailed abiFilter descriptions, refer to "Supported ABIs" @
// https://developer.Android.com/ndk/guides/abis.html#sa
create("arm") {
ndk.abiFilters.add("armeabi")
}
create("arm7") {
ndk.abiFilters.add("armeabi-v7a")
}
create("arm8") {
ndk.abiFilters.add("arm64-v8a")
}
create("x86") {
ndk.abiFilters.add("x86")
}
create("x86-64") {
ndk.abiFilters.add("x86_64")
}
create("mips") {
ndk.abiFilters.add("mips")
}
create("mips-64") {
ndk.abiFilters.add("mips64")
}
// To include all cpu architectures, leaves abiFilters empty
create("all")
}
Vous pouvez le faire de deux manières. L'un est obsolète mais fonctionne toujours, tandis que l'autre nécessite que le téléphone utilise Android 5.0 ou une version ultérieure.
La manière obsolète
Si vous souhaitez prendre en charge tous les téléphones actuels, vous pouvez utiliser:
import Android.os.Build;
String ABI = Build.CPU_ABI;
The Newer Way
La nouvelle méthode fournira en fait une liste de toutes les ABI prises en charge, le premier index étant l’ABI la plus préférée à utiliser ( Référence API ):
import Android.os.Build;
String ABI = Build.SUPPORTED_ABIS[0];
Les deux méthodes ont été testées pour fonctionner sur Android 5.1.1. Elles renverront l’un des éléments suivants:
Les futures ABI doivent être répertoriées ici: https://developer.Android.com/ndk/guides/abis.html#sa
TLDR: Voici une version combinée de la solution bandoncontortion, qui fonctionne sur toutes les versions d'Android:
public String getAbi() {
if (Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.Lollipop) {
// on newer Android versions, we'll return only the most important Abi version
return Build.SUPPORTED_ABIS[0];
}
else {
// on pre-Lollip versions, we got only one Abi
return Build.CPU_ABI;
}
}