Android Studio als neue Standard-Entwicklungsumgebung

Versionsverwaltung

CVS oder lokal?

Android Studio ist von Haus aus zur Integration mit CVS, Subversion, Git und Mercurial befähigt: Wer eines der vier verbreiteten Versionskontrollsysteme nutzt, kommt ohne Plug-in aus. Die Aktivierung des jeweiligen Moduls erfolgt durch Anklicken von VCS | Enable Version Control history.

Falls die Verbindung zu einem externen Server nicht möglich ist, hilft Android Studio mit der "Local History" aus. Das ist ein Protokoll, in dem die Umgebung Speicherungen und Änderungen von Dateiinhalten lokal vermerkt. Rechtsklick | Local History zeigt die gespeicherten Inhalte an.

Veraltete Versionen liegen in einem Unterverzeichnis des Nutzerprofils und sind nicht Teil des Projektordners. Wer die in der Local History liegenden Dateien trotzdem löschen möchte, führt File | Invalidate Caches/Restart aus. Der eigentliche Löschprozess beginnt erst beim Neustart der IDE. Anschließend ist zudem ein kompletter Rebuild aller Projekte erforderlich. Dass Aktualisieren der IDE beseitigt den Inhalt der Local History ebenfalls.

Jage den Fehler!

Versionskontrollsysteme sind besonders hilfreich, wenn es an die Bekämpfung durch Änderungen eingeführter Fehler geht. Der Gutteil der Bugs fällt indes scheinbar vom Himmel. IntelliJ bietet einige Funktionen zum Aufspüren dieser Fehler.

Zu erwähnen ist die permanente Darstellung der Variableninhalte: Wenn der Debugger ein laufendes Programm anhält, zeigt das Tool den aktuellen Wert direkt neben der Deklaration an.

Das in der folgenden Abbildung gezeigte Variablenfenster ist zweigeteilt: Die Liste auf der linken Seite zeigt die einzelnen Stackframes beziehungsweise aktiven Methoden an. Entwickler können durch Markieren des Frames den Kontext des aktiven Elements in den mittleren Bereich holen und dort die Inhalte von Structs und anderen komplexen Strukturen aufschlüsseln.

onCreate kommt selten allein (Abb. 10).

Über die Watches-Liste festgelegte Ausdrücke berechnet der Debugger bei jedem Anhalten des Programms. Das ist unter anderem zur Überwachtung von Variablen sinnvoll. Das Errichten ausgefeilter Breakpointstrukturen erweist sich in der Praxis insofern als zweischneidiges Schwert, als sie viele Klicks bei jedem geplanten Anhalten erfordern. Die Option "Mute all Breakpoints" löst das Problem elegant.

Wer beim Debugging die Übersicht verliert, erhält mit der Run to Cursor-Funktion die Kontrolle zurück. Sie weist den Debugger an, die Applikation so lange laufen zu lassen, bis sie den Code unter dem Cursor erreicht.