Zrób zrzut ekranu w GenyMotion

80

Używam Genymotion do uruchamiania aplikacji na Androida. Czy ktoś mógłby mi powiedzieć, jak zrobić zrzut ekranu w Genymotion ?

kavie
źródło
Nie zapomnij wybrać odpowiedzi! ;)
electronix384128

Odpowiedzi:

40

Zastrzeżenie: jestem częścią tej samej firmy, co zespół Genymotion.

Ta funkcja jest zawarta w produkcie. Jest to jedna z płatnych funkcji widgetu screencast. Spójrz na stronę z cenami tutaj .

Dwa sposoby uzyskania do niego dostępu:

  • zapłacić za licencję pro lub indie
  • skorzystaj z wersji próbnej, która oferuje niezależne funkcje. Uważaj , został tylko jeden dzień próbny: - /

Po uruchomieniu maszyny wirtualnej otwórz widżet prezentacji ekranu

wprowadź opis obrazu tutaj

Następnie zrób zdjęcie dedykowanym przyciskiem

wprowadź opis obrazu tutaj

AKTUALIZACJA: Poniżej znajdziesz inne sposoby zrobienia zrzutu ekranu za pomocą monitora urządzeń Android lub wiersza poleceń

lezmy oczu
źródło
1
Dziękuję bardzo za komentarz
kavie
2
Dzięki dya. Zwykle na StackOverflow, jeśli odpowiedź rozwiązuje twój problem, musisz oznaczyć go jako rozwiązany zamiast głosować za, jak to zrobiłeś.
eyal-lezmy
193

Jeśli korzystasz z Android Studio lub Eclipse, możesz po prostu kliknąć przycisk „Zrzut ekranu” w Android DDMS:

wprowadź opis obrazu tutaj

electronix384128
źródło
2
Działa to również w Eclipse, a nie tylko w Android Studio. Po prostu przełącz się na DDMS i kliknij symbol kamery z wybranym odpowiednim urządzeniem.
X.X_Mass_Developer
4
To nie zadziała dla urządzeń 2.3.7 w Genymotion, ponieważ obecnie występuje błąd w ich implementacji framebufer. Po prostu FYI.
Reck
Czy jest do tego jakiś skrót?
LiangWang
jeśli pokazuje błąd, który nie może połączyć się z urządzeniem, po prostu zrestartuj Android Studio :)
Choletski
52

Możesz użyć adb, aby uzyskać zrzut ekranu z wiersza poleceń:

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

Ten artykuł zawiera szczegółowe informacje: http://blog.shvetsov.com/2013/02/grab-android-screenshot-to-computer-via.html

Aby ułatwić sobie życie, utworzyłem alias w .bash_profile:

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

Teraz mogę wpisać screenshotw Terminalu i uzyskać zrzut ekranu aktualnie działającego emulatora w moim katalogu Pobrane.

Pavel Alexeev
źródło
3
adb server is out of date. killing...Podczas próby na komputerze Mac otrzymywałem błędy. Naprawiłem to za pomocą adbdołączonego do Genymotion:/Applications/Genymotion.app/Contents/MacOS/tools/adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > ~/Downloads/android_screenshot.png
cgenco
Miły! Działa świetnie!
sdfsdf,
super, więc nie muszę aktualizować mojej licencji genymotion: płacz:!
liu pluto
To jest odpowiedź na poziomie PRO, dzięki! Jako aktualizacja, w systemie Mac OSX obecnie działa z poleceniem: alias screenshot = "adb shell screencap -p> ~ / Downloads / android_screenshot.png"
Juangui Jordán
1
Wolę, aby nazwa była niepowtarzalna, dodając sygnaturę czasową: alias screenshot = '/ Applications / Genymotion.app / Contents / MacOS / tools / adb shell screencap -p | perl -pe 's / \ x0D \ x0A / \ x0A / g'> ~ / Desktop / Android_Screenshot _ $ (data "+% Y-% m-% d-% H-% M" -% S) .png '
Musa almatri
24

Użyj tych poleceń:

  • Okna:

    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"
    
    • Uwaga: upewnij się, że masz uprawnienia do pisania C:\output.png; w przeciwnym razie zmień ją na dowolną ścieżkę.
  • 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
źródło
1
Z niewielkimi modyfikacjami działa u mnie:adb shell screencap -p "/mnt/sdcard/output.png" && adb pull "/mnt/sdcard/output.png" . && adb shell rm "/mnt/sdcard/output.png"
manikanta
Uważam, że zwykły użytkownik w systemie Windows nie ma uprawnień do bezpośredniego zapisu w „C: \”, więc lepiej zmień lokalizację docelową adb pullna katalog, w którym naprawdę masz prawa do zapisu, aby upewnić się, że to działa. W przeciwnym razie całkiem proste i eleganckie rozwiązanie, dzięki!
SaAtomic
1
Dziękuję @SaAtomic, zredagowałem odpowiedź z dopiskiem.
gabrielmaldi
error: cannot connect to daemon: cannot connect to 127.0.0.1:5037 (10061)
JCarlosR
13
  1. Wybierz symulator genymotion
  2. Naciśnij klawisz skrótu opisany poniżej

    • Windows: Ctrl + Shift + S

    • Mac: Cmd + Shift + S

  3. Możesz znaleźć swoje zrzuty ekranu na pulpicie

jayesh lathiya
źródło
1
Działa, ale zrzutu ekranu nie można zapisać na pulpicie. Zapisano go w C: / Users / ~ LoginName ~ / ~ AVD Name ~ / Screenshot-datetimestamp.png
Mohamed Mohaideen AH
1
W przypadku komputerów Mac zależy to od ścieżki folderu zrzutu ekranu, domyślnie jest to pulpit
Iliyass Hamza
Dzięki za podpowiedź! Działa nawet z darmową wersją Genymotion 2.8.0 (Windows) :)
AntonK
11

Myślę, że możesz też nagrywać filmy za darmo. Genymotion używa VirtualBox do wykonywania prawie wszystkich ciężkich prac, więc powinieneś otworzyć VirtualBox i zobaczyć, co możesz w nim zrobić.

W Virtualbox znajdziesz opcje przechwytywania wideo! wprowadź opis obrazu tutaj

TrophyGeek
źródło
Otworzyłem Oracle VM VirtualBox Managerna Windows 7 i nie wygląda to jak twój ...
TWiStErRob
Właśnie zainstalowałem VirtualBox na Win7 i dla mnie wygląda to tak. i.imgur.com/XKqlFW2.jpg
TrophyGeek
To jest „linux”. Czy masz te same opcje dla Androida Genymotion? (Może działa tylko powyżej Androida 4, próbowałem 2.3.7)
TWiStErRob
1
próbowałeś tego? W przypadku VirtualBox na debianie rejestruje tylko komunikaty jądra urządzeń z systemem Android.
dols
Nie możesz uruchomić urządzenia genymotion bezpośrednio z virtualBox. To rozwiązanie nie działa.
Daniele
8

powłoka adb screencap -p /sdcard/screen.png

M.Ganji
źródło
5

Jeśli twój Mac jest wolny i nienawidzisz uruchamiania Eclipse i emulatora razem, tutaj jest szybszy sposób.

  1. Wyeksportuj swój apk.
  2. Uruchom Genymotion.
  3. Przeciągnij apk do emulatora, aby go zainstalować.
  4. Przejdź do „android-sdk-macosx> narzędzia> ddms”.
  5. Uruchom ten plik.
  6. Zostanie uruchomiona nowa instancja ddms. W przeciwieństwie do Eclipse nie spowalnia systemu.
  7. Aby zrobić zrzut ekranu, użyj opcji „Menu> Urządzenie> Zrzut ekranu”.

To dobra opcja dla osób korzystających z wolnych komputerów.

Pritesh Desai
źródło
3

Jeśli używasz Eclipse, postępuj zgodnie z instrukcjami dla dowolnego typu emulatora: 1. Wybierz DDMS 2. W oknie Urządzenia DDMS wybierz urządzenie Genymotion 3. Kliknij ikonę Kamera i zapisz ją w określonej lokalizacji. W oknie Urządzenia kliknij ikonę aparatu.  Zaznaczam to już kółkiem

SANAT
źródło
2

Dla Linuksa i Windowsa (użyłem gitbash na Windowsie) adb shell screencap -p | sed 's/\r$//' > screen.png Dla Maca adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

Nath
źródło
0

@Reck mówi, że w implementacji Genymotion jest błąd, więc nie możemy robić zrzutów ekranu w wersji 2.3.7. Oznacza to, że Android Studio / DDMS nie może uzyskać odpowiednich pikseli. adb shell screencapmówi, że nie ma screencappolecenia.

Zakładając, że masz dostęp do kodu, możesz po prostu wywołać tę metodę:

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

W aktywności:

screenshot(getWindow().getDecorView());

Fragmentowo:

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

Jedyne ograniczenie, jakie znam, to brak paska stanu.

TWiStErRob
źródło
0

jeśli używasz Maca, czasami CMD + Shift + 4 (zrzut ekranu wybranej części w OSX) i wtedy wystarczy wybrać region symulatora :)

Zaster
źródło
0

Zrób zrzut ekranu

Na wielu urządzeniach z Androidem możesz zrobić zrzut ekranu za pomocą kombinacji klawiszy: jednocześnie naciśnij i przytrzymaj przycisk zasilania i zmniejszania głośności. Możesz także zrobić zrzut ekranu za pomocą Android Studio w następujący sposób:

Uruchom aplikację na podłączonym urządzeniu lub emulatorze. Jeśli używasz podłączonego urządzenia, upewnij się, że włączono debugowanie USB. W Android Studio wybierz View> Tool Windows> Logcat, aby otworzyć Logcat. Wybierz urządzenie i proces z listy rozwijanej u góry okna. Kliknij opcję Zrzut ekranu po lewej stronie okna. Zrzut ekranu pojawi się w oknie edytora zrzutów ekranu

Działa nawet dla emulatora Genymotion

Więcej informacji znajdziesz tutaj

Upendranath Reddy
źródło