如何从adb命令行获取Android设备的屏幕尺寸?
我需要一种使用adb检测设备屏幕尺寸和密度的方法。如果没有解决方案,我在哪里可以获取所有现有android设备及其屏幕尺寸和密度的完整列表?
user954469 asked 2020-02-04T21:35:12Z
8个解决方案
64 votes
您还可以通过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 density
Physical density: 320
您还可以通过添加新的密度来覆盖密度:
$ adb shell wm density 160
Albert-Jan Verhees answered 2020-02-04T21:35:34Z
32 votes
LCD密度在build.prop中:
adb shell getprop ro.sf.lcd_density
解决方案在输入活动的dumpsys中可用:
# 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) ,以及仿真器,尽管仿真器的输出太干净了,无法用作解析的好例子。
Nisan.H answered 2020-02-04T21:36:03Z
20 votes
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来显示mDisplayWidth和mDisplayHeight
chr0m4k3y answered 2020-02-04T21:36:44Z
10 votes
要从ADB获取必需的信息,从命令行执行以下命令将返回有关已连接设备的许多有用属性
> adb shell getprop
筛选这些属性
在Unix上使用grep如
> adb shell getprop | grep density
在Windows上使用find like
> adb shell getprop | findstr "density"
返回值看起来像
[ro.sf.lcd_density]: [240]
用于屏幕尺寸而不是密度
Elijah Saounkine answered 2020-02-04T21:37:26Z
1 votes
工作很好:
dumpsys window | grep Display
返回值:显示:init = 320x480 cur = 320x480 app = 320x480 rng = 320x295-480x455
Alex answered 2020-02-04T21:37:50Z
0 votes
您可以使用以下代码获取屏幕尺寸:
public int getScreenHeight() {
return getDisplay().getHeight();
}
private Display getDisplay() {
return ((WindowManager) getContext().getSystemService(
Context.WINDOW_SERVICE)).getDefaultDisplay();
}
public int getScreenWidth() {
return getDisplay().getWidth();
}
在上面的代码中完成“显示”后,您可以使用DisplayMetrics来获取密度。 DisplayMetrics还将为您提供绝对显示高度和高度。
Narcís Calvet answered 2020-02-04T21:38:15Z
-1 votes
如果您需要使用其屏幕尺寸和密度获取市场上可用的Android设备范围的当前状态,请单击此处
该数据基于截至数据收集日期的7天内访问Android电子市场的Android设备的数量
Vinayak Bevinakatti answered 2020-02-04T21:38:40Z
-1 votes
查看adb shell dumpsys的输出。 屏幕尺寸在那里显示了几次,以及许多其他信息。
...虽然现在我在办公室,但可以在手机上使用,但Galaxy平板电脑却没有。 真是
android.weasel answered 2020-02-04T21:39:04Z