国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識 > CPU知識 > Android怎么獲取cpu信息

    Android怎么獲取cpu信息

    時間: 沈迪豪908 分享

    Android怎么獲取cpu信息

      學(xué)習(xí)Android開發(fā)的同學(xué)們你們知道怎么獲取cpu信息嗎?下面由學(xué)習(xí)啦小編教大家怎么Android怎么獲取cpu信息。

      Android獲取cpu信息的方法

      1、CPU頻率,CPU信息:/proc/cpuinfo和/proc/stat

      通過讀取文件/proc/cpuinfo系統(tǒng)CPU的類型等多種信息。

      讀取/proc/stat 所有CPU活動的信息來計算CPU使用率

      下面我們就來講講如何通過代碼來獲取CPU頻率:

      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當(dāng)前頻率(單位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;

      }

      }

      2、內(nèi)存:/proc/meminfo

      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) {

      }

      }

      3、Rom大小 www.2cto.com

      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;

      }

      4、sdCard大小

      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;

      }

      5、電池電量

      private BroadcastReceiver batteryReceiver=new BroadcastReceiver(){

      @Override

      public void onReceive(Context context, Intent intent) {

      int level = intent.getIntExtra("level", 0);

      // level加%就是當(dāng)前電量了

      }

      };

      registerReceiver(batteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

      6、系統(tǒng)的版本信息

      ?

      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;

      }

      7、mac地址和開機(jī)時間

      ?

      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;

    Android怎么獲取cpu信息相關(guān)文章:

    1.如何獲取CPU序列號

    2.Linux怎么獲取CPU數(shù)量

    3.Android Build類如何獲取手機(jī)硬件信息

    4.android怎么獲取硬件信息

    5.怎么通過代碼獲取手機(jī)的相關(guān)硬件信息

    6.如何查看手機(jī)CPU

      }

      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);

      }

    2018872