Iterative Codeentwicklung

Als App-Entwickler entwickeln Sie die Benutzeroberfläche Ihrer App oft Schritt für Schritt, anstatt alles auf einmal zu entwickeln. Android Studio verwendet diesen Ansatz mit Jetpack Compose und stellt Tools bereit, die keinen vollständigen Build benötigen, um Werte zu prüfen, zu ändern und das Endergebnis zu verifizieren.

Live-Bearbeitung

Mit Live Edit können Sie zusammensetzbare Funktionen in Emulatoren und physischen Geräten in Echtzeit aktualisieren. Diese Funktion minimiert Kontextwechsel zwischen dem Schreiben und dem Erstellen der App, sodass Sie sich ohne Unterbrechung länger auf das Schreiben von Code konzentrieren können.

Die Live-Bearbeitung umfasst drei Modi:

  • Manuell: Codeänderungen werden angewendet, wenn sie manuell über Strg + \ (Befehlstaste + \ unter macOS) übertragen werden.
  • Manuell beim Speichern: Codeänderungen werden angewendet, wenn sie manuell mit Strg + S (Befehlstaste + S unter macOS) gespeichert werden.
  • Automatisch: Änderungen werden auf Ihrem Gerät oder in Ihrem Emulator angewendet, wenn Sie eine zusammensetzbare Funktion aktualisieren.

Bei der Live-Bearbeitung liegt der Schwerpunkt auf UI- und UX-bezogenen Codeänderungen. Live Edit unterstützt keine Änderungen wie Aktualisierungen der Methodensignatur, Hinzufügen neuer Methoden oder Änderungen der Klassenhierarchie. Weitere Informationen findest du in der Liste der Einschränkungen der Live-Bearbeitung.

Diese Funktion ist kein Ersatz für das Erstellen und Ausführen Ihrer Anwendung oder für Änderungen übernehmen. Es dient vielmehr dazu, Ihren Workflow beim Erstellen, Bereitstellen und Iterieren zur Entwicklung der Compose-UI zu optimieren.

Der Best Practice-Workflow lautet wie folgt:

  1. Richten Sie Ihre Anwendung so ein, dass sie ausgeführt werden kann.
  2. Live Edit so viel wie möglich, bis du eine Änderung vornehmen musst, die von Live Edit nicht unterstützt wird, z. B. das Hinzufügen neuer Methoden, während die Anwendung ausgeführt wird.
  3. Nachdem Sie eine nicht unterstützte Änderung vorgenommen haben, klicken Sie auf Ausführen Symbol „Ausführen“, um die App neu zu starten und die Live-Bearbeitung fortzusetzen.

Erste Schritte mit Live Edit

So erstellst du eine leere „Compose“-Aktivität, aktivierst die Live-Bearbeitung für dein Projekt und nimm Änderungen vor.

Neues Projekt einrichten

  1. Bevor du beginnst, solltest du prüfen, ob Android Studio Giraffe oder höher installiert ist und dass das API-Level deines physischen Geräts oder Emulators mindestens 30 beträgt.

  2. Öffnen Sie Android Studio und wählen Sie im Dialogfeld Willkommen bei Android Studio die Option Neues Projekt aus. Wenn bereits ein Projekt geöffnet ist, können Sie ein neues Projekt erstellen. Rufen Sie dazu File > New > New Project auf.

  3. Wählen Sie für Phone and Tablet die Vorlage Empty Compose Activity aus und klicken Sie dann auf Weiter.

    Vorlagenauswahl in Android Studio
    Abbildung 1. Vorlagen, aus denen Sie auswählen können. Wählen Sie für „Live Edit“ (Live-Bearbeitung) die Option Empty Compose Activity aus.
  4. Geben Sie im Dialogfeld Neues Projekt die erforderlichen Informationen ein: Name, Paketname, Speicherort, Mindest-SDK und Build-Konfigurationssprache.

    Beispielprojekteinstellungen aus Schritt 4, die in Android Studio eingegeben wurden
    Abbildung 2. Beispiel für Projekteinstellungen.
  5. Klicken Sie auf Fertig.

