2013-10-09 50 views
1

我試圖從英特爾和Android cpu設備獲取CPU信息。我在代碼中運行:在ADB shell中讀取文件'/ proc/cpuinfo'並使用'cat/proc/cpuinfo'返回不同的值

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

然後逐行讀取輸出。奇怪的是這是顯示ARM信息,例如:

Processor : ARMv7 processor rev 1 (v7l) 

當你從IO讀取文件時也會發生這種情況。

現在,當我通過ADB shell運行'cat/proc/cpuinfo'時,所有與英特爾proc相關的正確信息都在那裏。

任何人都可以解釋這裏發生了什麼?

+0

如果運行'uname -r'會發生什麼?或'uname -a'?這些測試是否都在模擬器上運行(只是好奇)? –

+0

我看到了完全相同的東西 - 如果我使用'adb shell cat proc/cpuinfo',我可以得到您期望的完整讀數,包括指定intel處理器和時鐘速度的'型號名稱' - 但如果我嘗試從我的設備上的AIR應用程序讀取該文件,我得到'armv7'信息。 –

+0

我正在考慮在這裏提出詢問,但我認爲你的問題已經涵蓋了它 - 太糟糕了,沒有任何答案。 –

回答

0

我在我的設備(DELL平板電腦)有類似的問題。

起初,它崩潰時,我的應用程序加載庫(armeabi-v7a),然後我發現它的架構不是ARM而是x86。

因此,我構建了x86的庫,並且我想在代碼中識別設備的體系結構以決定應該加載哪些庫(arm或x86)。

結果總是手臂不是x86!

也許它運行類似模擬器的東西來改變背景下的類型,因爲其他庫仍然是amr類型。

在最後,我在做一個庫x86文件夾,並建立所有庫(86),

,然後它可以成功運行,並通過自身得到「的/ proc/cpuinfo中」正確的信息。

相關問題