public static float getCPUUsage() { // 获取CPU线程 BufferedReader bufferedReader = null; try { int mPID = Process.myPid(); // 获取的是进程ID java.lang.Process process = Runtime.getRuntime().exec("top -n 1 -o PID,%CPU -q -p " + mPID); //"top -n 1 -o PID,%CPU -q -p "+mPID 表示执行一次(-n 1)top命令,简约(-q)显示mPID(-p)的数据,仅包含PID和%CPU列上的信息 bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; String cpuInfo = ""; while ((line = bufferedReader.readLine()) != null) { int indexPID = line.lastIndexOf(String.valueOf(mPID)); if (indexPID != -1) { cpuInfo = line.substring(indexPID); break; } } cpuInfo = cpuInfo.trim(); if (TextUtils.isEmpty(cpuInfo)) { return 0; } else { String[] cpuInfoData = cpuInfo.split("\\s+"); if (cpuInfoData.length < 2) { return 0; } else { return Float.parseFloat(cpuInfoData[1]); } } } catch (IOException e) { e.printStackTrace(); return 0; } finally { try { if (null != bufferedReader) bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } }
时间: 2024-02-10 16:33:24 浏览: 55
这段代码是用来获取当前应用程序 CPU 使用率的,它通过执行系统命令 "top" 并解析输出结果来获取当前应用程序的 CPU 使用率。具体来说,它获取当前应用程序的进程 ID,然后执行 "top" 命令并指定参数,只显示该进程 ID 的相关信息,最后解析输出结果获取 CPU 使用率。需要注意的是,这段代码需要在 Android 应用程序中运行。
阅读全文