Die folgenden Funktionen sind in Android Studio Dolphin neu.
Neu in Compose
Im Folgenden finden Sie neue Funktionen und Verbesserungen von Jetpack Compose in Android Studio.
Animationskoordination erstellen
Wenn Ihre Animationen in einer zusammensetzbaren Vorschau beschrieben werden, können Sie jetzt mit der Animationsvorschau alle auf einmal prüfen und koordinieren. Sie können auch eine bestimmte Animation einfrieren.
Annotationen für mehrere Vorschauen erstellen
Sie können jetzt eine Annotationsklasse definieren, die mehrere Vorschaudefinitionen enthält, und diese neuen Annotationen verwenden, um diese Vorschauen gleichzeitig zu generieren. Mit dieser neuen Anmerkung können Sie eine Vorschau mehrerer Geräte, Schriftarten und Designs gleichzeitig anzeigen lassen, ohne diese Definitionen für jede einzelne zusammensetzbare Funktion zu wiederholen.
Anzahl der Neuzusammensetzungen im Layout Inspector erstellen
Wenn Sie Fehler in Ihren Composer-Layouts beheben möchten, ist es wichtig zu wissen, wann zusammensetzbare Funktionen neu erstellt werden oder nicht. So wissen Sie, ob die UI richtig implementiert wurde. Wenn sie beispielsweise zu oft neu zusammengesetzt wird, erledigt Ihre Anwendung möglicherweise mehr Arbeit als nötig. Komponenten, die sich nicht so neu zusammensetzen, wie es erwartet wird, können zu unerwartetem Verhalten führen.
Mit dem Layout Inspector können Sie jetzt sehen, wenn diskrete zusammensetzbare Funktionen in Ihrer Layouthierarchie neu zusammengesetzt oder übersprungen wurden. Diese Informationen werden live angezeigt, während Sie mit Ihrer App interagieren. Achten Sie darauf, dass Ihre Anwendung die Compose-1.2.0-alpha03
oder höher verwendet. Stellen Sie dann die Anwendung wie gewohnt bereit.
Öffnen Sie das Fenster Layout Inspector und stellen Sie eine Verbindung zum Anwendungsprozess her. In der Komponentenstruktur sollten neben der Layouthierarchie zwei neue Spalten angezeigt werden. Die erste Spalte zeigt die Anzahl der Zusammensetzungen für jeden Knoten. In den zweiten Spalten wird die Anzahl der Überspringungen für jeden Knoten angezeigt. Ähnliche Informationen finden Sie auch im Bereich Attribute, wenn Sie eine zusammensetzbare Funktion aus der Komponentenstruktur oder der Layoutanzeige auswählen.
Wenn Sie die Anzahl zurücksetzen möchten, klicken Sie oben im Feld Komponentenbaum auf Zurücksetzen. Durch das Zurücksetzen der Anzahl lassen sich Neuzusammensetzungen oder Überspringen während einer bestimmten Interaktion mit Ihrer App besser nachvollziehen.
Der Kopplungsassistent des Wear OS-Emulators wurde aktualisiert
Ab Android Studio Dolphin Canary 3 bietet der Kopplungsassistent für Wear OS-Emulatoren verbesserte Funktionen, mit denen sich Wear-Emulatoren einfacher verwalten und verbinden lassen. Sie haben jetzt folgende Möglichkeiten:
- Rufen Sie Ihre Wear-Geräte im Geräte-Manager auf.
- Du kannst mehrere Wear-Geräte mit einem einzelnen virtuellen oder physischen Smartphone koppeln.
- Zuvor gekoppelte Geräte werden beim Start automatisch wieder verbunden. Android Studio merkt sich jetzt das letzte eingerichtete Paar und koppelt es erneut.
Damit Sie diese neuen Funktionen nutzen können, müssen die Emulatoren Ihres Smartphones das API-Level 30 oder höher haben und der Google Play Store muss installiert sein. Achte außerdem darauf, dass deine Wear-Emulatoren API-Level 28 oder höher haben. Wählen Sie Tools > SDK-Manager aus, um für Ihre emulierten Geräte ein Upgrade auf die neuesten System-Images durchzuführen.
Weitere Informationen finden Sie unter Kopplungsassistent für Wear OS-Emulatoren verwenden.
Aktualisierte Symbolleiste des Wear OS-Emulators
Ab Android Studio Dolphin Canary 2 enthält die Emulator-Symbolleiste für Wear-Emulatoren mit API-Level 28 oder höher Schaltflächen, mit denen physische Schaltflächen und gängige Aktionen auf dem Gerät simuliert werden können. Die neuen Schaltflächen sind: Button 1 und Button 2 (Schaltfläche 2 ist nur auf API-Level 30 oder höher verfügbar), die Palm-Schaltfläche und die Neige-Schaltfläche. Hier sind einige der Aktionen, die du mit den neuen Schaltflächen in deinem Wear-Emulator ausführen kannst:
- Um in den Inaktivmodus zu wechseln, klicke auf die Schaltfläche mit der Handfläche.
- Mit der Schaltfläche „Neigen“ kehrst du wieder zum letzten Bildschirm vor dem Inaktivmodus zurück.
Weitere Informationen finden Sie unter Häufige Aktionen im Emulator ausführen.
Neue Wear OS-Ausführungskonfigurationen
Es wurden neue Ausführungskonfigurationen hinzugefügt, um Wear OS-spezifische Oberflächen wie Zifferblätter, Ansichten und Zusatzfunktionen schnell auszuführen und zu debuggen. Sie können diese neuen Konfigurationen beim Ausführen Ihrer Anwendung über das Dialogfeld Run/Debug Configurations erstellen.
Weitere Informationen finden Sie unter Ausführungs-/Fehlerbehebungskonfigurationen für Wear OS.
Neuer Logcat
Logcat wurde aktualisiert, um das Parsen, Abfragen und Verfolgen von Logs zu vereinfachen.
Neuer Formatierer
Logcat formatiert Logs jetzt, um das Scannen nützlicher Informationen wie Tags und Nachrichten und die Identifizierung verschiedener Arten von Logs wie Warnungen und Fehlern zu erleichtern.
Mehrere Logcat-Fenster erstellen
Sie können jetzt mehrere Tabs in Logcat erstellen und so ganz einfach zwischen verschiedenen Geräten oder Abfragen wechseln. Durch Rechtsklick auf einen Tab können Sie ihn umbenennen, durch Klicken und Ziehen neu anordnen.
Für einen einfacheren Vergleich zwischen zwei Sätzen von Logs können Sie jetzt die Ansicht innerhalb eines Tabs aufteilen. Klicken Sie dazu mit der rechten Maustaste in die Logansicht und wählen Sie entweder Rechts teilen oder Abteilen aus. Klicken Sie mit der rechten Maustaste und wählen Sie Schließen aus, um eine Aufteilung zu schließen. Für jede Aufteilung können Sie eine eigene Geräteverbindung, Ansichtsoptionen und Abfragen festlegen.
Zwischen Voreinstellungen wechseln
Mit Logcat können Sie jetzt schnell zwischen den verschiedenen Ansichtsmodi Standard, Kompakt und Benutzerdefiniert wechseln, indem Sie auf klicken. Jeder Ansichtsmodus bietet eine andere Standardeinstellung, mit der mehr oder weniger Informationen wie Zeitstempel, Tags und Prozess-IDs (PID) angezeigt werden. Sie können auch die einzelnen Standardansichtsmodi sowie einen benutzerdefinierten Ansichtsmodus anpassen, indem Sie Ansicht ändern auswählen.
Neue Schlüssel/Wert-Paar-Suche
In der vorherigen Version von Logcat konnten Sie entweder die Stringsuche (mit Unterstützung für reguläre Ausdrücke) verwenden oder einen neuen Filter erstellen, indem Sie über die Logcat-Benutzeroberfläche verschiedene Felder ausfüllen. Die erste Option erschwerte die Suche und die zweite erschwerte das Teilen und Einrichten von Abfragen. Zur Vereinfachung der Suche können Sie nun Schlüssel/Wert-Paare direkt über das Hauptabfragefeld suchen.
Dieses neue Abfragesystem bietet die Genauigkeit Ihrer Abfragen, ohne reguläre Ausdrücke zu verwenden, und bietet die Möglichkeit, frühere Abfragen aus dem Verlauf abzurufen und diese mit anderen zu teilen. Sie haben auch weiterhin die Möglichkeit, Regex zu verwenden und Logs auf der Grundlage von Schlüssel/Wert-Paaren auszuschließen. Hier sind einige Beispiele für die Verwendung des neuen Abfragesystems. Sie können aber auch einfach mit der Eingabe in das Abfragefeld beginnen, um Vorschläge zu erhalten:
- PIDs für das lokale App-Projekt:
package:mine
- Spezifische Werte:
package:<package-ID>
tag:<tag>
level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
- Schließen Sie einen bestimmten Wert aus, indem Sie dem Schlüssel
-
voranstellen:-tag:<exclude-tag>
- Verwenden Sie reguläre Ausdrücke mit einem bestimmten Schlüssel, indem Sie
~
nach dem Schlüssel einfügen:tag~:<regular-expression-tag>
- Mit dem auszuschließenden Tag kombinieren:
-tag~:<exclude-regular-expression-tag>
Sie können auch einen Verlauf der Abfragen aufrufen. Klicken Sie dazu im Abfragefeld auf und wählen Sie die gewünschten Abfragen aus dem Drop-down-Menü aus. Wenn Sie eine Abfrage zu den Favoriten hinzufügen möchten, damit sie in allen Studioprojekten oben in der Liste angezeigt wird, klicken Sie auf das am Ende des Abfragefelds.
Logs zu App-Abstürzen/-Neustarts verfolgen
Mit dem neuen Logcat ist es jetzt einfacher, Logs Ihrer Anwendung bei App-Abstürzen und -Neustarts zu verfolgen, sodass Sie keine wichtigen Logs zu diesen Ereignissen verpassen.
Wenn ein Logcat feststellt, dass Ihr Anwendungsprozess angehalten und neu gestartet wurde, wird in der Ausgabe eine Meldung wie PROCESS ENDED
und PROCESS STARTED
angezeigt (siehe unten):
Beim Neustart von Logcat bleibt Ihre Sitzungskonfiguration wie Aufteilung von Tabs, Filter und Ansichtsoptionen erhalten, sodass Sie Ihre Sitzung einfach fortsetzen können.
Von Gradle verwaltete Geräte
Wir führen Gradle Managed Devices ein, um die Konsistenz, Leistung und Zuverlässigkeit bei der Verwendung virtueller Android-Geräte für automatisierte instrumentierte Tests zu verbessern. Mit dieser Funktion, die ab API-Level 27 verfügbar ist, kannst du in den Gradle-Dateien deines Projekts virtuelle Testgeräte konfigurieren. Das Build-System verwendet die Konfigurationen, um diese Geräte beim Ausführen Ihrer automatisierten Tests vollständig zu verwalten, d. h. zu erstellen, bereitzustellen und zu entfernen.
Diese Funktion verschafft Gradle Einblick in nicht nur die von Ihnen ausgeführten Tests, sondern auch über den Lebenszyklus der Geräte. Dadurch wird die Qualität Ihrer Tests auf folgende Weise verbessert:
- Behandelt gerätebezogene Probleme, um sicherzustellen, dass Ihre Tests ausgeführt werden
- Verwendet Emulator-Snapshots, um die Gerätestartzeit und die Arbeitsspeichernutzung zu verbessern und die Geräte zwischen den Tests in einem bereinigten Zustand wiederherzustellen
- Speichert Testergebnisse im Cache und führt nur Tests noch einmal aus, die wahrscheinlich unterschiedliche Ergebnisse liefern
- Bietet eine einheitliche Umgebung für die Durchführung von Tests zwischen lokalen und Remote-Testläufen
Darüber hinaus wird mit Gradle Managed Devices eine neue Art von Emulator-Gerät eingeführt: Automated Test Devices (ATD). Diese sind für die Verbesserung der Leistung bei der Ausführung von Instrumentierungstests optimiert. In Kombination mit der Unterstützung von Testfragmentierung können Sie damit experimentieren, Ihre Testsuite auf mehrere ATD-Instanzen aufzuteilen, um die Gesamtzeit der Testausführung zu reduzieren. Weitere Informationen zu Gradle Managed Devices und den zugehörigen Funktionen finden Sie unter Skalieren Sie Ihre Tests mit Gradle Managed Devices.
R8-Unterstützung mit Zuordnungsdateien basierend auf DEX-Anweisungsoffsets
Bei der Optimierung von Zeileninformationen kann R8 jetzt die Informationen in gemeinsam genutzten Debug-Informationsobjekten mit Zeilentabellen basierend auf Anweisungsoffsets codieren. Dies reduziert den Aufwand für die Over-of-Line-Informationen erheblich. Dies hat den Effekt, dass Zeilen in Methoden nicht mehr aufeinanderfolgen, sondern je nach Größe der Anweisungen in Intervallen springen können. Beachten Sie, dass einige Tools diese gemeinsame Codierung nicht berücksichtigen.
Darüber hinaus unterstützen Android-VMs ab O (API-Level 26) das Drucken von Anweisungsoffsets in Stacktraces, wenn die Methode keine Informationen zur Zeilennummer hat. Bei der Kompilierung mit minSdk 26 oder höher und ohne Informationen zur Quelldatei entfernt R8 die Zeilennummerninformationen vollständig.
Zustandslose Lambdas sind keine Singletons mehr
Zustandslose Lambdas werden beim Entzuckern nicht mehr als Singletons zugeordnet. Die Darstellung als Singleton erhöht den Codegrößen-Overhead aufgrund des hinzugefügten Feld- und Klasseninitialisierers sowie aufgrund der statischen Klasseninitialisierung mit dem Start-Overhead. Zustandslose Lambdas werden jetzt an Nutzungsstandorten auf die gleiche Weise zugewiesen wie zustandsorientierte Lambdas (Lambdas mit Erfassungen).
Mit R8 wird ein Bestätigungsverlangsamung bei Android-Laufzeiten vermieden
Um Leistungsprobleme bei Android-Laufzeiten (Dalvik und ART) zu vermeiden, führt R8 (nicht D8) jetzt Bibliotheks-Stubs ein und umreißt Aufrufe von Bibliotheksmethoden für Bibliotheksklassen und -methoden, die zur Laufzeit möglicherweise nicht vorhanden sind. Dadurch werden viele Überprüfungsprobleme eliminiert und die Laufzeitleistung verbessert. Diese Funktion ist immer aktiviert.
Unterstützung für JDK-11-APIs mit Java 8+ API-Entsugaring
Bei Verwendung der CoreLibraryDesugaring-Abhängigkeit wird jetzt eine auf JDK-11 basierende Implementierungsbibliothek unterstützt. Weitere Informationen finden Sie imdesugar_jdk_libs
Änderungsprotokoll.
Patch releases
Im Folgenden finden Sie eine Liste der Patch-Releases in Android Studio Dolphin.
Android Studio Dolphin | Patch 1 2021.3.1 (Oktober 2022)
Mit Patch 1 unterstützt Android Studio Dolphin jetzt das Kotlin-Plug-in 1.7.20. Dieses kleinere Update umfasst außerdem die folgenden Fehlerkorrekturen:
Behobene Probleme | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Android Gradle-Plug-in |
|
||||||||||||
Dexer (D8) |
|
||||||||||||
Importieren/Synchronisieren |
|
||||||||||||
Infomaterial |
|
||||||||||||
Shrinker (R8) |
|