¿Cómo detectar el dispositivo Android es de 64 bits o procesador de 32 bits?

Estoy tratando de encontrar la mejor solución para esta pregunta. La razón es que el lib de nuestra aplicación no puede ejecutarse con el procesador de 64 bits por lo que necesito apagarlo en este caso. Encontré que en la versión 21 de Android (lolipop) y superior podemos detectar fácilmente que el dispositivo es de 32 bits o procesador de 64 bits utilizando Build.SUPPORTED_64_BIT_ABIS y si devuelve la matriz String con 0 elementos entonces … ¡una hah! El dispositivo es un procesador de 32 bits. ¿Qué hay de la versión Android más baja? Build.SUPPORTED_64_BIT_ABIS solo soporta desde la versión Android de Lolipop y superior. Gracias y Saludos cordiales, Les deseo a todos ustedes lo mejor!

Respuesta simple: No hay necesidad de comprobar esto en versiones de Android por debajo de Lollipop. Esto se debe al hecho de que Lollipop introdujo soporte de plataforma para arquitecturas de 64 bits, Android-Versiones por debajo de Lollipop no se ejecutará con un procesador de 64 bits.

Android 5.0 introduce el soporte de plataformas para arquitecturas de 64 bits, utilizadas por el Nexus 9 NVIDIA Tegra K1. Las optimizaciones proporcionan un mayor espacio de direcciones y un rendimiento mejorado para determinadas cargas de trabajo de cálculo. Las aplicaciones escritas en el lenguaje Java se ejecutan automáticamente como aplicaciones de 64 bits; no se necesitan modificaciones. Si su aplicación utiliza código nativo, hemos extendido el NDK para admitir nuevas ABI para ARM v8 y x86-64 y MIPS-64. (Fuente)

  try { boolean isArm64 = false; BufferedReader localBufferedReader = new BufferedReader(new FileReader("/proc/cpuinfo")); if (localBufferedReader.readLine().contains("aarch64")) { isArm64 = true; } localBufferedReader.close(); } catch (IOException e) { } 

O

 final boolean is64bit = Build.SUPPORTED_64_BIT_ABIS.length > 0; 

Firdt conectar el dispositivo a un sistema, en el tipo de ventanas en el símbolo del sistema este comando

 adb shell cat /proc/cpuinfo | findstr arc 

En el sistema abierto de linux o mac open terminal y escriba este comando

  adb shell cat /proc/cpuinfo | grep arc 

Si la primera línea de salida contain 32 que significa que el tipo de sistema es de 32bit

La primera línea de salida si contain 64 que tipo de sistema medio es de 64bit

32Bit si debajo de 5.0, porque androide apoya 64Bit hasta 5.0.
Juzga si Build.SUPPORTED_ABIS soporta 64 si es superior a 5.0.

 String bits; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { bits = TextUtils.join(", ", Build.SUPPORTED_ABIS).contains("64") ? "64-Bit" : "32-Bit"; } else { bits = "32-Bit"; } 

Puede ver un dispositivo de 64 bits o 32 bits mediante el uso de herramientas de desarrollo .

  • Documentación para Androides Renderscript avanzada rsForEach llamada
  • ApplicationStatus clase E / SysUtils: ApplicationContext es null en ApplicationStatus
  • ¿Cómo obtener Android Render Script Group trabajo?
  • Cómo utilizar ScriptIntrinsic3DLUT con un archivo .cube?
  • La biblioteca de soporte de RenderScript se bloquea en dispositivos x86
  • Se ha producido un error en la carga del script ScriptC - android render script
  • RenderScript Bound Pointers vs. Asignaciones
  • Compilando el código render-script en tiempo de ejecución
  • Cómo pasar valores de matriz desde y hacia RenderScript de Android mediante Asignaciones
  • ¿Por qué no funciona rsDebug?
  • RenderScript: El uso de ScriptGroup para el proceso de imagen causa rayas horizontales
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.