目标
监控app的CPU使用率.
方案- 对于8.0以上版本,执行top命令,从结果里直接提取出当前app占用CPU比例.
- 对于8.0以下版本,通过读取“/proc/stat”和“/proc/App进程ID/stat”两个文件,计算出app进程占用的CPU比例.
- 完整代码:
package com.mb.roamdriver.myapm.cpu
import android.os.Build
import android.text.TextUtils
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
import java.io.RandomAccessFile
object CpuUtil {
private var mProcStatFile: RandomAccessFile? = null
private var mAppStatFile: RandomAccessFile? = null
private var mLastCpuTime: Long? = null
private var mLastAppCpuTime: Long? = null
/**
* 获取cpu使用率
*/
fun getCpuUsage(): Float {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
getCpuUsageForHigherVersion()
} else {
getCpuUsageForLowerVersion()
}
}
/**
* 安卓8.0以上版本获取cpu使用率
*/
private fun getCpuUsageForHigherVersion(): Float {
var process: Process? = null
try {
process = Runtime.getRuntime().exec("top -n 1")
val reader = BufferedReader(InputStreamReader(process.inputStream))
var line: String
var cpuIndex = -1
while (reader.readLine().also { line = it } != null) {
line = line.trim { it
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?