您当前的位置: 首页 > 

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

安卓性能监控(APM)之CPU使用率监控

蓝不蓝编程 发布时间:2020-08-06 20:07:42 ,浏览量:0

目标

监控app的CPU使用率.

方案
  1. 对于8.0以上版本,执行top命令,从结果里直接提取出当前app占用CPU比例.
  2. 对于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             
关注
打赏
1639405877
查看更多评论
0.0698s