Utilizando System.getProperty ("os.arch") para comprobar si es cpu armeabi
Tengo el siguiente problema con RenderScript en algunos dispositivos 4.2.2 (galaxia s3 mini, galaxy as 3, galaxy fresh, etc.) – Android – Renderscript Support Library – Error al cargar la librería RS jni .
Quiero implementar la solución sugerida, pero ¿cuál será exactamente el valor devuelto por
System.getProperty ("os.arch");
Para dispositivos armeabi (no dispositivos armeabi-v7).
Gracias.
El método System.getProperty
es un método genérico de Java, aquí puede encontrar la documentación.
En Linux devuelve el mismo valor obtenido del comando uname -m
. Los valores posibles son, por ejemplo, armv5te
, armv5tej
, armv5tejl
, armv6
, armv7
, armv7l
, armv7l
, i686
y muchos más. No hay un valor exacto para los dispositivos armeabi
porque difiere ligeramente de cpu a cpu.
Hay una mejor alternativa a System.getProperty
y es el campo Build.CPU_ABI
(o Build.SUPPORTED_ABIS
en dispositivos más recientes):
String abi = null; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { abi = Build.CPU_ABI; } else { abi = Build.SUPPORTED_ABIS[0]; }
Los valores posibles son armeabi
, armeabi-v7a
, arm64-v8a
, x86
, x86_64
, mips
, mips64
.
Como se puede ver el número de posibles resultados es mucho menor que System.getProperty
, y se puede comprobar directamente por armeabi
.