能否使用adb命令遍历所有thermal_zone并一次性获取温度输出
解决方案
你可以直接通过adb调用设备端的shell通配符/循环逻辑实现一次命令读取所有温度节点,不需要手动逐个编写路径:
方法1:最简批量读取(仅输出温度值)
直接用通配符匹配所有thermal_zone的temp节点,执行一次命令即可返回所有温度结果:
adb shell cat sys/class/thermal/thermal_zone*/temp
注意:该方法输出结果仅为逐行的温度数值,不会标注对应哪个thermal_zone节点
方法2:带节点路径输出
如果需要明确每个温度对应的节点位置,可以用shell循环实现路径+温度的组合输出:
adb shell 'for f in /sys/class/thermal/thermal_zone*/temp; do echo "$f: $(cat $f)"; done'
输出示例:
/sys/class/thermal/thermal_zone0/temp: 38500 /sys/class/thermal/thermal_zone1/temp: 41200 /sys/class/thermal/thermal_zone2/temp: 39000
方法3:带传感器类型+温度换算(最实用)
大多数安卓设备的thermal节点temp输出是放大1000倍的整数(即38500对应38.5℃),你可以同时读取节点的type字段识别传感器类型,自动换算为摄氏度:
adb shell 'for zone in /sys/class/thermal/thermal_zone*; do echo -n "$(basename $zone) $(cat $zone/type): "; cat $zone/temp | awk "{print \$0/1000 \"℃\"}"; done'
输出示例:
thermal_zone0 cpu: 38.5℃ thermal_zone1 gpu: 41.2℃ thermal_zone2 battery: 39℃
内容的提问来源于stack exchange,提问作者Eliana Lopez
相关产品推荐
相关产品推荐

