Screenshot in GenyMotion aufnehmen

80

Ich benutze Genymotion zum Ausführen einer Android-Anwendung. Kann mir jemand sagen, wie man einen Screenshot in Genymotion aufnimmt ?

kavie
quelle
Bitte vergessen Sie nicht, eine Antwort auszuwählen! ;)
Electronix384128

Antworten:

40

Haftungsausschluss: Ich bin Teil derselben Firma wie das Genymotion-Team.

Diese Funktion ist im Produkt enthalten. Dies ist eine der kostenpflichtigen Funktionen des Screencast-Widgets. Schauen Sie sich hier die Preisseite an .

Zwei Möglichkeiten, darauf zuzugreifen:

  • Bezahlen Sie für die Pro oder Indie Lizenz
  • Verwenden Sie die Testversion, sie bietet Ihnen die Indie-Funktionen. Seien Sie vorsichtig , es bleibt nur noch ein Probetag: - /

Öffnen Sie nach dem Start Ihrer VM das Screencast-Widget

Geben Sie hier die Bildbeschreibung ein

Nehmen Sie dann mit der entsprechenden Taste ein Bild auf

Geben Sie hier die Bildbeschreibung ein

UPDATE: Sie haben unten eine andere Möglichkeit, einen Screenshot mit Android Device Monitor oder der Befehlszeile zu erstellen

Augenlezmie
quelle
1
Vielen Dank für
Ihren
2
Danke dya. Wenn eine Antwort auf StackOverflow Ihr Problem löst, müssen Sie sie normalerweise als gelöst markieren, anstatt sie wie oben zu bewerten.
Eyal-Lezmy
193

Wenn Sie Android Studio oder Eclipse verwenden, können Sie einfach auf die Schaltfläche "Screen Capture" im Android DDMS klicken:

Geben Sie hier die Bildbeschreibung ein

Electronix384128
quelle
2
Dies funktioniert auch in Eclipse und nicht nur in Android Studio. Wechseln Sie einfach zu DDMS und klicken Sie auf das Kamerasymbol mit dem richtigen Gerät.
X.X_Mass_Developer
4
Dies funktioniert nicht für 2.3.7-Geräte unter Genymotion, da derzeit ein Fehler in der Framebufer-Implementierung vorliegt. Nur zur Info.
Reck
Gibt es dafür eine Abkürzung?
LiangWang
Wenn ein Fehler angezeigt wird, der keine Verbindung zum Gerät herstellen kann, starten Sie einfach Android Studio neu :)
Choletski
52

Sie können adb verwenden, um den Screenshot über die Befehlszeile abzurufen:

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

Dieser Artikel enthält die Details: http://blog.shvetsov.com/2013/02/grab-android-screenshot-to-computer-via.html

Um mir das Leben zu erleichtern, habe ich in .bash_profile einen Alias ​​erstellt:

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

Jetzt kann ich screenshotTerminal eingeben und einen Screenshot des aktuell ausgeführten Emulators in meinem Download-Verzeichnis erhalten.

Pavel Alexeev
quelle
3
Auf einem Mac wurden adb server is out of date. killing...beim Versuch Fehler angezeigt. Ich habe es behoben, indem ich das adbin Genymotion enthaltene verwendet habe:/Applications/Genymotion.app/Contents/MacOS/tools/adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > ~/Downloads/android_screenshot.png
cgenco
Nett! Funktioniert super!
SDFSDF
cool, damit ich meine Genymotion-Lizenz nicht aktualisieren muss: cry :!
Liu Pluto
Dies ist eine Antwort auf PRO-Level, danke! Nur als Update funktioniert es unter Mac OS
X
1
Ich ziehe es vor, den Namen durch Hinzufügen des Zeitstempels eindeutig zu machen: alias screenhot = '/ Applications / Genymotion.app / Contents / MacOS / tools / adb shell screencap -p | perl -pe / \ x0D \ x0A / \ x0A / g '> ~ / Desktop / Android_Screenshot _ $ (Datum "+% Y-% m-% d-% H-% M" -% S) .png'
Musa Almatri
24

Verwenden Sie diese Befehle:

  • 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"
    
    • Hinweis: Stellen Sie sicher, dass Sie die Berechtigung zum Schreiben haben C:\output.png. Andernfalls ändern Sie den gewünschten Pfad.
  • 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
quelle
1
Mit geringfügigen Änderungen funktioniert es für mich:adb shell screencap -p "/mnt/sdcard/output.png" && adb pull "/mnt/sdcard/output.png" . && adb shell rm "/mnt/sdcard/output.png"
Manikanta
Ich glaube, ein normaler Benutzer unter Windows hat nicht die Berechtigung, direkt in "C: \" zu schreiben. Ändern Sie daher den Zielspeicherort von adb pullin ein Verzeichnis, in dem Sie wirklich Schreibrechte haben, um sicherzustellen, dass dies funktioniert. Ansonsten ziemlich einfache und elegante Lösung, danke!
SaAtomic
1
Vielen Dank, @SaAtomic, ich habe meine Antwort mit einer Notiz bearbeitet.
Gabrielieldi
error: cannot connect to daemon: cannot connect to 127.0.0.1:5037 (10061)
JCarlosR
13
  1. Wählen Sie den Genymotion-Simulator
  2. Drücken Sie die unten beschriebene Tastenkombination

    • Windows: Strg + Umschalt + S.

    • Mac: Befehlstaste + Umschalttaste + S.

  3. Sie finden Ihre Screenshots auf dem Desktop

