获取处理器硬件Android设备的名称

时间:2015-05-08 11:40:50

标签: android

我执行/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());
        }

在此范围内,它还会返回硬件名称。我得到的硬件名称不是正确的可读格式。我已经在三星Note 3,Micromax Canvas Doodle A111,Micromax Turbo A250等各种设备上进行了测试。

这是我分别在这些设备中得到的:

  • 三星EXYNOS5420 :(但我需要这个名字 三星Exynos Octa 5420
  • QRD MSM8625Q EVBD :(需要名称 Qualcomm Snapdragon 200
  • MT6589 :( MediaTek MT6589

我怎样才能克服这一点,请帮助!!!

1 个答案:

答案 0 :(得分:1)

对我来说,如果您的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

从它的外观Build.BRAND + " " + Build.MODEL看起来就像你想要的那样。

虽然文档并不能保证任何字段的标准化,但这可能比调用Runtime.exec("cat /proc/cpuinfo")并从那里解析更好。

如果CPU级别功能是您想要的,您可以尝试使用android cpufeatures库从本机代码执行,调用函数:

uint64_t android_getCpuFeatures();

获取包含许多CPU功能标志的int。