获取CPU信息

时间:2022-06-19 23:24:27

1 查看手机CPU信息

cmd——adb shell——cd /proc------cat cpuinfo

2 获取cpu的是arm指令集,armv7指令集、还是neon指令集

  1. /**
  2. *
  3. * [获取cpu类型和架构]
  4. *
  5. * @return
  6. * 三个参数类型的数组,第一个参数标识是不是ARM架构,第二个参数标识是V6还是V7架构,第三个参数标识是不是neon指令集
  7. */
  8. public static Object[] getCpuArchitecture() {
  9. if ((Integer) mArmArchitecture[1] != -1) {
  10. return mArmArchitecture;
  11. }
  12. try {
  13. InputStream is = new FileInputStream("/proc/cpuinfo");
  14. InputStreamReader ir = new InputStreamReader(is);
  15. BufferedReader br = new BufferedReader(ir);
  16. try {
  17. String nameProcessor = "Processor";
  18. String nameFeatures = "Features";
  19. String nameModel = "model name";
  20. String nameCpuFamily = "cpu family";
  21. while (true) {
  22. String line = br.readLine();
  23. String[] pair = null;
  24. if (line == null) {
  25. break;
  26. }
  27. pair = line.split(":");
  28. if (pair.length != 2)
  29. continue;
  30. String key = pair[0].trim();
  31. String val = pair[1].trim();
  32. if (key.compareTo(nameProcessor) == 0) {
  33. String n = "";
  34. for (int i = val.indexOf("ARMv") + 4; i < val.length(); i++) {
  35. String temp = val.charAt(i) + "";
  36. if (temp.matches("\\d")) {
  37. n += temp;
  38. } else {
  39. break;
  40. }
  41. }
  42. mArmArchitecture[0] = "ARM";
  43. mArmArchitecture[1] = Integer.parseInt(n);
  44. continue;
  45. }
  46. if (key.compareToIgnoreCase(nameFeatures) == 0) {
  47. if (val.contains("neon")) {
  48. mArmArchitecture[2] = "neon";
  49. }
  50. continue;
  51. }
  52. if (key.compareToIgnoreCase(nameModel) == 0) {
  53. if (val.contains("Intel")) {
  54. mArmArchitecture[0] = "INTEL";
  55. mArmArchitecture[2] = "atom";
  56. }
  57. continue;
  58. }
  59. if (key.compareToIgnoreCase(nameCpuFamily) == 0) {
  60. mArmArchitecture[1] = Integer.parseInt(val);
  61. continue;
  62. }
  63. }
  64. } finally {
  65. br.close();
  66. ir.close();
  67. is.close();
  68. }
  69. } catch (Exception e) {
  70. e.printStackTrace();
  71. }
  72. return mArmArchitecture;
  73. }