如何检测android的cpu速度?

我想检测我的Android应用程序运行的设备有多快?

是否有任何API在Android上做到这一点? 还是我必须自己衡量它?

如果设备的CPU速度较慢,我想closures一些耗时的操作,如animation或限制同时HTTP请求的最大数量。

Solutions Collecting From Web of "如何检测android的cpu速度?"

在我看来,最好的办法就是监视这些行为所花费的时间。 如果花费太多的时间,那么系统太慢,你可以禁用花式function,直到它足够快。

读取CPU速度或其他规格,并试图判断系统速度是一个坏主意。 未来的硬件变化可能会使这些规格变得毫无意义。

以Pentium 4和Core 2为例。 哪个是更快的CPU,2.4 GHz Pentium 4或1.8 GHz Core 2? 2 GHz Opteron比1.4 GHz Itanium 2更快吗? 你怎么知道什么样的ARM CPU实际上更快?

要获得Windows Vista和7的系统速度评级,Microsoft实际上会对该机器进行基准testing。 这是确定系统function的唯一准确的方法。

它看起来像一个好方法是使用SystemClock.uptimeMillis()。

尝试阅读/proc/cpuinfo其中包含CPU信息:

  String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; ProcessBuilder pb = new ProcessBuilder(args); Process process = pb.start(); InputStream in = process.getInputStream(); //read the stream 

请参考以下提供CPU相关数据的链接

基于@dogbane解决scheme和这个答案 ,这是我的实现获得BogoMIPS值:

  /** * parse the CPU info to get the BogoMIPS. * * @return the BogoMIPS value as a String */ public static String getBogoMipsFromCpuInfo(){ String result = null; String cpuInfo = readCPUinfo(); String[] cpuInfoArray =cpuInfo.split(":"); for( int i = 0 ; i< cpuInfoArray.length;i++){ if(cpuInfoArray[i].contains("BogoMIPS")){ result = cpuInfoArray[i+1]; break; } } if(result != null) result = result.trim(); return result; } /** * @see {https://stackoverflow.com/a/3021088/3014036} * * @return the CPU info. */ public static String readCPUinfo() { ProcessBuilder cmd; String result=""; InputStream in = null; try{ String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; cmd = new ProcessBuilder(args); Process process = cmd.start(); in = process.getInputStream(); byte[] re = new byte[1024]; while(in.read(re) != -1){ System.out.println(new String(re)); result = result + new String(re); } } catch(IOException ex){ ex.printStackTrace(); } finally { try { if(in !=null) in.close(); } catch (IOException e) { e.printStackTrace(); } } return result; }