源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解

  • 时间:2022-03-18 02:06 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解
Android获取系统cpu信息,内存,版本,电量等信息 1、CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过读取文件/proc/cpuinfo系统CPU的类型等多种信息。 读取/proc/stat 所有CPU活动的信息来计算CPU使用率 [b]下面我们就来讲讲如何通过代码来获取CPU频率: [/b]
[u]复制代码[/u] 代码如下:
package com.orange.cpu; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; public class CpuManager {         // 获取CPU最大频率(单位KHZ)      // "/system/bin/cat" 命令行      // "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" 存储最大频率的文件的路径         public static String getMaxCpuFreq() {                 String result = "";                 ProcessBuilder cmd;                 try {                         String[] args = { "/system/bin/cat",                                         "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" };                         cmd = new ProcessBuilder(args);                         Process process = cmd.start();                         InputStream in = process.getInputStream();                         byte[] re = new byte[24];                         while (in.read(re) != -1) {                                 result = result + new String(re);                         }                         in.close();                 } catch (IOException ex) {                         ex.printStackTrace();                         result = "N/A";                 }                 return result.trim();         }          // 获取CPU最小频率(单位KHZ)         public static String getMinCpuFreq() {                 String result = "";                 ProcessBuilder cmd;                 try {                         String[] args = { "/system/bin/cat",                                         "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq" };                         cmd = new ProcessBuilder(args);                         Process process = cmd.start();                         InputStream in = process.getInputStream();                         byte[] re = new byte[24];                         while (in.read(re) != -1) {                                 result = result + new String(re);                         }                         in.close();                 } catch (IOException ex) {                         ex.printStackTrace();                         result = "N/A";                 }                 return result.trim();         }          // 实时获取CPU当前频率(单位KHZ)         public static String getCurCpuFreq() {                 String result = "N/A";                 try {                         FileReader fr = new FileReader(                                         "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");                         BufferedReader br = new BufferedReader(fr);                         String text = br.readLine();                         result = text.trim();                 } catch (FileNotFoundException e) {                         e.printStackTrace();                 } catch (IOException e) {                         e.printStackTrace();                 }                 return result;         }         // 获取CPU名字         public static String getCpuName() {                 try {                         FileReader fr = new FileReader("/proc/cpuinfo");                         BufferedReader br = new BufferedReader(fr);                         String text = br.readLine();                         String[] array = text.split(":\\s+", 2);                         for (int i = 0; i < array.length; i++) {                         }                         return array[1];                 } catch (FileNotFoundException e) {                         e.printStackTrace();                 } catch (IOException e) {                         e.printStackTrace();                 }                 return null;         } }
[b]2、内存:/proc/meminfo [/b]
[u]复制代码[/u] 代码如下:
public void getTotalMemory() {           String str1 = "/proc/meminfo";           String str2="";           try {               FileReader fr = new FileReader(str1);               BufferedReader localBufferedReader = new BufferedReader(fr, 8192);               while ((str2 = localBufferedReader.readLine()) != null) {                   Log.i(TAG, "---" + str2);               }           } catch (IOException e) {           }       }  
[b]3、Rom大小 [/b]
[u]复制代码[/u] 代码如下:
public long[] getRomMemroy() {           long[] romInfo = new long[2];           //Total rom memory           romInfo[0] = getTotalInternalMemorySize();           //Available rom memory           File path = Environment.getDataDirectory();           StatFs stat = new StatFs(path.getPath());           long blockSize = stat.getBlockSize();           long availableBlocks = stat.getAvailableBlocks();           romInfo[1] = blockSize * availableBlocks;           getVersion();           return romInfo;       }       public long getTotalInternalMemorySize() {           File path = Environment.getDataDirectory();           StatFs stat = new StatFs(path.getPath());           long blockSize = stat.getBlockSize();           long totalBlocks = stat.getBlockCount();           return totalBlocks * blockSize;       } 
[b]4、sdCard大小 [/b]
[u]复制代码[/u] 代码如下:
public long[] getSDCardMemory() {           long[] sdCardInfo=new long[2];           String state = Environment.getExternalStorageState();           if (Environment.MEDIA_MOUNTED.equals(state)) {               File sdcardDir = Environment.getExternalStorageDirectory();               StatFs sf = new StatFs(sdcardDir.getPath());               long bSize = sf.getBlockSize();               long bCount = sf.getBlockCount();               long availBlocks = sf.getAvailableBlocks();               sdCardInfo[0] = bSize * bCount;//总大小               sdCardInfo[1] = bSize * availBlocks;//可用大小           }           return sdCardInfo;       }  
[b]5、电池电量 [/b]
[u]复制代码[/u] 代码如下:
private BroadcastReceiver batteryReceiver=new BroadcastReceiver(){           @Override          public void onReceive(Context context, Intent intent) {               int level = intent.getIntExtra("level", 0);               //  level加%就是当前电量了       }       };   registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
[b]6、系统的版本信息 [/b]
[u]复制代码[/u] 代码如下:
public String[] getVersion(){       String[] version={"null","null","null","null"};       String str1 = "/proc/version";       String str2;       String[] arrayOfString;       try {           FileReader localFileReader = new FileReader(str1);           BufferedReader localBufferedReader = new BufferedReader(                   localFileReader, 8192);           str2 = localBufferedReader.readLine();           arrayOfString = str2.split("\\s+");           version[0]=arrayOfString[2];//KernelVersion           localBufferedReader.close();       } catch (IOException e) {       }       version[1] = Build.VERSION.RELEASE;// firmware version       version[2]=Build.MODEL;//model       version[3]=Build.DISPLAY;//system version       return version;   } 
[b]7、mac地址和开机时间 [/b]
[u]复制代码[/u] 代码如下:
public String[] getOtherInfo(){       String[] other={"null","null"};          WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);          WifiInfo wifiInfo = wifiManager.getConnectionInfo();          if(wifiInfo.getMacAddress()!=null){           other[0]=wifiInfo.getMacAddress();       } else {           other[0] = "Fail";       }       other[1] = getTimes();          return other;   }   private String getTimes() {       long ut = SystemClock.elapsedRealtime() / 1000;       if (ut == 0) {           ut = 1;       }       int m = (int) ((ut / 60) % 60);       int h = (int) ((ut / 3600));       return h + " " + mContext.getString(R.string.info_times_hour) + m + " "              + mContext.getString(R.string.info_times_minute);   } 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部