Android Studio 3.1 (März 2018)
Android Studio 3.1.0 ist ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.
3.1.4 (August 2018)
Dieses Update auf Android Studio 3.1 enthält die folgenden Änderungen und Fehlerkorrekturen:
- Die im Lieferumfang enthaltene Kotlin-Version ist jetzt 1.2.50.
-
Neue Projekte werden mit
kotlin-stdlib-jdk* artifacts
und nicht mitkotlin-stdlib-jre*
-Artefakten erstellt, die eingestellt werden. - Das R8-Parsen von ProGuard-Regeln wurde verbessert.
- Die folgenden Fehler wurden behoben:
-
Der Versuch, die Kotlin-Hauptklasse auszuführen, ist mit dem Fehler
"Error: Could not find or load main class..."
fehlgeschlagen. - R8 ist bei bestimmten Optimierungen in eine Endlosschleife geraten.
- Wenn Sie im Fenster Ausführen den Befehl Fehlgeschlagene Tests wiederholen verwenden, wurde manchmal fälschlicherweise die Meldung „Keine Tests gefunden“ angezeigt.
-
D8 hat
invoke-virtual
-Instanzen nicht richtig verarbeitet, was zu einem Absturz mit einerVerifyError
geführt hat:invoke-super/virtual can't be used on private method
-
Der Datenbindungscompiler war auf eine alte Version von
com.android.tools:annotations
angewiesen. Der Compiler verwendet jetzt, sofern verfügbar, Anmerkungen zu Tools aus dem Basisprojekt. - Android Studio stürzte bei der Verwendung von Profilern während Fragmentübergängen ab.
- Der Debugger stürzte beim Debuggen eines Layouts mit einem Textfeld ab.
- D8 konnte einige ZIP-Dateien mit Sonderzeichen nicht lesen.
3.1.3 (Juni 2018)
Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:
- Aufgrund von Speicherlecks ist Android Studio nach der Verwendung des Layout-Editors langsam geworden und reagiert nicht mehr. Dieses Update enthält Korrekturen für die meisten dieser Probleme. Wir werden bald ein weiteres Update veröffentlichen, um weitere Speicherlecks zu beheben.
- Einige mit D8 erstellte Anwendungen stürzten auf einigen Verizon Ellipsis-Tablets ab.
-
Die Installation von mit D8 erstellten Apps schlägt auf Geräten mit Android 5.0 oder 5.1 (API-Level 21 oder 22) mit dem Fehler
INSTALL_FAILED_DEXOPT
fehl. - Einige Anwendungen, die die OkHttp-Bibliothek verwenden und mit D8 erstellt wurden, stürzten auf Geräten mit Android 4.4 (API-Level 19) ab.
-
Android Studio konnte manchmal nicht gestartet werden. Dabei wurde während der Kursinitialisierung für
com.intellij.psi.jsp.JspElementType
die MeldungProcessCanceledException
angezeigt.
3.1.2 (April 2018)
Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:
- In einigen Fällen blieb Android Studio beim Beenden endlos hängen.
-
Builds, die mit Quellsätzen konfiguriert wurden, schlugen mit der folgenden Meldung fehl, wenn Instant Run aktiviert war:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Wenn Instant Run aktiviert war, schlugen Builds neuer Kotlin-Projekte fehl, wenn sie durch den Befehl Ausführen ausgelöst wurden.
-
Beim Bearbeiten der
build.gradle
-Datei gab es manchmal eine merkliche Verzögerung zwischen dem Eintippen eines Zeichens und dem Erscheinen des Zeichens auf dem Bildschirm. -
Bei einigen Projekten mit einer großen Anzahl von Modulen oder externen Abhängigkeiten sind beim Dezimieren Buildfehler mit der folgenden Fehlermeldung aufgetreten:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- Bei der Berechnung der D8-Haupt-DEX-Liste wurden einige reflektive Aufrufe nicht berücksichtigt.
Dieses Update enthält auch Änderungen, durch die das Ausführen von Lint-Prüfungen über Gradle in einigen Fällen viel schneller wird.
3.1.1 (April 2018)
Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:
-
In einigen Fällen wurde die Gradle-kompatible Make-Aufgabe beim ersten Öffnen eines in Android Studio 3.0 erstellten Projekts in Android Studio 3.1 aus dem Bereich Vor dem Start in Ausführungs-/Debug-Konfigurationen entfernt. Das führte dazu, dass Projekte nicht erstellt wurden, wenn auf die Schaltfläche Ausführen oder Fehler beheben geklickt wurde. Dies wiederum führte zu Fehlern wie der Bereitstellung falscher APKs und Abstürzen bei der Verwendung von Instant Run.
Um dieses Problem zu beheben, wird in Android Studio 3.1.1 die Gradle-kompatible Make-Aufgabe der Ausführungskonfiguration für Projekte hinzugefügt, bei denen dieser Eintrag fehlt. Diese Änderung erfolgt nach der ersten Gradle-Synchronisierung, wenn das Projekt geladen wird.
- Der Debugger stürzte beim Debuggen eines Layouts mit einem Textfeld ab, wenn das erweiterte Profiling aktiviert war.
- Android Studio ist eingefroren, nachdem Sie auf Build-Varianten geklickt haben.
- AAR-Dateien (Android-Archive) wurden zweimal extrahiert, einmal während des Gradle-Synchronisierungsvorgangs und einmal während des Gradle-Build-Prozesses.
- Bei einigen aus SVG-Dateien importierten Vektorgrafiken fehlten Elemente.
-
Die Warnung zur Einstellung der
compile
-Abhängigkeitskonfiguration wurde aktualisiert und enthält jetzt eine bessere Anleitung für dieimplementation
- undapi
-Konfigurationen. Weitere Informationen zur Migration von dercompile
-Konfiguration finden Sie in der Dokumentation zu den neuen Abhängigkeitskonfigurationen.
Programmieren/IDE
IntelliJ 2017.3.3
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA der Version 2017.3.3 aktualisiert. Zu den Verbesserungen gehören eine bessere Analyse der Kontrollflusssteuerung für Sammlungen und Strings, eine verbesserte Nullbarkeitsableitung, neue Schnellkorrekturen und vieles mehr.
Weitere Informationen finden Sie in den JetBrains-Releasenotes für IntelliJ IDEA-Versionen 2017.2 und 2017.3 sowie in den JetBrains-Releasenotes für Updates mit Fehlerkorrekturen.
Verbesserungen beim Bearbeiten von SQL-Abfragen mit Room
Wenn Sie die Room-Datenbankbibliothek verwenden, können Sie von mehreren Verbesserungen bei der SQL-Bearbeitung profitieren:
- Die Codevervollständigung in einem
Query
versteht SQL-Tabellen (Entitäten), Spalten, Abfrageparameter, Aliasse, Joins, Unterabfragen und WITH-Klauseln. - Die SQL-Syntaxhervorhebung funktioniert jetzt.
- Sie können in SQL mit der rechten Maustaste auf einen Tabellennamen klicken und ihn umbenennen. Dadurch wird auch der entsprechende Java- oder Kotlin-Code neu geschrieben, einschließlich beispielsweise des Rückgabetyps der Abfrage. Das Umbenennen funktioniert auch in die andere Richtung. Wenn Sie also eine Java-Klasse oder ein Java-Feld umbenennen, wird der entsprechende SQL-Code neu geschrieben.
- SQL-Nutzungen werden angezeigt, wenn Sie Nutzungen suchen verwenden (Rechtsklick und Auswahl von Nutzungen suchen aus dem Kontextmenü).
- Wenn Sie die Deklaration einer SQL-Entität in Java- oder Kotlin-Code aufrufen möchten, halten Sie die Strg-Taste (Befehlstaste auf dem Mac) gedrückt und klicken Sie auf die Entität.
Informationen zur Verwendung von SQL mit Room finden Sie unter Daten mit Room in einer lokalen Datenbank speichern.
Änderungen an der Datenbindung
Dieses Update enthält mehrere Verbesserungen für die Datenbindung:
-
Sie können jetzt ein
LiveData
-Objekt als beobachtbares Feld in Datenbindungsausdrücken verwenden. Die KlasseViewDataBinding
enthält jetzt eine neuesetLifecycle()
-Methode, mit der SieLiveData
-Objekte beobachten können. -
Die Klasse
ObservableField
kann jetzt andereObservable
-Objekte in ihrem Konstruktor annehmen. -
Sie können sich eine Vorschau eines neuen inkrementellen Compilers für Ihre Datenbindungsklassen ansehen. Weitere Informationen zu diesem neuen Compiler und eine Anleitung zum Aktivieren finden Sie unter Data Binding Compiler V2.
Zu den Vorteilen des neuen Compilers gehören:
-
ViewBinding
-Klassen werden vom Android-Plug-in für Gradle vor dem Java-Compiler generiert. - Die generierten Bindungsklassen von Bibliotheken bleiben beim Kompilieren der App erhalten, anstatt jedes Mal neu generiert zu werden. Dies kann die Leistung bei Projekten mit mehreren Modulen erheblich verbessern.
-
Compiler und Gradle
D8 ist der Standard-DEX-Compiler
Der D8-Compiler wird jetzt standardmäßig zum Generieren von DEX-Bytecode verwendet.
Dieser neue DEX-Compiler bietet mehrere Vorteile, darunter:
- Schnellere Deindexierung
- Niedrigere Arbeitsspeichernutzung
- Verbesserte Codegenerierung (bessere Registerzuweisung, intelligentere Stringtabellen)
- Verbesserte Fehlerbehebung beim Durchlaufen von Code
Sie müssen keine Änderungen an Ihrem Code oder Ihrem Entwicklungsablauf vornehmen, um diese Vorteile zu nutzen, es sei denn, Sie haben den D8-Compiler zuvor manuell deaktiviert.
Wenn Sie in gradle.properties
für android.enableD8
den Wert false
festgelegt haben, löschen Sie dieses Flag oder legen Sie es auf true
fest:
android.enableD8=true
Weitere Informationen finden Sie unter Neuer DEX-Compiler.
Inkrementelle Desugaring
Bei Projekten, die Java 8-Sprachfunktionen verwenden, ist die inkrementelle Desugaring standardmäßig aktiviert. Dadurch können die Buildzeiten verbessert werden.
Beim Entfernen von Syntaktikzucker wird Syntaktikzucker in eine Form umgewandelt, die der Compiler effizienter verarbeiten kann.
Sie können die inkrementelle Desugaring deaktivieren, indem Sie Folgendes in der Datei gradle.properties
Ihres Projekts angeben:
android.enableIncrementalDesugaring=false
Fenster für die vereinfachte Ausgabe
Die Gradle Console wurde durch das Fenster Build ersetzt, das die Tabs Sync und Build enthält.
Weitere Informationen zur Verwendung des neuen, vereinfachten Fensters Build finden Sie unter Build-Prozess überwachen.
Gleichzeitige Ausführung von Batch-Updates und Indexierung
Die Gradle-Synchronisierung und die IDE-Indexierung sind jetzt viel effizienter, sodass weniger Zeit für viele redundante Indexierungsvorgänge verschwendet wird.
C++ und LLDB
Wir haben viele Qualitäts- und Leistungsverbesserungen in den Phasen Codieren, Synchronisieren, Erstellen und Entfernen von Fehlern der C++-Entwicklung vorgenommen. Zu den Verbesserungen gehören:
-
Wenn Sie mit großen C++-Projekten arbeiten, sollten Sie eine deutliche Verkürzung der Zeit für das Erstellen von Symbolen feststellen. Außerdem wird die Synchronisierungszeit bei großen Projekten deutlich verkürzt.
-
Die Leistung beim Erstellen und Synchronisieren mit CMake wurde durch eine aggressivere Wiederverwendung von im Cache gespeicherten Ergebnissen verbessert.
-
Durch die Hinzufügung von Formatierungstools („Pretty Printer“) für weitere C++-Datenstrukturen ist die LLDB-Ausgabe leichter lesbar.
-
LLDB funktioniert jetzt nur noch mit Android 4.1 (API-Ebene 16) und höher.
Hinweis:Das native Debuggen mit Android Studio 3.0 oder höher funktioniert nicht unter 32-Bit-Windows. Wenn Sie 32-Bit-Windows verwenden und nativen Code debuggen möchten, verwenden Sie Android Studio 2.3.
Kotlin
Kotlin auf Version 1.2.30 aktualisiert
Android Studio 3.1 enthält Kotlin-Version 1.2.30.
Kotlin-Code wird jetzt mit der Befehlszeilen-Lint-Prüfung analysiert
Wenn Sie Lint über die Befehlszeile ausführen, werden jetzt auch Ihre Kotlin-Klassen analysiert.
Für jedes Projekt, für das Sie lint ausführen möchten, muss das Maven-Repository von Google in der Datei build.gradle
auf oberster Ebene enthalten sein. Das Maven-Repository ist bereits für Projekte enthalten, die in Android Studio 3.0 und höher erstellt wurden.
Tools zur Leistungssteigerung
Beispiel für native C++-Prozesse mit dem CPU-Profiler
Der CPU-Profiler enthält jetzt eine Standardkonfiguration zum Aufzeichnen von Stichproben von Traces der nativen Threads Ihrer App. Sie können diese Konfiguration verwenden, indem Sie Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereitstellen und dann im Drop-down-Menü für die Aufzeichnungskonfigurationen des CPU-Profilers Gemustert (nativ) auswählen. Anschließend können Sie wie gewohnt einen Trace aufzeichnen und prüfen.
Sie können Standardeinstellungen wie das Stichprobenintervall ändern, indem Sie eine Aufnahmekonfiguration erstellen.
Wenn Sie wieder zum Erfassen Ihrer Java-Threads zurückkehren möchten, wählen Sie entweder die Konfiguration Beispiel (Java) oder Instrumentiert (Java) aus.
CPU-Traces, Arbeitsspeicherzuweisungsergebnisse und Heap-Dumps filtern
Der CPU-Profiler und der Speicher-Profiler enthalten eine Suchfunktion, mit der Sie Ergebnisse aus der Aufzeichnung eines Methoden-Traces, von Speicherzuweisungen oder von einem Heap-Dump filtern können.
Klicken Sie zum Suchen rechts oben im Bereich auf Filter , geben Sie Ihre Suchanfrage ein und drücken Sie die Eingabetaste.
Tipp:Sie können das Suchfeld auch mit der Tastenkombination Strg + F (Befehlstaste + F auf einem Mac) öffnen.
Auf dem Tab Feuerdiagramm des CPU-Profilers werden Aufrufstacks, die Methoden mit Bezug zu Ihrer Suchanfrage enthalten, hervorgehoben und auf die linke Seite des Diagramms verschoben.
Weitere Informationen zum Filtern nach Methode, Klasse oder Paketnamen finden Sie unter Methoden-Traces erfassen und prüfen.
Tab „Anfrage“ im Netzwerk-Profiler
Der Netzwerk-Profiler enthält jetzt den Tab Anfrage mit Details zu Netzwerkanfragen im ausgewählten Zeitraum. In früheren Versionen gab der Netzwerk-Profiler nur Informationen zu Netzwerkantworten an.
Threadansicht im Netzwerk-Profiler
Nachdem Sie im Netzwerk-Profiler einen Teil der Zeitachse ausgewählt haben, können Sie einen der folgenden Tabs auswählen, um weitere Details zu den Netzwerkaktivitäten in diesem Zeitraum aufzurufen:
- Verbindungsansicht: Enthält dieselben Informationen wie frühere Versionen von Android Studio. Hier werden Dateien aufgeführt, die während des ausgewählten Zeitabschnitts in allen CPU-Threads Ihrer App gesendet oder empfangen wurden. Sie können Größe, Typ, Status und Übertragungsdauer jeder Anfrage prüfen.
- Threadansicht: Zeigt die Netzwerkaktivität der einzelnen CPU-Threads Ihrer App an. In dieser Ansicht können Sie prüfen, welche Threads Ihrer App für jede Netzwerkanfrage verantwortlich sind.
Layout Inspector
Der Layout-Inspektor wurde um neue Funktionen erweitert, darunter einige, die zuvor vom eingestellten Hierarchy Viewer und den Pixel Perfect-Tools angeboten wurden:
- Zoomschaltflächen und Tastenkombinationen zum Navigieren und Prüfen von Layouts
- Raster-Overlay für Referenz
- Möglichkeit, ein Referenzbild zu laden und als Overlay zu verwenden (nützlich, um Ihr Layout mit einem UI-Mockup zu vergleichen)
- Vorschau des untergeordneten Knotens rendern, um eine Ansicht in einem komplexen Layout zu isolieren
Layout-Editor
Die Palette im Layout-Editor wurde erheblich verbessert:
- Neuorganisation der Kategorien für Ansichten und Layouts
- Neue Kategorie Gängig für Ansichten und Layouts, der Sie mit dem Befehl Favoriten Elemente hinzufügen können.
- Verbesserte Suche nach Ansichten und Layouts.
- Neue Befehle zum Öffnen der Dokumentation für eine bestimmte Ansicht oder ein bestimmtes Layoutelement.
Mit dem neuen Befehl Ansicht konvertieren im Komponentenbaum oder im Design-Editor können Sie eine Ansicht oder ein Layout in eine andere Art von Ansicht oder Layout umwandeln.
Mit den neuen Schaltflächen „Verbindung erstellen“ im Ansichtsinspektor oben im Fenster Attribute können Sie jetzt ganz einfach Einschränkungen für Elemente in der Nähe der ausgewählten Ansicht erstellen.
Ausführen und Instant Run
Das Verhalten der Option Gleiche Auswahl für zukünftige Einführungen verwenden im Dialogfeld Bereitstellungsziel auswählen wurde einheitlicher. Wenn die Option Gleiche Auswahl verwenden aktiviert ist, wird das Dialogfeld Bereitstellungsziel auswählen nur beim ersten Mal geöffnet, wenn Sie den Befehl Ausführen verwenden, bis das ausgewählte Gerät nicht mehr verbunden ist.
Wenn Sie Ihre App auf ein Gerät mit Android 8.0 (API-Level 26) oder höher ausrichten, können mit Instant Run Änderungen an Ressourcen bereitgestellt werden, ohne dass die Anwendung neu gestartet werden muss. Das ist möglich, weil die Ressourcen in einem Split-APK enthalten sind.
Emulator
Informationen zu den Neuerungen und Änderungen am Emulator seit Android Studio 3.0 finden Sie in den Versionshinweisen für den Android-Emulator von Version 27.0.2 bis Version 27.1.12.
Zu den wichtigsten Verbesserungen gehören:
- Schnellstart-Snapshots zum Speichern des Emulatorstatus und für einen schnelleren Start. Mit dem Befehl Jetzt speichern können Sie einen benutzerdefinierten Startstatus speichern.
- Emulatorbildschirm ohne Fenster
- Systemabbilder für Android 8.0 (API-Level 26), Android 8.1 (API-Level 27) und die Android P-Entwicklervorschau
Verbesserungen an der Benutzeroberfläche und der Nutzerfreundlichkeit
Mehr Kurzinfos, Tastenkombinationen und hilfreiche Meldungen
Wir haben an vielen Stellen in Android Studio Kurzinfos und hilfreiche Overlays mit Nachrichten hinzugefügt.
Wenn Sie die Tastenkombinationen für viele Befehle sehen möchten, halten Sie den Mauszeiger einfach auf eine Schaltfläche, bis die Kurzinfo erscheint.
Das Menü „Tools“ > „Android“ wurde entfernt
Das Menü Tools > Android wurde entfernt. Befehle, die sich zuvor in diesem Menü befanden, wurden verschoben.
- Viele Befehle wurden direkt unter das Menü Tools verschoben.
- Der Befehl Projekt mit Gradle-Dateien synchronisieren wurde in das Menü Datei verschoben.
- Der Befehl Device Monitor wurde entfernt, wie unten beschrieben.
Device Monitor über die Befehlszeile verfügbar
In Android Studio 3.1 spielt der Gerätemonitor eine geringere Rolle als zuvor. In vielen Fällen werden die Funktionen des Gerätemonitors jetzt von neuen und verbesserten Tools bereitgestellt.
Eine Anleitung zum Aufrufen des Gerätemonitors über die Befehlszeile und Details zu den über den Gerätemonitor verfügbaren Tools finden Sie in der Dokumentation zum Gerätemonitor.