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. 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.

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 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 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. 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 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 bei 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. Es stehen Vorlagen zur Auswahl. 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, 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 Edit aktivieren

  1. Rufen Sie 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 gepusht, 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 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 für Ihre App.

  4. Klicken Sie auf Ausführen UI-Schaltfläche, um Ihre App 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, 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, wie in Abbildung 4 dargestellt.

Änderungen an der Begrüßungsmethode auf einem Gerät
Abbildung 4. Testgerät, auf dem Änderungen an der Methode Greeting mithilfe der Funktion „Live-Änderungen“ angezeigt werden

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 (siehe Abbildung 5). 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 Version von AGP 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. Führen Sie die Anwendung aus und verwenden Sie einen sauberen Release-Build, wenn Sie die Leistung bewerten.

  • Sie müssen einen vollständigen Durchlauf ausführen, damit der Debugger mit Klassen arbeiten kann, die Sie mit Live Edit 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.

  • Die Live-Bearbeitung führt keine Bytecode-Manipulationen aus, die in der Build-Datei Ihres Projekts definiert sind. Sie werden beispielsweise nicht geändert, wenn das Projekt mithilfe der Optionen im Menü Build oder durch Klicken auf die Schaltfläche Build oder Run erstellt wird.

  • 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 fehlerbehebbare Prozesse.

  • 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 Gerät vornehmen können. Die Live-Bearbeitung ist nur auf den zuletzt bereitgestellten Geräten aktiv.

  • 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. 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 der Live-Bearbeitung derzeit nicht unterstützt.

Häufig gestellte Fragen zu Live-Bearbeitungen

  • Wie ist der aktuelle Status von Live Edit?

    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 Funktion „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?

    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 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 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 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)

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

  • 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 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“.