Python 获取 Android 设备 CPU 占用率并绘制曲线图

这段代码使用 Python 脚本获取 Android 设备的 CPU 占用率数据,并绘制 CPU 占用率曲线图。

import numpy as np
import matplotlib.pyplot as plt
import subprocess
import datetime
import time  # 导入 time 模块

# 获取CPU占用率
def get_cpu_usage():
    p = subprocess.Popen('adb shell top -b -n 1 | grep 'CPU:'', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    cpu_data = p.stdout.read().decode('utf-8')
    cpu_list = cpu_data.split(',')
    cpu_usage = cpu_list[0].split()[1]
    return float(cpu_usage)

# 绘制CPU曲线图
def plot_cpu_curve(cpu_usage_list):
    plt.plot(cpu_usage_list)
    plt.xlabel('Time')
    plt.ylabel('CPU Usage')
    plt.savefig('cpu_curve.png')

if __name__ == '__main__':
    cpu_usage_list = []
    for i in range(60):
        cpu_usage = get_cpu_usage()
        cpu_usage_list.append(cpu_usage)
        time.sleep(1)  # 使用 time 模块中的 sleep 函数
    plot_cpu_curve(cpu_usage_list)
    np.savetxt('cpu_data.txt', cpu_usage_list)

代码说明

  1. 导入必要的库:

    • numpy 用于数值计算
    • matplotlib.pyplot 用于绘图
    • subprocess 用于执行系统命令
    • datetime 用于获取时间信息
    • time 用于控制脚本执行速度
  2. get_cpu_usage() 函数:

    • 使用 subprocess.Popen() 执行 adb shell top -b -n 1 | grep 'CPU:' 命令,获取设备 CPU 信息。
    • 解析命令输出,提取 CPU 占用率数据。
    • 返回 CPU 占用率值,数据类型为浮点数。
  3. plot_cpu_curve() 函数:

    • 使用 matplotlib.pyplot 绘制 CPU 占用率曲线图。
    • 设置横轴为时间,纵轴为 CPU 占用率。
    • 保存曲线图到 cpu_curve.png 文件。
  4. 主程序:

    • 初始化一个空列表 cpu_usage_list 用于存储 CPU 占用率数据。
    • 使用 for 循环,获取 60 秒内的 CPU 占用率数据,并添加到列表中。
    • 调用 plot_cpu_curve() 函数绘制曲线图。
    • 使用 np.savetxt() 将 CPU 占用率数据保存到 cpu_data.txt 文件。

错误解决

代码运行出错可能是因为缺少一些必要的模块或者函数,例如缺少 time 模块。在运行这段代码之前需要保证环境中已经安装了这些需要用到的模块。

可以通过以下命令安装 time 模块:

pip install time

此外,如果运行过程中出现了其他异常,可以通过查看详细的错误信息来确定问题所在,进而进行调试。

注意事项

  • 确保你的设备已经连接到电脑,并已开启 USB 调试模式。
  • 脚本需要管理员权限才能执行 adb 命令。
  • 可以根据需要调整获取数据的时间间隔和保存的数据格式。

希望这能帮到你! 如果你有任何其他问题,请随时提问。

Python 脚本获取并绘制 Android 设备 CPU 占用率曲线图

原文地址: https://www.cveoy.top/t/topic/nwCZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录