在GenyMotion中捕获屏幕截图


Answers:


40

免责声明:我和Genymotion团队属于同一公司。

该功能包括在产品中。这是截屏小部件的付费功能之一。在此处查看定价页面

两种访问方式:

  • 支付专业版或独立版许可
  • 使用试用版,它为您提供了独立功能。请注意,仅剩一个审判日:-/

VM启动后,打开截屏小部件

在此处输入图片说明

然后使用专用按钮拍照

在此处输入图片说明

更新:您已经有了另一种使用Android设备监视器命令行获取屏幕截图的方法


1
非常感谢您的评论
kavie 2014年

2
谢谢dya。通常,在StackOverflow上,如果答案可以解决您的问题,则必须将其标记为已解决,而不是像您一样赞成。
eyal-lezmy 2014年

193

如果您使用的是Android Studio或Eclipse,则只需单击Android DDMS中的“屏幕捕获”按钮即可:

在此处输入图片说明


2
这也适用于Eclipse,不仅适用于Android Studio。只需切换到DDMS,然后单击相机图标,然后选择正确的设备即可。
X.X_Mass_Developer 2014年

4
这不适用于Genymotion上的2.3.7设备,因为其framebufer实现当前存在错误。仅供参考。
Reck

有什么捷径吗?
LiangWang 2014年

如果显示无法连接到设备的错误,请重新启动Android Studio :)
Choletski

52

您可以使用adb从命令行获取屏幕截图:

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

本文包含详细信息:http : //blog.shvetsov.com/2013/02/grab-android-screenshot-to-computer-via.html

为了让生活更轻松,我在.bash_profile中做了一个别名:

alias screenshot="adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > ~/Downloads/android_screenshot.png"

现在,我可以screenshot在Terminals中输入并在我的Downloads目录中获取当前正在运行的模拟器的屏幕截图。


3
在Mac上adb server is out of date. killing...,尝试此操作时出现错误。我使用adbGenymotion中包含的内容修复了它:/Applications/Genymotion.app/Contents/MacOS/tools/adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > ~/Downloads/android_screenshot.png
cgenco 2014年

真好!很棒!
sdfsdf

很酷,所以我不需要升级我的genymotion许可证:哭:!
liu冥王星

这是专业水平的答案,谢谢!作为更新,在Mac OSX上,它当前可与以下命令一起使用:alias screenshot =“ adb shell screencap -p>〜/ Downloads / android_screenshot.png”
JuanguiJordán16年

1
我更喜欢通过添加时间戳来使名称唯一:alias screenshot ='/ Applications / Genymotion.app / Contents / MacOS / tools / adb shell screencap -p | perl的-pe的/ \ X0D \ X0A / \ X0A / G'>〜/桌面/ Android_Screenshot _ $(日期“+%Y-%间- %D-%H-%M” - %S)png格式”
Musa almatri

24

使用以下命令:

  • 视窗:

    C:\"Program Files"\Genymobile\Genymotion\tools\adb shell screencap -p "/mnt/sdcard/output.png" && C:\"Program Files"\Genymobile\Genymotion\tools\adb pull "/mnt/sdcard/output.png" "C:\output.png" && C:\"Program Files"\Genymobile\Genymotion\tools\adb shell rm "/mnt/sdcard/output.png"
    
    • 注意:确保您具有写入权限C:\output.png;否则,将其更改为您喜欢的任何路径。
  • OS X:

    /Applications/Genymotion.app/Contents/MacOS/tools/adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > ~/Desktop/Android_Screenshot_$(date +%Y-%m-%d-%H-%M-%S).png
    

1
稍加修改,它将为我工作:adb shell screencap -p "/mnt/sdcard/output.png" && adb pull "/mnt/sdcard/output.png" . && adb shell rm "/mnt/sdcard/output.png"
manikanta

我相信Windows上的普通用户没有直接写入“ C:\”的权限,因此最好将的目标位置更改为adb pull您真正具有写入权限的目录,以确保此操作有效。否则,非常简单而优雅的解决方案,谢谢!
SaAtomic

1
谢谢@SaAtomic,我用注释对答案进行了编辑。
gabrielmaldi

error: cannot connect to daemon: cannot connect to 127.0.0.1:5037 (10061)
JCarlosR

