如何通过ADB获取手机实际物理尺寸?adb shell wm size仅返回分辨率
获取安卓手机实际物理尺寸的ADB方法
adb shell wm size返回的是屏幕像素分辨率,并非你需要的物理尺寸(毫米单位),以下是几种可行的替代方案:
1. 读取系统硬件参数文件
部分安卓设备会将物理尺寸信息存储在系统硬件目录下,尝试执行以下命令(不同厂商路径可能有差异):
- 读取物理尺寸文件:
部分设备返回格式为adb shell cat /sys/class/display/display0/physical_size宽 高(单位:毫米),比如70.6 147,对应宽度70.6mm、高度147mm。 - 若上述路径不存在,可尝试其他常见路径:
adb shell cat /sys/devices/virtual/graphics/fb0/modes adb shell cat /sys/class/graphics/fb0/physical_width adb shell cat /sys/class/graphics/fb0/physical_height
2. 通过分辨率与屏幕密度估算物理尺寸
如果无法直接读取物理尺寸文件,可结合分辨率和屏幕密度计算近似值:
- 先获取屏幕密度:
输出示例:adb shell wm densityPhysical density: 560(即560dpi) - 结合
adb shell wm size得到的物理分辨率(如1440x3120),用以下公式计算:- 物理宽度(mm) = (分辨率宽度(px) / 屏幕密度(dpi)) × 25.4
- 物理高度(mm) = (分辨率高度(px) / 屏幕密度(dpi)) × 25.4
示例计算:(1440 / 560) ×25.4 ≈65.5mm,(3120/560)×25.4≈141.9mm
注意:该结果为近似值,因为屏幕密度可能被系统或用户修改,与真实物理尺寸存在误差。
3. 通过dumpsys命令提取显示信息
执行以下命令获取更详细的显示参数,从中筛选可用于计算的信息:
adb shell dumpsys display | grep -E "mDisplayWidth|mDisplayHeight|mDensity"
输出示例:
mDisplayWidth=1440 mDisplayHeight=3120 mDensity=560
后续计算方式同方案2。
重要说明
安卓系统没有强制要求厂商暴露精准物理尺寸的统一接口,因此没有通用的ADB命令能直接获取所有设备的真实物理尺寸。如果上述方法均无法得到准确值,建议查询设备官方参数或直接测量。
内容的提问来源于stack exchange,提问作者mobbbbb
相关产品推荐
相关产品推荐

