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 verfolgt diesen Ansatz mit Jetpack Compose und bietet Tools, die keinen vollständigen Build erfordern, um das Endergebnis zu untersuchen, zu ändern und zu verifizieren.

Live-Bearbeitung

Mit der Funktion „Live-Bearbeitung“ kannst du zusammensetzbare Funktionen in Emulatoren und auf physischen Geräten in Echtzeit aktualisieren. Durch diese Funktion wird der Kontextwechsel zwischen dem Schreiben und Erstellen der Anwendung minimiert, sodass Sie sich ohne Unterbrechung länger auf das Schreiben von Code konzentrieren können.

Für die Live-Bearbeitung gibt es drei Modi:

  • Manuell: Codeänderungen werden angewendet, wenn sie manuell mit 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 dem Gerät oder im Emulator angewendet, wenn Sie eine zusammensetzbare Funktion aktualisieren.

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 von der Live-Bearbeitung nicht unterstützt. Weitere Informationen findest du in der Liste der Einschränkungen bei der Live-Bearbeitung.

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

Der bewährte Workflow sieht so aus:

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

Erste Schritte mit der Funktion „Live-Bearbeitung“

Führe die folgenden Schritte aus, um eine leere Schreibaktivität zu erstellen, die Live-Bearbeitung für dein Projekt zu aktivieren und Änderungen über die Live-Bearbeitung vorzunehmen.

Neues Projekt einrichten

  1. Prüfen Sie zuerst, ob Android Studio Giraffe oder höher installiert ist und ob das API-Level Ihres physischen Geräts oder Emulators mindestens 30 ist.

  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 unter Datei > Neu > Neues Projekt ein neues erstellen.

  3. Wählen Sie die Vorlage Leere Schreibaktivität für Smartphone und Tablet aus und klicken Sie dann auf Weiter.

    Vorlagenauswahl in Android Studio
    Abbildung 1. Es stehen Vorlagen zur Auswahl. Wähle unter „Live Edit“ die Option Empty Compose Activity aus.
  4. Geben Sie im Dialogfeld Neues Projekt die erforderlichen Informationen ein: Name, Paketname, Speicherort, SDK-Minimum und Build-Konfigurationssprache.

    In Android Studio eingegebene Beispielprojekteinstellungen aus Schritt 4
    Abbildung 2. Beispiel für Projekteinstellungen.
  5. Klicken Sie auf Fertig.

Live-Bearbeitung aktivieren

  1. Rufe die Einstellungen auf, um die Funktion „Live-Bearbeitung“ zu aktivieren.

    • Gehen Sie unter Windows oder Linux zu Datei > Einstellungen > Editor > Live-Bearbeitung.
    • Rufen Sie unter macOS Android Studio > Einstellungen > Editor > Live-Bearbeitung auf.
  2. Wählen Sie in den Einstellungen die Option Live-Bearbeitung und den Modus aus, den Sie ausführen möchten.

    Im manuellen Modus werden Ihre Codeänderungen jedes Mal übertragen, wenn Sie Strg+\ (Befehlstaste+\ unter macOS) drücken. Im manuellen Modus werden Ihre Codeänderungen bei jedem manuellen Speichern mit Strg + S (Befehlstaste + S unter macOS) angewendet. Im Automatikmodus werden die Codeänderungen auf dem Gerät oder im Emulator angewendet, während Sie die Änderungen vornehmen.

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

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

  5. Nachdem Sie Live Edit aktiviert haben, wird oben rechts im Toolfenster Aktive Geräte das grüne Häkchen Aktuell angezeigt:

    Benutzeroberfläche mit grünem Häkchen bei der Live-Bearbeitung

Änderungen vornehmen und prüfen

Wenn Sie im Editor unterstützte Änderungen vornehmen, werden die virtuellen oder physischen Testgeräte 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, wie in Abbildung 4 dargestellt.

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

Probleme bei der Live-Bearbeitung beheben

