获取CpuID

原理

通过linux cat命令查看/proc/cpuinfo文件,再使用正则表达式从中提取CpuID信息。
linux命令为:

cat /proc/cpuinfo

返回信息如下面格式:

Processor  : ARMv7 Processor rev 2 (v7l)

BogoMIPS  : 99.40

Features  : swp half thumb fastmult vfp edsp thumbee neon vfpv3 

CPU implementer  : 0x41

CPU architecture  : 7

CPU variant  : 0x2

CPU part  : 0xc08

CPU revision  : 2

Hardware  : herring

Revision  : 000b

Serial  : 123456789abcdef

如果是在命令行还可以用grep进一步过滤输出:

cat /proc/cpuinfo|grep -i serial

但是如果在程序中过滤将得不到正确的输出。

程序

public static String getCpuID()

{

   StringBuffer output = new StringBuffer();

   try

   {

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

      DataInputStream stdout = new DataInputStream(process.getInputStream());

      String line;

      while ((line = stdout.readLine()) != null)

      {

         output.append(line).append('\n');

      }

      process.waitFor();

   } catch (Exception e) {

      output.append('\n').append(e.toString());

   }

   String regex = "Serial[\\s]{0,}:[\\s]{0,}([0-9,a-z,A-Z]{1,})$";

   Pattern pattern = Pattern.compile(regex);

   Matcher matcher = pattern.matcher(output.toString());

   boolean ret = matcher.find();

   if(ret)

	  return matcher.group(1);        

   return "获取失败";

}
登录为: 读者 (reader)

你可能感兴趣的:(cpu)