Activity mit IntentExtras starten - direkt aus dem Android Studio
- 2 Minuten - 332 WörterBeim Testen von Software ist es unter anderem wichtig dass man schnell zum Ziel kommt. Persönlich finde es anstrengend, wenn ich mich durch einen umfangreichen Screenflow arbeiten muss um eine einzelne Activity testen zu können. Gerade wenn man viele kleine Änderungen vornehmen muss wird es mit der Zeit sehr nervig.
Zum Glück liefert uns die Android Debug Bridge hierfür aber Hilfestellung. So können wir eine bestimmte Activity direkt aus Android Studio starten und dieser Activity auch noch Parameter (IntentExtras) mitgeben. Wir können also die IntentExtras simulieren, die der Activity im normalen Programmverlauf übergeben werden. Somit können wir eine Activity mit Parameter starten.
Zum Beispiel lässt sich eine Activity so mit einer Datenbank-ID des anzuzeigenden Objektes starten. Wir umgehen damit die benötigten Klicks um über den normalen Screenflow zur Activity zu kommen. Damit können wir deutlich schneller testen. Klingt zu einfach um wahr zu sein? Ganz im Gegenteil!
Und so funktioniert es:
Wir müssen nur eine neue Startkonfiguration in Android Studio erstellen:
Auswahlbox öffnen und auf “Edit Configurations…” klicken.
Indem wir die aktuelle Konfiguration kopieren und ein paar Werte für unsere Zwecke anpassen:
- Wählt einen Namen, der die Konfiguration sinnvoll beschreibt. In meinem Fall will ich eine Activity X mit Testparametern starten.
- Unter Launch Options müsst ihr die Launch-Auswahlbox auf Specified Activity umstellen.
- Die Activity gebt ihr direkt darunter an - voll qualifiziert mit Package Name.
- In den Launch Flags gebt ihr jetzt eure Parameter ein.
Eine Dokumentation der Launch Flags findet ihr in der offiziellen Dokumentation hier.
Häufige Fehler
Beachtet, dass der Parameter -e
der Standard für Strings ist (entspricht --es
) und alle anderen Datentypen mit vorangestelltem --
(minus minus) angegeben werden. --ei
für Integer, --el
für Long, usw.
Die zu startende Activity muss in der Manifest Datei (AndroidManifest.xml) als exported=true
definiert sein. Damit ihr in einer Produktivumgebung nicht versehentlich Activities exportiert, könnt ihr dies in einer speziell für Debug konfigurierten Manifest definieren.
Wie immer: im Fall der Fälle prüft den Logcat Output ob ihr von Android auf den Fehler hingewiesen werdet.