Android Studio 3.1 (März 2018)

Android Studio 3.1.0 ist eine Hauptversion mit einer Vielzahl neuer Funktionen und Verbesserungen.

3.1.4 (August 2018)

Dieses Update für Android Studio 3.1 umfasst die folgenden Änderungen und Fehlerbehebungen:

  • Das gebündelte Kotlin ist jetzt Version 1.2.50.
  • Neue Projekte werden mit kotlin-stdlib-jdk* artifacts statt mit kotlin-stdlib-jre*-Artefakten erstellt, die verworfen wurden.
  • Das R8-Parsing von ProGuard-Regeln wurde verbessert.
  • Die folgenden Fehler wurden behoben:
    • Beim Ausführen der Kotlin-Hauptklasse ist folgender Fehler aufgetreten: "Error: Could not find or load main class..."
    • R8 ist bei der Durchführung bestimmter Optimierungen in eine Endlosschleife eingetreten.
    • Beim Ausführen des Befehls Fehlgeschlagene Tests wiederholen im Fenster Ausführen wurde manchmal die Meldung "Keine Tests wurden gefunden" zurückgegeben.
    • D8 hat invoke-virtual-Instanzen nicht richtig verarbeitet, was einen Absturz mit einem VerifyError verursacht hat: invoke-super/virtual can't be used on private method
    • Der Compiler zur Datenbindung hing von einer alten Version von com.android.tools:annotations ab. Der Compiler verwendet jetzt Tools-Annotationen aus dem Basisprojekt, sofern verfügbar.
    • Android Studio ist bei der Verwendung von Profilern während der Fragmentübergänge abgestürzt.
    • 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 umfasst Korrekturen für die folgenden Fehler:

  • Aufgrund von Speicherlecks ist Android Studio nach der Verwendung des Layout-Editors langsam und reagiert nicht mehr. Dieses Update enthält Fehlerkorrekturen für die meisten dieser Probleme. Wir beabsichtigen, bald ein weiteres Update zu veröffentlichen, um zusätzliche Speicherlecks zu beheben.
  • Einige mit D8 erstellte Anwendungen stürzten auf einigen Verizon Ellipsis-Tablets ab.
  • Die Installation von Anwendungen, die mit D8 erstellt wurden, ist auf Geräten mit Android 5.0 oder 5.1 (API-Level 21 oder 22) mit dem Fehler INSTALL_FAILED_DEXOPT fehlgeschlagen.
  • Einige Anwendungen, die mit D8 erstellt wurden und die OkHttp-Bibliothek verwendeten, stürzten auf Geräten mit Android 4.4 (API-Ebene 19) ab.
  • Android Studio wurde manchmal nicht gestartet. Während der Klasseninitialisierung für com.intellij.psi.jsp.JspElementType wurde ProcessCanceledException ausgegeben.

3.1.2 (April 2018)

Dieses Update für Android Studio 3.1 umfasst Korrekturen für die folgenden Fehler:

  • In einigen Fällen hängte Android Studio beim Beenden auf unbestimmte Zeit.
  • Builds, die mit Quellsätzen konfiguriert wurden, schlugen mit der folgenden Meldung fehl, wenn Instant Run aktiviert wurde:

    "The SourceSet name is not recognized by the Android Gradle Plugin."

  • Wenn Instant Run aktiviert war, schlagen Builds neuer Kotlin-Projekte fehl, wenn sie mit dem Befehl Run ausgelöst wurden.
  • Beim Bearbeiten der Datei build.gradle kam es manchmal zu einer deutlichen Verzögerung zwischen der Eingabe eines Zeichens und der Anzeige des Zeichens auf dem Bildschirm.
  • In einigen Projekten mit einer großen Anzahl von Modulen oder externen Abhängigkeiten sind während des Dexierens Build-Fehler aufgetreten. Die folgende Fehlermeldung wurde angezeigt:

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

  • Bei der Berechnung der D8-Haupt-DEX-Liste wurden einige reflektierende Aufrufe nicht berücksichtigt.

Dieses Update umfasst auch Änderungen, durch die Lint-Prüfungen von Gradle in einigen Szenarien viel schneller ausgeführt werden.

3.1.1 (April 2018)

