availableProcessors()为dualcore电话返回1

我最近买了一个Moto Atrix 2手机。 当我尝试查看手机中的处理器规格时,Runtime.getRuntime()。availableProcessors()返回了1. / proc / cpuinfo也只包含了有关处理器0的信息。

出于好奇,我在朋友的三星Galaxy S2中查了一下,这也是双核手机。 这也表明没有。 的核心是1。

我检查了我的Moto xoom平板电脑,这又是双核心。 这次availableProcessors()返回2,cpuinfo也有处理器0和处理器1的细节。

我很困惑。 为什么有些设备带有不同的信息 有人可以解释这个exception吗?

Solutions Collecting From Web of "availableProcessors()为dualcore电话返回1"

Runtime.getRuntime().availableProcessors()只返回在线处理器的数量,所以当第二个核心处于hibernate状态时它将返回1。 这是为了在较less资源密集型任务期间保存电力。

要查看所有可用的内核,请查看/ sys / devices / system / cpu /

这将为您带来Android上的核心数量(基于这个post ):

 public static int getCoresCount() { class CpuFilter implements FileFilter { @Override public boolean accept(final File pathname) { if(Pattern.matches("cpu[0-9]+",pathname.getName())) return true; return false; } } try { final File dir=new File("/sys/devices/system/cpu/"); final File[] files=dir.listFiles(new CpuFilter()); return files.length; } catch(final Exception e) { return Math.max(1,Runtime.getRuntime().availableProcessors()); } }