Jayesh Lathiya
quelle
1
Es funktioniert, aber der Screenshot kann nicht auf dem Desktop gespeichert werden. Es wurde in C: / Users / ~ LoginName ~ / ~ AVD Name ~ / Screenshot-datetimestamp.png gespeichert
Mohamed Mohaideen AH
1
Für Mac hängt es von Ihrem Screenshot-
Ordnerpfad ab
Danke für den Tipp! Es funktioniert sogar mit der kostenlosen Version von Genymotion 2.8.0 (Windows) :)
AntonK
11

Ich denke, Sie können auch kostenlos Videos aufnehmen. Genymotion verwendet VirtualBox, um fast das gesamte schwere Heben zu erledigen. Öffnen Sie daher VirtualBox und prüfen Sie, was Sie darin tun können.

In Virtualbox finden Sie Optionen zum Aufnehmen von Videos! Geben Sie hier die Bildbeschreibung ein

TrophyGeek
quelle
Ich habe Oracle VM VirtualBox Managerunter Windows 7 geöffnet und es sieht nicht nach
Ihrem aus
Ich habe gerade VirtualBox auf Win7 installiert und es sieht für mich so aus. i.imgur.com/XKqlFW2.jpg
TrophyGeek
Das ist ein "Linux", haben Sie die gleichen Optionen für Genymotion Androids? (Vielleicht funktioniert es nur über Android 4, ich habe 2.3.7 ausprobiert)
TWiStErRob
1
hast du das versucht Für VirtualBox unter Debian werden nur die Kernel-Nachrichten der Android-Geräte aufgezeichnet.
Dols
Sie können ein Genymotion-Gerät nicht direkt von virtualBox aus starten. Diese Lösung funktioniert nicht.
Daniele
8

adb shell screencap -p /sdcard/screen.png

M. Ganji
quelle
5

Wenn Ihr Mac langsam ist und Sie es hassen, Eclipse und den Emulator zusammen auszuführen, ist dies ein schnellerer Weg.

  1. Exportiere deine apk.
  2. Starten Sie Genymotion.
  3. Ziehe die apk auf den Emulator, um sie zu installieren.
  4. Gehen Sie zu 'android-sdk-macosx> tools> ddms'.
  5. Führen Sie diese Datei aus.
  6. Eine neue Instanz von ddms wird gestartet. Im Gegensatz zu Eclipse verlangsamt es Ihr System nicht.
  7. Verwenden Sie die Option 'Menü> Gerät> Screenshot', um einen Screenshot aufzunehmen.

Dies ist eine gute Option für Benutzer langsamer Computer.

Pritesh Desai
quelle
3

Wenn Sie Eclipse verwenden, befolgen Sie die Schritte für einen beliebigen Emulatortyp: 1. Wählen Sie DDMS aus. 2. Wählen Sie im Gerätefenster von DDMS das Genymotion-Gerät aus. 3. Klicken Sie auf das Kamerasymbol und speichern Sie es an einem bestimmten Ort. Klicken Sie im Gerätefenster einfach auf das Kamerasymbol.  Ich markiere es hier bereits als Kreis

SANAT
quelle
2

Für Linux und Windows (ich habe Gitbash unter Windows verwendet) adb shell screencap -p | sed 's/\r$//' > screen.png Für Mac adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

Nath
quelle
0

@Reck sagt, dass es einen Fehler in der Genymotion-Implementierung gibt, so dass wir in 2.3.7 keine Screenshots machen können. Dies bedeutet, dass Android Studio / DDMS nicht die richtigen Pixel erhalten kann. adb shell screencapsagt, es gibt keinen screencapBefehl.

Angenommen, Sie haben Zugriff auf den Code, können Sie diese Methode einfach aufrufen:

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

In Aktivität:

screenshot(getWindow().getDecorView());

Im Fragment:

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

Die einzige mir bekannte Einschränkung ist, dass die Statusleiste nicht enthalten ist.

TWiStErRob
quelle
0

Wenn Sie einen Mac verwenden, reicht manchmal CMD + Umschalt + 4 (Screenshot eines ausgewählten Teils in OSX) und dann die Auswahl der Simulatorregion aus :)

Zaster
quelle
0

Mache ein Bildschirmfoto

Auf vielen Android-Geräten können Sie einen Screenshot mit einer Tastenkombination aufnehmen: Halten Sie gleichzeitig Power und Volume-Down gedrückt. Sie können einen Screenshot mit Android Studio auch wie folgt aufnehmen:

Führen Sie Ihre App auf einem angeschlossenen Gerät oder Emulator aus. Stellen Sie bei Verwendung eines angeschlossenen Geräts sicher, dass Sie das USB-Debugging aktiviert haben. Wählen Sie in Android Studio Ansicht> Tool Windows> Logcat, um Logcat zu öffnen. Wählen Sie das Gerät und einen Prozess aus der Dropdown-Liste oben im Fenster aus. Klicken Sie links im Fenster auf Screenshot. Der Screenshot wird in einem Screenshot-Editor-Fenster angezeigt

Es funktioniert sogar für Genymotion Emulator

Überprüfen Sie hier für weitere Informationen

Upendranath Reddy
quelle