【发布时间】: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