13
  1. 选择genymotion模拟器
  2. 点击快捷键说明如下

    • Windows:Ctrl + Shift + S

    • Mac:Cmd + Shift + S

  3. 您可以在桌面上找到屏幕截图


1
它可以工作,但屏幕截图无法保存在桌面中。它保存在C:/ Users /
〜LoginName〜

1
对于Mac,这取决于您的屏幕快照文件夹路径,默认值为桌面
Iliyass Hamza,

感谢您的提示!它甚至适用于Genymotion 2.8.0(Windows)的免费版本:)
AntonK

11

我想您也可以免费拍摄视频。Genymotion使用VirtualBox来完成几乎所有繁重的工作,因此您应该打开VirtualBox并查看可以在其中执行的操作。

您将在Virtualbox中找到捕获视频的选项! 在此处输入图片说明


Oracle VM VirtualBox Manager在Windows 7上打开,看上去像您的......
TWiStErRob 2014年

我刚刚在Win7上安装了VirtualBox,对我来说看起来像这样。i.imgur.com/XKqlFW2.jpg
TrophyGeek

那是一个“ Linux”,您对Genymotion Android是否有相同的选择?(也许它仅适用于Android 4以上版本,我尝试了2.3.7)
TWiStErRob 2014年

1
你有尝试过吗?对于debian上的VirtualBox,它仅记录Android设备内核消息。
dols 2015年

您不能直接从virtualBox启动genymotion设备。该解决方案不起作用。
丹妮尔(Daniele)2015年


5

如果您的Mac速度慢,并且您不希望同时运行Eclipse和仿真器,那么这是一种更快的方法。

  1. 导出您的apk。
  2. 启动Genymotion。
  3. 将apk拖到仿真器上,以进行安装。
  4. 转到“ android-sdk-macosx>工具> ddms”。
  5. 运行该文件。
  6. ddms的新实例将启动。与Eclipse不同,它不会降低系统速度。
  7. 使用“菜单>设备>屏幕截图”选项进行屏幕截图。

对于使用慢速计算机的用户来说,这是一个不错的选择。


3

如果您使用的是Eclipse,则请针对任何类型的仿真器执行以下步骤:1.选择DDMS。2.在DDMS的“设备”窗口中,选择Genymotion设备。3.单击“相机”图标,然后将其保存到特定位置。 在“设备”窗口中,只需单击“相机”图标。 我已经在这里圈了圈


2

对于Linux和Windows(我在Windows上使用gitbash) adb shell screencap -p | sed 's/\r$//' > screen.png 对于Mac adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png


0

@Reck说Genymotion实现中存在一个错误,因此我们无法在2.3.7上截屏。这意味着Android Studio / DDMS无法获得适当的像素。adb shell screencap说没有screencap命令。

假设您有权访问代码,则可以简单地调用以下方法:

public static void screenshot(View view) {
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
    view.draw(new Canvas(bitmap));
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    try {
        File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
        storageDir.mkdirs();
        File file = File.createTempFile(timeStamp, ".png", storageDir);
        bitmap.compress(Bitmap.CompressFormat.PNG, 0, new FileOutputStream(file));
        Log.i("SCREENSHOT", "adb pull " + file);
    } catch (IOException e) {
        Log.e("SCREENSHOT", "Cannot save screenshot of " + view, e);
    }
}

活动中:

screenshot(getWindow().getDecorView());

在片段中:

screenshot(getActivity().getWindow().getDecorView());

我知道的唯一限制是它不会包含状态栏。


0

如果您使用的是Mac,有时候CMD + Shift + 4(OSX中选定部分的屏幕截图),然后选择模拟器区域就足够了:)


0

截屏

在许多Android设备上,您可以通过以下按键组合来捕获屏幕快照:同时按住Power和Volume-down。您还可以使用Android Studio捕获屏幕截图,如下所示:

在连接的设备或仿真器上运行您的应用程序。如果使用连接的设备,请确保已启用USB调试。在Android Studio中,选择“视图”>“工具窗口”>“ Logcat”以打开Logcat。从窗口顶部的下拉列表中选择设备和进程。单击窗口左侧的“截屏”。屏幕截图出现在“屏幕截图编辑器”窗口中

它甚至适用于Genymotion模拟器

在这里查看更多信息

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.