Wenn du deine Änderungen auf dem Testgerät nicht siehst, konnte Android Studio sie möglicherweise nicht aktualisieren. Prüfen Sie, ob in der Live-Bearbeitungsanzeige Veraltet angezeigt wird (siehe Abbildung 5). Dies weist auf einen Kompilierungsfehler hin. Klicken Sie auf den Indikator, um Informationen zum Fehler und Vorschläge zur Fehlerbehebung zu erhalten.

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

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 1.3.0 oder höher erforderlich. Wenn in Ihrem Projekt eine ältere 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.0-alpha05 oder höher erforderlich. Wenn in Ihrem Projekt eine niedrigere Version von AGP verwendet wird, ist die Live-Bearbeitung deaktiviert.

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

  • Live-Bearbeitung unterstützt nur die Bearbeitung eines Funktionstexts. Das bedeutet, dass Sie weder den Funktionsnamen oder die Signatur ändern noch eine Funktion hinzufügen oder entfernen oder Nicht-Funktionsfelder ändern können.

  • Bei der Live-Bearbeitung wird der App-Status zurückgesetzt, wenn Sie zum ersten Mal eine Schreibfunktion in einer Datei ändern. Dies geschieht nur nach der ersten Codeänderung. Der Anwendungsstatus wird nicht durch nachfolgende Codeänderungen zurückgesetzt, die Sie an Compose-Funktionen in dieser Datei vornehmen.

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

  • Sie müssen den Debugger vollständig ausführen, damit er mit den Klassen arbeiten kann, die Sie mit der Live-Bearbeitung geändert haben.

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

  • Bei der Live-Bearbeitung werden keine Bytecode-Änderungen, die in der Build-Datei Ihres Projekts definiert sind, vorgenommen. Sie werden beispielsweise beim Erstellen des Projekts mithilfe der Optionen im Menü Build oder durch Klicken auf die Schaltfläche Build oder Run vorgenommen.

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

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

  • Die Live-Bearbeitung unterstützt nur fehlerbehebbare Prozesse.

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

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

  • Die Live-Bearbeitung funktioniert bei Bereitstellungen auf mehreren Geräten, d. h. Bereitstellungen auf mehreren Geräten, die über die Option Mehrere Geräte auswählen im Drop-down-Menü für das Zielgerät erstellt wurden. Es wird jedoch nicht offiziell unterstützt und es können Probleme auftreten. Falls Probleme auftreten, melde sie bitte.

  • "Änderungen übernehmen/Codeänderungen anwenden" sind nicht mit der Live-Bearbeitung kompatibel und erfordern einen Neustart der laufenden App.

  • Die Live-Bearbeitung unterstützt derzeit keine Android Automotive-Projekte.

Häufig gestellte Fragen zur Live-Bearbeitung

  • Wie ist der aktuelle Status der Live-Bearbeitung?

    Die Live-Bearbeitung ist in Android Studio Giraffe verfügbar. Rufe zum Aktivieren Datei > Einstellungen > Editor > Live-Bearbeitung (Android Studio > Einstellungen > Editor > Live-Bearbeitung unter macOS) auf.

  • Wann sollte ich die Funktion „Live-Bearbeitung“ verwenden?

    Verwenden Sie die Funktion „Live-Bearbeitung“, wenn Sie schnell sehen möchten, wie sich Aktualisierungen von UX-Elementen (z. B. Modifikator-Updates und Animationen) auf die Nutzung der App insgesamt auswirken.

  • Wann sollte ich die Funktion „Live-Bearbeitung“ 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 Schreibvorschau verwenden?

    Verwenden Sie die E-Mail-Vorschau, wenn Sie einzelne zusammensetzbare Funktionen entwickeln. In der Vorschau werden Compose-Elemente visualisiert und automatisch aktualisiert, um die Auswirkungen von Codeänderungen darzustellen. In der Vorabversion können Sie UI-Elemente auch unter verschiedenen Konfigurationen und Zuständen ansehen, z. B. unter „Dunkles Design“, „Sprachen“ und „Schriftgröße“.

Live-Bearbeitung von Literalen (eingestellt)

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

  • Int
  • String
  • Color
  • Dp
  • Boolean

Video, in dem gezeigt wird, wie der Nutzer Literale im Quellcode ändert und die Vorschau dynamisch aktualisiert wird

Sie können sich konstante Literale ansehen, die Echtzeitaktualisierungen ohne den Kompilierungsschritt auslösen. Aktivieren Sie dazu die Literalgestaltung über den UI-Indikator „Live-Bearbeitung von Literalen“:

Live-Bearbeitung von Literalen aktivieren

Änderungen übernehmen

Mit Änderungen anwenden können Sie Code und Ressourcen aktualisieren, ohne die Anwendung 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 Ihre Anwendung aktualisieren, ohne sie noch einmal bereitstellen zu müssen. Klicken Sie dazu auf die Schaltfläche Codeänderungen anwenden:

Nutzer, die auf die Schaltfläche
„Änderungen übernehmen“ klicken,