Захват экрана в того, как Genymotion
Я использую Genymotion для запуска приложения android. Может ли кто-нибудь сказать мне, как захватить снимок экрана в Genymotion ?
12 ответов:
отказ от ответственности: я являюсь частью той же компании, что и команда Genymotion.
эта функция включена в продукт. Это одна из платных функций виджета screencast. посмотрите на страницу ценообразования здесь.
два способа доступа к нему:
- оплатите лицензию pro или indie
- используйте пробную версию, она предлагает вам инди-функции. будьте осторожны, остался только один пробный день : -/
после запуска виртуальной машины откройте виджет screencast
затем сделайте снимок с помощью специальной кнопки
обновление: у вас есть ниже другие способы сделать снимок экрана с помощью Android Монитор Устройства или командная строка
Если вы используете Android Studio или Eclipse, вы можете просто нажать кнопку "Захват экрана"в Android DDMS:
вы можете использовать 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
чтобы сделать мою жизнь проще ,я сделал псевдоним.файл:
alias screenshot="adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > ~/Downloads/android_screenshot.png"
Теперь я могу типа
screenshot
в терминале и получить скриншот в настоящее время работает эмулятор в моем каталоге загрузки.
используйте следующие команды:
Windows:
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
Я думаю, что вы также можете снимать видео бесплатно. Genymotion использует VirtualBox для выполнения почти всех тяжелых работ, поэтому вы должны открыть VirtualBox и посмотреть, что вы можете сделать в нем.
вы найдете опции в Virtualbox для захвата видео!
- выберите genymotion simulator
нажмите клавишу быстрого доступа, описанную ниже
Windows: Ctrl + Shift+S
Mac : Cmd + Shift+S
вы можете найти свои скриншоты на рабочем столе
Если ваш Mac работает медленно, и вы ненавидите запускать Eclipse, а эмулятор вместе-это более быстрый способ.
- экспорт apk.
- Запуск Genymotion.
- перетащите apk в эмулятор, чтобы установить его.
- перейдите в раздел 'android-sdk-macosx>tools>ddms'.
- запустите этот файл.
- будет запущен новый экземпляр ddms. В отличие от Eclipse, он не замедляет работу вашей системы.
- используйте 'меню > устройство>скриншот' возможность сделать скриншот.
Это хороший вариант для тех, кто использует медленных компьютерах.
Если вы используете Eclipse, то выполните действия для любого типа эмулятора: 1. Выберите DDMS 2. В окне устройства DDMS выберите устройство Genymotion 3. Нажмите на значок камеры, а затем сохранить его в определенном месте.
для Linux и Windows (я использовал gitbash на windows)
adb shell screencap -p | sed 's/\r$//' > screen.png
для Macadb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png
@Reck говорит, что в реализации Genymotion есть ошибка, поэтому мы не можем делать скриншоты на 2.3.7. Это означает, что Android Studio / DDMS не может получить правильные пиксели.
adb shell 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());
единственное ограничение, которое я знаю, это то, что он не будет включать в себя строку состояния.