availableProcessors()为dualcore电话返回1

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

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

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

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

  • 为什么我的应用程序在第一次运行时开始非常慢(10s +),仅显示android 5.0上的白色屏幕?
  • 检查视图元素是否添加到布局或不是以编程方式
  • Android ListView刷新单行
  • 自定义字体TextView的性能问题
  • 内存泄漏的实际例子
  • 针对Android开发优化Eclipse
  • 为什么Android模拟器很慢?
  • Gradle性能是否与CPU核心数量成正比?
  • 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()); } }