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