Dieses Update für Android Studio 3.1 umfasst Korrekturen für die folgenden Fehler:

  • Wenn ein in Android Studio 3.0 erstelltes Projekt zum ersten Mal in Android Studio 3.1 geöffnet wurde, wurde die Gradle-fähige Make-Aufgabe unter Run/Debug Configurations aus dem Bereich Vor dem Start entfernt. Das hat zur Folge, dass Projekte beim Klicken auf die Schaltfläche Ausführen oder Fehler beheben nicht erstellt wurden, was wiederum zu Fehlern wie der Bereitstellung falscher APKs und zu Abstürzen bei der Verwendung von Instant Run führte.

    Um dieses Problem zu lösen, fügt Android Studio 3.1.1 die Gradle-fähige Make-Aufgabe zur Ausführungskonfiguration für Projekte hinzu, bei denen dieser Eintrag fehlt. Diese Änderung erfolgt nach der ersten Gradle-Synchronisierung, wenn das Projekt geladen wird.

  • Der Debugger ist beim Debugging eines Layouts mit einem Textfeld abgestürzt, wenn die erweiterte Profilerstellung aktiviert war.
  • Android Studio stürzte ab, nachdem Sie auf Varianten erstellen 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 Vektor-Drawables, die aus SVG-Dateien importiert wurden, fehlten Elemente.
  • Die Warnung zur Einstellung der compile-Abhängigkeitskonfiguration wurde aktualisiert und enthält nun bessere Hinweise zu den implementation- und api-Konfigurationen. Weitere Informationen zur Migration weg von der Konfiguration compile finden Sie in der Dokumentation zu den neuen Abhängigkeitskonfigurationen.

Programmieren/IDE

IntelliJ 2017.3.3

Die zentrale Android Studio-IDE wurde mit Verbesserungen von IntelliJ IDEA bis Version 2017.3.3 aktualisiert. Zu den Verbesserungen gehören eine bessere Analyse des Kontrollflusses für Sammlungen und Strings, eine verbesserte Inferenz mit Null-Zulässigkeit, 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 Updates zur Fehlerkorrektur.

Verbesserungen bei der SQL-Bearbeitung mit Room

Bei der Verwendung der Raumdatenbankbibliothek profitieren Sie von mehreren Verbesserungen bei der SQL-Bearbeitung:

  • 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 (z. B. der Rückgabetyp der Abfrage) neu geschrieben. Das Umbenennen funktioniert auch in andere Richtung. Wenn Sie also eine Java-Klasse oder ein Java-Feld umbenennen, wird der entsprechende SQL-Code neu geschrieben.
  • SQL-Nutzungen werden bei der Verwendung von Nutzungen suchen angezeigt. Klicken Sie dazu mit der rechten Maustaste und wählen Sie im Kontextmenü Nutzungen suchen aus.
  • 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, während Sie auf die Entität klicken.

Informationen zur Verwendung von SQL mit Room finden Sie unter Daten mit Room in einer lokalen Datenbank speichern.

Aktualisierung der Datenbindung

Dieses Update umfasst mehrere Verbesserungen für die Datenbindung:

  • Sie können jetzt ein LiveData-Objekt als beobachtbares Feld in Datenbindungsausdrücken verwenden. Die Klasse ViewDataBinding enthält jetzt die neue Methode setLifecycle(), mit der Sie LiveData-Objekte beobachten können.

  • Die Klasse ObservableField kann jetzt andere Observable-Objekte in ihrem Konstruktor annehmen.

  • Sie können sich eine Vorschau eines neuen inkrementellen Compilers für Ihre Datenbindungsklassen anzeigen lassen. Details zu diesem neuen Compiler und eine Anleitung zu seiner Aktivierung finden Sie unter Data Binding Compiler V2.

    Der neue Compiler bietet unter anderem folgende Vorteile:

    • ViewBinding-Klassen werden vom Android-Plug-in für Gradle vor dem Java-Compiler generiert.
    • Bibliotheken behalten ihre generierten Bindungsklassen beim Kompilieren der Anwendung bei 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 unter anderem folgende Vorteile:

  • Schnelleres Dexing
  • Geringere Arbeitsspeichernutzung
  • Verbesserte Codegenerierung (bessere Registrierungszuweisung, intelligentere Stringtabellen)
  • Bessere Fehlerbehebung beim Durchgehen von Code

Sie müssen keine Änderungen an Ihrem Code oder Entwicklungsworkflow vornehmen, um diese Vorteile nutzen zu können, es sei denn, Sie haben den D8-Compiler zuvor manuell deaktiviert.

Wenn Sie android.enableD8 in Ihrem gradle.properties auf false setzen, löschen Sie entweder dieses Flag oder setzen Sie es auf true:

        android.enableD8=true
      

Weitere Informationen finden Sie unter Neuer DEX-Compiler.

Inkrementelles Entsugaring

Bei Projekten, die Sprachfeatures für Java 8 verwenden, ist das inkrementelle Desugaring standardmäßig aktiviert, wodurch die Build-Zeiten verkürzt werden können.

