如何检查Android设备是否运行英特尔处理器?

时间:2012-07-19 14:50:25

标签: android

Android SDK中是否有任何代码可以让我检查设备是否在英特尔处理器上运行?

感谢。

5 个答案:

答案 0 :(得分:1)

我认为您应该使用Build.CPU_ABIBuild.CPU_ABI2以某种方式检测正在运行的处理器。只需看看Build类给出:

  

从系统属性中提取的有关当前构建的信息。

答案 1 :(得分:1)

据我所知,但是您真正需要知道处理器的ISA的唯一时间是您需要运行本机代码。 因此,一种方法是在本机库中添加一个方法,为不同的ISA(MIPS,ARM,x86)返回不同的值。你只需要一个JNI电话就可以得到你想要的答案。

答案 2 :(得分:1)

我个人将它用作黑客,但也许你会发现它很有用。我的想法是使用cat解析/ proc / cpuinfo,并在其上查找GenuineIntel。我在一个应用程序上使用它。

正如我所说,似乎是一个黑客,也许更有经验的Android开发人员可以提出更好的解决方案。

private boolean isAnIntel() {
   String[] args = {"/system/bin/cat", "/proc/cpuinfo"};
   cmd = new ProcessBuilder(args);

   Process process = cmd.start();
   InputStream in = process.getInputStream();
   byte[] re = new byte[1024];
   while(in.read(re) != -1){
    result = result + new String(re);
   }
   in.close();
   return result.indexOf("GenuineIntel") > 0;
}

答案 3 :(得分:0)

别忘了android是LINUX 所有CPU信息都在文件“/ proc / cpuinfo”上 如果处理器是intel,那么该文件中vendor_id的值将是GenuineIntel。 (vendor_id:GenuineIntel)

答案 4 :(得分:0)

在英特尔博客上有文章https://software.intel.com/en-us/blogs/2014/12/16/how-to-identify-the-image-is-32-bit-or-64-bit-user-space他们建议使用ro.product.cpu.abi属性或再次Build自Android 5.0以来更改了API

CPU_ABI
CPU_ABI2
SUPPORTED_32_BIT_ABIS
SUPPORTED_64_BIT_ABIS
SUPPORTED_ABIS