【问题标题】:Capture screenshot in GenyMotion在 GenyMotion 中捕获屏幕截图
【发布时间】:2023-03-29 07:00:01
【问题描述】:

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

【问题讨论】:

  • 请不要忘记选择答案! ;)

标签: android-emulator genymotion


【解决方案1】:

如果您使用的是 Android Studio 或 Eclipse,您只需点击 Android DDMS 中的“Screen Capture”按钮即可:

【讨论】:

  • 这也适用于 Eclipse 而不仅仅是 Android Studio。只需切换到 DDMS 并单击选择正确设备的相机符号。
  • 这不适用于 Genymotion 上的 2.3.7 设备,因为它们的帧缓冲区实现中目前存在错误。仅供参考。
  • 这个有什么捷径吗?
  • 如果显示无法连接到设备的错误,只需重启 Android Studio :)
【解决方案2】:

您可以使用 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 并在我的下载目录中获取当前正在运行的模拟器的屏幕截图。

【讨论】:

  • 在 Mac 上尝试此操作时遇到 adb server is out of date. killing... 错误。我使用 Genymotion 中包含的adb 修复了它:/Applications/Genymotion.app/Contents/MacOS/tools/adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > ~/Downloads/android_screenshot.png
  • 不错!效果很好!
  • 很酷,所以我不需要升级我的 genymotion 许可证 :cry: !
  • 这是专业级别的答案,谢谢!作为一个更新,在 Mac OSX 上,它目前可以使用以下命令:alias screenshot="adb shell screencap -p > ~/Downloads/android_screenshot.png"
  • 我更喜欢通过添加时间戳使名称唯一: alias screenshot='/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'
【解决方案3】:

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

此功能包含在产品中。它是截屏小部件的付费功能之一。 Look at the pricing page here.

两种访问方式:

  • 为专业或独立许可付费
  • 使用试用版,它为您提供独立功能。 小心,仅剩一天试用期:-/

虚拟机启动后,打开截屏小部件

然后用专用按钮拍照

更新:您有以下另一种使用Android Device Monitorcommand line 截屏的方法

【讨论】:

  • 非常感谢您的评论
  • 谢谢你。通常,在 StackOverflow 上,如果一个答案解决了您的问题,您必须将其标记为已解决,而不是像以前那样点赞。
【解决方案4】:

使用这个命令:

  • 窗户:

    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的权限;否则,将其更改为您喜欢的任何路径。
  • 操作系统:

    /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
    

【讨论】:

  • 稍作修改,它对我有用:adb shell screencap -p "/mnt/sdcard/output.png" && adb pull "/mnt/sdcard/output.png" . && adb shell rm "/mnt/sdcard/output.png"
  • 我相信Windows上的普通用户没有直接写入“C:\”的权限,所以你最好将adb pull的目标位置更改为你真正拥有的目录写权限,以确保其有效。否则非常简单和优雅的解决方案,谢谢!
  • 谢谢@SaAtomic,我已经用注释编辑了我的答案。
  • error: cannot connect to daemon: cannot connect to 127.0.0.1:5037 (10061)
【解决方案5】:
  1. 选择 genymotion 模拟器
  2. 点击下面描述的快捷键

    • Windows : Ctrl+Shift+S

    • Mac : Cmd+Shift+S

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

【讨论】:

  • 它可以工作,但截图无法保存在桌面。它保存在 C:/Users/~LoginName~/~AVD Name~/Screenshot-datetimestamp.png
  • 对于 mac 取决于你的截图文件夹路径,默认是桌面
  • 感谢您的提示!它甚至适用于 Genymotion 2.8.0 (Windows) 的免费版本:)
【解决方案6】:

我认为您也可以免费拍摄视频。 Genymotion 使用 VirtualBox 完成了几乎所有繁重的工作,因此您应该打开 VirtualBox 并查看您可以在其中做什么。

您将在 Virtualbox 中找到捕捉视频的选项!

【讨论】:

  • 我在 Windows 7 上打开了Oracle VM VirtualBox Manager,它看起来不像你的...
  • 我刚刚在 Win7 上安装了 VirtualBox,对我来说它看起来像这样。 i.imgur.com/XKqlFW2.jpg
  • 那是一个“linux”,你对 Genymotion Androids 有同样的选择吗? (也许它只适用于Android 4以上,我试过2.3.7)
  • 你试过了吗?对于 debian 上的 VirtualBox,它只记录 Android 设备的内核消息。
  • 您不能直接从 virtualBox 启动 genymotion 设备。此解决方案不起作用。
【解决方案7】:

adb shell screencap -p /sdcard/screen.png

【讨论】:

    【解决方案8】:

    如果您的 Mac 速度很慢,并且您讨厌同时运行 Eclipse 和模拟器,这里是一种更快的方法。

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

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

    【讨论】:

      【解决方案9】:

      如果您使用的是 Eclipse,请按照适用于任何类型模拟器的步骤操作: 1.选择DDMS 2. 在 DDMS 的设备窗口中选择 Genymotion 设备 3. 单击相机图标,然后将其保存到特定位置。

      【讨论】:

        【解决方案10】:

        对于 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

        【讨论】:

          【解决方案11】:

          @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());
          

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

          【讨论】:

            【解决方案12】:

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

            【讨论】:

              【解决方案13】:

              截图

              在许多 Android 设备上,您可以使用组合键截取屏幕截图:同时按住电源和降低音量。您还可以使用 Android Studio 截取屏幕截图,如下所示:

              在连接的设备或模拟器上运行您的应用。如果使用连接的设备,请确保您已启用 USB 调试。 在 Android Studio 中,选择 View > Tool Windows > Logcat 打开 Logcat。 从窗口顶部的下拉列表中选择设备和进程。 单击窗口左侧的屏幕截图。 屏幕截图显示在屏幕截图编辑器窗口中

              它甚至适用于 Genymotion 模拟器

              Check here for further information

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-10-13
                • 1970-01-01
                • 1970-01-01
                • 2012-01-20
                • 1970-01-01
                • 2017-12-03
                相关资源
                最近更新 更多