获取当前系统的cpu使用率和进程使用率,主要是通过使用时间计算;

安卓原生类:
/frameworks/base/core/java/com/android/internal/os/ProcessCpuTracker.java

//获取一瞬间的系统cpu时间
public float getTotalCpuTime() {
    final long[] sysCpu = mSystemCpuData;
    if (Process.readProcFile("/proc/stat", SYSTEM_CPU_FORMAT,null, sysCpu, null)){
    
    
    //当前系统的cpu 关键字段,可以在adb shell下,/proc/stat中查看
    // Total user time is user + nice time.
    final long usertime = (sysCpu[0]+sysCpu[1]) * mJiffyMillis;
    
    // Total system time is simply system time.
    final long systemtime = sysCpu[2] * mJiffyMillis;
    
    // Total idle time is simply idle time.
    final long idletime = sysCpu[3] * mJiffyMillis;
    
    // Total irq time is iowait + irq + softirq time.
    final long iowaittime = sysCpu[4] * mJiffyMillis;
    final long irqtime = sysCpu[5] * mJiffyMillis;
    final long softirqtime = sysCpu[6] * mJiffyMillis;
    
    return usertime + systemtime + idletime + iowaittime + irqtime + softirqtime;
    }else{
        return 0f;
    }
}

/**
 * 原生方法,获取一瞬间的pid的cpu时间
 * Returns the total time (in milliseconds) spent executing in
 * both user and system code.  Safe to call without lock held.
 */
public long getCpuTimeForPid(int pid) {
    synchronized (mSinglePidStatsData) {
        final String statFile = "/proc/" + pid + "/stat";
        final long[] statsData = mSinglePidStatsData;
        if (Process.readProcFile(statFile, PROCESS_STATS_FORMAT,
                null, statsData, null)) {
            long time = statsData[PROCESS_STAT_UTIME]
                    + statsData[PROCESS_STAT_STIME];
            return time * mJiffyMillis;
        }
        return 0;
    }
}

进程cpu使用率计算公式: 两次进程cpu时间差/两次系统cpu时间差

android之cpu使用率相关推荐

  1. android cpu使用率 代码,实现统计 android手机 CPU使用率

    # -*- coding:utf-8 -*- ''' Created on Sep 10, 2018 @author: SaShuangYiBing ''' import subprocess imp ...

  2. android如何获取进程占用的内存大小,Android获取cpu使用率,剩余内存和硬盘容量

    1.内存信息 在proc/meminfo下有详细的内存使用情况,我这里获取的内存信息就是从这个文件里获取的.获取到详细的内存信息后根据我自己的需求,从bufferdreader中单独抽取出来了剩余的内 ...

  3. android 获取cpu使用率_超详细的zabbix监控windows磁盘IO及cpu使用率教程

    概述 今天主要介绍怎么用zabbix来监控windows CPU使用率及磁盘IO,下面一起来看看吧~ 1.监控Windows-CPU使用率 1.1.创建模板 在zabbix中,默认的模板不带CPU使用 ...

  4. android cpu负载 工具,计算Android中进程的CPU使用率

    我正在尝试按以下方式计算Android中进程的CPU使用率,但是由于产生的输出,我不确定它是否正确. 要将吉菲转换为秒:吉菲/赫兹 第一步: 使用/proc/uptime文件的第一个参数获取正常运行时 ...

  5. Android CPU使用率:top和dump cpuinfo的不同

    CPU是系统非常重要的资源,在Android中,查看CPU使用情况,可以使用top命令和dump cpuinfo.我记得很久以前,就发现这两者存在不同,初步猜测应该是算法上存在差异.最近需要采集应用C ...

  6. android播放视频过程cpu占用高,Android App高CPU使用率和电池消耗

    我已经从事Android游戏已有一段时间了.我已经实现了基本游戏,所以现在我要回去尝试优化.似乎电池消耗和CPU使用率对于我正在执行的操作来说太高了.我实际上只有我的主线程,然后所有绘图和更新都是在单 ...

  7. Android CPU使用率

    本文包含以下内容:  1.介绍常见的获取android cpu使用率的方法  2.介绍这些常见方法背后的原理  3.介绍我自己写的一个脚本,这个脚本可以获取各个线程在cpu各个核上的占用率 一.常见的 ...

  8. 花式读取Android CPU使用率

    本文包含以下内容: 1.介绍常见的获取android cpu使用率的方法 2.介绍这些常见方法背后的原理 3.介绍我自己写的一个脚本,这个脚本可以获取各个线程在cpu各个核上的占用率 一.常见的获取A ...

  9. Android查看CPU和GPU使用率(五十五)

    Android查看CPU和GPU使用率 1.top -t 能打印出线程级别的CPU使用情况0.打印进程的堆栈信息.从堆栈信息里可以通过.so辨别哪个线程是干什么的,从而在 top -t 的结果里去查找 ...

最新文章

  1. 后记:Cookie安全大辩论总结
  2. 英文简历 计算机知识,计算机应届生英文简历范文
  3. EMD算法原理分解信号
  4. java编译器源码详解_已更新至第8章 | LLVM 编译框架详解
  5. 我的RHCE考试终于要开始了!
  6. 推荐系统常用推荐系统算法(协同过滤算法等)-人工智能AI
  7. Python游戏——Pong
  8. MNE初学入门(一)
  9. sketch清理缓存文件,sketch清理运行内存工具
  10. 从0-1的CTF比赛环境搭建过程
  11. 《落》用计算机弹,《坦克世界》里的防崩落内衬和水套的意思?AP弹和HE弹的具体用法(主流坦克哪些平适合AP哪些适合HE)?...
  12. 最新WiFi标准—WiFi 7
  13. Docker 容器化技术(介绍)
  14. sum idx i matlab,聚类——FCM的matlab程序
  15. python画趋势图_python 绘制走势图
  16. IOS手机安装旧版APP(不要问我为什么安装旧版,有的旧版功能更强大)
  17. 面试太紧张 不善表达怎么办?
  18. Golang洗牌算法
  19. 员工上班时间内高效率逛淘宝,企业如何解决?
  20. 笔记本键盘鼠标怎么和台式机共享

热门文章

  1. python和大数据有什么关系
  2. java开发社交网站_(转)强烈推荐:著名社交网站LinkedIn的Java架构技术
  3. 小红帽系统搭建dns服务器,红帽7(centos 7 )配置DNS服务器
  4. 线性代数(9)——初等矩阵和矩阵可逆性(上)
  5. unity2d随机生成物体_unity2D游戏关卡地图编辑随机生成系统Strata Easy 2D Level Generator 1.3...
  6. 【虚拟试衣论文笔记】M3D-VTON: A Monocular-to-3D Virtual Try-On Network
  7. AMD Xilinx官网由于合规性不通过导致无法下载软件原因及解决办法
  8. 华为官微 鸿蒙,华为鸿蒙官微一条微博都没发就火了
  9. Linux内核分析 读书笔记 (第一章、第二章)
  10. 动态修改 xm-select 颜色