我想在无头模式下截取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)如何指定屏幕大小以启动模拟器?它似乎以某种方式变形,我不知道如何以及为什么。我打赌这将是启动参数的一些错误配置。
对我来说更重要的是第一个问题,第二个问题是在执行该模拟器时通过命令行上的某些开关进行调整。
非常感谢
更新
所以我尝试在应用程序运行后截取屏幕截图,我只使用了一些实际上什么都不做的测试应用程序,你只需点击并填充一些文本区域,所以...我正在截取它后面的截图安装(这是合乎逻辑的,因为我正在截取该应用程序的截图)但屏幕的尺寸没有改变,它看起来像这样:
只要在无头模式下拍摄这些屏幕截图并且应用程序没有变形,我就会感到满意。怎么做那个geeez ......
答案 0 :(得分:2)
如果有人仍然遇到此问题,请使用' -no-window'但不是' -no-skin'使截图尺寸看起来更好。
答案 1 :(得分:1)
这对我来说有助于获得正确的屏幕分辨率, “echo qemu.sf.lcd_density = 120>> /system/build.prop”
你应该拥有root权限!!!
答案 2 :(得分:0)
对于#1,就像你说的那样,如果你之后自动安装并启动自己的应用程序,Activity生命周期就会按照预期的那样运行,第一个Activity就会消失。
即使有adb kill命令,你只会干扰Android的正常行为方式,这只会将你的测试环境与应用程序运行的环境区分开来(这不符合你的目的)任何方式)。
关于问题#2,如果没有进行任何调整,请在应用程序启动后尝试截屏。我有一种感觉,这个特殊的覆盖屏幕可能是首先搞砸了显示器。
答案 3 :(得分:0)
在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