2016-02-09 18 views
5

Potrebbe trattarsi di una domanda duplicata, ma non riesco a trovarla. Mi chiedo come possiamo ottenere ciò che è l'ABI di un telefono, usando il codice. So che c'è un'interfaccia diversa che può essere dettata nel file gradle. Ma il problema è come posso ottenere esattamente l'ABI di un determinato dispositivo, così posso copiarlo manualmente in system/lib/folder usando SuperSU. Grazie.Come ottenere ABI (Application Binary Interface) in Android

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") 
    } 

risposta

10

Ci sono due modi per farlo. Uno è obsoleto ma funziona ancora mentre l'altro richiede che sul telefono sia installato Android 5.0 o versioni successive.

L'obsolete Way

Se si desidera supportare tutti i telefoni attuali è possibile utilizzare:

import android.os.Build; 
String ABI = Build.CPU_ABI; 

La recente Way

Il modo più nuovo in realtà fornirà un elenco di tutti gli ABI supportati, il primo indice è l'ABI più preferito da utilizzare (API Reference):

import android.os.Build; 
String ABI = Build.SUPPORTED_ABIS[0]; 

Entrambi i modi sono stati testati per funzionare su Android 5.1.1, torneranno in uno dei seguenti:

  • armeabi
  • armeabi-V7A
  • armeabi-V7A-hard
  • arm64-V8A
  • x86
  • x86_64
  • MIPS
  • MIPS64

Future ABI dovrebbe essere elencata qui: https://developer.android.com/ndk/guides/abis.html#sa

+0

Grazie Bandon, farlo funzionare. –

2

Guarda qui:

enter image description here

no?

Attraverso adb shell:

adb shell getprop ro.product.cpu.abi 

Anche se il codice Java:

import android.os.Build; 
Log.d("myabi", Build.SUPPORTED_ABIS[0]);