1 public class DevManager 2 { 3 private static final String TAG = "CpuManager"; 4 Context mContext; 5 6 public DevManager() 7 { 8 9 } 10 11 public DevManager(Context context) 12 { 13 mContext = context; 14 } 15 16 // 获取CPU最大频率(单位KHZ) 17 // "/system/bin/cat" 命令行 18 // "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" 存储最大频率的文件的路径 19 public static String getMaxCpuFreq() 20 { 21 String result = ""; 22 ProcessBuilder cmd; 23 try 24 { 25 String[] args = { "/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" }; 26 cmd = new ProcessBuilder(args); 27 Process process = cmd.start(); 28 InputStream in = process.getInputStream(); 29 byte[] re = new byte[24]; 30 while (in.read(re) != -1) 31 { 32 result = result + new String(re); 33 } 34 in.close(); 35 } catch (IOException ex) 36 { 37 ex.printStackTrace(); 38 result = "N/A"; 39 } 40 return result.trim(); 41 } 42 43 // 获取CPU最小频率(单位KHZ) 44 public static String getMinCpuFreq() 45 { 46 String result = ""; 47 ProcessBuilder cmd; 48 try 49 { 50 String[] args = { "/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq" }; 51 cmd = new ProcessBuilder(args); 52 Process process = cmd.start(); 53 InputStream in = process.getInputStream(); 54 byte[] re = new byte[24]; 55 while (in.read(re) != -1) 56 { 57 result = result + new String(re); 58 } 59 in.close(); 60 } catch (IOException ex) 61 { 62 ex.printStackTrace(); 63 result = "N/A"; 64 } 65 return result.trim(); 66 } 67 68 // 实时获取CPU当前频率(单位KHZ) 69 public static String getCurCpuFreq() 70 { 71 String result = "N/A"; 72 try 73 { 74 FileReader fr = new FileReader("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"); 75 BufferedReader br = new BufferedReader(fr); 76 String text = br.readLine(); 77 result = text.trim(); 78 } catch (FileNotFoundException e) 79 { 80 e.printStackTrace(); 81 } catch (IOException e) 82 { 83 e.printStackTrace(); 84 } 85 return result; 86 } 87 88 // 获取CPU名字 89 public static String getCpuName() 90 { 91 try 92 { 93 FileReader fr = new FileReader("/proc/cpuinfo"); 94 BufferedReader br = new BufferedReader(fr); 95 String text = br.readLine(); 96 String[] array = text.split(":\s+", 2); 97 for (int i = 0; i < array.length; i++) 98 { 99 } 100 return array[1]; 101 } catch (FileNotFoundException e) 102 { 103 e.printStackTrace(); 104 } catch (IOException e) 105 { 106 e.printStackTrace(); 107 } 108 return null; 109 } 110 111 // 内存 112 public void getTotalMemory() 113 { 114 String str1 = "/proc/meminfo"; 115 String str2 = ""; 116 try 117 { 118 FileReader fr = new FileReader(str1); 119 BufferedReader localBufferedReader = new BufferedReader(fr, 8192); 120 while ((str2 = localBufferedReader.readLine()) != null) 121 { 122 Log.i(TAG, "---" + str2); 123 } 124 } catch (IOException e) 125 { 126 } 127 } 128 129 // rom大小 130 public long[] getRomMemroy() 131 { 132 long[] romInfo = new long[2]; 133 // Total rom memory 134 romInfo[0] = getTotalInternalMemorySize(); 135 136 // Available rom memory 137 File path = Environment.getDataDirectory(); 138 StatFs stat = new StatFs(path.getPath()); 139 long blockSize = stat.getBlockSize(); 140 long availableBlocks = stat.getAvailableBlocks(); 141 romInfo[1] = blockSize * availableBlocks; 142 getVersion(); 143 return romInfo; 144 } 145 146 public long getTotalInternalMemorySize() 147 { 148 File path = Environment.getDataDirectory(); 149 StatFs stat = new StatFs(path.getPath()); 150 long blockSize = stat.getBlockSize(); 151 long totalBlocks = stat.getBlockCount(); 152 return totalBlocks * blockSize; 153 } 154 155 // sd卡大小 156 public long[] getSDCardMemory() 157 { 158 long[] sdCardInfo = new long[2]; 159 String state = Environment.getExternalStorageState(); 160 if (Environment.MEDIA_MOUNTED.equals(state)) 161 { 162 File sdcardDir = Environment.getExternalStorageDirectory(); 163 StatFs sf = new StatFs(sdcardDir.getPath()); 164 long bSize = sf.getBlockSize(); 165 long bCount = sf.getBlockCount(); 166 long availBlocks = sf.getAvailableBlocks(); 167 168 sdCardInfo[0] = bSize * bCount;// 总大小 169 sdCardInfo[1] = bSize * availBlocks;// 可用大小 170 } 171 return sdCardInfo; 172 } 173 174 // 电池容量 175 private BroadcastReceiver batteryReceiver = new BroadcastReceiver() 176 { 177 178 @Override 179 public void onReceive(Context context, Intent intent) 180 { 181 int level = intent.getIntExtra("level", 0); 182 // level加%就是当前电量了 183 } 184 }; 185 186 // registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 187 188 // 系统版本信息 189 public String[] getVersion() 190 { 191 String[] version = { "null", "null", "null", "null" }; 192 String str1 = "/proc/version"; 193 String str2; 194 String[] arrayOfString; 195 try 196 { 197 FileReader localFileReader = new FileReader(str1); 198 BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192); 199 str2 = localBufferedReader.readLine(); 200 arrayOfString = str2.split("\s+"); 201 version[0] = arrayOfString[2];// KernelVersion 202 localBufferedReader.close(); 203 } catch (IOException e) 204 { 205 } 206 version[1] = Build.VERSION.RELEASE;// firmware version 207 version[2] = Build.MODEL;// model 208 version[3] = Build.DISPLAY;// system version 209 return version; 210 } 211 212 // mac地址和开机时间 213 public String[] getOtherInfo() 214 { 215 String[] other = { "null", "null" }; 216 WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE); 217 WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 218 if (wifiInfo.getMacAddress() != null) 219 { 220 other[0] = wifiInfo.getMacAddress(); 221 } 222 else 223 { 224 other[0] = "Fail"; 225 } 226 other[1] = getTimes(); 227 return other; 228 } 229 230 private String getTimes() 231 { 232 long ut = SystemClock.elapsedRealtime() / 1000; 233 if (ut == 0) 234 { 235 ut = 1; 236 } 237 int m = (int) ((ut / 60) % 60); 238 int h = (int) ((ut / 3600)); 239 // return h + " " + mContext.getString(R.string.info_times_hour) + m + " " + mContext.getString(R.string.info_times_minute); 240 return h + " " + "时" + m + " " + "分"; 241 } 242 }