如何从adb命令行获取Android设备屏幕尺寸?

问题描述 投票:0回答:9

我需要一种使用 adb 检测设备屏幕尺寸和密度的方法。 如果没有解决方案,我在哪里可以获得所有现有 Android 设备及其屏幕尺寸和密度的完整列表?

android adb
9个回答
129
投票

您还可以通过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

40
投票

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 )以及模拟器,尽管模拟器的输出太干净,无法作为解析的好例子


27
投票

使用

dumpsys

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


14
投票

要从 ADB 获取所需信息,从命令行执行以下命令将返回有关所连接设备的许多有用属性

> adb shell getprop

筛选这些属性

在 Unix 上使用 grep 之类的

> adb shell getprop | grep density

在 Windows 上使用 find like

> adb shell getprop | findstr "density"

返回值看起来像

[ro.sf.lcd_density]: [240]

对于屏幕尺寸,请使用显示而不是密度


2
投票
ANDROID:/ # dumpsys window | grep  mGlobalConfiguration                                                                                                                                                
mGlobalConfiguration={1.0 ?mcc?mnc [en_US] ldltr sw720dp w1920dp h532dp 160dpi

所以分辨率是1920x720


1
投票

工作很好:

dumpsys window | grep Display

返回:显示:init=320x480 cur=320x480 app=320x480 rng=320x295-480x455


0
投票

您可以使用以下代码获取屏幕尺寸:

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 还将为您提供绝对显示和高度。


-1
投票

查看adb shell dumpsys 的输出。屏幕尺寸会多次显示,以及许多其他信息。

...虽然现在我在办公室,但它可以在我的手机上运行,但在 Galaxy 平板电脑上却无法运行。该死。


-2
投票

如果您需要获取市场上可用的 Android 设备范围的当前状态屏幕尺寸和密度请单击此处

此数据基于截至数据收集日期的 7 天内访问过 Android Market 的 Android 设备数量

© www.soinside.com 2019 - 2024. All rights reserved.