注:Android 4.3引入的wm工具
wm命令及用法:
系统说明:
shell@kenzo:/ $ wm
usage: wm [subcommand] [options]
wm size [reset|WxH]
wm density [reset|DENSITY]
wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
wm size: return or override display size.
wm density: override display density.
wm overscan: set overscan area for display.
解释:wm是高通平台(MTK平台类似的命令为am,其他平台没接触,不太清楚)下对手机分辨率、像素密度、显示区域进行设置的命令。其参数比较少,下面逐条介绍一下该命令的用法。
1、wm size [reset|WxH]
[]内的是可选项。单纯运行wm size命令将会得到lcd本身设置的显示分辨率。如下图:
wm size W x H命令是按witch x hight 设置分辨率。如果分辨率设置的过大,图标会变大,反之则变小。设置了分辨率以后执行wm size命令,可以看到LCD本身的分辨率及overwrite的分辨率。如下图:
shell@kenzo:/ $ wm size
Physical size: 1080x1920
shell@kenzo:/ $ wm size 720x1280
shell@kenzo:/ $ wm size
Physical size: 1080x1920
Override size: 720x1280
wm size reset 命令是将分辨率设置为LCD原始分辨率。
2、 wm density [reset|DENSITY]
该命令的用法类似于wm size 命令,作用是读取、设置或者重置LCD的density值。density值即LCD的ppi.
shell@kenzo:/ $ wm density
Physical density: 480
3、 wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
该命令用来设置、重置LCD的显示区域。四个参数分别是显示边缘距离LCD左、上、右、下的像素数。例如,对于分辨率为540x960的屏幕,通过执行 命令wm overscan 0,0,0,420可将显示区域限定在一个540x540的矩形框里。
shell@kenzo:/ $ wm overscan 100,100,500,800
小结
了解wm可以解决LCD图标大小显示不正常的问题。但是这些设置都是临时的,适合于调试来确定问题和解决办法。永久性的修改可以参照以下两个办法(均在高通平台下):
法一:
2> adb root //提示read only filysystem时执行此命令获取root权限,
adb remount
adb pull /system/build.prop D:\
在build.prop末尾添加一行 ro.sf.lcd_density=240
adb push D:\build.prop /system/
adb shell
cd /system/
chmod 644 build.prop 没有修改权限将导致手机起不来
法二: 直接修改system.prop
Y:\xxxx\device\qcom\xxxx\system.prop
ro.sf.lcd_density=240 改这个值,然后重新编译system.img