wm命令使用方法

Posted by JackPeng on August 30, 2016

注: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