← 返回博客 Camera 基础

Camera开发实用调试工具箱

📷

覆盖:CPU调试 | Camera系统命令 | 排查组合拳 | 速查表

Camera开发中,除了看日志,还有很多实用的系统调试命令。这篇文章把常用的调试命令整理成一份"工具箱",每个都标注了使用场景和输出解读方法。

一、CPU调试命令

1.1 查看CPU信息

adb shell cat /proc/cpuinfo

用途:查看CPU型号、核心数、架构信息。确认设备CPU规格。

1.2 查看进程资源使用

adb shell top -p <进程号>

用途:查看Camera进程的CPU、内存使用情况。

输出解读:

PID USER     PR  NI VIRT  RES  SHR S[%CPU] %MEM   TIME+ Command 12345 system   20   0 5.2G 120M  80M S 45.2  3.1  12:34 camerahalserver

• VIRT:虚拟内存

• RES:物理内存(实际占用)

• %CPU:CPU占用率(Camera正常工作时20-50%是正常的)

1.3 查看进程运行在哪个CPU

adb shell taskset -p <进程号>

用途:查看当前进程跑在哪个CPU核心上。Camera进程通常需要绑定到大核上以保证性能。

输出示例:

pid 12345's current affinity mask: ff

• ff表示可以在CPU 0-7上运行

• 如果是01表示只在CPU 0上运行

1.4 查看CPU核在线状态

adb shell cat /sys/devices/system/cpu/cpu*/online

用途:查看哪些CPU核心在线。

输出解读:

• 0表示离线,1表示在线

• 堡机测试时,如果CPU频繁离线/上线,说明系统在高负荷下动态调核

1.5 查看CPU频率

adb shell cat /sys/devices/system/cpu/cpu*/cpuinfo_cur_freq

用途:查看每个CPU核心的当前运行频率。

排查思路:如果Camera卡顿,检查CPU频率是否被限制在低频。可以通过以下命令临时提升频率:

# 设置CPU governor为performance模式(需root) adb shell "echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

二、Camera系统调试命令

2.1 dumpsys media.camera

adb shell dumpsys media.camera > camera.txt

用途:Camera系统全景信息,是最强大的Camera调试命令。

常用搜索:

搜索关键字
获取信息
availableStreamConfigurations
sensor支持的所有分辨率
Active Camera Client
当前哪个App在用Camera
Session
当前session配置
torchMode
闪光灯状态
focusDistance
当前对焦距离

2.2 dumpsys meminfo

# 查看Camera进程内存 adb shell dumpsys meminfo | grep -A5 camera # 查看特定进程内存 adb shell dumpsys meminfo <进程号>

用途:排查内存泄漏和OOM问题。

2.3 dmabuf_dump

adb shell dmabuf_dump

用途:查看DMA Buffer分配情况。Camera使用大量DMA Buffer,如果buffer泄漏会导致内存不足。

三、常用排查命令组合

3.1 Camera卡顿排查组合

# 1. 查看Camera进程CPU占用 adb shell top -p $(adb shell pidof camerahalserver) # 2. 查看CPU频率和核心状态 adb shell "cat /sys/devices/system/cpu/cpu*/cpuinfo_cur_freq && cat /sys/devices/system/cpu/cpu*/online" # 3. 查看丢帧情况 adb shell logcat | grep "skip frame\|frameMessage:requestId=0" # 4. 查看内存状态 adb shell dumpsys meminfo | grep -A5 camera

3.2 Camera Crash排查组合

# 1. 查看tombstone adb shell ls /data/tombstones/ # 2. 查看Camera crash日志 adb shell logcat -b all | grep -i "crash\|tombstone\|signal" # 3. 查看dmesg中的kernel异常 adb shell dmesg | grep -i "camera\|sensor\|csi" # 4. 查看Camera进程状态 adb shell dumpsys media.camera

四、速查表

命令
用途
适用场景
cat /proc/cpuinfo
CPU信息
确认硬件规格
top -p
进程资源
排查卡顿/内存
taskset -p
CPU亲和性
性能调优
cat cpu*/online
核心在线状态
堡机问题
cat cpu*/cpuinfo_cur_freq
CPU频率
卡顿排查
dumpsys media.camera
Camera全景
配置确认
dumpsys meminfo
内存信息
OOM排查
dmabuf_dump
DMA Buffer
内存泄漏
dmesg -w
Kernel日志
驱动层排查

调试工具箱的核心是"组合拳"——单个命令能看到的信息有限,但按照排查思路组合使用,就能快速定位问题。建议把速查表收藏起来,遇到问题直接翻。

关注公众号「小驰行动派」

更多Camera开发实战内容

欢迎加入知识星球「小驰成长圈」

120+ Camera工程师 · 340+ 实战内容 · 已运营1565天

小驰成长圈 知识星球

微信扫码 · 加入星球

分享到: 📋 复制链接