3

我想在无头模式下截取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)我如何指定屏幕大小来启动模拟器?它似乎以某种方式变形,我不知道如何以及为什么。我敢打赌,这将是一些糟糕的启动参数配置。

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

十分感谢

更新

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

变形的应用程序大小

只需在无头模式下拍摄这些屏幕截图并且应用程序不会变形,我就会感到满意。怎么办,哎呀...

4

4 回答 4

2

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

于 2014-11-14T23:41:53.087 回答
1

这对我来说是为了获得正确的屏幕分辨率,“echo qemu.sf.lcd_density=120 >> /system/build.prop”

你应该有root权限!!!

于 2015-09-11T07:12:13.760 回答
0

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

即使有 adb kill 命令,您也只会干扰 Android 的正常行为方式,并且只会将您的测试环境与您的应用程序运行的环境区分开来(这对您的目的没有任何帮助) .

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

于 2013-07-19T20:03:45.450 回答
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
于 2016-11-25T15:57:38.773 回答