Howto: Android Screencasts erstellen und das Gerät vom PC steuern

Screenshots, Demovideos und so weiter, all dies sind Dinge die im Bloggeralltag gerne gebraucht werden. Immer mehr Hersteller lassen es nun zumindest zu direkt am Gerät Screenshots zu erstellen, mit Android Ice Cream Sandwich ist diese Funktion nun auch endlich generell ins System eingebaut und man muss nicht mehr auf Apps oder DDMS/Android SDK [1] zurückgreifen.

Androidscreencast unter Ubuntu
Androidscreencast unter Ubuntu

Lange Zeit war man genötigt, wollte man Screenshots vom laufenden System erstellen, das Gerät zu rooten und dann auf Apps zurückgreifen, die diese Funktion zur Verfügung stellen. Ein alternativer Weg war schon immer über ddms, aus dem SDK Paket, auf das Gerät zuzugreifen und Screenshots am PC, mittels USB Verbindung zu machen (siehe Link [1]).

Möchte man Screencasts, also Aufnahmen von dem erstellen, was auf dem Gerät vor sich geht, hat man ebenfalls Zugriff auf einige Apps, Root-Rechte erneut vorausgesetzt. Nicht alle Apps funktionieren auf jedem Gerät, häufig ist es ein Glücksspiel und mir auch zu zeitraubend. Mittels einer kleinen Javaanwendung geht das plattformübergreifend, egal ob es nun ein Windows, MacOS oder Linux PC ist, der den Bildschirm des Androidgerätes „abfilmen“ soll.

Die erwähnte Javaanwendung nennt sich androidscreencast und setzt ein vorhandenes SDK voraus (adb Nutzung). Das Android SDK bekommt man von der Android Developer Webseite: Downloadlink Android SDK.

Sind SDK und Java auf dem PC vorhanden, kann man die Javaanwendung nutzen, sofern das Gerät per „adb devices“ erkannt wird.

Gestartet wird androidscreencast mittels folgendem Aufruf:

 javaws androidscreencast.jnlp

Ist der Aufruf vollzogen sieht man den Bildschirminhalt und kann einen Screencast/eine Aufnahme starten. Dazu auf „Record“ klicken und Namen und Zielort für die erstellte mov-Datei auswählen. Ein erneuter Klick auf Record beendet die Aufnahme. Zwar liegt die Refreshrate nur bei run 5 Bilder in der Sekunde, für die meisten Anwendungsfälle reicht dies aber vollständig aus. Für die Reine Aufnahmefunktion werden keine Rootrechte auf dem Androidgerät gebraucht.

Hat man allerdings Rootrechte, dann kann das Gerät vom PC aus, mit Maus und Tastatur gesteuert werden, recht praktisch, das Gerät kann per USB angeschlossen bleiben und laden, man muss es zur Nutzung allerdings nicht in die Hand nehmen.

Wie eine mit androidscreencast erstellte Aufnahme aussieht, könnt ihr hier sehen:


YouTube Direktlink

Wie sieht es bei euch aus, wie erstellt ihr Screencasts, lieber mit einer App, oder über eine Kombination rund ums SDK? Eure Meinung interessiert uns und sicherlich auch andere, falls ihr eine App nutzt, wäre es klasse wenn ihr noch sagt mit welche Geräte und Androidversion diese bei euch funktioniert, dann haben es Andere leichter die passende App zu finden.

Mit Fastboot unter Ubuntu ein Image flashen

Am Beispiel von Ubuntu 11.04 und dem Sony Ericsson Xperia PLAY möchte ich hier ganz kurz auf die Nutzung von Fastboot zum Flashen von Image Files eingehen.

Fastboot Xperia PLAY unter Ubuntu 11.04
Fastboot Xperia PLAY unter Ubuntu 11.04

Will man unter Ubuntu einen neuen Kernel auf Android Smartphone flashen, braucht man, (unter Windows natürlich auch) zusätzlich zum Android SDK, die fastboot Binary.

Eine reibungslos funktionierende Version, im Zusammenhang mit dem Xperia PLAY, gibt es z.B. in folgendem Beitrag bei den XDA-Developers.

Auf der Konsole kann man fastboot von dort schnell mittels wget ziehen:

wget http://xt720.ru/Tools/fastboot

Grundlegend läuft der Flashvorgang mit allen Geräten identisch ab:

  • Entsprechende Image Datei herunterladen (z.B. boot.img)
  • Endgerät in den Fastboot Modus versetzen (Beim Xperia PLAY muss man hierzu das ausgeschaltete Gerät bei gedrückter Suche/Lupe-Taste per USB an den PC anschliessen)
  • Fastboot das Image flashen lassen
  • Gerät anschalten
Der Befehl zum Flashen ist immer ähnlich, man startet fastboot, gibt an was man machen will, in diesem Beispiel flashen, welchen Bereich man schreiben möchte und letztendlich die Image Datei.
Ausgeschrieben stellt sich das im Falle einer boot.img so dar:
sudo ./fastboot flash boot boot.img
Hier gehen wir davon aus dass sich fastboot, als auch die Image Datei im selben Verzeichnis befinden, sollte das abweichen, dann muss der Pfad zur boot.img natürlich entsprechend angepasst werden.
Das Xperia PLAY verhält sich unter Ubuntu ein bisschen anders, hier müssen wir fastboot noch einen Parameter mitgeben, damit der richtige Bereich auf dem PLAY angesteuert und der Befehl überhaupt ausgeführt wird:
sudo ./fastboot -i 0x0fce flash boot boot.img
Damit klappt es auch mit fastboot, dem Xperia PLAY und Ubuntu 11.04, wie im vorgestellten Fall.

Android Screenshots mit dem SDK in Ubuntu machen

Will man Screenshots unter Adroid machen, gibt es mehrere Möglichkeiten. Zum einen ist der Market voll von Applikationen, die das übernehmen, die erstellten Bilddateien muss man dann nur noch per USB vom Handy runterladen und kann sie benutzen, oder man nutzt das Android SDK, wie ich es bevorzuge, da ich dort egal wo, jederzeit einen Screenshot machen kann.

Wie das funktioniert ist schnell erklärt. Zuerst lädt man sich von http://developer.android.com die jeweils aktuelle Version des SDK für das eigene Betriebssystem herunter:

Android SDK Downloaden
Android SDK Downloaden

Anschliessend das heruntergeladene Archiv entpacken. Galaxy Besitzer sollten die Infos von HIER berücksichtigen, bei mir reichte es nur die adb durch DIESE hier zu ersetzen.

Auf dem Handy unter: Einstellungen->Anwendungen->Entwicklung den USB-Debugging Modus aktivieren.

USB-Debugging aktivieren
USB-Debugging aktivieren

Das Handy mit dem PC per USB verbinden und im tools Ordner ddms (64Bit Ubuntu Andwender schauen mal HIER vorbei) starten. Dort seht ihr das verbundene Gerät, in meinem Fall ein Samsung Galaxy.

DDMS läuft, Gerät wird erkannt
DDMS läuft, Gerät wird erkannt

Nun kann man einfach mit Strg+s den Screenshot-Dialog starten und munter „abfotografieren“. Im Menü findet sich der Punkt für die Screenshots unter „Device->Screen Capture“.