#BK作品与探索
← 全部开源项目

OPEN SOURCE / README

BKDeviceMonitor

AI重度使用

本地运行的 Android 性能监测桌面应用。通过 USB / ADB 观察负载、帧率与硬件信息,留存测试结果。

BKDeviceMonitor — Android performance, in focus.

BKDeviceMonitor

让 Android 性能,一目了然。

一个本地运行的 Android 性能监测桌面应用。连接手机,观察负载与帧率,了解硬件,留存测试结果。

简体中文 · English

MIT License macOS / Windows Electron

界面预览 · 功能 · 快速开始 · 开发与构建 · 指标说明

🆕 v1.4.0 新增设备文件浏览、多选与文件夹下载,并包含 APK 安装功能。下载最新版本 →

✨ 你可以用它做什么

  • 观察每一次负载变化 — CPU 总体与逐核负载、实时频率、GPU、内存和电池状态,配合连续趋势与悬停读数。
  • 追踪应用表现 — 跟随前台或选择运行中的应用,查看应用 CPU、内存,以及可用时的 FPS、帧间隔和卡顿数据。
  • 了解这台设备 — 处理器、GPU、屏幕、存储、系统与传感器分组展示,每项区分设备实读与官方型号规格。
  • 留存一次完整测试 — 记录测试会话、峰值与汇总,导出 CSV 趋势、JSON 报告和硬件配置。
  • 安装本地 APK — 系统文件选择器、明确选择设备、后台安装状态与常见错误提示。
  • 浏览与下载手机文件 — 共享存储快捷目录、路径导航、多选与文件夹下载,附真实字节进度、取消和传输记录。
  • 保持专注 — Codex 风格的深灰界面、低饱和曲线、macOS 沉浸式窗口;桌面模式无需单独启动后端。

🔌 通过 USB / ADB 连接,无需 Root、Shizuku 或安装手机端应用。准备好依赖与 ADB 后,采集和分析可离线完成。

🖥 界面预览

性能总览

BKDeviceMonitor 性能总览:CPU、GPU、内存趋势与逐核状态

展开查看:设备硬件档案

BKDeviceMonitor 硬件信息:规格分组、数据来源与传感器能力

截图来自小米 11 Ultra 实机的网页模式,与桌面版共用界面和采集引擎;为公开展示隐藏了序列号和活跃进程列表。界面语言目前为简体中文,中英文版本指项目文档。

📊 数据与能力

模块显示内容
CPU整机 / 逐核使用率、实时频率、在线核心、核心分组
GPU可读的高通 KGSL 负载、驱动与图形能力
内存已用 / 可用 / 缓存、Swap、可读的 PSI 压力与重大缺页
应用与帧率目标主进程 CPU、PSS / RSS、线程;Perfetto 帧率、P95 / P99 帧间隔、卡顿与丢弃帧
温控与电池CPU / GPU / 机身 / 电池可读温度、系统热状态、电量、电压、充电状态与净电池功率估算
网络整机网络上传 / 下载速率
硬件档案SoC、GPU、显示模式、RAM / 存储、系统构建、安全补丁、传感器及匹配型号的官方规格
趋势与报告1 / 5 / 15 分钟趋势、暂停显示、CSV 导出、测试会话 JSON、硬件 JSON
APK 安装本地文件选择、指定设备、保留数据覆盖更新、后台状态与错误详情
设备文件共享存储浏览、多选 / 文件夹下载、真实字节进度、取消、同名自动编号

数据有来源,也有边界。 不可读或不支持的指标显示 —;不会以模拟数值填充,也不会把屏幕刷新率当作 FPS。GPU、Perfetto、温度和 PSI 的可用性取决于 Android 版本、厂商接口与权限。

CPU 以整机 0–100% 归一化;内存使用率为 1 − MemAvailable / MemTotal;应用 CPU / 内存只统计主进程。电池温度不代表 CPU 温度,净电池功率估算也不代表充电器输入功率。完整采样口径见 指标说明。

🚀 快速开始

下载桌面版

前往 v1.4.0 Release,或按电脑平台直接下载:

你的电脑安装包
Mac · Apple Silicon(M 系列)macOS ARM64 ZIP
Mac · IntelmacOS x64 ZIP
Windows 11 · x64Windows x64 ZIP

Mac 解压后将 BKDeviceMonitor.app 放入「应用程序」;Windows 解压完整目录后运行 BKDeviceMonitor.exe。Release 附有 SHA256SUMS.txt 供校验。

从源码启动

需要 Node.js 22.12+、npm,以及开启 USB 调试的 Android 手机。首次安装依赖和准备 ADB 需要联网。

git clone https://github.com/binbinku/BKDeviceMonitor.git
cd BKDeviceMonitor
npm ci
npm run prepare:adb
npm start
  1. 在手机「开发者选项」中开启 USB 调试。
  2. 使用可传输数据的 USB 线连接电脑,在手机上选择 允许 USB 调试。
  3. 打开应用,等待自动连接,或通过「连接设备」选择手机。

Windows 若无法识别 ADB 设备,请安装手机厂商的 USB 驱动。准备脚本从 Google 官方 Platform Tools 获取 macOS / Windows ADB;也可通过 ADB_PATH 指定已有 ADB 可执行文件。

平台状态

平台构建目标验证状态
macOS · Apple SiliconARM64 ZIP已连接小米 11 Ultra 验证
macOS · Intelx64 ZIP已交叉构建,待对应机器验证
Windows 11x64 ZIP已交叉构建,待对应机器验证

