【问题标题】:Reading the file '/proc/cpuinfo' and using 'cat /proc/cpuinfo' in ADB shell are returning different values在 ADB shell 中读取文件“/proc/cpuinfo”并使用“cat /proc/cpuinfo”返回不同的值
【发布时间】:2013-10-09 20:07:26
【问题描述】:

我正在尝试从 Intel 和 Android cpu 设备获取 CPU 信息。我在代码中运行它:

Process process process = Runtime.getRuntime().exec("cat /proc/cpuinfo");

然后逐行读取输出。奇怪的是这是显示 ARM 信息,例如:

Processor   : ARMv7 processor rev 1 (v7l)

当您从 IO 中直接读取文件时也会发生这种情况。

现在,当我通过 ADB shell 运行“cat /proc/cpuinfo”时,与英特尔 proc 相关的所有正确信息都在那里。

谁能解释这里发生了什么?

【问题讨论】:

  • 如果你运行'uname -r'会发生什么?还是'uname -a'?这些测试是否在模拟器上运行(只是好奇)?
  • 我看到了完全相同的东西——如果我adb shell cat proc/cpuinfo,我会得到你所期望的完整读数,包括指定英特尔处理器和时钟速度的“型号名称”——但如果我尝试从设备上的 AIR 应用程序中读取该文件,我得到了“armv7”信息。
  • 我正在考虑在这里提交询问,但我认为您的问题已经涵盖了它 - 太糟糕了,没有任何答案。

标签: android linux shell


【解决方案1】:

我的设备(DELL 平板电脑)也遇到了类似的问题。

一开始我的app加载libs(armeabi-v7a)的时候就崩溃了,后来我发现它的架构不是arm而是x86。

所以我构建了 x86 的库,我想在代码中识别设备的架构来决定应该加载哪些库(arm 或 x86)。

结果总是 arm 而不是 x86 !!

也许它运行类似模拟器的东西在后台更改类型,因为其他库仍然是 amr 类型。

最后,我在 libs 中创建了一个 x86 文件夹并构建了所有 libs(x86),

然后它就可以成功运行并自行从“/proc/cpuinfo”中获取正确的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 2011-05-04
    相关资源
    最近更新 更多