我/proc/cpuinfo使用下面的代码执行以获取 Android 设备中 CPU 的详细信息。
try {
Process proc = Runtime.getRuntime().exec("cat /proc/cpuinfo");
InputStream is = proc.getInputStream();
TextView tv = (TextView)rootView.findViewById(R.id.textView1);
tv.setText(getStringFromInputStream(is));
}
catch (IOException e) {
Log.e("TAG", "------ getCpuInfo " + e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
其中它还返回硬件名称。我得到的硬件名称的格式不正确。我已经在 Samsung Note 3、Micromax Canvas Doodle A111、Micromax Turbo A250 等各种设备上进行了测试。
这是我分别在这些设备中得到的:
我该如何克服这个问题,请帮助!
我似乎有点不清楚你的 CPU 功能或设备信息是否一般,但无论如何......
Android 提供了一个名为Build的漂亮小类,它可以直接通过类的静态字段为您提供大量信息。该类提供了很多设备级的信息,如下所示:
直接取自我的 HTC One M8(省略了一些字段):
Build.BOARD: MSM8974
Build.BOOTLOADER: 3.19.0.0000
Build.BRAND: htc
Build.DEVICE: htc_m8
Build.DISPLAY: cm_m8-userdebug 5.1.1 LMY47V 47d6aee9c3 test-keys
Build.HARDWARE: qcom
Build.MANUFACTURER: htc
Build.MODEL: One M8
Build.PRODUCT: cm_m8
Run Code Online (Sandbox Code Playgroud)
从外观上看,它Build.BRAND + " " + Build.MODEL就像你想要的那样。
虽然文档不保证任何字段的标准化,但这可能比Runtime.exec("cat /proc/cpuinfo")从那里调用和解析更好。
如果您想要 CPU 级别的功能,您可以尝试使用 android cpufeatures 库从本机代码执行操作,调用该函数:
uint64_t android_getCpuFeatures();
Run Code Online (Sandbox Code Playgroud)
获取包含许多 CPU 功能标志的 int。