android - 使用 System.getProperty ("os.arch") 检查它是否是 armeabi cpu

标签 android cpu-architecture

我在一些旧的 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 获得的相同值。可能的值例如是 armv5tarmv5tearmv5tejarmv5tejlarmv6armv7armv7li686 等等。 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];
}

可能的值为armeabiarmeabi-v7aarm64-v8ax86 x86_64mipsmips64

如您所见,可能的结果数量远低于 System.getProperty,您可以直接检查 armeabi

关于android - 使用 System.getProperty ("os.arch") 检查它是否是 armeabi cpu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33694596/

相关文章:

cpu-architecture - 重新排序缓冲区提交

Java线程与CPU核心的关系

android - 工具栏 - 只有一个 Activity 从抽屉切换到后退按钮

java - 启用了 proguard 的 Ormlite 找不到 id 字段

linux-kernel - 处理器流水线状态保存

assembly - x86 架构是否支持将 bool 打包为位以并行化逻辑操作?

c - 管道化读取指令

java - 在设置为 ImageView 之前在哪里调用 Crop Image

Android Beam LLCP 协议(protocol)

android - 在当前 WebView 页面中打开 PDF