Подтвердить что ты не робот

Размер экрана устройства Android

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

4b9b3361

Ответ 1

Вы также можете получить доступ к 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

Ответ 2

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

Ответ 3

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

Ответ 4

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

> adb shell getprop

Чтобы фильтровать эти свойства

в Unix используйте grep, например

> adb shell getprop | grep density

для Windows используйте find

> adb shell getprop | findstr "density"

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

[ro.sf.lcd_density]: [240]

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

Ответ 5

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

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

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

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

Ответ 7

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

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

Ответ 8

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

dumpsys window | grep Display

return: Display: init = 320x480 cur = 320x480 app = 320x480 rng = 320x295-480x455