可以直接下载桌面版,也可以从源码启动或自行构建。构建产物包含 Electron 与 ADB,使用时无需安装 Node.js 或 Android Studio。当前 macOS 包仅做 ad-hoc 签名,未公证;Windows 包未做证书签名。

📦 安装 APK

v1.4.0 桌面版已包含 APK 安装功能。 下载后即可使用,无需从源码运行。

  1. 在桌面版右上角点击「安装 APK」,再点击「选择文件」。
  2. 选择一个本地独立 .apk 文件,确认文件名和目标设备的型号、序列号。
  3. 点击「开始安装」,保持 USB 连接,并留意手机上的安装确认。

使用保留数据的覆盖安装(adb install -r)。不会自动卸载旧应用、强制降级或授予全部运行时权限;签名冲突、存储不足、USB 安装限制等会给出对应提示,可展开查看 ADB 详情。安装进度不显示虚构百分比。收起面板或刷新界面后,主进程仍继续处理;退出应用会停止本机命令,但不能保证回滚设备端已经完成的安装步骤。

仅支持独立 APK,不支持 .aab、.apks 或拆分 APK 集合。APK 安装只在桌面版提供,网页模式不暴露文件安装接口。

🗂 设备文件与下载

v1.4.0 桌面版已提供「设备文件」页面。 在侧栏打开即可浏览并下载手机文件。

  • 从内部存储、下载、相机照片、截图、文档等快捷入口浏览,也可输入 /sdcard 下的目录路径。
  • 按名称、大小、修改时间排序;筛选当前目录,显示隐藏项,多选文件与文件夹。
  • 点击「下载所选」或「下载当前文件夹」,通过系统对话框选择电脑保存位置。当前每次支持一个下载批次,最多选中 200 项;文件夹扫描上限为 20,000 项、64 层。
  • 传输任务显示实际写入电脑的字节进度、速率和结果,支持取消及打开所在文件夹。页面切换或刷新不终止下载;任务记录仅保留本次应用运行最近 20 条,不支持断点续传。
  • 下载先进入目标位置的隐藏临时目录,大小校验通过后保存为正式文件。同名自动编号,不覆盖已有文件;Windows 不支持的字符和保留名称会转换为兼容名称。取消或失败会清理临时文件,清理异常会提示位置。

第一版只读浏览内部共享存储(/sdcard,兼容 /storage/emulated/0 路径);不提供上传、删除或手机文件改名。Android/data、Android/obb 的可用性取决于手机权限,应用私有目录不在浏览范围内。文件夹下载包含隐藏普通文件,跳过符号链接及特殊文件;遇到不可读子目录会失败并提示原因。下载绑定选定设备,不会因设备切换或断线而改用其他手机。正式文件保存阶段暂不能取消。

文件读写通过桌面主进程的受限 IPC 完成,不通过可选网页模式暴露,也不会将手机文件上传到云端。

🛠 开发与构建

命令用途
npm start / npm run dev启动 Electron 桌面应用
npm run prepare:adb下载官方 ADB,保留上游 NOTICE 与来源 / SHA-256 记录
npm test运行性能、APK 安装、文件传输与访问限制测试
npm run pack:mac生成当前 Apple Silicon Mac 的应用目录
npm run build:mac构建 macOS ARM64 与 x64 ZIP
npm run build:win构建 Windows x64 ZIP
npm run web启动可选网页入口:http://localhost:3210

构建产物保存在 release/。Windows 使用时需解压完整目录,保留 EXE 附近的 resources 与 DLL。

BKDeviceMonitor/
├── desktop/           原生窗口、受限 IPC、保存对话框、ADB 定位
├── public/            HTML / CSS / JavaScript 界面与 Canvas 图表
├── monitor.mjs        本地采集引擎
├── metrics.mjs        CPU / GPU / 内存基础指标
├── hardware.mjs       硬件解析与型号档案
├── telemetry.mjs      应用、温控、网络与内存压力
├── trace.mjs          Perfetto 帧与电流解析
├── session.mjs        测试会话统计与报告
├── server.mjs         可选网页模式适配器
└── tests/             自动化测试

本地运行与数据保留

桌面版通过受限 IPC 调用采集引擎,使用本地资源协议,不启动 HTTP 服务;ADB 仍使用标准本机 daemon(默认端口 5037)。渲染进程启用 sandbox / contextIsolation,关闭 Node integration。可选网页入口仅监听 127.0.0.1 并校验来源。

趋势在内存中保留最近约 15 分钟;暂停只冻结显示,采集与会话继续。会话可跨页面切换和界面刷新,但退出应用后清空。需要留存时请先导出;报告最多附带最近 20,000 个会话采样,详见 指标说明。

🤝 参与贡献

欢迎提交 问题与建议 或 Pull Request。反馈设备兼容性时,请提供手机型号、Android 版本、电脑系统与复现步骤,并移除日志中的序列号等个人信息。涉及采集或解析的改动,请附相关测试结果。

项目基于 Electron、Android Platform Tools 与 Perfetto 构建,感谢这些开源项目与工具。

📄 开源许可

本项目原创代码采用 MIT License,允许使用、修改与分发,包括商业用途;请保留版权声明与许可文本。

Electron、ADB 及其他第三方依赖沿用各自的许可证与声明;项目的 MIT 许可不替代这些上游许可。随包分发的 ADB 保留其上游 NOTICE.txt。


BKDeviceMonitor · Made for every cycle.
Read in English →