Capturar captura de pantalla en GenyMotion

80

Estoy usando Genymotion para ejecutar la aplicación de Android. ¿ Alguien podría decirme cómo capturar una captura de pantalla en Genymotion ?

kavie
fuente
¡Por favor, no olvide seleccionar una respuesta! ;)
electronix384128

Respuestas:

40

Descargo de responsabilidad: formo parte de la misma empresa que el equipo de Genymotion.

Esta característica está incluida en el producto. Es una de las funciones de pago del widget de screencast. Mira la página de precios aquí .

Dos formas de acceder a él:

  • pagar la licencia pro o indie
  • usa la versión de prueba, te ofrece las funciones independientes. Cuidado , solo queda un día de prueba: - /

Una vez que se inicia su VM, abra el widget de screencast

ingrese la descripción de la imagen aquí

Luego toma una foto con el botón dedicado

ingrese la descripción de la imagen aquí

ACTUALIZACIÓN: A continuación, tiene otras formas de tomar una captura de pantalla usando el Monitor de dispositivo Android o la línea de comando

eyal-lezmy
fuente
1
Muchas gracias por tu comentario
kavie
2
Gracias dya. Por lo general, en StackOverflow, si una respuesta resuelve su problema, debe marcarlo como resuelto en lugar de votar a favor como lo hizo.
eyal-lezmy
193

Si está utilizando Android Studio o Eclipse, puede simplemente hacer clic en el botón "Captura de pantalla" en el DDMS de Android:

ingrese la descripción de la imagen aquí

electronix384128
fuente
2
Esto también funciona en Eclipse y no solo en Android Studio. Simplemente cambie a DDMS y haga clic en el símbolo de la cámara con el dispositivo correcto seleccionado.
X.X_Mass_Developer
4
Esto no funcionará para dispositivos 2.3.7 en Genymotion ya que actualmente hay un error en su implementación de framebufer. Solo para tu información.
Reck
¿Hay algún atajo para esto?
LiangWang
si muestra un error que no puede conectarse al dispositivo, simplemente reinicie Android Studio :)
Choletski
52

Puede usar adb para obtener la captura de pantalla desde la línea de comando:

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

Este artículo tiene los detalles: http://blog.shvetsov.com/2013/02/grab-android-screenshot-to-computer-via.html

Para hacer mi vida más fácil, hice un alias en .bash_profile:

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

Ahora puedo escribir screenshotTerminal y obtener una captura de pantalla del emulador que se está ejecutando actualmente en mi directorio de Descargas.

Pavel Alexeev
fuente
3
En una Mac, recibía adb server is out of date. killing...errores al intentar esto. Lo arreglé usando el adbincluido en Genymotion:/Applications/Genymotion.app/Contents/MacOS/tools/adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > ~/Downloads/android_screenshot.png
cgenco
¡Agradable! ¡Funciona genial!
sdfsdf
genial, así que no necesito actualizar mi licencia de genymotion: llorar:!
Liu Plutón
Esta es una respuesta de nivel PRO, ¡gracias! Solo como actualización, en Mac OSX actualmente funciona con el comando: alias screenshot = "adb shell screencap -p> ~ / Downloads / android_screenshot.png"
Juangui Jordán
1
Prefiero que el nombre sea único añadiendo la marca de tiempo: alias screenshot = '/ Applications / Genymotion.app / Contents / MacOS / tools / adb shell screencap -p | perl -pe 's / \ x0D \ x0A / \ x0A / g'> ~ / Escritorio / Android_Screenshot _ $ (fecha "+% Y-% m-% d-% H-% M" -% S) .png '
Musa almatri
24

Utilice estos comandos:

  • Ventanas:

    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"
    
    • Nota: asegúrese de tener permiso para escribir C:\output.png; de lo contrario, cámbielo a la ruta que desee.
  • 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
    
Gabrielmaldi
fuente
1
Con ligeras modificaciones, me está funcionando:adb shell screencap -p "/mnt/sdcard/output.png" && adb pull "/mnt/sdcard/output.png" . && adb shell rm "/mnt/sdcard/output.png"
manikanta
Creo que un usuario normal en Windows no tiene los permisos para escribir directamente en "C: \", por lo que es mejor que cambie la ubicación de destino adb pulla un directorio donde realmente tenga derechos de escritura, para asegurarse de que esto funcione. De lo contrario, una solución bastante simple y elegante, ¡gracias!
SaAtomic
1
Gracias, @SaAtomic, he editado mi respuesta con una nota.
gabrielmaldi
error: cannot connect to daemon: cannot connect to 127.0.0.1:5037 (10061)
JCarlosR
13
  1. Seleccionar simulador de genymotion
  2. Presione la tecla de método abreviado que se describe a continuación

    • Windows: Ctrl + Mayús + S

    • Mac: Cmd + Mayús + S

  3. Puede encontrar sus capturas de pantalla en el escritorio

