在GenyMotion中截取屏幕截图

我正在使用Genymotion运行Android应用程序。 有谁能告诉我如何在Genymotion中截取屏幕截图?

免责声明:我是Genymotion团队的同一家公司的一员。

该function包含在产品中。 这是屏幕video小部件的付费function之一。 看看这里的定价页面 。

有两种方法可以访问它:

  • 支付亲或独立执照
  • 使用试用版,它为您提供独立的function。 要小心 ,只剩下一个试用期: – /

一旦您的虚拟机启动,打开屏幕video小部件

在这里输入图像说明

然后用专用button拍照

在这里输入图像说明

更新:你有另一种方法来使用Android设备监视器或命令行截图

如果您使用的是Android Studio或Eclipse,则只需单击Android DDMS中的“屏幕截图”button即可:

在这里输入图像说明

您可以使用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中创build了一个别名:

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

现在,我可以在terminal中inputscreenshot ,并获取当前运行在我的下载目录中的模拟器的屏幕截图。

使用这个命令:

  • 视窗:

     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 ; 否则,将其更改为您喜欢的任何path。
  • 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 

我想你也可以免费观看video。 Genymotion使用VirtualBox来完成几乎所有的繁重工作,所以你应该打开VirtualBox,看看你能做些什么。

您将在Virtualbox中find选项来捕捉video! 在这里输入图像说明

adb shell screencap -p /sdcard/screen.png

如果你的Mac很慢,而且你讨厌运行Eclipse,那么这里的模拟器是一个更快的方法。

  1. 导出你的apk。
  2. 启动Genymotion。
  3. 拖动apk到模拟器,以便安装它。
  4. 转到'android-sdk-macosx>工具> ddms'。
  5. 运行该文件。
  6. 一个新的ddms实例将被启动。 不像Eclipse,它不会减慢你的系统。
  7. 使用“菜单>设备>屏幕截图”选项截屏。

对于那些使用慢电脑的人来说,这是一个不错的select

如果您使用的是Eclipse,请按照以下步骤操作:1.selectDDMS 2.在DDMS的Devices窗口中selectGenymotion设备3.点击Camera图标,然后保存到指定的位置。 在设备窗口中,只需点击相机图标。我已经在这里用圆圈标记了

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

  1. selectgenymotion模拟器
  2. 点击下面的快捷键

    • Windows:Ctrl + Shift + S

    • Mac:Cmd + Shift + S

  3. 你可以在桌面上find你的截图

@Reck表示Genymotion实现中有一个bug,所以我们不能在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()); 

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

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