Android日积月累系统之三-adb-shell-wm命令
1.wm相关子命令和操作
例 wm size
的相关操作 有 wm size 1920x1080
wm size 960dpx540dp
wm size reset
usage: wm [subcommand] [options]
wm size [reset|WxH|WdpxHdp]
wm density [reset|DENSITY]
wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
wm scaling [off|auto]
wm screen-capture [userId] [true|false]
//wm size 显示或修改显示display size
wm size: return or override display size.
width and height in pixels unless suffixed with 'dp'.
//显示或修改display密度
wm density: override display density.
//设置扫描区域?
wm overscan: set overscan area for display.
//设置显示缩放模式
wm scaling: set display scaling mode.
//启用或禁用屏幕截图
wm screen-capture: enable/disable screen capture.
//说明: 前提没有设置数字,图案,PIN密码,如果是锁屏待机状态,执行此命令后,直接解锁进入桌面
wm dismiss-keyguard: dismiss the keyguard, prompting the user for auth if necessary.
2.dpi density ppi px dp sp
名词 | 解释 | 备注 |
---|---|---|
dpi | 像素密度(Dots Per Inch), 指每英寸的像素 公式是dpi=屏幕对角线像素总数px/屏幕对角线长度in 常见的dpi ldpi:120 mdpi:160 hdpi:240 xhdpi:320 xxhdpi:480 xxxxhdpi:640 | |
density | 屏幕密度,规定以160dpi的屏幕其屏幕密度为1,反过来说就是屏幕密度为1的屏幕上1in上有160px | |
ppi | PPI(Pixel Per Inch) | |
分辨率 | 例如 1920 * 1080 就是说 我的屏幕宽度有 1920 个像素点 ,高度有 1080 个像素点。 | |
屏幕大小 | 例如我的是4.0 英寸, 就是指 从屏幕的左上角 到 屏幕的右下角 连线长度为4.0英寸 | |
px | 像素单位。最基础的图像构成元素单位。 1px代表1个像素 | |
dp | Android开发上的基于屏幕密度的一种密度无关的像素单位,1dp代表的像素长度=density * 1px dp单位解决了同尺寸不同分辨率下,保持显示比例一致 | |
sp | 放大像素。Android发明的长度单位,一般用于设置字体大小 |
3.安卓屏幕碎片化
同样尺寸,不同分辨率。同分辨率,不同尺寸
res/
mipmap-xxxhdpi/
launcher-icon.png
mipmap-xxhdpi/
launcher-icon.png
mipmap-xhdpi/
launcher-icon.png
mipmap-hdpi/
launcher-icon.png
mipmap-mdpi/
launcher-icon.png
res/
drawable-xxxhdpi/
awesome-image.png
drawable-xxhdpi/
awesome-image.png
drawable-xhdpi/
awesome-image.png
drawable-hdpi/
awesome-image.png
drawable-mdpi/
awesome-image.png
values默认的为1dp对应2px,将px转换成dp,作为基础值。
res/
values/
values-sw360dp
values-sw480dp
values-sw720dp
4.修改屏幕密度density 来适配机器
如果有一些toB的特殊机器(to c的用户手机肯定不能这样做),屏幕宽高一直不变,但是屏幕的密度density 多种多样,可以通过values-swxxdp方案来适配,也可以直接通过运行 wm density 160
来把机器的屏幕密度设置成一样,然后样式就可以保持一致了。
当屏幕分辨率不变时,直接修改密度,设置的密度越大,控件也越大,因为一个dp代表的像素变大了。