我在一些旧的 4.2.2- 设备(galaxy s3 mini、galaxy ace 3、galaxy fresh 等)上遇到以下 RenderScript 问题 - Android - Renderscript Support Library - Error loading RS jni library .
我想实现建议的解决方案,但
返回的值到底是什么System.getProperty("os.arch");
用于 armeabi 设备(不是 armeabi-v7 设备)。
谢谢。
最佳答案
方法System.getProperty
是Java 的泛型方法,here你可以找到文档。
在 Linux 上,它返回从命令 uname -m
获得的相同值。可能的值例如是 armv5t
、armv5te
、armv5tej
、armv5tejl
、armv6
、armv7
、armv7l
、i686
等等。 armeabi
设备没有确切的值,因为它在 cpu 与 cpu 之间略有不同。
System.getProperty
有一个更好的替代方案,它是字段 Build.CPU_ABI
(或较新设备中的 Build.SUPPORTED_ABIS
) :
String abi = null;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
abi = Build.CPU_ABI;
} else {
abi = Build.SUPPORTED_ABIS[0];
}
可能的值为armeabi
、armeabi-v7a
、arm64-v8a
、x86
、 x86_64
、mips
、mips64
。
如您所见,可能的结果数量远低于 System.getProperty
,您可以直接检查 armeabi
。
关于android - 使用 System.getProperty ("os.arch") 检查它是否是 armeabi cpu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33694596/