如何从adb命令行获取Android设备屏幕大小?

时间:2011-09-23 10:15:36

标签: android adb

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

9 个答案:

答案 0 :(得分:53)

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

答案 1 :(得分:30)

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) ,三星Galaxy Nexus),以及模拟器,虽然模拟器的输出太干净,无法作为解析的好例子。

答案 2 :(得分:19)

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

答案 3 :(得分:8)

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

> adb shell getprop

过滤这些属性

在Unix上使用grep like

> adb shell getprop | grep density
Windows上的

使用find

> adb shell getprop | findstr "density"

返回值类似于

[ro.sf.lcd_density]: [240]

用于屏幕尺寸放置显示而不是密度

答案 4 :(得分:1)

工作很好:

dumpsys window | grep Display

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

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

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

所以分辨率是1920x720

答案 7 :(得分:-1)

如果您需要获取市场上可用的Android设备范围的当前状态Screen Sizes and Densities Click here

此数据基于在数据收集日期结束后的7天内访问Android电子市场的Android设备数量

答案 8 :(得分:-1)

查看adb shell dumpsys的输出。屏幕尺寸会多次出现,还有很多其他信息。

...虽然现在我在办公室,虽然它可以在我的手机上运行,​​但它不在Galaxy平板电脑上。织补。