Android AVD не отображает соответствующий масштаб

Как исправить отображение на моем Android AVD? Пользовательский интерфейс совершенно не в порядке. Я использую следующие параметры командной строки для запуска AVD, но ничего из того, что я делаю в параметрах «масштаб» и «dpi-устройство», не помогает исправить испорченное отображение (см. пример снимка экрана). Я использую Arch Linux с последним проприетарным драйвером Nvidia 346.35. Любая помощь приветствуется.

Команда:

$ emulator -verbose -scale 0.9 -dpi-device 480 -noaudio -no-boot-anim -noskin -no-snapshot @lollipop -qemu -m 1536 -enable-kvm

Кроме того, согласно этому сообщению StackOverflow , я также сделал:

$ adb shell setprop qemu.sf.lcd_density 480
$ adb shell stop
$ adb shell start

Это не повлияло на испорченный дисплей на моем эмуляторе.

Обратите внимание, что я должен использовать эту -noskinопцию, потому что в противном случае она отказывается запускать эмулятор для меня.

АВД дисплей 2 АВД дисплей 1

Ответы (1)

Я не запускаю из командной строки, но этот вопрос возник, когда я пытался решить аналогичную проблему.

В конце концов я решил это, заменив hw.lcd.densityзначение в .android/avd/<avd_name>.avd/config.iniфайле значением из этого ответа , ближайшим к значению в файле скина hardware.ini(в моем случае это <android-studio-location>/plugins/android/lib/device-art-resources/<skin-name>/hardware.ini).

В моем случае я эмулирую Samsung Galaxy S6, и предоставленный Samsung скин имеет размер hw.lcd.density, 200но размеры, которые они предоставляют, 1440x2560и предоставленные фоновые изображения малы, поэтому они позволяют экрану вписаться в гораздо меньшее пространство ( 474x839), поэтому config.iniфайл имеет hw.lcd.densityзначение 640. Уменьшение его до 213и перезапуск эмулятора устраняет проблему (но я думаю, что это не совсем точно эмулирует внешний вид экрана. Я не знаю, лучше ли это, чем просто использовать другое значение разрешения экрана).