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 mit kotlin-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 einer VerifyError 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 Meldung ProcessCanceledException 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 die implementation- und api-Konfigurationen. Weitere Informationen zur Migration von der compile-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 Klasse ViewDataBinding enthält jetzt eine neue setLifecycle()-Methode, 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 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.