Android Studio 3.1 (März 2018)
Android Studio 3.1.0 ist ein wichtiger Release, der eine Vielzahl neuer Funktionen und Verbesserungen enthält.
3.1.4 (August 2018)
Dieses Update für Android Studio 3.1 enthält die folgenden Änderungen und Korrekturen:
- Die gebündelte Kotlin-Version ist jetzt 1.2.50.
-
Neue Projekte werden mit
kotlin-stdlib-jdk* artifacts, und nicht mehr mitkotlin-stdlib-jre*Artefakten erstellt, die eingestellt wurden. - Die R8-Analyse von ProGuard-Regeln wurde verbessert.
- Die folgenden Fehler wurden behoben:
-
Der Versuch, die Kotlin-Hauptklasse auszuführen, ist mit einem Fehler fehlgeschlagen:
"Error: Could not find or load main class..." - R8 ist bei bestimmten Optimierungen in eine Endlosschleife geraten.
- Wenn der Befehl Rerun failed tests (Fehlgeschlagene Tests noch einmal ausführen) im Fenster Run (Ausführen) verwendet wurde , wurde manchmal fälschlicherweise die Meldung „No tests were found“ (Keine Tests gefunden) zurückgegeben.
-
D8 hat
invoke-virtualInstanzen nicht korrekt verarbeitet, was zu einem Absturz mit einemVerifyError:invoke-super/virtual can't be used on private methodgeführt hat -
Der Data Binding-Compiler war von einer alten Version von
com.android.tools:annotationsabhängig. Der Compiler verwendet jetzt, sofern verfügbar, Tools-Annotationen aus dem Basisprojekt. - Android Studio ist bei Fragmentübergängen abgestürzt, wenn Profiler verwendet wurden.
- Der Debugger ist beim Debuggen eines Layouts mit einem Textfeld abgestürzt.
- D8 konnte einige ZIP-Dateien mit Sonderzeichen nicht lesen.
3.1.3 (Juni 2018)
Dieses Update für Android Studio 3.1 enthält Korrekturen für die folgenden Fehler:
- Speicherlecks haben dazu geführt, dass Android Studio langsam und nicht mehr reaktionsfähig wurde nachdem der Layout Editor verwendet wurde. Dieses Update enthält Korrekturen für die meisten dieser Probleme. Wir planen, bald ein weiteres Update zu veröffentlichen, um zusätzliche Speicherlecks zu beheben.
- Einige mit D8 erstellte Anwendungen sind auf einigen Verizon Ellipsis-Tablets abgestürzt.
-
Die Installation von mit D8 erstellten Anwendungen ist auf Geräten mit Android 5.0 oder
5.1 (API-Level 21 oder 22) mit einem
INSTALL_FAILED_DEXOPTFehler fehlgeschlagen. - Einige Anwendungen, die die OkHttp-Bibliothek verwendet haben und mit D8 sind auf Geräten mit Android 4.4 (API-Level 19) abgestürzt.
-
Android Studio konnte manchmal nicht gestartet werden, mit einer
ProcessCanceledExceptionwährend der Klasseninitialisierung fürcom.intellij.psi.jsp.JspElementType.
3.1.2 (April 2018)
Dieses Update für Android Studio 3.1 enthält Korrekturen für die folgenden Fehler:
- In einigen Fällen ist Android Studio beim Beenden unbegrenzt hängen geblieben.
-
Bei Builds, die mit Quellsätzen konfiguriert wurden, ist mit der folgenden Meldung ein Fehler aufgetreten, wenn Instant Run aktiviert war:
"The SourceSet name is not recognized by the Android Gradle Plugin." - Wenn Instant Run aktiviert war, sind Builds neuer Kotlin-Projekte fehlgeschlagen, wenn sie mit dem Befehl Run ausgelöst wurden.
-
Beim Bearbeiten der Datei
build.gradlegab es manchmal eine spürbare Verzögerung zwischen dem Eingeben eines Zeichens und dem Erscheinen des Zeichens auf dem Bildschirm. -
Bei der Dexing-Phase ist in einigen Projekten mit einer großen Anzahl von Modulen oder externen Abhängigkeiten ein Build-Fehler aufgetreten, mit der folgenden Fehlermeldung:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker" - Bei der Berechnung der D8-Haupt-DEX-Liste wurden einige reflektierende Aufrufe nicht berücksichtigt.
Dieses Update enthält auch Änderungen, die das Ausführen von Lint-Prüfungen über Gradle erheblich beschleunigen.
3.1.1 (April 2018)
Dieses Update für Android Studio 3.1 enthält Korrekturen für die folgenden Fehler:
-
In einigen Fällen wurde beim ersten Öffnen eines in Android Studio 3.0 erstellten Projekts in Android Studio 3.1 die Gradle-Aufgabe „Make“ (Erstellen) aus dem Bereich Before launch (Vor dem Start) in den Run/Debug Konfigurationen für Ausführen/Debuggen entfernt. Das Ergebnis war, dass Projekte nicht erstellt wurden, wenn auf die Schaltfläche Run (Ausführen) oder Debug (Debuggen) geklickt wurde. Dies führte wiederum zu Fehlern wie der Bereitstellung falscher APKs und Abstürzen bei der Verwendung von Instant Run.
Um dieses Problem zu beheben, fügt Android Studio 3.1.1 die Gradle-Aufgabe „Make“ (Erstellen) der Ausführungskonfiguration für Projekte hinzu, bei denen dieser Eintrag fehlt. Diese Änderung erfolgt nach der ersten Gradle-Synchronisierung beim Laden des Projekts.
- Der Debugger ist beim Debuggen eines Layouts mit einem Textfeld abgestürzt, wenn die erweiterte Profilerstellung aktiviert war.
- Android Studio ist hängen geblieben, nachdem Sie auf Build Variants (Build-Varianten) geklickt haben.
- AAR-Dateien (Android-Archiv) wurden zweimal extrahiert, einmal während der Gradle Synchronisierung und einmal während des Gradle-Build-Prozesses.
- In einigen Vektorgrafiken, die aus SVG-Dateien importiert wurden, haben Elemente gefehlt.
-
Die Warnung bezüglich der Einstellung der
compileAbhängigkeitskonfiguration wurde mit besseren Anleitungen zu den Konfigurationenimplementationundapiaktualisiert. Weitere Informationen zur Migration von der Verwendung dercompileKonfiguration finden Sie in der Dokumentation zu den neuen Abhängigkeitskonfigurationen.
Programmierung/IDE
IntelliJ 2017.3.3
Die Android Studio-Kern-IDE wurde mit Verbesserungen aus IntelliJ IDEA bis zum Release 2017.3.3 aktualisiert. Zu den Verbesserungen gehören eine bessere Analyse des Kontrollflusses für Sammlungen und Strings, eine verbesserte Null-Zulässigkeit-Inferenz, neue Schnellkorrekturen und vieles mehr.
Weitere Informationen finden Sie in den JetBrains-Versionshinweisen für IntelliJ IDEA 2017.2 und 2017.3, sowie in den JetBrains-Versionshinweisen für Bugfix-Updates.
Verbesserungen bei der SQL-Bearbeitung mit Room
Wenn Sie die Room-Datenbankbibliothek, verwenden, können Sie von mehreren Verbesserungen bei der SQL-Bearbeitung profitieren:
- Die Codevervollständigung in einer
Queryversteht SQL-Tabellen (Entitäten), Spalten, Abfrageparameter, Aliase, Joins, Unterabfragen und WITH-Klauseln. - Die SQL-Syntaxhervorhebung funktioniert jetzt.
- Sie können mit der rechten Maustaste auf einen Tabellennamen in SQL klicken und ihn umbenennen. Dadurch wird auch der entsprechende Java- oder Kotlin-Code neu geschrieben (einschließlich z. B. des Rückgabetyps der Abfrage). Das Umbenennen funktioniert auch in der anderen Richtung, so wird beim Umbenennen einer Java-Klasse oder eines Java-Felds der entsprechende SQL Code neu geschrieben.
- SQL-Verwendungen werden angezeigt, wenn Sie Find usages (Verwendungen suchen) verwenden (Rechtsklick und im Kontextmenü Find usages (Verwendungen suchen) auswählen).
- Wenn Sie zur Deklaration einer SQL-Entität im Java- oder Kotlin-Code navigieren möchten, können Sie die Strg-Taste (Befehlstaste auf dem Mac) gedrückt halten und auf die Entität klicken.
Informationen zur Verwendung von SQL mit Room finden Sie unter Daten in einer lokalen Datenbank mit Room speichern.
Updates für die Datenbindung
Dieses Update enthält mehrere Verbesserungen für die Datenbindung:
-
Sie können jetzt ein
LiveDataObjekt als beobachtbares Feld in Ausdrücken für die Datenbindung verwenden. DieViewDataBindingKlasse enthält jetzt die neuesetLifecycle()Methode, mit der SieLiveDataObjekte beobachten können. -
Die
ObservableFieldKlasse kann jetzt andereObservableObjekte in ihrem Konstruktor akzeptieren. -
Sie können eine Vorschau eines neuen inkrementellen Compilers für Ihre Datenbindung Klassen aufrufen. 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 und werden nicht jedes Mal neu generiert. 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 Dexing-Phase
- Geringere Arbeitsspeichernutzung
- Verbesserte Codeerstellung (bessere Registerzuweisung, intelligentere String Tabellen)
- Besseres Debugging beim Durchlaufen von Code
Sie müssen keine Änderungen an Ihrem Code oder Ihrem Entwicklungs workflow vornehmen, um diese Vorteile zu nutzen, es sei denn, Sie haben den D8-Compiler zuvor manuell deaktiviert.
Wenn Sie android.enableD8 in Ihrer
gradle.properties auf false gesetzt haben, löschen Sie dieses Flag oder setzen Sie es auf
true:
android.enableD8=true
Weitere Informationen finden Sie unter Neuer DEX-Compiler.
Inkrementelles Desugaring
Bei Projekten, die Java 8-Sprachfunktionen verwenden, ist das inkrementelle Desugaring standardmäßig aktiviert, was die Build- Zeiten verbessern kann.
Beim Desugaring wird syntaktischer Zucker in eine Form umgewandelt, die der Compiler effizienter verarbeiten kann.
Sie können das inkrementelle Desugaring deaktivieren, indem Sie Folgendes in
der Datei gradle.properties Ihres Projekts angeben:
android.enableIncrementalDesugaring=false
Vereinfachtes Ausgabefenster
Die Gradle Console (Gradle-Konsole) wurde durch das Fenster Build (Erstellen) ersetzt, das die Tabs Sync (Synchronisieren) und Build (Erstellen) enthält.
Weitere Informationen zur Verwendung des neuen, vereinfachten Fensters Build finden Sie unter Build-Prozess überwachen.
Batch-Updates und Nebenläufigkeit bei der Indexierung
Die Gradle-Synchronisierung und die IDE-Indexierung sind jetzt viel effizienter, wodurch Zeit für viele redundante Indexierungsvorgänge gespart wird.
C++ und LLDB
Wir haben viele Verbesserungen an Qualität und Leistung in den Phasen der Programmierung, Synchronisierung, Erstellung und des Debuggings der C++-Entwicklung vorgenommen. Zu den Verbesserungen gehören:
-
Wenn Sie mit großen C++-Projekten arbeiten, sollten Sie eine deutliche Verbesserung bei der Zeit für die Erstellung von Symbolen feststellen. Auch die Synchronisierungszeit ist bei großen Projekten erheblich kürzer.
-
Die Leistung beim Erstellen und Synchronisieren mit CMake wurde durch eine aggressivere Wiederverwendung von im Cache gespeicherten Ergebnissen verbessert.
-
Durch das Hinzufügen von Formatierern („Pretty Printers“) für weitere C++-Datenstrukturen ist die LLDB-Ausgabe leichter zu lesen.
-
LLDB funktioniert jetzt nur mit Android 4.1 (API-Level 16) und höher.
Hinweis: Das native Debugging 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üssen, 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 Ihre Kotlin-Klassen analysiert.
Für jedes Projekt, für das Sie Lint ausführen möchten,
das Maven
Repository von Google muss in der Datei auf oberster Ebene build.gradle
enthalten sein. Das Maven-Repository ist bereits in Projekten enthalten, die in
Android Studio 3.0 und höher erstellt wurden.
Tools zur Leistungssteigerung
Native C++-Prozesse mit dem CPU Profiler testen
Der CPU Profiler enthält jetzt eine Standardkonfiguration zum Aufzeichnen von Stichproben-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 Profiler die Option Sampled (Native) (Stichprobenbasiert (nativ)) auswählen. Danach können Sie einen Trace wie gewohnt aufzeichnen und untersuchen.
Sie können Standardeinstellungen wie das Stichprobenintervall ändern, indem Sie eine Aufzeichnungskonfiguration erstellen.
Wenn Sie wieder Java-Threads verfolgen möchten, wählen Sie entweder die Sampled (Java) (Stichprobenbasiert (Java)) oder Instrumented (Java) (Instrumentiert (Java)) Konfiguration aus.
CPU-Traces, Ergebnisse der Arbeitsspeicherzuweisung und Heap-Dumps filtern
Der CPU Profiler und derSpeicher-Profiler enthalten eine Suchfunktion, mit der Sie Ergebnisse aus der Aufzeichnung eines Methoden -Trace, der Arbeitsspeicherzuweisungen oder eines Heap-Dumps filtern können.
Klicken Sie zum Suchen rechts oben im Steuerfeld auf Filter
, geben Sie Ihre Abfrage ein und drücken Sie die Eingabetaste.
Tipp: Sie können das Suchfeld auch mit Strg + F (Befehlstaste + F auf dem Mac) öffnen.
Auf dem Tab Flame Chart (Flammendiagramm) des CPU Profiler werden Aufrufstacks, die Methoden enthalten, die mit Ihrer Suchanfrage übereinstimmen, hervorgehoben und auf die linke Seite des Diagramms verschoben.
Weitere Informationen zum Filtern nach Methoden-, Klassen- oder Paketnamen finden Sie unter Method-Traces aufzeichnen und untersuchen.
Tab „Request“ (Anfrage) im Network Profiler
Der Network Profiler enthält jetzt den Tab Request (Anfrage), der Details zu Netzwerkanfragen während der ausgewählten Zeitachse enthält. In früheren Versionen enthielt der Network Profiler nur Informationen zu Netzwerkantworten.
Tab „Thread View“ (Thread-Ansicht) im Network Profiler
Nachdem Sie einen Teil der Zeitachse im Network Profiler ausgewählt haben, können Sie einen der folgenden Tabs auswählen, um weitere Details zur Netzwerkaktivität in diesem Zeitraum zu sehen:
- Verbindungsansicht: Enthält dieselben Informationen wie frühere Versionen von Android Studio. Hier werden die Dateien aufgeführt, die während des ausgewählten Zeitraums auf allen CPU-Threads Ihrer App gesendet oder empfangen wurden. Für jede Anfrage können Sie Größe, Typ, Status und Übertragungsdauer prüfen.
- Thread View (Thread-Ansicht): Zeigt die Netzwerkaktivität der einzelnen CPU-Threads Ihrer App an. In dieser Ansicht können Sie sehen, welcher Thread Ihrer App für die einzelnen Netzwerkanfragen verantwortlich ist
Layout Inspector
Der Layout Inspector hat neue Funktionen erhalten, darunter einige Funktionen, die zuvor von den eingestellten Tools Hierarchy Viewer und Pixel Perfect bereitgestellt wurden:
- Zoom-Schaltflächen und Tastenkombinationen zum Navigieren und Untersuchen von Layouts
- Referenzraster-Overlay
- Möglichkeit, ein Referenzbild zu laden und als Overlay zu verwenden (nützlich, um Ihr Layout mit einem UI-Mock-up zu vergleichen)
- Render subtree preview (Vorschau des Unterbaums 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 Common (Allgemein) für Ansichten und Layouts, die Sie mit dem Befehl Favorite (Favorit) hinzufügen können.
- Verbesserte Suche nach Ansichten und Layouts.
- Neue Befehle zum Öffnen der Dokumentation für ein bestimmtes Ansichts- oder Layout-Element.
Mit dem neuen Befehl Convert view (Ansicht konvertieren) im Component tree (Komponentenbaum) oder im Design Editor können Sie eine Ansicht oder ein Layout in einen anderen Ansichts- oder Layouttyp konvertieren.
Mit den
neuen Schaltflächen Create a connection
im Ansichts-Inspector oben im Fenster Attributes können Sie jetzt ganz einfach Constraints für Elemente in der Nähe der ausgewählten Ansicht erstellen.
Ausführen und Instant Run
Das Verhalten der Option Use same selection for future launches (Dieselbe Auswahl für zukünftige Starts verwenden) im Dialogfeld Select deployment target (Bereitstellungsziel auswählen) wurde konsistenter gestaltet. Wenn die Option Use same selection (Dieselbe Auswahl verwenden) aktiviert ist, wird das Dialogfeld Select deployment target (Bereitstellungsziel auswählen) nur beim ersten Verwenden des Befehls Run (Ausführen) geöffnet, bis das ausgewählte Gerät nicht mehr verbunden ist.
Wenn Sie ein Gerät mit Android 8.0 (API-Level 26) oder höher verwenden, Instant Run kann Änderungen an Ressourcen bereitstellen, ohne dass die Anwendung neu gestartet werden muss. Das ist möglich, weil die Ressourcen in einer unterteilten APK enthalten sind.
Emulator
Informationen zu den Neuerungen und Änderungen im Emulator seit Android Studio 3.0 finden Sie in den Versionshinweisen zum Android Emulator von Version 27.0.2 bis Version 27.1.12.
Zu den wichtigsten Verbesserungen gehören:
- Quick Boot-Snapshots zum Speichern des Emulatorstatus und für einen schnelleren Start. Mit dem Befehl Save now (Jetzt speichern) können Sie einen benutzerdefinierten Startstatus speichern.
- Fensterloser Emulatorbildschirm.
- System-Images für Android 8.0 (API-Level 26), Android 8.1 (API-Level 27) und Android P Entwicklervorschau.
Verbesserungen an Benutzeroberfläche und Nutzerfreundlichkeit Verbesserungen
Weitere Tooltips, Tastenkombinationen, und hilfreiche Meldungen
Wir haben an vielen Stellen in Android Studio Tooltips und hilfreiche Meldungen hinzugefügt.
Wenn Sie Tastenkombinationen für viele Befehle sehen möchten, bewegen Sie den Maus zeiger einfach über eine Schaltfläche, bis der Tooltip angezeigt wird.
Menü „Tools > Android“ entfernt
Das Menü Tools > Android wurde entfernt. Befehle die sich zuvor in diesem Menü befanden, wurden verschoben.
- Viele Befehle wurden direkt unter das Tools Menü verschoben.
- Der Befehl Sync project with gradle files wurde in das Menü File verschoben.
- Der Befehl Device Monitor (Geräte-Monitor) wurde entfernt, wie beschrieben unten.
Device Monitor über die Befehlszeile verfügbar
In Android Studio 3.1 spielt der Device Monitor eine geringere Rolle als bisher. In vielen Fällen werden die Funktionen, die über den Device Monitor verfügbar sind, jetzt von neuen und verbesserten Tools bereitgestellt.
In der Dokumentation zum Device Monitor finden Sie eine Anleitung zum Aufrufen des Device Monitor über die Befehlszeile und Details zu den Tools, die über den Device Monitor verfügbar sind.