Как узнать размер экрана устройства Android из командной строки adb? - PullRequest
46 голосов
/ 23 сентября 2011

Мне нужен способ определения размера и плотности экрана устройства с помощью ADB. Если нет решения, где я могу получить полный список всех существующих устройств Android с их размером экрана и плотностью?

Ответы [ 8 ]

56 голосов
/ 10 декабря 2014

Вы также можете получить доступ к WindowManager через ADB:

$ 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
31 голосов
/ 20 февраля 2012

Плотность ЖК-дисплея находится в 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), а также эмулятор,хотя выходные данные эмулятора слишком чисты, чтобы служить хорошим примером для анализа .

20 голосов
/ 03 октября 2014
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

9 голосов
/ 23 сентября 2011

Чтобы получить необходимую информацию из ADB, следующая команда, выполненная из командной строки, вернет множество полезных свойств о подключенных устройствах

> adb shell getprop

Для фильтрации по этим свойствам

в Unix использовать grep как

> adb shell getprop | grep density

на Windows использовать найти как

> adb shell getprop | findstr "density"

Возвращаемое значение выглядит как

[ro.sf.lcd_density]: [240]

для размера экрана поставить дисплей вместо плотности

1 голос
/ 21 июля 2015

Работа хороша:

dumpsys window | grep Display

возврат: Дисплей: init = 320x480 cur = 320x480 app = 320x480 rng = 320x295-480x455

0 голосов
/ 07 февраля 2012

Посмотрите на вывод команды adb shell dumpsys.Размер экрана отображается там несколько раз вместе со множеством другой информации.

... хотя сейчас я нахожусь в офисе, хотя он работает на моем телефоне, он отсутствует на планшете Galaxy.Чёрт.

0 голосов
/ 23 сентября 2011

Если вам необходимо получить текущее состояние диапазона устройств Android, доступных на рынке, с ним Размеры и плотность экрана Нажмите здесь

Эти данные основаны на количестве устройств Androidкоторые получили доступ к Android Market в течение 7 дней, заканчивающихся на дату сбора данных

0 голосов
/ 23 сентября 2011

Вы можете получить размеры экрана с этим кодом:

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 также даст вам абсолютное отображение с высотой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...