android 获取cpu类型

来源:互联网 发布:linux svn 创建仓库 编辑:程序博客网 时间:2024/06/05 06:19


参考:http://blog.csdn.net/wangbaochu/article/details/47723265

http://blog.csdn.net/ly890700/article/details/52836081

http://blog.csdn.net/mengweiqi33/article/details/22796619


Object[] mArmArchitecture =new Object[5];public  Object[] getCpuArchitecture() {   try {      InputStream is = new FileInputStream("/proc/cpuinfo");      InputStreamReader ir = new InputStreamReader(is);      BufferedReader br = new BufferedReader(ir);      try {         String nameProcessor = "Processor";         String nameFeatures = "Features";         String nameModel = "model name";         String nameCpuFamily = "cpu family";         while (true) {            String line = br.readLine();            String[] pair = null;            if (line == null) {               break;            }            pair = line.split(":");            if (pair.length != 2)               continue;            String key = pair[0].trim();            String val = pair[1].trim();            if (key.compareTo(nameProcessor) == 0) {               String n = "";               if(val.indexOf("AArch64")>=0){                  mArmArchitecture[0] = "aarch64";                  mArmArchitecture[1] = 64;                  continue;               }else {                  for (int i = val.indexOf("ARMv") + 4; i < val.length(); i++) {                     String temp = val.charAt(i) + "";                     if (temp.matches("\\d")) {                        n += temp;                     } else {                        break;                     }                  }               }               mArmArchitecture[0] = "ARM";               mArmArchitecture[1] = Integer.parseInt(n);               continue;            }            if (key.compareToIgnoreCase(nameFeatures) == 0) {               if (val.contains("neon")) {                  mArmArchitecture[2] = "neon";               }               continue;            }            if (key.compareToIgnoreCase(nameModel) == 0) {               if (val.contains("Intel")) {                  mArmArchitecture[0] = "INTEL";                  mArmArchitecture[2] = "atom";               }               continue;            }            if (key.compareToIgnoreCase(nameCpuFamily) == 0) {               mArmArchitecture[1] = Integer.parseInt(val);               continue;            }         }      } finally {         br.close();         ir.close();         is.close();      }   } catch (Exception e) {      e.printStackTrace();   }   return mArmArchitecture;}



0 0
原创粉丝点击