Beim Dessugaren wird syntaktischer Zucker in eine Form umgewandelt, die der Compiler effizienter verarbeiten kann.

Sie können das inkrementelle Desugaring deaktivieren, indem Sie in der Datei gradle.properties Ihres Projekts Folgendes angeben:

        android.enableIncrementalDesugaring=false
      

Vereinfachtes Ausgabefenster

Die Gradle-Konsole wurde durch das Fenster Build ersetzt, das die Tabs Synchronisieren und Build enthält.

Weitere Informationen zur Verwendung des neuen, vereinfachten Fensters Build finden Sie unter Build-Prozess überwachen.

Batch-Updates und gleichzeitige Indexierung

Die Gradle-Synchronisierung und die IDE-Indexierungsprozesse sind jetzt wesentlich effizienter, wodurch weniger Zeit für viele redundante Indexierungsvorgänge verschwendet wird.

C++ und LLDB

Wir haben in den Programmier-, Synchronisierungs-, Erstellungs- und Fehlerbehebungsphasen der C++-Entwicklung zahlreiche Qualitäts- und Leistungsverbesserungen vorgenommen. Zu den Verbesserungen gehören:

  • Wenn Sie mit großen C++-Projekten arbeiten, werden Sie feststellen, dass sich der Zeitaufwand für das Erstellen von Symbolen deutlich verbessert. Außerdem wird die Synchronisierungszeit bei großen Projekten erheblich verkürzt.

  • 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 („Schönheitsdruckern“) für weitere C++-Datenstrukturen lässt sich die LLDB-Ausgabe leichter lesen.

  • LLDB funktioniert jetzt nur noch 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 eine 32-Bit-Windows-Umgebung verwenden und Fehler mit nativem Code beheben müssen, verwenden Sie Android Studio 2.3.

Kotlin

Kotlin-Upgrade auf Version 1.2.30

Android Studio 3.1 enthält die Kotlin-Version 1.2.30.

Kotlin-Code wird jetzt mit Lint-Prüfung über die Befehlszeile 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, muss das Maven-Repository von Google in der übergeordneten Datei build.gradle enthalten sein. Bei Projekten, die in Android Studio 3.0 und höher erstellt wurden, ist das Maven-Repository bereits enthalten.

Tools zur Leistungssteigerung

Beispiele für native C++-Prozesse mit CPU Profiler

Der CPU Profiler enthält jetzt eine Standardkonfiguration zum Aufzeichnen von Stichproben der nativen Threads Ihrer Anwendung. 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ü des CPU-Profilers zur Aufzeichnung der Konfigurationen die Option Sampled (Nativ) auswählen. Danach zeichnen und prüfen Sie einen Trace wie gewohnt.

Sie können die Standardeinstellungen wie das Stichprobenintervall ändern, indem Sie eine Aufzeichnungskonfiguration erstellen.

Wenn Sie zum Tracing der Java-Threads zurückkehren möchten, wählen Sie entweder eine Sampled (Java)- oder Instrumented (Java)-Konfiguration aus.

CPU-Traces, Ergebnisse der Arbeitsspeicherzuweisung und Heap-Dumps filtern

Der CPU Profiler und der Memory Profiler enthalten eine Suchfunktion, mit der Sie Ergebnisse aus der Aufzeichnung eines Methoden-Trace, von Speicherzuweisungen oder aus Heap-Dumps filtern können.

Klicken Sie für die Suche oben rechts auf Filter , geben Sie Ihre Abfrage ein und drücken Sie die Eingabetaste.

Tipp:Sie können das Suchfeld auch durch Drücken von Strg + F (Befehlstaste + F auf einem Mac) öffnen.

Im Tab Flame-Diagramm des CPU-Profilers werden Aufrufstacks, die Methoden für Ihre Suchanfrage enthalten, hervorgehoben und auf die linke Seite des Diagramms verschoben.

Weitere Informationen zum Filtern nach Methode, Klasse oder Paketname finden Sie unter Methoden-Traces aufzeichnen und prüfen.

Tab „Request“ im Netzwerk-Profiler

Der Netzwerk-Profiler enthält jetzt den Tab Anfrage mit Details zu Netzwerkanfragen während der ausgewählten Zeitachse. In früheren Versionen gab der Netzwerk-Profiler nur Informationen zu Netzwerkantworten.

