[英]How to verify android device Screen ON or OFF using adb shell command
[英]How to get the Android device screen size from the adb command line?
我需要一种使用 adb 检测设备屏幕大小和密度的方法。 如果没有解决方案,我在哪里可以获得所有现有 android 设备及其屏幕尺寸和密度的完整列表?
您还可以通过 ADB 访问 WindowManager:
$ adb shell wm
usage: wm [subcommand] [options]
wm size [reset|WxH]
wm density [reset|DENSITY]
wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
获取屏幕分辨率:
$ adb shell wm size
Physical size: 2880x1600
要获取屏幕密度:
$ adb shell wm density
Physical density: 320
您还可以通过添加新密度来覆盖密度:
$ adb shell wm density 160
LCD 密度在 build.prop 中:
adb shell getprop ro.sf.lcd_density
并且在输入活动的转储系统中可以找到解决方案:
# windows
adb shell dumpsys window | find "DisplayWidth"
# linux
adb shell dumpsys window | grep DisplayWidth
它适用于我测试过的所有设备(2.2、2.3.3、2.3.4、4.0.3;Acer Liquid E、HTC Wildfire S、HTC Incredible S、Motorola Atrix 4G、Samsung Galaxy Note、Samsung Galaxy Nexus) ,以及模拟器,虽然模拟器的输出太干净了,不能作为解析.
dumpsys window displays
显示如下:
Display: mDisplayId=0
init=1080x1920 480dpi cur=1080x1920 app=1080x1920 rng=1080x1005-1920x1845
layoutNeeded=false
其他方式:
dumpsys display
还展示了一些有趣的东西,比如:
mDefaultViewport=DisplayViewport{valid=true, displayId=0, orientation=0, logicalFrame=Rect(0, 0 - 1080, 1920), physicalFrame=Rect(0, 0 - 1080, 1920), deviceWidth=1080, deviceHeight=1920}
最后但并非最不重要:
dumpsys power
将显示类似
Electron Beam State:
mPrepared=false
mMode=2
mDisplayLayerStack=0
mDisplayWidth=1080
mDisplayHeight=1920
mSurfaceVisible=false
mSurfaceAlpha=0.0
您可以轻松地使用 grep for mDisplayWidth 和 mDisplayHeight
要从 ADB 获取所需信息,从命令行执行的以下命令将返回有关连接设备的许多有用属性
> adb shell getprop
筛选这些属性
在 Unix 上使用 grep 之类的
> adb shell getprop | grep density
在 Windows 上使用 find like
> adb shell getprop | findstr "density"
返回值看起来像
[ro.sf.lcd_density]: [240]
对于屏幕尺寸,将显示而不是密度
工作很好:
dumpsys window | grep Display
返回:显示:init=320x480 cur=320x480 app=320x480 rng=320x295-480x455
ANDROID:/ # dumpsys window | grep mGlobalConfiguration
mGlobalConfiguration={1.0 ?mcc?mnc [en_US] ldltr sw720dp w1920dp h532dp 160dpi
所以分辨率是1920x720
您可以使用以下代码获取屏幕尺寸:
public int getScreenHeight() {
return getDisplay().getHeight();
}
private Display getDisplay() {
return ((WindowManager) getContext().getSystemService(
Context.WINDOW_SERVICE)).getDefaultDisplay();
}
public int getScreenWidth() {
return getDisplay().getWidth();
}
在上面的代码中拥有 Display 后,您可以使用DisplayMetrics来获取密度。 DisplayMetrics 还将为您提供绝对显示和高度。
如果您需要了解市场上可用的 Android 设备范围的当前状态 屏幕尺寸和密度 单击此处
此数据基于截至数据收集日期的 7 天内访问过 Android Market 的 Android 设备数量
查看 adb shell dumpsys 的输出。 屏幕大小和许多其他信息一起出现在那里好几次。
...虽然现在我在办公室,但它可以在我的手机上运行,但 Galaxy 平板电脑却没有。 该死的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.