【问题标题】:Getting Processor Hardware Name of android device获取android设备的处理器硬件名称
【发布时间】:2015-05-08 11:40:49
【问题描述】:

我执行/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 等各种设备上进行了测试。

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

  • Samsung EXYNOS5420:(但我需要这个名字Samsung Exynos Octa 5420
  • QRD MSM8625Q EVBD:(需要名称Qualcomm Snapdragon 200
  • MT6589:(联发科 MT6589

我该如何克服这个,请帮助!!!

【问题讨论】:

标签: android


【解决方案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。

【讨论】:

  • 谢谢,能否请您详细解释一下如何使用本机代码,我从未做过本机编程!
  • @vivekwarde 去看看关于 Android NDK 的教程。约定类似于 JNI,但 android 提供了自己的构建工具。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 2021-04-20
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 2013-02-19
  • 2010-09-09
相关资源
最近更新 更多