Thread-Ansicht 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 zur Netzwerkaktivität in diesem Zeitraum zu sehen:

  • Verbindungsansicht: Enthält dieselben Informationen wie bei früheren Versionen von Android Studio. Sie enthält eine Liste der Dateien, die während des ausgewählten Teils der Zeitachse über alle CPU-Threads Ihrer App gesendet oder empfangen wurden. Sie können für jede Anfrage Größe, Typ, Status und Übertragungsdauer überprüfen.
  • Thread-Ansicht: Zeigt die Netzwerkaktivität jedes CPU-Threads Ihrer App an. In dieser Ansicht können Sie prüfen, welche Threads Ihrer Anwendung für die einzelnen Netzwerkanfragen verantwortlich sind.

Layout Inspector

Für den Layout Inspector wurden neue Funktionen eingeführt, darunter auch einige Funktionen, die zuvor im eingestellten Hierarchy Viewer und in den Pixel Perfect-Tools bereitgestellt wurden:

  • Zoomschaltflächen und Tastenkombinationen zum Navigieren und Überprüfen von Layouts
  • Referenzraster-Overlay
  • Möglichkeit, ein Referenzbild zu laden und als Overlay zu verwenden (nützlich für den Vergleich Ihres Layouts mit einem UI-Mockup)
  • Unterstrukturvorschau rendern, um eine Ansicht in einem komplexen Layout zu isolieren

Layout-Editor

Für die Palette im Layout-Editor wurden viele Verbesserungen vorgenommen:

  • Neuorganisation der Kategorien für Ansichten und Layouts
  • Neue Kategorie Common für Ansichten und Layouts, die Sie mit dem Befehl Favorit hinzufügen können.
  • Die Suche nach Ansichten und Layouts wurde verbessert.
  • Neue Befehle zum Öffnen der Dokumentation für eine bestimmte Ansicht oder ein bestimmtes Layoutelement.

Mit dem neuen Befehl Ansicht konvertieren in der Komponentenstruktur oder im Designeditor können Sie eine Ansicht oder ein Layout in einen anderen Ansichts- oder Layouttyp konvertieren.

Sie können jetzt ganz einfach Einschränkungen für Elemente in der Nähe der ausgewählten Ansicht erstellen. Verwenden Sie dazu die neuen Schaltflächen „Verbindung erstellen“ im Ansicht Inspector oben im Fenster Attribute.

Laufen und Instant Run

Das Verhalten der Option Gleiche Auswahl für zukünftige Starts verwenden im Dialogfeld Bereitstellungsziel auswählen wurde vereinheitlicht. Wenn die Option Gleiche Auswahl verwenden aktiviert ist, wird das Dialogfeld Bereitstellungsziel auswählen nur dann geöffnet, wenn Sie den Befehl Ausführen zum ersten Mal ausführen, bis das ausgewählte Gerät nicht mehr verbunden ist.

Bei Ausrichtung auf ein Gerät mit Android 8.0 (API-Level 26) oder höher können mit Instant Run Änderungen an Ressourcen implementiert werden, ohne dass die App neu gestartet wird. Das ist möglich, weil die Ressourcen in einem unterteilten APK enthalten sind.

Emulator

Einzelheiten zu den Neuerungen und Änderungen im 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:

  • Quick Boot-Snapshots zum Speichern des Emulatorstatus und schnelleren Start, mit der Möglichkeit, mit dem Befehl Save now (Jetzt speichern) einen benutzerdefinierten Startstatus zu speichern.
  • Bildschirm des fensterlosen Emulators.
  • System-Images für Android 8.0 (API-Level 26), Android 8.1 (API-Level 27) und die Android P-Entwicklervorschau.

Verbesserte Benutzeroberfläche und Nutzererfahrung

Weitere Kurzinfos, Tastenkombinationen und hilfreiche Meldungen

Wir haben an vielen Stellen in Android Studio Kurzinfos und hilfreiche Mitteilungs-Overlays hinzugefügt.

Halten Sie den Mauszeiger über eine Schaltfläche, bis die Kurzinfo angezeigt wird, um die Tastenkombinationen für viele Befehle zu sehen.

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 Menü Tools verschoben.
  • Der Befehl Projekt mit Gradle-Dateien synchronisieren wurde in das Menü Datei verschoben.
  • Der Befehl Gerätemonitor wurde wie unten beschrieben entfernt.

Gerätemonitor, verfügbar über die Befehlszeile

In Android Studio 3.1 erfüllt der Gerätemonitor weniger eine Rolle als zuvor. In vielen Fällen werden die Funktionen des Gerätemonitors jetzt durch neue und verbesserte Tools bereitgestellt.

Eine Anleitung zum Aufrufen des Gerätemonitors über die Befehlszeile und Details zu den darin verfügbaren Tools finden Sie in der Dokumentation zum Gerätemonitor.