Iterative Codeentwicklung

Als Entwickler von Apps für Mobilgeräte entwickeln Sie die Benutzeroberfläche Ihrer App oft Schritt für Schritt, anstatt alles auf einmal zu entwickeln. Android Studio unterstützt diesen Ansatz mit Jetpack Compose. Es bietet Tools, mit denen Sie Werte prüfen, ändern und das Endergebnis überprüfen können, ohne einen vollständigen Build ausführen zu müssen.

Live Edit

Mit der Funktion „Live-Bearbeitung“ können Sie Composeables in Emulatoren und auf physischen Geräten in Echtzeit aktualisieren. Dadurch werden Kontextwechsel zwischen dem Schreiben und dem Erstellen Ihrer App minimiert, sodass Sie sich länger ungestört auf das Schreiben von Code konzentrieren können.

Live Edit hat drei Modi:

  • Manuell: Codeänderungen werden angewendet, wenn sie manuell mit Strg + ' (Befehl + ' unter macOS) gepusht 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 Emulator angewendet, wenn Sie eine kombinierbare Funktion aktualisieren.

Live Edit konzentriert sich auf UI- und UX-bezogene Codeänderungen. Änderungen wie das Aktualisieren von Methodensignaturen, das Hinzufügen neuer Methoden oder Änderungen an der Klassenhierarchie werden vom Live-Edit-Tool nicht unterstützt. Weitere Informationen finden Sie in der Liste der Einschränkungen von Live-Bearbeitungen.

Diese Funktion ist kein Ersatz für das Erstellen und Ausführen Ihrer App oder für Änderungen anwenden. Stattdessen soll er Ihren Workflow optimieren, während Sie die Compose-Benutzeroberfläche erstellen, bereitstellen und iterieren.

Der Best Practices-Workflow sieht so aus:

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

Erste Schritte mit der Live-Bearbeitung

Gehen Sie zuerst so vor, um eine leere Aktivität vom Typ „Compose“ (Erstellen) zu erstellen, die Funktion „Live Edit“ (Live-Bearbeitung) für Ihr Projekt zu aktivieren und Änderungen mit Live Edit vorzunehmen.

Neues Projekt einrichten

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

  2. Öffnen Sie Android Studio und wählen Sie im Dialogfeld Willkommen in Android Studio die Option Neues Projekt aus. Wenn Sie bereits ein Projekt geöffnet haben, können Sie ein neues erstellen, indem Sie Datei > Neu > Neues Projekt auswählen.

  3. Wählen Sie die Vorlage Empty Compose Activity (Leere Aktivität zum Verfassen) für Smartphone und Tablet aus und klicken Sie dann auf Next (Weiter).

    Vorlagenauswahl in Android Studio
    Abbildung 1. Vorlagen, aus denen Sie auswählen können. Wählen Sie für die Live-Bearbeitung Leere Aktivität zum Verfassen 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 Edit aktivieren

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

    • Klicken Sie unter Windows oder Linux auf Datei > Einstellungen > Editor > Live-Bearbeitung.
    • Klicken Sie unter macOS auf Android Studio > Einstellungen > Editor > Live-Bearbeitung.
  2. Wähle in den Einstellungen die Option Live-Bearbeitung und den gewünschten Modus aus.

    Im manuellen Modus werden Ihre Codeänderungen jedes Mal gepusht, wenn Sie Strg +' (Befehlstaste +' unter macOS) drücken. Wenn der manuelle Modus beim Speichern aktiviert ist, werden Ihre Codeänderungen jedes Mal angewendet, wenn Sie sie manuell mit Strg + S (Befehl + S unter macOS) speichern. Im automatischen Modus werden Ihre Codeänderungen direkt auf Ihrem Gerät oder Emulator angewendet.

    Kästchen für die Live-Bearbeitung in den Android Studio-Einstellungen
    Abbildung 3. Einstellungen für Live-Bearbeitung
  3. Öffnen Sie im Editor die Datei MainActivity, den Einstiegspunkt Ihrer App.

  4. Klicken Sie auf Ausführen Schaltfläche in der Benutzeroberfläche, um Ihre App bereitzustellen.

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

    Grünes Häkchen in der 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 Greeting-Methode 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, die auf einem Gerät angewendet wurden
Abbildung 4. Testgerät, auf dem Live-Änderungen an der Methode Greeting zu sehen sind

Probleme mit Live Edit beheben

Wenn Sie Ihre Änderungen auf dem Testgerät nicht sehen, hat Android Studio Ihre Änderungen möglicherweise nicht aktualisiert. Prüfen Sie, ob in der Live-Bearbeitungsanzeige Out Of Date (veraltet) angezeigt wird, wie in Abbildung 5 dargestellt. Dies weist auf einen Kompilierungsfehler hin. Klicken Sie auf den Indikator, um Informationen zum Fehler und Vorschläge zur Behebung zu erhalten.

Symbol für veraltete Live-Änderungen
Abbildung 5. Live-Bearbeitungsstatusanzeige