Live-Bearbeitung aktivieren

  1. Rufe die Einstellungen auf, um „Live Edit“ zu aktivieren.

    • Rufe unter Windows oder Linux File > Settings > Editor > Live Edit (Datei > Einstellungen > Editor > Live-Bearbeitung) auf.
    • Unter macOS: Rufe Android Studio > Einstellungen > Editor > Live-Bearbeitung auf.
  2. Wähle in den Einstellungen die Option Live Edit (Livebearbeitung) und den Modus aus, den du ausführen möchtest.

    Im manuellen Modus werden die Codeänderungen jedes Mal übernommen, wenn Sie Strg + \ (Befehlstaste + \ unter macOS) drücken. Im manuellen Modus werden die Codeänderungen beim Speichern jedes Mal angewendet, wenn Sie Strg + S bzw. Befehlstaste + S unter macOS drücken. Im automatischen Modus werden Ihre Codeänderungen auf Ihrem Gerät oder in Ihrem Emulator angewendet, wenn Sie Änderungen vornehmen.

    Benutzeroberfläche des Kästchens für die Live-Bearbeitung in den Android Studio-Einstellungen
    Abbildung 3. Live Edit-Einstellungen.
  3. Öffnen Sie im Editor die Datei MainActivity. Sie ist der Einstiegspunkt für Ihre Anwendung.

  4. Klicken Sie auf Ausführen UI-Schaltfläche, um die Anwendung bereitzustellen.

  5. Nachdem du die Live-Bearbeitung aktiviert hast, wird oben rechts im Toolfenster Aktive Geräte das grüne Häkchen Aktuell angezeigt:

    Benutzeroberfläche mit grünem Häkchen für Live-Bearbeitung

Änderungen vornehmen und prüfen

Wenn Sie im Editor unterstützte Änderungen vornehmen, wird das virtuelle oder physische Testgerät automatisch aktualisiert.

Bearbeiten Sie beispielsweise die vorhandene Methode Greeting in MainActivity so:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

Ihre Änderungen werden sofort auf dem Testgerät angezeigt (siehe Abbildung 4).

Änderungen an der Begrüßungsmethode auf einem Gerät angewendet
Abbildung 4. Testgerät, auf dem die Live Edit-Änderungen an der Methode Greeting angezeigt werden.

Probleme mit der Live-Bearbeitung beheben

Wenn Sie Ihre Änderungen auf dem Testgerät nicht sehen, wurden sie möglicherweise von Android Studio möglicherweise nicht aktualisiert. Prüfen Sie, ob in der Live Edit-Anzeige Veraltet steht (siehe Abbildung 5). Dies weist auf einen Kompilierungsfehler hin. Klicken Sie auf die Anzeige, um Informationen zum Fehler und Vorschläge zur Fehlerbehebung zu erhalten.

Symbol für Live-Bearbeitung veraltet
Abbildung 5. Live-Bearbeitungs-Statusanzeige.

Einschränkungen der Live-Bearbeitung

Im Folgenden finden Sie eine Liste der aktuellen Einschränkungen.

  • [Gilt nur für Android Studio Giraffe und höher] Für die Live-Bearbeitung ist Compose Runtime ab Version 1.3.0 erforderlich. Wenn in Ihrem Projekt eine niedrigere Version von Compose verwendet wird, ist die Live-Bearbeitung deaktiviert.

  • [Gilt nur für Android Studio Giraffe und höher] Für die Live-Bearbeitung ist AGP 8.1 oder höher erforderlich. Wenn Ihr Projekt eine niedrigere Version von AGP verwendet, ist Live Edit deaktiviert.

  • Für die Live-Bearbeitung ist ein physisches Gerät oder ein Emulator mit API-Level 30 oder höher erforderlich.

  • Live Edit unterstützt nur das Bearbeiten eines Funktionskörpers. Sie können also den Funktionsnamen oder die Signatur nicht ändern, keine Funktion hinzufügen oder entfernen oder Felder, die keine Funktionen sind, ändern.

  • Wenn Sie zum ersten Mal eine Erstellungsfunktion in einer Datei ändern, wird der Status der Anwendung zurückgesetzt. Dies geschieht erst nach der ersten Codeänderung. Der Anwendungsstatus wird nicht durch nachfolgende Codeänderungen zurückgesetzt, die Sie an den Compose-Funktionen in dieser Datei vornehmen.

  • Von der Live-Bearbeitung geänderte Klassen können zu Leistungseinbußen führen. Führen Sie Ihre Anwendung aus und verwenden Sie einen sauberen Release-Build, wenn Sie die Leistung bewerten.

  • Sie müssen eine vollständige Ausführung ausführen, damit der Debugger an Klassen verarbeitet werden kann, die Sie mit Live Edit geändert haben.

  • Eine laufende App kann abstürzen, wenn Sie sie mit Live Edit bearbeiten. In diesem Fall können Sie die Anwendung mit der Schaltfläche Ausführen UI-Schaltfläche noch einmal bereitstellen.

  • Live Edit führt keine Bytecode-Bearbeitung aus, die in der Build-Datei Ihres Projekts definiert ist, z. B. beim Erstellen des Projekts über die Optionen im Menü Build oder durch Klicken auf die Schaltfläche Build oder Run.

  • Nicht zusammensetzbare Funktionen werden live auf dem Gerät oder Emulator aktualisiert und eine vollständige Neuzusammensetzung wird ausgelöst. Die vollständige Neuzusammensetzung ruft möglicherweise nicht die aktualisierte Funktion auf. Bei nicht zusammensetzbaren Funktionen müssen Sie die neu aktualisierten Funktionen auslösen oder die Anwendung noch einmal ausführen.

  • Die Live-Bearbeitung wird nach einem App-Neustart nicht fortgesetzt. Sie müssen die App noch einmal ausführen.

  • Die Live-Bearbeitung unterstützt nur Debug-fähige Prozesse.

  • Live Edit unterstützt keine Projekte, die in der Build-Konfiguration unter kotlinOptions benutzerdefinierte Werte für moduleName verwenden.

  • Die Live-Bearbeitung funktioniert nicht bei Bereitstellungen mit mehreren Bereitstellungen. Dies bedeutet, dass die Bereitstellung nicht auf einem Gerät und dann auf einem anderen Gerät möglich ist. Live Edit ist nur auf den letzten Geräten aktiv, auf denen die App bereitgestellt wurde.

  • Live Edit funktioniert bei Bereitstellungen auf mehreren Geräten, d. h. bei Bereitstellungen auf mehreren Geräten, die über Mehrere Geräte auswählen im Drop-down-Menü des Zielgeräts erstellt wurden. Sie wird jedoch nicht offiziell unterstützt und es können Probleme auftreten. Wenn Probleme auftreten, melden Sie diese bitte.

  • Die Optionen „Änderungen übernehmen“ und „Codeänderungen anwenden“ sind nicht mit Live Edit kompatibel und erfordern ein Neustart der laufenden App.

