【问题标题】:Android screenshot in headless mode is ugly无头模式下的Android截图很难看
【发布时间】:2013-07-18 17:33:52
【问题描述】:

我想在无头模式下截取Android设备的截图,也就是说我是这样创建的:

echo no | /opt/android/android-sdk-linux/tools/android create avd \ 
         -n test01 -t android-17 -f -p some/dir -c 128 --abi x86

然后我就开始了

/opt/android/android-sdk-linux/tools/emulator -avd test01 -no-skin \
-no-audio -no-window -memory 256 -nocache -no-snapshot-save -no-snapstorage

我正在拍摄这样的屏幕:

adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png

但是屏幕截图看起来像这样:

两个问题:

1) 我如何摆脱那种“让自己回家”欢迎的废话?我处于无头模式,所以我根本无法点击那个“确定”按钮。

2) 我如何指定屏幕大小来启动模拟器?它似乎以某种方式变形,我不知道如何以及为什么。我敢打赌这将是一些糟糕的启动参数配置。

对我来说更关键的是第一个问题,第二个问题可以在执行该模拟器时通过命令行上的一些开关进行调整。

非常感谢

更新

所以我尝试在应用程序运行后截取屏幕截图,我只使用了一些测试应用程序,实际上根本没有做任何事情,你只需点击并填充一些文本区域,所以......我在它之后截取屏幕截图已安装(这是合乎逻辑的,因为我正在截取该应用程序的屏幕截图)但屏幕的尺寸没有改变,它看起来像这样:

只要在无头模式下截取这些屏幕截图并且应用程序不会变形,我就会很满意。怎么办啊……

【问题讨论】:

  • 第一个问题,我会尝试使用操作系统的快照(我首先手动保存)来解决。你有理由不能这样做吗?否则,我会认为这个“让自己在家消息”是广播接收器在启动后启动的某种活动。希望其广播接收器的优先级没有设置为 1。
  • 感谢您的提示,2 分,您所说的“希望其广播接收器的优先级未设置为 1”是什么意思?这个事实对我有什么帮助?第二个,我想尽可能避免快照,因为当我按需动态启动模拟器时我正在做无头功能测试,所以我不能使用一些预先调整的图像来摆脱它。我需要使用android 生成的原始图像是否有可能在外部杀死它,比如adb shell kill_that_welcome?顺便说一句,这有什么大不了的?如果我安装并启动一些本机应用程序,它应该覆盖欢迎屏幕,不是吗?

标签: android image android-emulator screenshot headless


【解决方案1】:

如果有人仍然遇到这个问题,使用 '-no-window' 而不是 '-no-skin' 会使屏幕截图的尺寸看起来更好。

【讨论】:

  • 移除--no-skin有助于改善屏幕尺寸。
【解决方案2】:

这对我获得正确的屏幕分辨率很有用, “回声 qemu.sf.lcd_density=120 >> /system/build.prop”

你应该有root权限!!!

【讨论】:

    【解决方案3】:

    正如你所说的#1,如果你之后自动安装并启动你自己的应用程序,Activity 生命周期将按预期运行,第一个 Activity 将消失。

    即使有 adb kill 命令,您也只会干扰 Android 的正常行为方式,并且只会将您的测试环境与您的应用程序将运行的环境区分开来(这不符合您的目的反正)。

    关于问题 #2,不做任何调整,在您的应用程序启动后尝试截屏。我有一种感觉,这个特殊的覆盖屏幕可能一开始就搞砸了显示。

    【讨论】:

    • 请查看我更新的问题。非常感谢您的任何建议。
    【解决方案4】:

    在 create avd 命令中指定 -s "1080x1920" 为我解决了这个问题。我正在使用的完整命令:

    echo "no" | android create avd --force --device "Nexus 5" --name test --target android-22 --abi google_apis/armeabi-v7a -s "1080x1920" --sdcard 512M
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-13
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多