2014-02-14 3 views
75

Я использую Genymotion для запуска приложения для Android. Может ли кто-нибудь сказать мне, как снимать снимок экрана в Genymotion?Захват скриншота в GenyMotion

+0

Пожалуйста, дон Не забудьте выбрать ответ! ;) –

ответ

31

Отказ: Я часть той же компании, что и команда Genymotion.

Эта функция включена в комплект поставки. Это одна из платных функций виджета screencast. Look at the pricing page here.

Два способа доступа к его:

  • платить за профессиональный или инди лицензии
  • использовать пробную версию, он предлагает вам инди-функции. Будьте осторожны, есть только один пробный день слева: -/

После запуска виртуальной машины, откройте скринкасты виджет

enter image description here

Затем сделайте снимок с выделенной кнопкой

enter image description here

UPDATE: У вас есть еще один способ сделать снимок экрана, используя Android Device Monitor или command line

+1

Большое вам спасибо за ур комментарий – kavie

+2

Thanks dya. Обычно, в StackOverflow, если ответ решает вашу проблему, вы должны пометить его как разрешенную, а не как upvote, как вы. –

+4

больше не является – panchicore

11

Я думаю, вы также можете снимать видео бесплатно. Genymotion использует VirtualBox для выполнения почти всех тяжелых операций, поэтому вы должны открыть VirtualBox и посмотреть, что вы можете сделать в нем.

Вы найдете варианты в Virtualbox для захвата видео! enter image description here

+0

Я открыл 'Oracle VM VirtualBox Manager' в Windows 7, и он не похож на ваш ... – TWiStErRob

+0

Я только что установил VirtualBox на Win7, и это выглядит для меня. http://i.imgur.com/XKqlFW2.jpg – TrophyGeek

+0

Это «linux», у вас есть те же варианты для андроидов Genymotion? (Может быть, он работает только над Android 4, я пробовал 2.3.7) – TWiStErRob

189

Если вы используете Android Studio или Eclipse, вы можете просто нажать на кнопку "Screen Capture" в Android DDMS:

enter image description here

+2

Это также работает в Eclipse, а не только в Android Studio. Просто переключитесь на DDMS и щелкните по символу камеры с помощью выбранного устройства. –

+4

Это не будет работать для 2.3.7 устройств в Genymotion, так как в настоящее время существует ошибка в их реализации framebufer. Просто FYI. – Reck

+0

Есть ли ярлык для этого? – Jacky

49

Вы можете использовать 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 в терминале и получить скриншот запущенного эмулятора в моей директории загрузки.

+2

На Mac я получал 'adb server устаревший. убивая ... 'при попытке этого. Я исправил его с помощью 'adb', включенного в Genymotion:' /Applications/Genymotion.app/Contents/MacOS/tools/adb shell screencap -p | perl -pe 's/\ x0D \ x0A/\ x0A/g'> ~/Downloads/android_screenshot.png' – cgenco

+0

Удивительное решение! работает как шарм. –

+0

Ницца! Прекрасно работает! –

5

Если ваш Mac работает медленно, и вы ненавидите запуск Eclipse и эмулятор вместе, это более быстрый способ.

  1. Экспортируйте свой apk.
  2. Начало Genymotion.
  3. Перетащите apk в эмулятор, чтобы установить его.
  4. Перейдите к 'android-sdk-macosx> tools> ddms'.
  5. Запустите этот файл.
  6. Будет запущен новый экземпляр ddms. В отличие от Eclipse, это не замедляет работу вашей системы.
  7. Используйте параметр «Меню> Устройство> Снимок экрана», чтобы сделать снимок экрана.

Это хороший вариант для тех, кто использует медленные компьютеры.

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

В Fragment:

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

Единственное ограничение, я знаю, что он не будет включать строку состояния.

2

Для Linux и 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

7

adb shell screencap -p /sdcard/screen.png

3

Если вы используете Eclipse, то выполните следующие действия для любого типа эмулятора: 1. Выберите DDMS 2. В окне «Устройства» DDMS выберите «Устройство Genymotion» 3. Нажмите значок «Камера», затем сохраните его в определенном месте. In Devices window just click on Camera icon. I already mark it by circle here

22

Используйте эту команду:

  • 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 
    
+0

Спасибо, это работает. –

+0

Спасибо большое !!! – GalloPinto

+0

С небольшими изменениями он работает для меня: 'adb shell screencap -p" /mnt/sdcard/output.png "&& adb pull" /mnt/sdcard/output.png ". && adb shell rm "/ mnt/sdcard/output.png "' – manikanta

0

, если вы используете Mac, иногда CMD + Shift + 4 (скриншот выбранной части в OSX), а затем выбрать область тренажере достаточно :)

2
  1. Выберите genymotion тренажер
  2. Хит клавиша быстрого описания ниже

    • для Windows: Ctrl + Shift + S

    • Mac: Cmd + Shift + S

  3. Вы можете найти свои скриншоты на рабочий стол

+0

Он работает, но скриншот не сохраняется на рабочем столе. Он сохраняется в C:/Users/~ LoginName ~/~ AVD Name ~/Screenshot-datetimestamp.png –

Смежные вопросы