Einschränkungen von Live Edit

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

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

  • Beim Live-Bearbeiten kann nur der Funktionskörper bearbeitet werden. Das bedeutet, dass Sie den Funktionsnamen oder die Signatur nicht ändern, Funktionen nicht hinzufügen oder entfernen und keine nicht funktionsbezogenen Felder ändern können.

  • Beim Live-Bearbeiten wird der Status der App zurückgesetzt, wenn Sie zum ersten Mal eine Compose-Funktion in einer Datei ändern. Das passiert nur nach der ersten Codeänderung. Der App-Status wird nicht durch nachfolgende Codeänderungen an Compose-Funktionen in dieser Datei zurückgesetzt.

  • Bei Klassen, die mit der Live-Bearbeitung geändert wurden, kann es zu Leistungseinbußen kommen. Wenn Sie die Leistung Ihrer App bewerten möchten, führen Sie sie aus und verwenden Sie einen sauberen Release-Build.

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

  • Eine laufende App stürzt möglicherweise ab, wenn Sie sie mit der Funktion „Live bearbeiten“ bearbeiten. In diesem Fall können Sie die App mit der Schaltfläche Ausführen UI-Schaltfläche neu bereitstellen.

  • Beim Live-Bearbeiten werden keine Bytecode-Manipulationen ausgeführt, die in der Build-Datei Ihres Projekts definiert sind. Dazu gehören beispielsweise Bytecode-Manipulationen, die beim Erstellen des Projekts mit den Optionen im Menü Build oder durch Klicken auf die Schaltflächen Build oder Ausführen angewendet werden.

  • Nicht kombinierbare Funktionen werden live auf dem Gerät oder Emulator aktualisiert und eine vollständige Neuzusammensetzung wird ausgelöst. Bei der vollständigen Neuzusammensetzung wird die aktualisierte Funktion möglicherweise nicht aufgerufen. Bei nicht kombinierbaren 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 Prozesse, die debuggt werden können.

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

  • Die Live-Bearbeitung funktioniert nicht bei Bereitstellungen mit mehreren Deployments. Das bedeutet, dass Sie die Bereitstellung nicht auf einem Gerät und dann auf einem anderen ausführen können. Die Live-Bearbeitung ist nur auf den zuletzt bereitgestellten Geräten aktiv.

  • Die Live-Bearbeitung funktioniert mit Bereitstellungen auf mehreren Geräten (Bereitstellungen auf mehreren Geräten, die über das Drop-down-Menü „Mehrere Geräte auswählen“ für das Zielgerät erstellt wurden). Diese Funktion wird jedoch nicht offiziell unterstützt und es kann zu Problemen kommen. Sollten Probleme auftreten, melden Sie sie bitte.

  • „Änderungen anwenden“ und „Codeänderungen anwenden“ sind nicht mit der Live-Bearbeitung kompatibel und erfordern einen Neustart der laufenden App.

  • Android Automotive-Projekte werden von Live Edit derzeit nicht unterstützt.

Häufig gestellte Fragen zu Live-Bearbeitungen

  • Wie ist der aktuelle Status der Live-Bearbeitung?

    Die Live-Bearbeitung ist in Android Studio Giraffe verfügbar. Wenn Sie die Funktion aktivieren möchten, gehen Sie auf Datei > Einstellungen > Editor > Live-Bearbeitung (Android Studio > Einstellungen > Editor > Live-Bearbeitung unter macOS).

  • Wann sollte ich die Live-Bearbeitung verwenden?

    Verwenden Sie die Live-Bearbeitung, wenn Sie schnell sehen möchten, wie sich Änderungen an UX-Elementen (z. B. an Modifikatoren und Animationen) auf die gesamte App auswirken.

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

    Live Edit konzentriert sich auf UI- und UX-bezogene Codeänderungen. Änderungen wie Aktualisierungen der Methodensignatur, das Hinzufügen neuer Methoden oder Änderungen an der Klassenhierarchie werden nicht unterstützt. Weitere Informationen finden Sie unter Einschränkungen von Live-Bearbeitungen.

  • Wann sollte ich die Vorschau verwenden?

    Verwenden Sie die Compose-Vorschau, wenn Sie einzelne Composeables entwickeln. In der Vorschau werden Compose-Elemente visualisiert und automatisch aktualisiert, um die Auswirkungen von Codeänderungen zu sehen. In der Vorschau können Sie sich auch UI-Elemente in verschiedenen Konfigurationen und Status ansehen, z. B. in einem dunklen Design, in verschiedenen Sprachen und mit unterschiedlicher Schriftgröße.

Live-Bearbeitung von Literalen (eingestellt)

In Android Studio können einige Konstantenliterale, die in Compose-Elementen in Vorschau, Emulator und auf dem physischen Gerät verwendet werden, in Echtzeit aktualisiert werden. Hier sind einige unterstützte Typen:

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

Sie können Konstantenliterale, die Echtzeitaktualisierungen ohne den Kompilierungsschritt auslösen, aufrufen, indem Sie die Literaldekorationen über den UI-Indikator „Live-Bearbeitung von Literalen“ aktivieren:

Live-Bearbeitung von Literalen aktivieren

Änderungen übernehmen

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

Wenn Sie Elemente hinzufügen, ändern oder löschen, können Sie Ihre App aktualisieren, ohne sie neu bereitzustellen. Klicken Sie dazu auf die Schaltfläche Codeänderungen anwenden:

Der Nutzer klickt auf die Schaltfläche „Änderungen übernehmen“.