如何从命令行设置模拟器像素密度?

时间:2016-05-14 23:39:18

标签: android android-emulator avd

(使用android sdk 25.1.6)

我正在从命令行创建并打开Android模拟器:

$> android create avd -n my_device -t 9 --skin 1440x2560 --abi default/x86

如何设置像素密度?

我尝试了以下方法:

  1. 运行上述命令后,我回答“是”以创建硬件配置文件。当我被问到使用什么密度时我输入570但是它不接受它(它再次问我同样的问题)并且只接受空输入(默认)。

  2. 创建模拟器后,打开〜/ .android / avd / my_avd.ini并附加:

    hw.lcd.density=570
    

    但忽略此设置。

  3. 打开模拟器时添加此标志:

    $> emulator avd my_avd -dpi-device 570
    

    但我明白了:

    WARNING: The -dpi-device flag is obsolete and will be ignored
    
  4. 有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您的第二种方法可行,但是您使用了无效的DPI编号。

创建模拟器后,打开〜/ .android / avd / my_avd / config.ini并追加:
hw.lcd.density=560

您只能在以下DPI之间进行选择:
120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640

答案 1 :(得分:0)

这是设置像素密度以及宽度和高度的完整解决方案。这与通过 android studio/avd 创建的模拟设备相匹配:

# Install AVD files
$ANDROID_HOME/tools/bin/sdkmanager --install 'system-images;android-29;default;x86'
yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses

# Create emulator
echo "no" | $ANDROID_HOME/tools/bin/avdmanager create avd -n Pixel_API_29_AOSP -d pixel --package 'system-images;android-29;default;x86' --force

$ANDROID_HOME/emulator/emulator -list-avds

# Set screen dimensions
echo "hw.lcd.density=420" >> ~/.android/avd/Pixel_API_29_AOSP.avd/config.ini
echo "hw.lcd.height=1920" >> ~/.android/avd/Pixel_API_29_AOSP.avd/config.ini
echo "hw.lcd.width=1080" >> ~/.android/avd/Pixel_API_29_AOSP.avd/config.ini

echo "Starting emulator and waiting for boot to complete..."
nohup $ANDROID_HOME/emulator/emulator -avd Pixel_API_29_AOSP -no-snapshot -no-window -no-audio -no-boot-anim -camera-back none -camera-front none -qemu -m 2048 > /dev/null 2>&1 &
$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82'

echo "Emulator has finished booting"
$ANDROID_HOME/platform-tools/adb devices

答案 2 :(得分:-2)

使用标记<ion-view view-title="MyPage" class="has-header">

-skin 768x1280