Jayesh Lathiya
fuente
1
Funciona pero la captura de pantalla no se puede guardar en el escritorio. Se guardó en C: / Users / ~ LoginName ~ / ~ AVD Name ~ / Screenshot-datetimestamp.png
Mohamed Mohaideen AH
1
Para mac, depende de la ruta de la carpeta de captura de pantalla, el valor predeterminado es el escritorio
Iliyass Hamza
¡Gracias por la pista! Funciona incluso con la versión gratuita de Genymotion 2.8.0 (Windows) :)
AntonK
11

Creo que también puedes grabar videos gratis. Genymotion usa VirtualBox para hacer casi todo el trabajo pesado, por lo que debe abrir VirtualBox y ver lo que puede hacer en él.

¡Encontrarás opciones en Virtualbox para capturar videos! ingrese la descripción de la imagen aquí

TrophyGeek
fuente
Abrí Oracle VM VirtualBox Manageren Windows 7 y no se parece en nada al tuyo ...
TWiStErRob
Acabo de instalar VirtualBox en Win7 y me parece así. i.imgur.com/XKqlFW2.jpg
TrophyGeek
Eso es un "linux", ¿tienes las mismas opciones para Genymotion Androids? (Tal vez solo funcione por encima de Android 4, probé 2.3.7)
TWiStErRob
1
has probado esto? Para VirtualBox en Debian, solo registra los mensajes del kernel de los dispositivos Android.
dols
No puede iniciar un dispositivo genymotion directamente desde virtualBox. Esta solución no funciona.
Daniele
8

adb shell screencap -p /sdcard/screen.png

M.Ganji
fuente
5

Si tu Mac es lenta y odias ejecutar Eclipse y el emulador juntos, aquí tienes una forma más rápida.

  1. Exporta tu apk.
  2. Inicie Genymotion.
  3. Arrastra el apk al emulador para instalarlo.
  4. Vaya a 'android-sdk-macosx> herramientas> ddms'.
  5. Ejecute ese archivo.
  6. Se iniciará una nueva instancia de ddms. A diferencia de Eclipse, no ralentiza su sistema.
  7. Use la opción 'Menú> Dispositivo> Captura de pantalla' para tomar una captura de pantalla.

Esta es una buena opción para quienes usan computadoras lentas.

Pritesh Desai
fuente
3

Si está utilizando Eclipse, siga los pasos para cualquier tipo de emulador: 1. Seleccione DDMS 2. En la ventana Dispositivos de DDMS seleccione el dispositivo Genymotion 3. Haga clic en el icono Cámara y luego guárdelo en una ubicación específica. En la ventana de Dispositivos, simplemente haga clic en el icono de la Cámara.  Ya lo marco con un circulo aqui

SANAT
fuente
2

Para Linux y Windows (usé gitbash en Windows) adb shell screencap -p | sed 's/\r$//' > screen.png Para Mac adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

Nath
fuente
0

@Reck dice que hay un error en la implementación de Genymotion, por lo que no podemos tomar capturas de pantalla en 2.3.7. Esto significa que Android Studio / DDMS no puede obtener los píxeles adecuados. adb shell screencapdice que no hay screencapcomando.

Suponiendo que tiene acceso al código, simplemente puede llamar a este método:

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

En actividad:

screenshot(getWindow().getDecorView());

En fragmento:

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

La única limitación que conozco es que no incluirá la barra de estado.

TWiStErRob
fuente
0

si usa Mac, a veces CMD + Shift + 4 (captura de pantalla de una parte seleccionada en OSX) y luego seleccionar la región del simulador es suficiente :)

Zaster
fuente
0

Tomar una captura de pantalla

En muchos dispositivos Android, puede capturar una captura de pantalla con una combinación de teclas: presione y mantenga presionados simultáneamente Encendido y Bajar volumen. También puede capturar una captura de pantalla con Android Studio de la siguiente manera:

Ejecute su aplicación en un dispositivo o emulador conectado. Si usa un dispositivo conectado, asegúrese de haber habilitado la depuración de USB. En Android Studio, seleccione Ver> Ventanas de herramientas> Logcat para abrir Logcat. Seleccione el dispositivo y un proceso del menú desplegable en la parte superior de la ventana. Haga clic en Captura de pantalla en el lado izquierdo de la ventana. La captura de pantalla aparece en una ventana del Editor de captura de pantalla.

Funciona incluso para Genymotion Emulator

Consulte aquí para obtener más información.

Upendranath Reddy
fuente