【发布时间】:2023-03-29 07:00:01
【问题描述】:
我正在使用 Genymotion 来运行 Android 应用程序。 谁能告诉我如何在 Genymotion 中截屏?
【问题讨论】:
-
请不要忘记选择答案! ;)
标签: android-emulator genymotion
我正在使用 Genymotion 来运行 Android 应用程序。 谁能告诉我如何在 Genymotion 中截屏?
【问题讨论】:
标签: android-emulator genymotion
如果您使用的是 Android Studio 或 Eclipse,您只需点击 Android DDMS 中的“Screen Capture”按钮即可:
【讨论】:
您可以使用 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 并在我的下载目录中获取当前正在运行的模拟器的屏幕截图。
【讨论】:
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 团队属于同一家公司。
此功能包含在产品中。它是截屏小部件的付费功能之一。 Look at the pricing page here.
两种访问方式:
虚拟机启动后,打开截屏小部件
然后用专用按钮拍照
更新:您有以下另一种使用Android Device Monitor 或command line 截屏的方法
【讨论】:
使用这个命令:
窗户:
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"
adb pull的目标位置更改为你真正拥有的目录写权限,以确保其有效。否则非常简单和优雅的解决方案,谢谢!
error: cannot connect to daemon: cannot connect to 127.0.0.1:5037 (10061)
点击下面描述的快捷键
Windows : Ctrl+Shift+S
Mac : Cmd+Shift+S
您可以在桌面上找到您的屏幕截图
【讨论】:
我认为您也可以免费拍摄视频。 Genymotion 使用 VirtualBox 完成了几乎所有繁重的工作,因此您应该打开 VirtualBox 并查看您可以在其中做什么。
您将在 Virtualbox 中找到捕捉视频的选项!
【讨论】:
Oracle VM VirtualBox Manager,它看起来不像你的...
adb shell screencap -p /sdcard/screen.png
【讨论】:
如果您的 Mac 速度很慢,并且您讨厌同时运行 Eclipse 和模拟器,这里是一种更快的方法。
对于那些使用慢速计算机的人来说,这是一个不错的选择。
【讨论】:
如果您使用的是 Eclipse,请按照适用于任何类型模拟器的步骤操作: 1.选择DDMS 2. 在 DDMS 的设备窗口中选择 Genymotion 设备 3. 单击相机图标,然后将其保存到特定位置。
【讨论】:
对于 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
【讨论】:
@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());
我知道的唯一限制是它不包括状态栏。
【讨论】:
如果您使用 Mac,有时 CMD + Shift + 4(OSX 中选定部分的屏幕截图)然后选择模拟器区域就足够了 :)
【讨论】:
截图
在许多 Android 设备上,您可以使用组合键截取屏幕截图:同时按住电源和降低音量。您还可以使用 Android Studio 截取屏幕截图,如下所示:
在连接的设备或模拟器上运行您的应用。如果使用连接的设备,请确保您已启用 USB 调试。 在 Android Studio 中,选择 View > Tool Windows > Logcat 打开 Logcat。 从窗口顶部的下拉列表中选择设备和进程。 单击窗口左侧的屏幕截图。 屏幕截图显示在屏幕截图编辑器窗口中
它甚至适用于 Genymotion 模拟器
【讨论】: