2017-05-10 3 views
0

ich ein Android-Emulator Bildschirm mit dem Befehl bin Erfassung:Schneller Befehl als "adb shell screencap"?

adb shell screencap -p

/sdcard/screencap.png Aber es ist wie 500ms unter den Befehl auszuführen und die speichern PNG-Datei gibt es eine schnellere Möglichkeit, die Bildschirmdaten zu erfassen? Ich brauche nicht wirklich die PNG-Datei selbst, nur die 'Bilddaten', da ich gerade das PNG erzeuge und es in die .NET Bitmap-Klasse lade, um die Pixelfarben zu lesen.

Ich brauche einen schnelleren Weg, um das Bild zu erfassen, da ich 10 Bilder pro Sekunde des Emulatorbildschirms benötigen, um damit zu interagieren, so die Aufnahme des Bildschirms, um eine Videodatei zu generieren, ist keine "Lösung" für mich.

Dank

+0

Wo verwenden Sie die Daten? Ziehen Sie das PNG vom Gerät und bearbeiten es dann woanders? – CommonsWare

+0

Ich benutze MEmu Emulator, also, wenn ich es auf/sdcard/speichern speichert in einem freigegebenen Ordner auf dem Computer –

+0

Haben Sie die MEmu Entwickler mit Ihrer Frage kontaktiert? – CommonsWare

Antwort

0

AFAIK, keine solche Art und Weise existiert, außer Sie eine Anwendung auf dem Zielgerät zu schreiben und auszuführen. Dann senden Sie es zurück über das Netzwerk. Verwenden Sie in der Emulatorsituation adb forward.

Weitere Details finden Sie unter createVirtualDisplay.

+0

Würde "Adb Forward" schneller sein, den Screenshot zu nehmen? Oder es ist nur eine andere Art, mit dem Android-Gerät/Emulator zu kommunizieren? –

+0

@IgorM Überprüfen Sie die Hilfe von 'adb'. Es ist nur Port-Forwarding mit idealer maximaler Geschwindigkeit bei weniger als 480 Mbit/s (typisch USB 2.0). Meistens bietet es mehr als 20Mbps und ich denke, es ist genug für Ihre Bedürfnisse. – Ben

0

Alte Frage, aber Sie könnten versuchen adb shell screencap screen.dump. Dies überspringt den Schritt zum Konvertieren der Datei in png und erzeugt eine Datei, die in Hex gelesen werden kann.

Es gibt 12 Bytes Header und dann beginnt die Datei mit den Pixelfarben an Position (0,0) (oben links) als RGBA.

Die endgültige Größe der Datei hängt von der Größe Ihres Bildschirms ab.