Häufig gestellte Fragen zu Live Edit

  • Wie ist der aktuelle Status der Live-Bearbeitung?

    Die Funktion „Live Edit“ ist in Android Studio Giraffe verfügbar. Wenn du sie aktivieren möchtest, rufe Datei > Einstellungen > Editor > Live-Bearbeitung auf (Android Studio > Einstellungen > Editor > Live-Bearbeitung auf macOS-Geräten).

  • Wann sollte ich Live Edit verwenden?

    Verwenden Sie Live Edit, wenn Sie schnell sehen möchten, wie sich Aktualisierungen von UX-Elementen (z. B. Aktualisierungen von Modifikatoren und Animationen) auf die allgemeine Nutzerfreundlichkeit der App auswirken.

  • Wann sollte ich Live Edit nicht verwenden?

    Bei der Live-Bearbeitung liegt der Schwerpunkt auf UI- und UX-bezogenen Codeänderungen. Änderungen wie Aktualisierungen der Methodensignatur, das Hinzufügen neuer Methoden oder Änderungen der Klassenhierarchie werden nicht unterstützt. Weitere Informationen findest du unter Einschränkungen der Live-Bearbeitung.

  • Wann sollte ich die Vorschau des Verfassens verwenden?

    Verwenden Sie die Funktion „Vorschau verfassen“, wenn Sie einzelne zusammensetzbare Funktionen entwickeln. In der Vorschau werden Compose-Elemente visualisiert und automatisch aktualisiert, um die Auswirkungen von Codeänderungen anzuzeigen. Die Vorabversion unterstützt auch die Anzeige von UI-Elementen in verschiedenen Konfigurationen und Status, z. B. dunkles Design, Gebietsschemata und Schriftgröße.

Live-Bearbeitung von Literalen (eingestellt)

Android Studio kann einige konstante Literale, die in zusammensetzbaren Funktionen in der Vorschau, im Emulator und auf dem physischen Gerät verwendet werden, in Echtzeit aktualisieren. Folgende Typen werden unterstützt:

  • Int
  • String
  • Color
  • Dp
  • Boolean

Video, in dem zu sehen ist, wie der Nutzer Literale im Quellcode ändert und die Vorschau dynamisch aktualisiert

Sie können konstante Literale, die Echtzeitaktualisierungen ohne den Kompilierungsschritt auslösen, aufrufen. Dazu aktivieren Sie die literale Dekoration über die UI-Anzeige „Live Edit of Literals“:

Live-Bearbeitung von Literalen aktivieren

Änderungen übernehmen

Mit Änderungen übernehmen können Sie Code und Ressourcen aktualisieren, ohne die App noch einmal in einem Emulator oder auf einem physischen Gerät bereitstellen zu müssen (mit einigen Einschränkungen).

Wenn Sie zusammensetzbare Funktionen hinzufügen, ändern oder löschen, können Sie die Anwendung aktualisieren, ohne sie neu bereitstellen zu müssen. Klicken Sie dazu auf die Schaltfläche Codeänderungen anwenden:

Ein Nutzer klickt auf die Schaltfläche „Änderungen anwenden“.