Ältere Releases

Im Folgenden finden Sie die Versionshinweise zu Android Studio 3.6 und niedriger sowie zum Android-Gradle-Plug-in 3.6.0 und niedriger.

Ältere Versionen von Android Studio

3.6 (Februar 2020)

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

Wir möchten uns auch bei allen Community-Beitragenden bedanken, die uns bei dieser Version geholfen haben.

3.6.3 (April 2020)

Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

3.6.2 (März 2020)

Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

3.6.1 (Februar 2020)

Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

Design tools

Diese Version von Android Studio enthält Updates für mehrere Designtools, darunter den Layout-Editor und den Ressourcenmanager.

Split-View und Zoom in Design-Editoren

In der geteilten Ansicht werden sowohl die Design- als auch die Textansicht gleichzeitig angezeigt.

Diese Version enthält die folgenden Aktualisierungen der visuellen Design-Editoren:

  • Design-Editoren wie der Layout-Editor und der Navigationseditor bieten jetzt eine Split-Ansicht, in der Sie gleichzeitig die Design- und die Code-Ansicht Ihrer Benutzeroberfläche sehen können. Rechts oben im Editorfenster befinden sich jetzt drei Schaltflächen Symbole ansehen, mit denen Sie zwischen den Ansichtsoptionen wechseln können:

    • Klicken Sie auf das Symbol Aufteilen Symbol für geteilte Ansicht, um die geteilte Ansicht zu aktivieren.
    • Klicken Sie auf das Symbol Quelle Symbol für die Quellansicht, um die XML-Quellansicht zu aktivieren.
    • Klicken Sie auf das Symbol Design Symbol für die Designansicht, um die Designansicht zu aktivieren.
  • Die Steuerelemente zum Zoomen und Schwenken in den Design-Editoren wurden in ein unverankertes Feld in der unteren rechten Ecke des Editorfensters verschoben.

Weitere Informationen finden Sie unter UI mit Layout-Editor erstellen.

Ressourcentab „Farbauswahl“

Damit Sie Farbressourcenwerte in Ihrer App schnell aktualisieren können, wenn Sie die Farbauswahl in Ihrem XML-Code oder den Designtools verwenden, werden die Farbressourcenwerte jetzt automatisch von der IDE ausgefüllt.

Farbauswahl mit vordefinierten Farbwerten

Resource Manager

Der Ressourcenmanager enthält die folgenden Aktualisierungen:

  • Der Ressourcenmanager unterstützt jetzt die meisten Ressourcentypen.
  • Wenn Sie nach einer Ressource suchen, werden im Resource Manager jetzt Ergebnisse aus allen Projektmodulen angezeigt. Bisher wurden bei Suchanfragen nur Ergebnisse aus dem ausgewählten Modul zurückgegeben.
  • Mit der Filterschaltfläche können Sie Ressourcen aus lokalen abhängigen Modulen, externen Bibliotheken und dem Android-Framework ansehen. Sie können den Filter auch verwenden, um Themenattribute anzuzeigen.
  • Sie können Ressourcen jetzt während des Importvorgangs umbenennen. Klicken Sie dazu in das Textfeld über der Ressource.

Weitere Informationen finden Sie unter UI-Ressourcen Ihrer App mit Resource Manager verwalten.

Aktualisierungen am Android-Gradle-Plug-in

Die aktuelle Version des Android-Gradle-Plug-ins enthält viele Updates, darunter Optimierungen für die Build-Geschwindigkeit, Unterstützung für das Maven-Publishing-Plug-in und Unterstützung für View Binding. Vollständige Versionshinweise

Bindung ansehen

Mit View Binding können Sie einfacher Code schreiben, der mit Ansichten interagiert, indem für jede XML-Layoutdatei eine Binding-Klasse generiert wird. Diese Klassen enthalten direkte Verweise auf alle Ansichten, die eine ID im entsprechenden Layout haben.

Da es findViewById() ersetzt, wird durch die Ansichtsbindung das Risiko von Nullzeiger-Ausnahmen aufgrund einer ungültigen Ansichts-ID eliminiert.

Damit Sie View Binding aktivieren können, müssen Sie das Android Gradle-Plug-in 3.6.0 oder höher verwenden und Folgendes in die build.gradle-Datei jedes Moduls einfügen:

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Änderungen übernehmen

Sie können jetzt eine Klasse hinzufügen und diese Codeänderung in Ihrer laufenden App bereitstellen, indem Sie entweder auf Codeänderungen anwenden oder auf Änderungen anwenden und Aktivität neu starten klicken .

Weitere Informationen zum Unterschied zwischen diesen beiden Aktionen finden Sie unter Änderungen anwenden.

Menüoption umgestalten, um Instant Apps zu unterstützen

Sie können Ihr Basismodul jetzt jederzeit nach dem Erstellen Ihres App-Projekts aktivieren. Gehen Sie dazu so vor:

  1. Öffnen Sie den Bereich Project (Projekt), indem Sie in der Menüleiste View > Tool Windows > Project (Ansicht > Tool-Fenster > Projekt) auswählen.
  2. Klicken Sie mit der rechten Maustaste auf Ihr Basismodul, das in der Regel „app“ heißt, und wählen Sie Refactor > Enable Instant Apps Support (Umgestalten > Unterstützung für Instant Apps aktivieren) aus.
  3. Wählen Sie im angezeigten Dialogfeld Ihr Basismodul aus dem Drop-down-Menü aus.
  4. Klicken Sie auf OK.

Hinweis:Die Option, das Basis-App-Modul über den Assistenten Neues Projekt erstellen sofort zu aktivieren, wurde entfernt.

Weitere Informationen

Bytecode von Klassen und Methoden im APK Analyzer deobfuskieren

Wenn Sie den APK Analyzer verwenden, um DEX-Dateien zu prüfen, können Sie den Bytecode von Klassen und Methoden so deobfuskieren:

  1. Wählen Sie in der Menüleiste Build > APK analysieren aus.
  2. Suchen Sie im angezeigten Dialogfeld nach dem APK, das Sie prüfen möchten, und wählen Sie es aus.
  3. Klicken Sie auf Öffnen.
  4. Wählen Sie im APK Analyzer die DEX-Datei aus, die Sie untersuchen möchten.
  5. Laden Sie im DEX-Datei-Viewer die ProGuard-Zuordnungsdatei für die APK hoch, die Sie analysieren.
  6. Klicken Sie mit der rechten Maustaste auf die Klasse oder Methode, die Sie untersuchen möchten, und wählen Sie Bytecode anzeigen aus.

Native Tools

Die folgenden Updates unterstützen die native (C/C++) Entwicklung in Android Studio.

Kotlin-Unterstützung

Die folgenden NDK-Funktionen in Android Studio, die zuvor in Java unterstützt wurden, werden jetzt auch in Kotlin unterstützt:

  • Von einer JNI-Deklaration zur entsprechenden Implementierungsfunktion in C/C++ wechseln. Diese Zuordnung wird angezeigt, wenn Sie den Mauszeiger auf die Markierung für C oder C++ in der Nähe der Zeilennummer in der verwalteten Quellcodedatei bewegen.

  • Automatisch eine Stub-Implementierungsfunktion für eine JNI-Deklaration erstellen. Definieren Sie zuerst die JNI-Deklaration und geben Sie dann „jni“ oder den Methodennamen in die C/C++-Datei ein, um sie zu aktivieren.

  • Nicht verwendete native Implementierungsfunktionen werden im Quellcode als Warnung hervorgehoben. JNI-Deklarationen ohne Implementierung werden ebenfalls als Fehler hervorgehoben.

  • Wenn Sie eine Funktion der nativen Implementierung umbenennen (refaktorieren), werden alle entsprechenden JNI-Deklarationen aktualisiert. Benennen Sie eine JNI-Deklaration um, um die native Implementierungsfunktion zu aktualisieren.

  • Signaturprüfung für implizit gebundene JNI-Implementierungen.

Weitere JNI-Verbesserungen

Der Code-Editor in Android Studio unterstützt jetzt einen reibungsloseren JNI-Entwicklungs-Workflow, einschließlich verbesserter Typ-Hinweise, automatischer Vervollständigung, Prüfungen und Code-Refactoring.

APK-Neuladen für native Bibliotheken {:#3.6-reload-apk}

Sie müssen kein neues Projekt mehr erstellen, wenn das APK in Ihrem Projekt außerhalb der IDE aktualisiert wird. Android Studio erkennt Änderungen am APK und bietet Ihnen die Möglichkeit, es neu zu importieren.

Nur Kotlin-APK-Quellen anhängen

Beim Erstellen von Profilen und Beheben von Fehlern in vorgefertigten APKs können jetzt externe APK-Quellen angehängt werden, die nur Kotlin enthalten. Weitere Informationen finden Sie unter Kotlin-/Java-Quellen anhängen.

Leckerkennung im Memory Profiler

Wenn Sie einen Heap-Dump im Memory Profiler analysieren, können Sie jetzt Profiling-Daten filtern, die in Android Studio möglicherweise auf Speicherlecks für Activity- und Fragment-Instanzen in Ihrer App hinweisen.

Der Filter zeigt unter anderem die folgenden Datentypen:

  • Activity-Instanzen, die zerstört wurden, auf die aber weiterhin verwiesen wird.
  • Fragment-Instanzen, die keine gültige FragmentManager haben, auf die aber weiterhin verwiesen wird.

Nur Kotlin-APK-Quellen anhängen

Beim Erstellen von Profilen und Beheben von Fehlern in vorgefertigten APKs können jetzt externe APK-Quellen angehängt werden, die nur Kotlin enthalten. Weitere Informationen finden Sie unter Kotlin-/Java-Quellen anhängen.

Leckerkennung im Memory Profiler

Wenn Sie einen Heap-Dump im Memory Profiler analysieren, können Sie jetzt Profiling-Daten filtern, die in Android Studio möglicherweise auf Speicherlecks für Activity- und Fragment-Instanzen in Ihrer App hinweisen.

Der Filter zeigt unter anderem die folgenden Datentypen:

  • Activity-Instanzen, die zerstört wurden, auf die aber weiterhin verwiesen wird.
  • Fragment-Instanzen, die keine gültige FragmentManager haben, auf die aber weiterhin verwiesen wird.

In bestimmten Situationen, z. B. den folgenden, kann der Filter fälschlicherweise positive Ergebnisse liefern:

  • Ein Fragment wurde erstellt, aber noch nicht verwendet.
  • Ein Fragment wird im Cache gespeichert, aber nicht als Teil eines FragmentTransaction.

Wenn Sie diese Funktion nutzen möchten, müssen Sie zuerst einen Heap-Dump erfassen oder eine Heap-Dump-Datei in Android Studio importieren. Wenn Sie die Fragmente und Aktivitäten sehen möchten, bei denen möglicherweise Speicherlecks auftreten, setzen Sie im Bereich „Heap-Dump“ des Memory Profiler ein Häkchen in das Kästchen Activity/Fragment Leaks.

Profiler: Erkennung von Speicherlecks

Heap-Dump nach Speicherlecks filtern

Emulatoren

Mit Android Studio 3.6 können Sie die Vorteile mehrerer Updates nutzen, die im Android Emulator 29.2.7 und höher enthalten sind.

Verbesserte Unterstützung von Standorten

Der Android-Emulator 29.2.7 und höher bietet zusätzliche Unterstützung für die Emulation von GPS-Koordinaten und Routeninformationen. Wenn Sie die erweiterten Steuerelemente für Emulatoren öffnen, sind die Optionen auf dem Tab „Standort“ jetzt in zwei Tabs unterteilt: Einzelne Punkte und Routen.

Einzelne Punkte

Auf dem Tab Einzelne Punkte können Sie in der Google Maps-Webansicht nach Sehenswürdigkeiten suchen, genau wie in Google Maps auf einem Smartphone oder in einem Browser. Wenn Sie auf der Karte nach einem Ort suchen oder darauf klicken, können Sie ihn speichern, indem Sie unten auf der Karte „Punkt speichern“ auswählen. Alle gespeicherten Orte werden rechts im Fenster Erweiterte Einstellungen aufgeführt.

Wenn Sie den Standort des Emulators auf den Standort festlegen möchten, den Sie auf der Karte ausgewählt haben, klicken Sie rechts unten im Fenster Erweiterte Steuerelemente auf die Schaltfläche Standort festlegen.

Tab „Einzelne Punkte“ in den erweiterten Emulator-Steuerelementen..

Routen

Ähnlich wie auf dem Tab Einzelne Punkte wird auf dem Tab Routen eine Google Maps-Webansicht angezeigt, mit der Sie eine Route zwischen zwei oder mehr Orten erstellen können. So erstellen und speichern Sie eine Route:

  1. Suchen Sie in der Kartenansicht im Textfeld nach dem ersten Ziel Ihrer Route.
  2. Wählen Sie den Ort in den Suchergebnissen aus.
  3. Wählen Sie die Schaltfläche Navigieren aus.
  4. Wählen Sie den Startpunkt Ihrer Route auf der Karte aus.
  5. Optional: Klicken Sie auf Ziel hinzufügen, um Ihrer Route weitere Zwischenstopps hinzuzufügen.
  6. Klicken Sie in der Kartenansicht auf Route speichern, um die Route zu speichern.
  7. Geben Sie einen Namen für die Route ein und klicken Sie auf Speichern.

Wenn Sie simulieren möchten, dass der Emulator der gespeicherten Route folgt, wählen Sie die Route aus der Liste der Gespeicherten Routen aus und klicken Sie unten rechts im Fenster Erweiterte Steuerelemente auf Route abspielen. Wenn Sie die Simulation beenden möchten, klicken Sie auf Route beenden.

Tab „Routen“ in den erweiterten Emulator-Steuerelementen..

Wenn Sie den Emulator kontinuierlich entlang der angegebenen Route simulieren möchten, aktivieren Sie den Schalter neben Wiedergabe wiederholen. Wenn Sie ändern möchten, wie schnell der Emulator der angegebenen Route folgt, wählen Sie eine Option aus dem Drop-down-Menü Wiedergabegeschwindigkeit aus.

Unterstützung für mehrere Displays

Mit dem Android-Emulator können Sie Ihre App jetzt auf mehreren Bildschirmen bereitstellen, die anpassbare Abmessungen unterstützen. So können Sie Apps testen, die Mehrfenster und Mehrfachanzeige unterstützen. Während ein virtuelles Gerät ausgeführt wird, können Sie bis zu zwei zusätzliche Displays hinzufügen:

  1. Öffnen Sie die erweiterten Einstellungen und rufen Sie den Tab Displays auf.

  2. Klicken Sie auf Zweiten Bildschirm hinzufügen, um einen weiteren Bildschirm hinzuzufügen.

  3. Führen Sie im Drop-down-Menü unter Sekundäre Displays einen der folgenden Schritte aus:

  4. Wählen Sie eines der voreingestellten Seitenverhältnisse aus.

  5. Wählen Sie Benutzerdefiniert aus und legen Sie die Höhe, Breite und DPI für Ihr benutzerdefiniertes Display fest.

  6. Optional: Klicken Sie auf Zweites Display hinzufügen, um ein drittes Display hinzuzufügen.

  7. Klicken Sie auf Änderungen übernehmen, um die angegebenen Displays dem laufenden virtuellen Gerät hinzuzufügen.

Auf dem Tab „Emulator Extended Controls Display“ können Sie mehrere Displays hinzufügen.

Neue virtuelle Geräte und Projektvorlagen für Android Automotive OS

Wenn Sie in Android Studio ein neues Projekt erstellen, können Sie jetzt im Assistenten Create New Project auf dem Tab Automotive eine von drei Vorlagen auswählen: No Activity, Media service und Messaging service. Bei bestehenden Projekten können Sie Unterstützung für Android Automotive-Geräte hinzufügen, indem Sie in der Menüleiste File > New > New Module auswählen und dann Automotive Module. Der Assistent Create New Module (Neues Modul erstellen) führt Sie dann durch die Erstellung eines neuen Moduls mit einer der Android Automotive-Projektvorlagen.

Wählen Sie eine Android Automotive-Projektvorlage aus..

Außerdem können Sie jetzt ein Android Virtual Device (AVD) für Android Automotive OS-Geräte erstellen, indem Sie im Assistenten Virtual Device Configuration (Konfiguration des virtuellen Geräts) auf dem Tab Automotive (Automotive) eine der folgenden Optionen auswählen.

  1. Polestar 2: Erstellen Sie ein AVD, das die Head-Unit des Polestar 2 emuliert.
  2. Automotive (1024p landscape): Erstellen Sie ein AVD für generische Android Automotive-Infotainmentsysteme mit 1024 × 768 Pixeln.

Auswahl eines virtuellen Android Automotive-Geräts.

Fortsetzbare SDK-Downloads

Wenn Sie SDK-Komponenten und ‑Tools mit dem SDK Manager herunterladen, können Sie in Android Studio jetzt Downloads fortsetzen, die unterbrochen wurden (z. B. aufgrund eines Netzwerkproblems), anstatt den Download von Anfang an neu zu starten. Diese Verbesserung ist besonders hilfreich bei großen Downloads wie dem Android-Emulator oder System-Images, wenn die Internetverbindung unzuverlässig ist.

Wenn Sie außerdem eine SDK-Downloadaufgabe im Hintergrund ausführen, können Sie den Download jetzt über die Steuerelemente in der Statusleiste pausieren oder fortsetzen.

In der Statusleiste wird eine Aufgabe zum Herunterladen im Hintergrund mit neuen Steuerelementen angezeigt, mit denen Sie den Download pausieren oder fortsetzen können.

In der Statusleiste wird ein Hintergrund-Downloadvorgang mit neuen Steuerelementen angezeigt, mit denen Sie den Download pausieren oder fortsetzen können.

Win32-Unterstützung eingestellt

Die 32-Bit-Version von Android Studio für Windows wird nach Dezember 2019 nicht mehr aktualisiert und nach Dezember 2020 nicht mehr unterstützt. Sie können Android Studio weiterhin verwenden. Wenn Sie jedoch zusätzliche Updates erhalten möchten, müssen Sie ein Upgrade Ihrer Workstation auf eine 64-Bit-Version von Windows durchführen.

Weitere Informationen finden Sie im Blog zur Einstellung von Windows 32-Bit.

Neue Option zur Optimierung der Gradle-Synchronisierungszeit

In früheren Versionen hat Android Studio die Liste aller Gradle-Aufgaben während der Gradle-Synchronisierung abgerufen. Bei großen Projekten kann das Abrufen der Aufgabenliste zu langsamen Synchronisierungszeiten führen.

Um die Leistung der Gradle-Synchronisierung zu verbessern, gehen Sie zu Datei > Einstellungen > Experimentell und wählen Sie „Gradle-Aufgabenliste während der Gradle-Synchronisierung nicht erstellen“ aus.

Wenn Sie diese Option aktivieren, wird die Aufgabenliste während der Synchronisierung nicht erstellt. Dadurch kann die Gradle-Synchronisierung schneller abgeschlossen werden und die Reaktionsfähigkeit der Benutzeroberfläche wird verbessert. Wenn die IDE das Erstellen der Aufgabenliste überspringt, sind die Aufgabenlisten im Gradle-Bereich leer und die automatische Vervollständigung von Aufgabennamen in Build-Dateien funktioniert nicht.

Neuer Ort zum Ein- und Ausschalten des Gradle-Offlinemodus

Wenn Sie den Offlinemodus von Gradle aktivieren oder deaktivieren möchten, wählen Sie zuerst in der Menüleiste View > Tool Windows > Gradle aus. Klicken Sie dann oben im Gradle-Fenster auf Offline-Modus ein/aus Schaltfläche „Offline“ im Gradle-Bereich..

IntelliJ IDEA 2019.2

Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA durch die Version 2019.2 aktualisiert.

Weitere Informationen zu den Verbesserungen aus anderen IntelliJ-Versionen, die kumulativ in Version 2019.2 enthalten sind, finden Sie auf den folgenden Seiten:

Community-Beitragende

Vielen Dank an alle Community-Mitglieder, die uns geholfen haben, Fehler und andere Möglichkeiten zur Verbesserung von Android Studio 3.6 zu finden. Wir möchten uns insbesondere bei den folgenden Personen bedanken, die Fehler gemeldet haben:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andreevici
  • Eli Graber
  • Emin Kokalari
  • Evan Tatarka
  • Frantisek Nagy
  • Greg Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Henning Bunk
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Joe Rogers
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Luke Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Mathew Winters
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Mike Scamell
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nick Firmani
  • Nicklas Ansman Giertz
  • Niclas Kron
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Niklas Baudy
  • Renato Goncalves
  • Roar Grønmo
  • Ruslan Baratov
  • Sinan Kozak
  • Slawomir Czerwinski
  • Stefan Wolf
  • Stephen D'Amico
  • Tao Wang
  • Tomas Chladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • Warren He
  • Yenchi Lin
  • Zac Sweers
  • 3.5 (August 2019)

    Android Studio 3.5 ist eine Hauptversion und das Ergebnis von Project Marble. Mit der Veröffentlichung von Android Studio 3.3 wurde die Project Marble-Initiative gestartet, die sich über mehrere Releases erstreckt und sich auf die Verbesserung von drei Hauptbereichen der IDE konzentriert: Systemintegrität, Funktionsverbesserungen und Fehlerkorrekturen.

    Informationen zu diesen und anderen Project Marble-Updates finden Sie im Blog für Android-Entwickler oder in den folgenden Abschnitten.

    Wir möchten uns auch bei allen Community-Beitragenden bedanken, die uns bei dieser Version geholfen haben.

    3.5.3 (Dezember 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.

    3.5.2 (November 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    3.5.1 (Oktober 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    Project Marble: Systemzustand

    In diesem Abschnitt werden die Änderungen in Android Studio 3.5 beschrieben, die sich auf die Verbesserung des Systemzustands konzentrieren.

    Empfohlene Speichereinstellungen

    Android Studio benachrichtigt Sie jetzt, wenn die Leistung durch Erhöhen des maximalen RAM-Speichers, den Ihr Betriebssystem für Android Studio-Prozesse wie die Core-IDE, den Gradle-Daemon und den Kotlin-Daemon zuweisen soll, verbessert werden könnte. Sie können die empfohlenen Einstellungen entweder übernehmen, indem Sie in der Benachrichtigung auf den Aktionslink klicken, oder sie manuell anpassen, indem Sie Datei > Einstellungen (oder Android Studio > Einstellungen unter macOS) auswählen und dann unter Darstellung & Verhalten > Systemeinstellungen den Bereich Speichereinstellungen suchen. Weitere Informationen finden Sie unter Maximale Heap-Größe.

    Eine Benachrichtigung zu empfohlenen Speichereinstellungen.

    Eine Benachrichtigung zu empfohlenen Speichereinstellungen.

    Bericht zur Speichernutzung

    Arbeitsspeicherprobleme in Android Studio sind manchmal schwer zu reproduzieren und zu melden. Um dieses Problem zu beheben, können Sie in Android Studio einen Bericht zur Speichernutzung generieren. Klicken Sie dazu in der Menüleiste auf Hilfe > Speichernutzung analysieren. Dabei werden die Daten lokal bereinigt, um personenbezogene Informationen zu entfernen, bevor Sie gefragt werden, ob Sie sie an das Android Studio-Team senden möchten, damit die Ursache der Speicherprobleme ermittelt werden kann. Weitere Informationen

    Ein Bericht zur Arbeitsspeichernutzung.

    Ein Bericht zur Arbeitsspeichernutzung.

    Windows: Optimierung der Datei-E/A für Antivirensoftware

    Android Studio prüft jetzt automatisch, ob bestimmte Projektverzeichnisse vom Echtzeit-Virenscan ausgeschlossen sind. Wenn Anpassungen vorgenommen werden können, um die Build-Leistung zu verbessern, werden Sie von Android Studio benachrichtigt und erhalten eine Anleitung zur Optimierung Ihrer Antiviruskonfiguration. Weitere Informationen finden Sie unter Auswirkungen von Antivirensoftware auf die Build-Geschwindigkeit minimieren.

    Project Marble: Optimierung von Funktionen

    In diesem Abschnitt werden die Änderungen in Android Studio 3.5 beschrieben, die sich auf die Verbesserung vorhandener Funktionen konzentrieren.

    Änderungen übernehmen

    Mit „Änderungen anwenden“ können Sie Code- und Ressourcenänderungen an Ihre laufende App übertragen, ohne die App neu zu starten und in einigen Fällen auch ohne die aktuelle Aktivität neu zu starten. „Änderungen anwenden“ nutzt einen völlig neuen Ansatz, um den Status Ihrer App beizubehalten. Im Gegensatz zu Instant Run, bei dem der Bytecode Ihres APKs neu geschrieben wurde, werden bei „Änderungen anwenden“ Klassen mithilfe der Laufzeitinstrumentierung, die in Android 8.0 (API‑Level 26) oder höher unterstützt wird, spontan neu definiert.

    Weitere Informationen

    Die Schaltflächen in der Symbolleiste zum Anwenden von Änderungen.

    Die Schaltflächen in der Symbolleiste zum Anwenden von Änderungen.

    Ablauf der App-Bereitstellung

    Die IDE hat ein neues Drop-down-Menü, mit dem Sie schnell das Gerät auswählen können, auf dem Sie Ihre App bereitstellen möchten. Dieses Menü enthält auch eine neue Option, mit der Sie Ihre App auf mehreren Geräten gleichzeitig ausführen können.

    Drop-down-Menü „Zielgerät“

    Drop-down-Menü „Zielgerät“

    Verbesserte Gradle-Synchronisierung und Cache-Erkennung

    Die IDE erkennt jetzt besser, wenn Gradle den Build-Cache regelmäßig leert, um den Festplattenverbrauch zu reduzieren. In früheren Versionen führte dieser Status dazu, dass die IDE fehlende Abhängigkeiten meldete und die Gradle-Synchronisierung fehlschlug. Die IDE lädt jetzt einfach nach Bedarf Abhängigkeiten herunter, damit die Gradle-Synchronisierung erfolgreich abgeschlossen wird.

    Verbesserte Ausgabe von Build-Fehlern

    Das Fenster Build Symbol „Build-Fenster“ bietet jetzt eine bessere Fehlerberichterstattung, z. B. einen Link zur Datei und Zeile des gemeldeten Fehlers, für die folgenden Build-Prozesse:

    • AAPT-Kompilierung und -Verknüpfung
    • R8 und ProGuard
    • Dexing
    • Zusammenführen von Ressourcen
    • XML-Datei parsen
    • Kompilierung mit Javac, Kotlinc und CMake

    Projekt-Upgrades

    Verbesserte Update-Funktion mit mehr Informationen und Aktionen, die Ihnen beim Aktualisieren der IDE und des Android-Gradle-Plug-ins helfen. Beispielsweise enthalten mehr Synchronisierungs- und Build-Fehler Aktionen, mit denen Sie Fehler bei der Aktualisierung beheben können.

    Sie können die IDE unabhängig von anderen Komponenten wie dem Android-Gradle-Plug-in aktualisieren. Sie können die IDE also bedenkenlos aktualisieren, sobald eine neuere Version verfügbar ist, und andere Komponenten später aktualisieren.

    Layout Editor

    Android Studio 3.5 bietet mehrere Verbesserungen bei der Layoutvisualisierung, ‑verwaltung und ‑interaktion.

    Wenn Sie mit ConstraintLayout arbeiten, wird im Bereich Attribute ein neuer Abschnitt Einschränkungen angezeigt, in dem die Einschränkungsbeziehungen der ausgewählten UI-Komponente aufgeführt sind. Sie können eine Einschränkung entweder auf der Designoberfläche oder in der Liste der Einschränkungen auswählen, um sie in beiden Bereichen hervorzuheben.

    Constraint-Beziehungen für ein ausgewähltes UI-Element.

    Constraint-Beziehungen für ein ausgewähltes UI-Element.

    Ebenso können Sie jetzt eine Einschränkung löschen, indem Sie sie auswählen und die Delete-Taste drücken. Sie können eine Einschränkung auch löschen, indem Sie die Control-Taste (Command auf macOS) gedrückt halten und auf den Anker der Einschränkung klicken. Wenn Sie die Taste Control oder Command gedrückt halten und den Mauszeiger auf einen Anker bewegen, werden alle zugehörigen Einschränkungen rot dargestellt. Das bedeutet, dass Sie darauf klicken können, um sie zu löschen.

    Wenn eine Ansicht ausgewählt ist, können Sie eine Einschränkung erstellen, indem Sie im Bereich Constraint Widget des Felds Attributes auf eines der +-Symbole klicken, wie in der folgenden Abbildung dargestellt. Wenn Sie eine neue Einschränkung erstellen, wird sie im Layout-Editor jetzt automatisch ausgewählt und hervorgehoben. So erhalten Sie sofort visuelles Feedback zu dem, was Sie gerade hinzugefügt haben.

    Eine Animation, die zeigt, wie Sie mit dem Einschränkungs-Widget Einschränkungen erstellen.

    Einschränkungen mit dem Einschränkungs-Widget erstellen .

    Beim Erstellen einer Einschränkung werden im Layout-Editor jetzt nur die infrage kommenden Ankerpunkte angezeigt, an die Sie die Einschränkung vornehmen können. Bisher wurden im Layout-Editor alle Ankerpunkte in allen Ansichten hervorgehoben, unabhängig davon, ob Sie sie als Einschränkung verwenden konnten. Außerdem wird das Ziel der Einschränkung jetzt durch eine blaue Überlagerung hervorgehoben. Diese Hervorhebung ist besonders nützlich, wenn Sie versuchen, eine Komponente einzugrenzen, die sich mit einer anderen überschneidet.

    Eine Animation, die zeigt, wie eine Einschränkung für eine überlappende Komponente in Android Studio 3.4 erstellt wird.

    Einschränkung für eine überlappende Komponente in Android Studio 3.4 erstellen

    Eine Animation, die zeigt, wie eine Einschränkung für eine überlappende Komponente in Android Studio 3.5 erstellt wird.

    Einschränkung für eine überlappende Komponente in Android Studio 3.5 erstellen

    Zusätzlich zu den oben genannten Updates enthält Android Studio 3.5 auch die folgenden Verbesserungen am Layout-Editor:

    • Im Constraint-Widget und im Drop-down-Menü für den Standardrand können Sie jetzt Dimensionsressourcen für Ränder verwenden.
    • In der Symbolleiste des Layout-Editors wurde die Liste der Geräte aktualisiert, die die Größe der Designoberfläche bestimmen. Außerdem wurde das Einrastverhalten beim Ändern der Größe verbessert und die Ziehpunkte zum Ändern der Größe auf der Designoberfläche sind jetzt immer sichtbar. Beim Anpassen der Größe werden neue Overlays angezeigt, die gängige Gerätegrößen darstellen.
    • Der Layout-Editor hat ein neues Farbschema, das die Einheitlichkeit verbessert und den Kontrast zwischen Komponenten, Text und Einschränkungen verringert.
    • Im Blueprint-Modus wird jetzt Text für einige Komponenten unterstützt, für die bisher kein Text angezeigt wurde.

    Weitere Informationen zu diesen Änderungen finden Sie unter Android Studio Project Marble: Layout Editor.

    Datenbindung

    Neben der Unterstützung der inkrementellen Verarbeitung von Annotationen für die Datenbindung bietet die IDE verbesserte Smart-Editor-Funktionen und eine bessere Leistung beim Erstellen von Datenbindungsausdrücken in XML.

    Eine Animation, die die Leistung des Code-Editors in Android Studio 3.4 zeigt.

    Leistung des Code-Editors in Android Studio 3.4

    Eine Animation, die die Leistung des Code-Editors in Android Studio 3.5 zeigt.

    Die Leistung bei der Codebearbeitung in Android Studio 3.5 wurde verbessert.

    Verbesserte Unterstützung für C/C++-Projekte

    Android Studio 3.5 enthält mehrere Änderungen, die die Unterstützung für C/C++-Projekte verbessern.

    Verbesserungen am Bereich „Build-Varianten“ für die Synchronisierung einzelner Varianten

    Sie können jetzt sowohl die aktive Build-Variante als auch das aktive ABI im Bereich Build-Varianten angeben. Dieses Feature vereinfacht die Build-Konfiguration pro Modul und kann auch die Gradle-Synchronisierungsleistung verbessern.

    Weitere Informationen finden Sie unter Build-Variante ändern.

    Der Bereich „Build-Varianten“ mit der Auswahl einer einzelnen Variante nach ABI.

    Das Feld „Build-Varianten“ mit der Auswahl einer einzelnen Variante nach ABI.

    Nebeneinanderliegende Versionen des NDK

    Sie können jetzt mehrere Versionen des NDK nebeneinander verwenden. Diese Funktion bietet Ihnen mehr Flexibilität bei der Konfiguration Ihrer Projekte, z. B. wenn Sie Projekte haben, die verschiedene Versionen des NDK auf derselben Maschine verwenden.

    Wenn in Ihrem Projekt das Android Gradle-Plug-in 3.5.0 oder höher verwendet wird, können Sie auch die Version des NDK angeben, die für jedes Modul in Ihrem Projekt verwendet werden soll. Mit dieser Funktion können Sie reproduzierbare Builds erstellen und Inkompatibilitäten zwischen NDK-Versionen und dem Android-Gradle-Plugin minimieren.

    Weitere Informationen finden Sie unter NDK, CMake und LLDB installieren und konfigurieren.

    ChromeOS-Support

    Android Studio unterstützt jetzt offiziell ChromeOS-Geräte wie das HP Chromebook x360 14, das Acer Chromebook 13/Spin 13 und andere, die in den Systemanforderungen aufgeführt sind. Laden Sie Android Studio auf Ihr kompatibles ChromeOS-Gerät herunter und folgen Sie der Installationsanleitung.

    Hinweis: In Android Studio unter ChromeOS kann Ihre App derzeit nur auf einem verbundenen Hardwaregerät bereitgestellt werden. Weitere Informationen

    Bedingte Bereitstellung von Funktionsmodulen

    Mit der bedingten Bereitstellung können Sie bestimmte Anforderungen an die Gerätekonfiguration festlegen, damit Funktionsmodule während der App-Installation automatisch heruntergeladen werden. Sie können beispielsweise ein Funktionsmodul konfigurieren, das Funktionen für Augmented Reality (AR) enthält, die bei der Installation der App nur für Geräte verfügbar sind, die AR unterstützen.

    Mit diesem Bereitstellungsmechanismus kann der Download eines Moduls bei der Installation der App derzeit anhand der folgenden Gerätekonfigurationen gesteuert werden:

    • Hardware- und Softwarefunktionen des Geräts, einschließlich der OpenGL ES-Version
    • Land des Nutzers
    • API-Ebene

    Wenn ein Gerät nicht alle von Ihnen angegebenen Anforderungen erfüllt, wird das Modul bei der Installation der App nicht heruntergeladen. Ihre App kann jedoch später mit der Play Core Library anfordern, dass das Modul bei Bedarf heruntergeladen wird. Weitere Informationen finden Sie unter Bedingte Zustellung konfigurieren.

    IntelliJ IDEA 2019.1

    Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA bis zur Version 2019.1 aktualisiert, z. B. mit der Möglichkeit, das Design anzupassen.

    Die letzte IntelliJ-Version, die in Android Studio enthalten war, war 2018.3.4. Weitere Informationen zu den Verbesserungen aus anderen IntelliJ-Versionen, die kumulativ in dieser Version von Android Studio enthalten sind, finden Sie in den folgenden Bugfix-Updates:

    Updates für das Android-Gradle-Plug-in 3.5.0

    Informationen zu den Neuerungen im Android-Gradle-Plug-in 3.5.0, z. B. verbesserte Unterstützung für die inkrementelle Verarbeitung von Annotationen und für zwischenspeicherbare Unit-Tests, finden Sie in den Versionshinweisen.

    Community-Beitragende

    Vielen Dank an alle Community-Mitglieder, die uns geholfen haben, Fehler und andere Möglichkeiten zur Verbesserung von Android Studio 3.5 zu finden. Wir möchten uns insbesondere bei den folgenden Personen bedanken, die P0- und P1-Bugs gemeldet haben:

    3.4 (April 2019)

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

    3.4.2 (Juli 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    3.4.1 (Mai 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    Bekannte Probleme mit Version 3.4.0

    • Das Profiling ist deaktiviert, wenn Sie Ihre App auf einem Gerät mit Android Q Beta bereitstellen.

    • Bei Verwendung der Data Binding Library schlägt LiveDataListener.onChanged() möglicherweise mit einem NPE fehl. Eine Fehlerbehebung für dieses Problem wird in Android Studio 3.4.1 enthalten sein und ist bereits in der neuesten Vorabversion von Android Studio 3.5 verfügbar. (Siehe Problem 122066788)

    IntelliJ IDEA 2018.3.4

    Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA über die Version 2018.3.4 aktualisiert.

    Aktualisierungen des Android-Gradle-Plug-ins 3.4.0

    Informationen zu den Neuerungen im Android-Gradle-Plug-in 3.4.0 finden Sie in den Versionshinweisen.

    Neues Dialogfeld „Projektstruktur“

    Mit dem neuen Dialogfeld „Projektstruktur“ (Project Structure Dialog, PSD) können Sie Abhängigkeiten einfacher aktualisieren und verschiedene Aspekte Ihres Projekts konfigurieren, z. B. Module, Build-Varianten, Signaturkonfigurationen und Build-Variablen.

    Sie können die PSD öffnen, indem Sie in der Menüleiste Datei > Projektstruktur auswählen. Sie können die PSD auch öffnen, indem Sie unter Windows und Linux Ctrl+Shift+Alt+S oder unter macOS Command+; (Semikolon) drücken. Unten finden Sie Beschreibungen einiger neuer und aktualisierter Abschnitte der PSD.

    Variablen

    Im neuen Bereich „Variablen“ des PSD können Sie Build-Variablen erstellen und verwalten, z. B. um Versionsnummern für Abhängigkeiten in Ihrem Projekt einheitlich zu halten.

    • Sie können Build-Variablen, die bereits in den Gradle-Build-Skripts Ihres Projekts vorhanden sind, schnell aufrufen und bearbeiten.
    • Fügen Sie neue Build-Variablen direkt aus der PSD auf Projekt- oder Modulebene hinzu.

    Hinweis:Wenn in Ihren vorhandenen Build-Konfigurationsdateien Werte über komplexe Groovy-Scripts zugewiesen werden, können Sie diese Werte möglicherweise nicht über die PSD bearbeiten. Außerdem können Sie Build-Dateien, die in Kotlin geschrieben wurden, nicht mit dem PSD bearbeiten.

    Module

    Im Bereich Module können Sie Properties konfigurieren, die auf alle Build-Varianten in einem vorhandenen Modul angewendet werden, oder Ihrem Projekt neue Module hinzufügen. Hier können Sie beispielsweise defaultConfig-Attribute konfigurieren oder Signaturkonfigurationen verwalten.

    Abhängigkeiten

    So prüfen und visualisieren Sie jede Abhängigkeit im Abhängigkeitsdiagramm Ihres Projekts, wie sie von Gradle während der Projektsynchronisierung aufgelöst wurde:

    1. Wählen Sie im linken Bereich des PSD Dependencies (Abhängigkeiten) aus.
    2. Wählen Sie im Bereich Module ein Modul aus, dessen aufgelöste Abhängigkeiten Sie prüfen möchten.
    3. Öffnen Sie auf der rechten Seite des PSD den Bereich Resolved Dependencies (Aufgelöste Abhängigkeiten), der unten dargestellt ist.

    Sie können auch schnell nach Abhängigkeiten für Ihr Projekt suchen und sie hinzufügen. Wählen Sie dazu zuerst ein Modul im Bereich Dependencies (Abhängigkeiten) des PSD aus, klicken Sie im Bereich Declared Dependencies (Deklarierte Abhängigkeiten) auf die Schaltfläche (+) und wählen Sie den Typ der Abhängigkeit aus, die Sie hinzufügen möchten.

    Je nach ausgewähltem Abhängigkeitstyp wird ein Dialogfeld ähnlich dem unten stehenden angezeigt, in dem Sie die Abhängigkeit dem Modul hinzufügen können.

    Build-Varianten

    In diesem Abschnitt des PSD erstellen und konfigurieren Sie Build-Varianten und Produktvarianten für jedes Modul in Ihrem Projekt. Sie können Manifestplatzhalter und ProGuard-Dateien hinzufügen, Signaturschlüssel zuweisen und vieles mehr.

    Vorschläge

    Im Bereich Vorschläge finden Sie Vorschläge für Aktualisierungen von Projektabhängigkeiten und Build-Variablen (siehe unten).

    Neuer Resource Manager

    Der Ressourcen-Manager ist ein neues Toolfenster zum Importieren, Erstellen, Verwalten und Verwenden von Ressourcen in Ihrer App. Sie können das Toolfenster über die Menüleiste öffnen, indem Sie Ansicht > Toolfenster > Ressourcen-Manager auswählen. Mit dem Ressourcenmanager haben Sie folgende Möglichkeiten:

    • Ressourcen visualisieren:Sie können Drawables, Farben und Layouts in der Vorschau ansehen, um schnell die benötigten Ressourcen zu finden.
    • Bulk-Import:Sie können mehrere Drawable-Assets gleichzeitig importieren, indem Sie sie entweder per Drag-and-drop in das Toolfenster Resource Manager ziehen oder den Assistenten Drawables importieren verwenden. Klicken Sie zum Aufrufen des Assistenten links oben im Toolfenster auf die Schaltfläche (+) und wählen Sie dann im Drop-down-Menü Drawables importieren aus.
    • SVGs in VectorDrawable-Objekte konvertieren:Mit dem Assistenten Drawables importieren können Sie Ihre SVG-Bilder in VectorDrawable-Objekte konvertieren.
    • Assets per Drag-and-drop einfügen:Im Toolfenster Ressourcenmanager können Sie Drawables per Drag-and-drop in die Design- und XML-Ansicht des Layout-Editors einfügen.
    • Alternative Versionen ansehen:Sie können jetzt alternative Versionen Ihrer Ressourcen ansehen, indem Sie im Fenster Tool doppelt auf eine Ressource klicken. In dieser Ansicht sehen Sie die verschiedenen Versionen, die Sie erstellt haben, und die enthaltenen Qualifizierer.
    • Kachel- und Listenansicht:Sie können die Ansicht im Toolfenster ändern, um Ihre Ressourcen in verschiedenen Anordnungen zu visualisieren.

    Weitere Informationen zum Verwalten von App-Ressourcen

    Build-IDs beim Profiling und Debuggen von APKs prüfen

    Wenn Sie Debugging-Symboldateien für die gemeinsam genutzten .so-Bibliotheken in Ihrem APK bereitstellen, prüft Android Studio, ob die Build-ID der bereitgestellten Symboldateien mit der Build-ID der .so-Bibliotheken im APK übereinstimmt.

    Wenn Sie die nativen Bibliotheken in Ihrem APK mit einer Build-ID erstellen, prüft Android Studio, ob die Build-ID in Ihren Symboldateien mit der Build-ID in Ihren nativen Bibliotheken übereinstimmt. Bei einer Abweichung werden die Symboldateien abgelehnt. Wenn Sie keinen Build mit einer Build-ID erstellt haben, kann es zu Problemen beim Debugging kommen, wenn Sie falsche Symboldateien angeben.

    R8 standardmäßig aktiviert

    R8 führt Desugaring, Shrinking, Obfuscating, Optimizing und Dexing in einem Schritt aus. Das führt zu erheblichen Verbesserungen der Build-Leistung. R8 wurde im Android-Gradle-Plug-in 3.3.0 eingeführt und ist jetzt standardmäßig für App- und Android-Bibliotheksprojekte mit Plug-in 3.4.0 und höher aktiviert.

    Das Bild unten bietet einen allgemeinen Überblick über den Kompilierungsprozess vor der Einführung von R8.

    Vor R8 war ProGuard ein anderer Kompilierungsschritt als Dexing und Desugaring.

    Mit R8 werden Desugaring, Shrinking, Verschleierung, Optimierung und Dexing (D8) jetzt in einem Schritt ausgeführt, wie unten dargestellt.

    Mit R8 werden Desugaring, Shrinking, Obfuscating, Optimizing und Dexing in einem einzigen Kompilierungsschritt ausgeführt.

    R8 ist so konzipiert, dass es mit Ihren vorhandenen ProGuard-Regeln funktioniert. Sie müssen also wahrscheinlich nichts weiter tun, um von R8 zu profitieren. Da es sich jedoch um eine andere Technologie als ProGuard handelt, die speziell für Android-Projekte entwickelt wurde, kann es beim Verkleinern und Optimieren dazu kommen, dass Code entfernt wird, der von ProGuard möglicherweise nicht entfernt worden wäre. In dieser unwahrscheinlichen Situation müssen Sie möglicherweise zusätzliche Regeln hinzufügen, damit der Code in der Build-Ausgabe enthalten bleibt.

    Wenn Sie Probleme mit R8 haben, lesen Sie die Häufig gestellten Fragen zur R8-Kompatibilität, um zu prüfen, ob es eine Lösung für Ihr Problem gibt. Wenn keine Lösung dokumentiert ist, melden Sie bitte einen Fehler. Sie können R8 deaktivieren, indem Sie eine der folgenden Zeilen in die Datei gradle.properties Ihres Projekts einfügen:

        # Disables R8 for Android Library modules only.
        android.enableR8.libraries = false
        # Disables R8 for all modules.
        android.enableR8 = false
        
      

    Hinweis:Wenn Sie für einen bestimmten Build-Typ useProguard in der Datei build.gradle Ihres App-Moduls auf false festlegen, verwendet das Android-Gradle-Plug-in R8, um den Code Ihrer App für diesen Build-Typ zu verkleinern. Das gilt unabhängig davon, ob Sie R8 in der Datei gradle.properties Ihres Projekts deaktivieren.

    Alle von der Navigationskomponente unterstützten Argumenttypen werden jetzt im Navigationseditor unterstützt. Weitere Informationen zu unterstützten Typen finden Sie unter Daten zwischen Zielen übergeben.

    Verbesserungen am Layout Editor {:#layout-editor}

    Der Bereich Attribute im Layout-Editor wurde in eine einzelne Seite mit Abschnitten umgewandelt, die Sie maximieren können, um konfigurierbare Attribute aufzurufen. Der Bereich Attribute enthält außerdem die folgenden Aktualisierungen:

    • Im neuen Bereich Deklarierte Attribute werden die Attribute aufgeführt, die in der Layoutdatei angegeben sind. Außerdem können Sie hier schnell neue Attribute hinzufügen.
    • Im Bereich Attribute werden jetzt auch Indikatoren neben jedem Attribut angezeigt. Sie sind ausgefüllt, wenn der Wert des Attributs ein Ressourcenverweis ist, und leer, wenn dies nicht der Fall ist.
    • Attribute mit Fehlern oder Warnungen werden jetzt hervorgehoben. Rote Markierungen weisen auf Fehler hin, z. B. wenn Sie ungültige Layoutwerte verwenden. Orange Markierungen weisen auf Warnungen hin, z. B. wenn Sie hartcodierte Werte verwenden.

    Neue Intention-Aktion zum schnellen Importieren von Abhängigkeiten

    Wenn Sie bestimmte Jetpack- und Firebase-Klassen in Ihrem Code verwenden, wird eine neue Intention-Aktion vorgeschlagen, mit der Sie die erforderliche Gradle-Bibliotheksabhängigkeit zu Ihrem Projekt hinzufügen können, sofern Sie dies noch nicht getan haben. Wenn Sie beispielsweise auf die Klasse WorkManager verweisen, ohne zuerst die erforderliche android.arch.work:work-runtime-Abhängigkeit zu importieren, können Sie dies mit einer Intention-Aktion ganz einfach mit einem einzigen Klick tun, wie unten dargestellt.

    Da die Support-Bibliothek in Jetpack in separate Pakete umgepackt wurde, die einfacher zu verwalten und zu aktualisieren sind, können Sie mit dieser Intent-Aktion schnell nur die Abhängigkeiten hinzufügen, die Sie für die Jetpack-Komponenten benötigen, die Sie verwenden möchten.

    3.3 (Januar 2019)

    Android Studio 3.3 ist ein Hauptrelease mit vielen neuen Funktionen und Verbesserungen.

    3.3.2 (März 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    3.3.1 (Februar 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.

    IntelliJ IDEA 2018.2.2

    Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA durch die Version 2018.2.2 aktualisiert.

    Updates für das Android-Gradle-Plug-in

    Informationen zu den Neuerungen im Android-Gradle-Plug-in finden Sie in den Versionshinweisen.

    Mit dem Navigationseditor können Sie die Navigation in Ihrer App mithilfe der Navigation Architecture Component schnell visualisieren und erstellen.

    Weitere Informationen finden Sie unter Navigation mit der Navigation Architecture Component implementieren.

    Nicht verwendete Android Studio-Verzeichnisse löschen

    Wenn Sie eine Hauptversion von Android Studio zum ersten Mal ausführen, sucht sie nach Verzeichnissen mit Caches, Einstellungen, Indexen und Logs für Versionen von Android Studio, für die keine entsprechende Installation gefunden werden kann. Im Dialogfeld Delete Unused Android Studio Directories (Nicht verwendete Android Studio-Verzeichnisse löschen) werden dann die Speicherorte, Größen und Änderungszeiten dieser nicht verwendeten Verzeichnisse angezeigt. Außerdem wird eine Option zum Löschen der Verzeichnisse bereitgestellt.

    Die Verzeichnisse, die Android Studio für das Löschen in Betracht zieht, sind unten aufgeführt:

    • Linux: ~/.AndroidStudio[Preview]X.Y
    • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
    • Windows: %USER%.AndroidStudio[Preview]X.Y

    Verbesserungen bei Lint

    Wenn Lint über Gradle aufgerufen wird, ist es deutlich schneller. Bei größeren Projekten kann die Ausführung von Lint bis zu viermal schneller erfolgen.

    Assistent zum Erstellen eines neuen Projekts

    Der Assistent Create New Project hat ein neues Design und enthält Updates, die das Erstellen neuer Android Studio-Projekte vereinfachen.

    Weitere Informationen finden Sie unter Projekt erstellen.

    Profiler-Updates

    Android Studio 3.3 enthält Updates für mehrere der einzelnen Profiler.

    Bessere Leistung

    Basierend auf dem Feedback von Nutzern wurde die Rendering-Leistung bei der Verwendung der Profiler erheblich verbessert. Bitte geben Sie weiterhin Feedback, insbesondere wenn weiterhin Leistungsprobleme auftreten.

    Optionen für das Tracking der Speicherzuweisung im Profiler

    Um die App-Leistung während des Profilings zu verbessern, werden im Memory Profiler jetzt standardmäßig in regelmäßigen Abständen Stichproben von Speicherzuweisungen genommen. Falls gewünscht, können Sie dieses Verhalten ändern, indem Sie beim Testen auf Geräten mit Android 8.0 (API‑Level 26) oder höher das Drop-down-Menü Zuweisungs-Tracking verwenden.

    Im Drop-down-Menü Zuweisungs-Tracking können Sie einen der folgenden Modi auswählen:

    • Vollständig:Erfasst alle Speicherzuweisungen für Objekte. Wenn Ihre App viele Objekte zuweist, kann es bei der Profilerstellung zu erheblichen Leistungsproblemen kommen.

    • Stichproben:Erfasst eine regelmäßige Stichprobe der Speicherzuweisungen für Objekte. Dies ist das Standardverhalten und hat weniger Auswirkungen auf die App-Leistung während der Profilerstellung. Bei Apps, die in kurzer Zeit viele Objekte zuweisen, können Leistungsprobleme auftreten.

    • Aus:Die Speicherzuweisung wird deaktiviert. Wenn dieser Modus noch nicht ausgewählt ist, wird er automatisch aktiviert, wenn Sie eine CPU-Aufzeichnung erstellen. Nach Abschluss der Aufzeichnung wird die vorherige Einstellung wiederhergestellt. Sie können dieses Verhalten im Dialogfeld für die CPU-Aufzeichnungskonfiguration ändern.

      Das Tracking betrifft sowohl Java-Objekte als auch JNI-Referenzen.

    Daten zum Rendern von Frames ansehen

    Im CPU-Profiler können Sie jetzt sehen, wie lange Ihre Java-App für das Rendern jedes Frames im Haupt-UI-Thread und im RenderThread benötigt. Diese Daten können hilfreich sein, wenn Sie Engpässe untersuchen, die zu Rucklern in der Benutzeroberfläche und niedrigen Framerates führen. Beispiel: Jeder Frame, für den mehr als die 16 ms benötigt werden, die für eine flüssige Framerate erforderlich sind, wird rot dargestellt.

    Wenn Sie Daten zum Rendern von Frames sehen möchten, zeichnen Sie einen Trace auf. Verwenden Sie dazu eine Konfiguration, mit der Sie Systemaufrufe aufzeichnen können. Nachdem Sie den Trace aufgezeichnet haben, suchen Sie in der Zeitachse der Aufzeichnung im Abschnitt FRAMES (siehe unten) nach Informationen zu den einzelnen Frames.

    Weitere Informationen zum Untersuchen und Beheben von Problemen mit der Framerate finden Sie unter Langsame Darstellung.

    Fragmente in der Ereigniszeitachse

    In der Ereigniszeitachse wird jetzt angezeigt, wann Fragmente angehängt und getrennt werden. Wenn Sie den Mauszeiger auf ein Fragment bewegen, wird außerdem eine Kurzinfo mit dem Fragmentstatus angezeigt.

    Formatierter Text für Verbindungspayloads im Network Profiler ansehen

    Bisher wurde im Netzwerk-Profiler nur Rohtext aus Verbindungsnutzlasten angezeigt. In Android Studio 3.3 werden bestimmte Texttypen, darunter JSON, XML und HTML, jetzt standardmäßig formatiert. Klicken Sie auf den Tabs Antwort und Anfrage auf den Link Geprüft ansehen, um formatierten Text anzuzeigen, und auf den Link Quelle ansehen, um Rohtext anzuzeigen.

    Weitere Informationen finden Sie unter Netzwerkverkehr mit Network Profiler untersuchen.

    Automatischer Download von SDK-Komponenten

    Wenn für Ihr Projekt eine SDK-Komponente von den SDK-Plattformen, dem NDK oder CMake erforderlich ist, versucht Gradle jetzt, die erforderlichen Pakete automatisch herunterzuladen, sofern Sie zuvor alle zugehörigen Lizenzvereinbarungen mit dem SDK Manager akzeptiert haben.

    Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.

    Unterstützung für Clang-Tidy

    Android Studio unterstützt jetzt die Analyse von statischem Code mit Clang-Tidy für Projekte mit nativem Code. Wenn Sie die Unterstützung für Clang-Tidy aktivieren möchten, aktualisieren Sie Ihr NDK auf r18 oder höher.

    Sie können die Prüfungen dann aktivieren oder reaktivieren, indem Sie das Dialogfeld Einstellungen oder Einstellungen öffnen und zu Editor > Prüfungen > C/C++ > Allgemein > Clang-Tidy gehen. Wenn Sie diese Überprüfung im Dialogfeld Einstellungen oder Einstellungen auswählen, wird im Abschnitt Option des rechten Bereichs auch die Liste der aktivierten und deaktivierten Clang-Tidy-Prüfungen angezeigt. Wenn Sie zusätzliche Prüfungen aktivieren möchten, fügen Sie sie der Liste hinzu und klicken Sie auf Übernehmen.

    Wenn Sie Clang-Tidy mit zusätzlichen Optionen konfigurieren möchten, klicken Sie auf Clang-Tidy-Prüfungsoptionen konfigurieren und fügen Sie sie im angezeigten Dialogfeld hinzu.

    Entfernung von Optionen für die C++-Anpassung

    Die folgenden Optionen wurden aus dem Dialogfeld C++-Unterstützung anpassen entfernt:

    • Unterstützung von Ausnahmen (-fexceptions)
    • Unterstützung von Informationen zum Laufzeittyp (-ftti)

    Die entsprechenden Verhaltensweisen sind für alle Projekte aktiviert, die über Android Studio erstellt wurden.

    CMake-Version 3.10.2

    CMake-Version 3.10.2 ist jetzt im SDK Manager enthalten. Beachten Sie, dass Gradle standardmäßig weiterhin Version 3.6.0 verwendet.

    Wenn Sie eine CMake-Version für Gradle angeben möchten, fügen Sie der Datei build.gradle Ihres Moduls Folgendes hinzu:

        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "3.10.2"
                }
            }
        }
        
      

    Weitere Informationen zum Konfigurieren von CMake in build.gradle finden Sie unter Gradle manuell konfigurieren.

    Neue „+“-Syntax zum Angeben von CMake-Mindestversionen

    Wenn Sie in der Datei build.gradle Ihres Hauptmoduls eine Version von CMake angeben, können Sie jetzt ein „+“ anhängen, um das Verhalten des CMake-Befehls cmake_minimum_required() zu übernehmen.

    Achtung:Die Verwendung der „+“-Syntax mit anderen Build-Abhängigkeiten wird nicht empfohlen, da dynamische Abhängigkeiten zu unerwarteten Versionsaktualisierungen führen und es schwierig machen können, Versionsunterschiede zu beheben.

    Android App Bundles unterstützen jetzt Instant Apps

    Mit Android Studio können Sie jetzt Android App Bundles mit vollständiger Unterstützung für Google Play Instant erstellen. Das bedeutet, dass Sie jetzt sowohl installierte Apps als auch Instant-Apps in einem einzigen Android Studio-Projekt erstellen und bereitstellen und in ein einziges Android App Bundle aufnehmen können.

    Wenn Sie ein neues Android Studio-Projekt über das Dialogfeld Create New Project (Neues Projekt erstellen) erstellen, müssen Sie das Kästchen neben Configure your project > This project will support instant apps (Projekt konfigurieren > Dieses Projekt unterstützt Instant-Apps) aktivieren. Android Studio erstellt dann wie gewohnt ein neues App-Projekt, fügt aber die folgenden Eigenschaften in das Manifest ein, um dem Basismodul Ihrer App Unterstützung für Instant Apps hinzuzufügen:

        <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
      

    Anschließend können Sie ein Modul mit Sofort-Funktion erstellen, indem Sie in der Menüleiste File > New > New Module auswählen und dann im Dialogfeld Create New Module die Option Instant Dynamic Feature Module auswählen. Wenn Sie dieses Modul erstellen, wird auch das Basismodul Ihrer App sofort aktiviert.

    Wenn Sie Ihre App als Instant-App auf einem lokalen Gerät bereitstellen möchten, bearbeiten Sie Ihre Ausführungskonfiguration und setzen Sie ein Häkchen neben Allgemein > Als Instant-App bereitstellen.

    Synchronisierung von Projekten mit einer Variante

    Das Synchronisieren Ihres Projekts mit Ihrer Build-Konfiguration ist ein wichtiger Schritt, damit Android Studio die Struktur Ihres Projekts versteht. Bei großen Projekten kann dieser Vorgang jedoch zeitaufwendig sein. Wenn in Ihrem Projekt mehrere Build-Varianten verwendet werden, können Sie die Projektsynchronisierung jetzt optimieren, indem Sie sie auf die aktuell ausgewählte Variante beschränken.

    Sie benötigen Android Studio 3.3 oder höher mit dem Android Gradle-Plug-in 3.3.0 oder höher, um diese Optimierung zu aktivieren. Wenn Sie diese Anforderungen erfüllen, werden Sie in der IDE aufgefordert, diese Optimierung zu aktivieren, wenn Sie Ihr Projekt synchronisieren. Die Optimierung ist auch für neue Projekte standardmäßig aktiviert.

    Wenn Sie diese Optimierung manuell aktivieren möchten, klicken Sie auf File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle auf einem Mac) und aktivieren Sie das Kästchen Only sync the active variant.

    Hinweis:Diese Optimierung unterstützt derzeit nur Projekte, die nur die Programmiersprache Java enthalten. Wenn die IDE beispielsweise Kotlin- oder C++-Code in Ihrem Projekt erkennt, wird diese Optimierung nicht automatisch aktiviert. Sie sollten sie auch nicht manuell aktivieren.

    Weitere Informationen finden Sie unter Synchronisierung von Projekten mit einer einzelnen Variante aktivieren.

    Schnelles Feedback geben

    Wenn Sie die Freigabe von Nutzungsstatistiken zur Verbesserung von Android Studio aktiviert haben, sehen Sie diese beiden neuen Symbole in der Statusleiste unten im IDE-Fenster:

    Klicken Sie einfach auf das Symbol, das Ihre aktuelle Erfahrung mit der IDE am besten beschreibt. In diesem Fall sendet die IDE Nutzungsstatistiken, die dem Android Studio-Team helfen, Ihre Meinung besser zu verstehen. In einigen Fällen, z. B. wenn Sie angeben, dass Sie negative Erfahrungen mit der IDE gemacht haben, haben Sie die Möglichkeit, zusätzliches Feedback zu geben.

    Falls noch nicht geschehen, können Sie die Freigabe von Nutzungsstatistiken aktivieren, indem Sie das Dialogfeld Einstellungen > Einstellungen (auf einem Mac) öffnen, zu Darstellung & Verhalten > Systemeinstellungen > Datenfreigabe navigieren und Nutzungsstatistiken an Google senden aktivieren.

    3.2 (September 2018)

    Android Studio 3.2 ist eine Hauptversion mit vielen neuen Funktionen und Verbesserungen.

    3.2.1 (Oktober 2018)

    Dieses Update für Android Studio 3.2 enthält die folgenden Änderungen und Fehlerkorrekturen:

    • Die gebündelte Kotlin-Version ist jetzt 1.2.71.
    • Die Standardversion der Build-Tools ist jetzt 28.0.3.
    • In der Navigationsbibliothek wurden Argumenttypen von type in argType umbenannt.
    • Folgende Fehler wurden behoben:
      • Bei Verwendung der Data Binding-Bibliothek führten Variablennamen mit Unterstrichen zu Kompilierungsfehlern.
      • CMake hat dazu geführt, dass IntelliSense und andere CLion-Funktionen fehlgeschlagen sind.
      • Das Hinzufügen von SliceProvider hat Kompilierungsfehler in Projekten verursacht, in denen keine androidx.*-Bibliotheken verwendet wurden.
      • Einige Kotlin-Einheitentests wurden nicht ausgeführt.
      • Ein Problem mit der Datenbindung hat zu einem PsiInvalidElementAccessException geführt.
      • <merge>-Elemente führten manchmal zum Absturz des Layout-Editors.

    Bekannte Probleme mit Version 3.2.0

    Hinweis:Diese Probleme wurden in Android Studio 3.2.1 behoben.

    • Wir raten dringend davon ab, Kotlin 1.2.70 zu verwenden.

      In Kotlin 1.2.61 wurde ein Fehler behoben, der dazu führen konnte, dass Android Studio nicht mehr reagierte. Kotlin 1.2.70 enthält diesen Fix jedoch nicht.

      In Kotlin-Versionen ab 1.2.71 ist diese Korrektur jedoch enthalten.

    • Normalerweise müssen Sie die Version der Build-Tools nicht angeben. Wenn Sie jedoch das Android Gradle-Plug-in 3.2.0 mit renderscriptSupportModeEnabled auf true verwenden, müssen Sie Folgendes in die build.gradle-Datei jedes Moduls einfügen:

      android.buildToolsVersion "28.0.3"

    „Neu bei Assistant“

    Ein neuer Assistent informiert Sie über die neuesten Änderungen in Android Studio.

    Der Assistent wird geöffnet, wenn Sie Android Studio nach einer Neuinstallation oder einem Update starten und neue Informationen angezeigt werden können. Sie können den Assistenten auch öffnen, indem Sie Hilfe > Neuigkeiten in Android Studio auswählen.

    Android Jetpack

    Android Jetpack beschleunigt die Android-Entwicklung mit Komponenten, Tools und Anleitungen, die sich wiederholende Aufgaben eliminieren und es Ihnen ermöglichen, schneller und einfacher hochwertige, testbare Apps zu entwickeln. Android Studio enthält die folgenden Updates zur Unterstützung von Jetpack. Weitere Informationen finden Sie in der Jetpack-Dokumentation.

    Der neue Navigationseditor ist in die Navigationskomponenten von Android Jetpack integriert und bietet eine grafische Ansicht zum Erstellen der Navigationsstruktur Ihrer App. Der Navigationseditor vereinfacht das Design und die Implementierung der Navigation zwischen In-App-Zielen.

    In Android Studio 3.2 ist der Navigationseditor eine experimentelle Funktion. Wenn Sie den Navigationseditor aktivieren möchten, klicken Sie auf Datei > Einstellungen (Android Studio > Einstellungen unter Mac), wählen Sie im linken Bereich die Kategorie Experimentell aus, setzen Sie ein Häkchen neben Navigationseditor aktivieren und starten Sie Android Studio neu.

    Weitere Informationen finden Sie in der Dokumentation zum Navigationseditor.

    AndroidX-Migration

    Im Rahmen von Jetpack migrieren wir die Android-Supportbibliotheken zu einer neuen Android-Erweiterungsbibliothek mit dem Namespace androidx. Weitere Informationen finden Sie in der AndroidX-Übersicht.

    Android Studio 3.2 unterstützt Sie mit einer neuen Migrationsfunktion bei diesem Prozess.

    Wenn Sie ein vorhandenes Projekt zu AndroidX migrieren möchten, wählen Sie Refactor > Migrate to AndroidX aus. Wenn Sie Maven-Abhängigkeiten haben, die nicht in den AndroidX-Namespace migriert wurden, konvertiert das Android Studio-Buildsystem diese Projektabhängigkeiten automatisch.

    Das Android-Gradle-Plug-in bietet die folgenden globalen Flags, die Sie in der Datei gradle.properties festlegen können:

    • android.useAndroidX: Wenn dieses Flag auf true festgelegt ist, bedeutet das, dass Sie AndroidX ab sofort verwenden möchten. Wenn das Flag nicht vorhanden ist, verhält sich Android Studio so, als wäre es auf false gesetzt.
    • android.enableJetifier: Wenn dieses Flag auf true gesetzt ist, bedeutet das, dass Sie Tool-Unterstützung (durch das Android-Gradle-Plug-in) benötigen, um vorhandene Drittanbieterbibliotheken automatisch so zu konvertieren, als wären sie für AndroidX geschrieben worden. Wenn das Flag nicht vorhanden ist, verhält sich Android Studio so, als wäre es auf false gesetzt.

    Beide Flags werden auf true gesetzt, wenn Sie den Befehl Migrate to AndroidX verwenden.

    Wenn Sie sofort mit der Verwendung von AndroidX-Bibliotheken beginnen möchten und keine vorhandenen Drittanbieterbibliotheken konvertieren müssen, können Sie das Flag android.useAndroidX auf true und das Flag android.enableJetifier auf false festlegen.

    Android App Bundle

    Das Android App Bundle ist ein neues Uploadformat, das den gesamten kompilierten Code und alle Ressourcen Ihrer App enthält. Die APK-Generierung und ‑Signierung wird jedoch an den Google Play Store übertragen.

    Das neue App-Auslieferungsmodell von Google Play verwendet dann Ihr App-Bundle, um optimierte APKs für die Gerätekonfiguration jedes Nutzers zu generieren und bereitzustellen. So laden Nutzer nur den Code und die Ressourcen herunter, die sie zum Ausführen Ihrer App benötigen. Sie müssen nicht mehr mehrere APKs erstellen, signieren und verwalten und Nutzer erhalten kleinere, optimierte Downloads.

    Außerdem können Sie Ihrem App-Projekt Funktionsmodule hinzufügen und sie in Ihr App Bundle aufnehmen. Ihre Nutzer können dann die Funktionen Ihrer App bei Bedarf herunterladen und installieren.

    Wenn Sie ein Bundle erstellen möchten, wählen Sie Build > Build Bundle(s) / APK(s) > Build Bundle(s) aus.

    Weitere Informationen, einschließlich einer Anleitung zum Erstellen und Analysieren eines Android App Bundles, finden Sie unter Android App Bundle.

    Beispieldaten im Layout-Editor

    Viele Android-Layouts enthalten Laufzeitdaten, die es erschweren, das Erscheinungsbild eines Layouts während der Designphase der App-Entwicklung zu visualisieren. Sie können jetzt ganz einfach eine Vorschau Ihrer Ansicht im Layout-Editor mit Beispieldaten aufrufen. Wenn Sie eine Ansicht hinzufügen, wird im Designfenster unter der Ansicht eine Schaltfläche  angezeigt. Klicken Sie auf diese Schaltfläche, um die Attribute für die Designzeitansicht festzulegen. Sie können aus einer Vielzahl von Beispieldatenvorlagen auswählen und die Anzahl der Beispielartikel angeben, mit denen die Ansicht gefüllt werden soll.

    Wenn Sie Beispieldaten verwenden möchten, fügen Sie einem neuen Layout ein RecyclerView hinzu, klicken Sie unter der Ansicht auf die Schaltfläche für Designzeitattribute  und wählen Sie eine Option aus dem Karussell mit Beispieldatenvorlagen aus.

    Slices

    Slices bieten eine neue Möglichkeit, Teile der Funktionen Ihrer App in andere Benutzeroberflächen auf Android einzubetten. Mit Slices können beispielsweise App-Funktionen und ‑Inhalte in Google-Suchvorschlägen angezeigt werden.

    Android Studio 3.2 enthält eine integrierte Vorlage, mit der Sie Ihre App mit den neuen Slice Provider APIs erweitern können. Außerdem gibt es neue Lint-Prüfungen, mit denen Sie sicherstellen können, dass Sie beim Erstellen der Slices Best Practices einhalten.

    Klicken Sie zum Einstieg mit der rechten Maustaste auf einen Projektordner und wählen Sie Neu > Andere > Slice-Provider aus.

    Weitere Informationen, einschließlich zum Testen von Slice-Interaktionen, finden Sie im Startleitfaden für Slices.

    Kotlin 1.2.61

    Android Studio 3.2 enthält Kotlin 1.2.61 und das neue Android SDK lässt sich besser in Kotlin integrieren. Weitere Informationen finden Sie im Blog für Android-Entwickler.

    IntelliJ IDEA 2018.1.6

    Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA durch die Version 2018.1.6 aktualisiert.

    Android-Profiler

    Hier sind einige der neuen Android Profiler-Funktionen in Android Studio 3.2.

    Sitzungen

    Sie können Profiler-Daten jetzt als Sitzungen speichern, um sie später noch einmal aufzurufen und zu untersuchen. Der Profiler speichert Ihre Sitzungsdaten, bis Sie die IDE neu starten.

    Wenn Sie einen Methodentrace aufzeichnen oder einen Heap-Dump erfassen, fügt die IDE diese Daten (zusammen mit der Netzwerkaktivität Ihrer App) als separaten Eintrag zur aktuellen Sitzung hinzu. Sie können dann ganz einfach zwischen den Aufzeichnungen hin- und herwechseln, um Daten zu vergleichen.

    System Tracing

    Wählen Sie im CPU-Profiler die neue Konfiguration System-Trace aus, um die CPU- und Threadaktivität des Systems Ihres Geräts zu untersuchen. Diese Trace-Konfiguration basiert auf systrace und ist nützlich, um Probleme auf Systemebene wie UI-Ruckeln zu untersuchen.

    Wenn Sie diese Konfiguration verwenden, können Sie wichtige Code-Routinen in der Profiler-Zeitachse visuell markieren, indem Sie Ihren C/C++-Code mit der nativen Tracing API oder Ihren Java-Code mit der Klasse Trace instrumentieren.

    JNI-Referenzen im Memory Profiler prüfen

    Wenn Sie Ihre App auf einem Gerät mit Android 8.0 (API‑Level 26) oder höher bereitstellen, können Sie jetzt mit dem Memory Profiler die Speicherzuweisungen für den JNI-Code Ihrer App untersuchen.

    Wählen Sie während der Ausführung Ihrer App einen Teil des Zeitachsendiagramms aus, den Sie untersuchen möchten, und wählen Sie im Drop-down-Menü über der Klassenliste JNI-Heap aus, wie unten dargestellt. Sie können Objekte im Heap dann wie gewohnt untersuchen und auf dem Tab Allocation Call Stack (Aufrufstack für Zuweisung) auf Objekte doppelklicken, um zu sehen, wo die JNI-Referenzen in Ihrem Code zugewiesen und freigegeben werden.

    Memory-Heap-Dumpdateien importieren, exportieren und prüfen

    Sie können jetzt .hprof-Speicher-Heap-Dump-Dateien importieren, exportieren und untersuchen, die mit dem Memory Profiler erstellt wurden.

    Importieren Sie die Datei .hprof, indem Sie im Profiler-Bereich Sitzungen auf Neue Profiler-Sitzung starten klicken und dann Aus Datei laden auswählen. Sie können die Daten dann im Memory Profiler wie jeden anderen Heap-Dump untersuchen.

    Wenn Sie Heap-Dump-Daten speichern möchten, um sie später zu prüfen, verwenden Sie die Schaltfläche Heap-Dump exportieren rechts neben dem Eintrag Heap-Dump im Bereich Sitzungen. Speichern Sie die Datei im Dialogfeld Exportieren als, das angezeigt wird, mit der Dateinamenerweiterung .hprof.

    CPU-Aktivität während des App-Starts aufzeichnen

    Sie können jetzt die CPU-Aktivität während des Starts Ihrer App aufzeichnen. Gehen Sie dazu so vor:

    1. Wählen Sie im Hauptmenü Run > Edit Configurations aus.
    2. Setzen Sie im Tab Profiling der gewünschten Ausführungskonfiguration ein Häkchen neben Start recording a method trace on startup (Beim Starten einen Methodentrace aufzeichnen).
    3. Wählen Sie im Drop-down-Menü eine CPU-Aufzeichnungskonfiguration aus.
    4. Stellen Sie Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereit, indem Sie Run > Profile (Ausführen > Profil erstellen) auswählen.
    CPU-Traces exportieren

    Nachdem Sie die CPU-Aktivität mit dem CPU Profiler aufgezeichnet haben, können Sie die Daten als .trace-Datei exportieren, um sie mit anderen zu teilen oder später zu untersuchen.

    So exportieren Sie einen Trace, nachdem Sie die CPU-Aktivität aufgezeichnet haben:

    1. Klicken Sie mit der rechten Maustaste auf die Aufnahme, die Sie aus der CPU-Zeitachse exportieren möchten.
    2. Wählen Sie im Drop-down-Menü Trace exportieren aus.
    3. Gehen Sie zum gewünschten Speicherort und klicken Sie auf Speichern.
    CPU-Trace-Dateien importieren und untersuchen

    Sie können jetzt .trace-Dateien importieren und untersuchen, die mit der Debug API oder dem CPU Profiler erstellt wurden. Derzeit können keine System Trace-Aufzeichnungen importiert werden.

    Importieren Sie Ihre Tracedatei, indem Sie im Profiler-Bereich Sessions auf Start new profiler session klicken und dann Load from file auswählen. Sie können die Daten dann im CPU Profiler wie gewohnt untersuchen. Es gibt jedoch folgende Ausnahmen:

    • Die CPU-Aktivität wird nicht auf der CPU-Zeitachse dargestellt.
    • Die Zeitachse für die Thread-Aktivität gibt nur an, wo für jeden Thread Tracedaten verfügbar sind, und nicht die tatsächlichen Thread-Status (z. B. „Wird ausgeführt“, „Wird gewartet“ oder „Wird in den Ruhezustand versetzt“).
    CPU-Aktivität mit der Debug API aufzeichnen

    Sie können jetzt die Aufzeichnung der CPU-Aktivität im CPU Profiler starten und beenden, indem Sie Ihre App mit der Debug API instrumentieren. Nachdem Sie Ihre App auf einem Gerät bereitgestellt haben, beginnt der Profiler automatisch mit der Aufzeichnung der CPU-Aktivität, wenn Ihre App startMethodTracing(String tracePath) aufruft. Die Aufzeichnung wird beendet, wenn Ihre App stopMethodTracing() aufruft. Während der Aufzeichnung von CPU-Aktivitäten, die mit dieser API ausgelöst werden, wird im CPU Profiler Debug API als ausgewählte CPU-Aufzeichnungskonfiguration angezeigt.

    Energy Profiler

    Der Energy Profiler zeigt eine Visualisierung des geschätzten Energieverbrauchs Ihrer App sowie Systemereignisse, die den Energieverbrauch beeinflussen, z. B. Wakelocks, Alarme und Jobs.

    Das Energieprofil wird als neue Zeile unten im Fenster Profiler angezeigt, wenn Sie Ihre App auf einem verbundenen Gerät oder im Android-Emulator mit Android 8.0 (API 26) oder höher ausführen.

    Klicken Sie auf die Zeile Energy, um die Ansicht des Energy Profiler zu maximieren. Bewegen Sie den Mauszeiger auf einen Balken in der Zeitachse, um eine Aufschlüsselung des Energieverbrauchs nach CPU-, Netzwerk- und Standortressourcen (GPS) sowie relevante Systemereignisse zu sehen.

    Systemereignisse, die sich auf den Energieverbrauch auswirken, werden in der Zeitachse System unter der Zeitachse Energie angezeigt. Details zu Systemereignissen im angegebenen Zeitraum werden im Ereignisbereich angezeigt, wenn Sie einen Zeitraum auf der Energie-Zeitachse auswählen.

    Wenn Sie den Aufrufstack und andere Details für ein Systemereignis wie einen Wakelock sehen möchten, wählen Sie es im Ereignisbereich aus. Wenn Sie den Code aufrufen möchten, der für ein Systemereignis verantwortlich ist, doppelklicken Sie auf den Eintrag im Aufrufstack.

    Lint-Prüfung

    Android Studio 3.2 enthält viele neue und verbesserte Funktionen für die Lint-Prüfung.

    Die neuen Lint-Prüfungen helfen Ihnen, häufige Code-Probleme zu finden und zu identifizieren. Sie reichen von Warnungen zu potenziellen Problemen mit der Nutzerfreundlichkeit bis hin zu Fehlern mit hoher Priorität in Bezug auf potenzielle Sicherheitslücken.

    Lint-Prüfungen für die Java-/Kotlin-Interoperabilität

    Damit Ihr Java-Code gut mit Ihrem Kotlin-Code zusammenarbeitet, werden durch neue Lint-Prüfungen die Best Practices aus dem Leitfaden zur Kotlin-Interoperabilität erzwungen. Beispiele für diese Prüfungen sind das Suchen nach Nullable-Anmerkungen, die Verwendung von Kotlin-Hard-Keywords und das Platzieren von Lambda-Parametern am Ende.

    Klicken Sie zum Aktivieren dieser Prüfungen auf Datei > Einstellungen (Android Studio > Einstellungen auf dem Mac), um das Dialogfeld Einstellungen zu öffnen. Rufen Sie den Abschnitt Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability auf und wählen Sie die Regeln aus, die Sie aktivieren möchten.

    Wenn Sie diese Prüfungen für Befehlszeilen-Builds aktivieren möchten, fügen Sie der Datei build.gradle Folgendes hinzu:

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    Lint-Prüfungen für Slices

    Neue Lint-Prüfungen für Slices sorgen dafür, dass Sie Slices korrekt erstellen. Lint-Prüfungen warnen Sie beispielsweise, wenn Sie einem Slice keine primäre Aktion zugewiesen haben.

    Neues Gradle-Ziel

    Mit der neuen Gradle-Aufgabe lintFix können Sie alle safe-Korrekturen, die vom Lint-Check vorgeschlagen werden, direkt auf den Quellcode anwenden. Ein Beispiel für einen Lint-Check, bei dem eine sichere Korrektur vorgeschlagen wird, ist SyntheticAccessor.

    Aktualisierungen der Metadaten

    Verschiedene Metadaten, z. B. die Prüfung des Service-Casts, wurden für Lint-Prüfungen aktualisiert, damit sie mit Android 9 (API-Ebene 28) funktionieren.

    Warnung beim Ausführen von „lint“ für eine neue Variante

    Lint zeichnet jetzt auf, mit welcher Variante und Version eine Baseline aufgezeichnet wird. Außerdem werden Sie gewarnt, wenn Sie Lint für eine andere Variante als diejenige ausführen, mit der die Baseline erstellt wurde.

    Verbesserungen an vorhandenen Lint-Prüfungen

    Android Studio 3.2 enthält viele Verbesserungen an vorhandenen Lint-Prüfungen. Die Prüfungen des Ressourcenzyklus gelten jetzt für zusätzliche Ressourcentypen und der Übersetzungsdetektor kann fehlende Übersetzungen direkt im Editor finden.

    Problem-IDs besser auffindbar machen

    Problem-IDs werden jetzt an mehr Stellen angezeigt, z. B. im Fenster Prüfergebnisse. So finden Sie leichter die Informationen, die Sie benötigen, um bestimmte Prüfungen über lintOptions in build.gradle zu aktivieren oder zu deaktivieren.

    Weitere Informationen finden Sie unter Lint-Optionen mit Gradle konfigurieren.

    Data Binding V2

    Data Binding V2 ist jetzt standardmäßig aktiviert und mit V1 kompatibel. Wenn Sie also Bibliotheksabhängigkeiten haben, die Sie mit V1 kompiliert haben, können Sie sie mit Projekten verwenden, die Data Binding V2 nutzen. Projekte, die V1 verwenden, können jedoch keine Abhängigkeiten nutzen, die mit V2 kompiliert wurden.

    Entzuckerung an Tag 8

    In Android Studio 3.1 haben wir den Desugaring-Schritt als experimentelle Funktion in das D8-Tool integriert, um die gesamte Build-Zeit zu verkürzen. In Android Studio 3.2 ist Desugaring mit D8 standardmäßig aktiviert.

    Neuer Code-Shrinker

    R8 ist ein neues Tool zum Verkleinern und Verschleiern von Code, das ProGuard ersetzt. Sie können die Vorschauversion von R8 verwenden, indem Sie Folgendes in die gradle.properties-Datei Ihres Projekts einfügen:

          android.enableR8 = true
        

    Geänderte Standard-ABIs für Multi-APKs

    Wenn Sie mehrere APKs erstellen, die jeweils auf eine andere ABI ausgerichtet sind, generiert das Plug-in standardmäßig keine APKs mehr für die folgenden ABIs: mips, mips64 und armeabi.

    Wenn Sie APKs erstellen möchten, die auf diese ABIs ausgerichtet sind, müssen Sie NDK r16b oder niedriger verwenden und die ABIs in Ihrer build.gradle-Datei angeben, wie unten gezeigt:

        splits {
            abi {
                include 'armeabi', 'mips', 'mips64'
                ...
            }
        }
        
        splits {
            abi {
                include("armeabi", "mips", "mips64")
                ...
            }
        }
        

    Hinweis:Diese Verhaltensänderung ist auch in Android Studio 3.1 RC1 und höher enthalten.

    Verbesserte Editorfunktionen für CMake-Build-Dateien

    Wenn Sie CMake verwenden, um C- und C++-Code zu Ihrem Projekt hinzuzufügen, bietet Android Studio jetzt verbesserte Editorfunktionen, die Ihnen beim Bearbeiten Ihrer CMake-Build-Skripts helfen. Dazu gehören:

    • Syntaxhervorhebung und Codevervollständigung:Die IDE hebt jetzt allgemeine CMake-Befehle hervor und schlägt Codevervollständigungen vor. Außerdem können Sie zu einer Datei navigieren, indem Sie bei gedrückter Strg-Taste (Befehlstaste auf dem Mac) darauf klicken.
    • Code neu formatieren:Sie können jetzt die Option zum Neuformatieren von Code in IntelliJ verwenden, um Codestile auf Ihre CMake-Build-Skripts anzuwenden.
    • Sicheres Refactoring:Die integrierten Refactoring-Tools der IDE prüfen jetzt auch, ob Sie Dateien umbenennen oder löschen, auf die Sie in Ihren CMake-Build-Skripts verweisen.

    In früheren Versionen von Android Studio konnten Sie im Fenster Project nur die Headerdateien aufrufen und untersuchen, die zu Bibliotheken gehören, die Sie aus einem lokalen Projekt erstellen. Mit dieser Version können Sie jetzt auch Headerdateien ansehen und prüfen, die in externen C/C++-Bibliotheksabhängigkeiten enthalten sind, die Sie in Ihr App-Projekt importieren.

    Wenn Sie bereits C/C++-Code und ‑Bibliotheken in Ihr Projekt einbinden, öffnen Sie das Fenster Projekt auf der linken Seite der IDE, indem Sie im Hauptmenü Ansicht > Tool-Fenster > Projekt auswählen, und wählen Sie im Drop-down-Menü Android aus. Im Verzeichnis cpp sind alle Header, die im Bereich Ihres App-Projekts liegen, unter dem Knoten include für jede Ihrer lokalen C/C++-Bibliotheksabhängigkeiten organisiert, wie unten gezeigt.

    Native Multidex-Unterstützung standardmäßig aktiviert

    In früheren Versionen von Android Studio wurde beim Bereitstellen der Debug-Version einer App auf einem Gerät mit Android-API-Level 21 oder höher automatisch multidex aktiviert. Unabhängig davon, ob Sie die App auf einem Gerät bereitstellen oder eine APK für die Veröffentlichung erstellen, ermöglicht das Android-Plug-in für Gradle die native Multidex-Unterstützung für alle Module, für die minSdkVersion=21 oder höher festgelegt ist.

    AAPT2 wurde in das Maven-Repository von Google verschoben

    Ab Android Studio 3.2 ist das Maven-Repository von Google die Quelle für AAPT2 (Android Asset Packaging Tool 2).

    Wenn Sie AAPT2 verwenden möchten, müssen Sie in Ihrer build.gradle-Datei eine google()-Abhängigkeit haben, wie hier gezeigt:

        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:3.2.0'
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        
        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath("com.android.tools.build:gradle:3.2.0")
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        

    In der neuen Version von AAPT2 wurden viele Probleme behoben, darunter die verbesserte Verarbeitung von Nicht-ASCII-Zeichen unter Windows.

    Konfiguration auf Anfrage entfernen

    Die Einstellung On-Demand-Konfiguration wurde aus Android Studio entfernt.

    Android Studio übergibt das --configure-on-demand-Argument nicht mehr an Gradle.

    ADB-Verbindungsassistent

    Der neue ADB Connection Assistant bietet eine Schritt-für-Schritt-Anleitung zum Einrichten und Verwenden eines Geräts über die Android Debug Bridge (ADB)-Verbindung.

    Wählen Sie Tools > Connection Assistant (Tools > Verbindungsassistent) aus, um den Assistenten zu starten.

    Der ADB Connection Assistant bietet auf einer Reihe von Seiten im Bereich Assistant Anleitungen, kontextbezogene Steuerelemente und eine Liste der verbundenen Geräte.

    Emulator-Verbesserungen

    Sie können jetzt jederzeit Snapshots eines AVD (Android Virtual Device) im Android Emulator speichern und laden. So lässt sich ein emuliertes Gerät schnell und einfach in einen bekannten Zustand für Tests zurückversetzen. Wenn Sie ein AVD mit dem AVD Manager bearbeiten, können Sie angeben, welcher AVD-Snapshot beim Start des AVD geladen werden soll.

    Die Steuerelemente zum Speichern, Laden und Verwalten von AVD-Snapshots befinden sich jetzt im Tab Snapshots im Fenster Erweiterte Steuerelemente des Emulators.

    Weitere Informationen finden Sie unter Snapshots.

    Weitere Informationen zu den Neuerungen und Änderungen im Emulator finden Sie in den Versionshinweisen zum Emulator.

    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 Fehlerkorrekturen:

    • Die gebündelte Kotlin-Version ist jetzt 1.2.50.
    • Neue Projekte werden mit kotlin-stdlib-jdk* artifacts erstellt und nicht mit kotlin-stdlib-jre*-Artefakten, die nicht mehr unterstützt werden.
    • Das Parsen von ProGuard-Regeln durch R8 wurde verbessert.
    • Folgende 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 Fehlgeschlagene Tests wiederholen im Fenster Ausführen verwendet wurde, wurde manchmal fälschlicherweise die Meldung „Es wurden keine Tests gefunden“ zurückgegeben.
      • D8 hat invoke-virtual-Instanzen nicht richtig verarbeitet, was zu einem Absturz mit VerifyError geführt hat: invoke-super/virtual can't be used on private method
      • Der Data Binding-Compiler war von einer alten Version von com.android.tools:annotations abhängig. Der Compiler verwendet jetzt Tools-Annotationen aus dem Basisprojekt, sofern verfügbar.
      • Android Studio stürzte bei Fragmentübergängen ab, 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 führten dazu, dass Android Studio langsam und nicht mehr reaktionsfähig wurde, nachdem Sie den Layout-Editor verwendet hatten. 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 stürzten auf einigen Verizon Ellipsis-Tablets ab.
    • Die Installation von Apps, die mit D8 erstellt wurden, schlug mit einem INSTALL_FAILED_DEXOPT-Fehler auf Geräten mit Android 5.0 oder 5.1 (API-Level 21 oder 22) fehl.
    • Einige Anwendungen, die die OkHttp-Bibliothek verwendet haben und mit D8 erstellt wurden, sind auf Geräten mit Android 4.4 (API-Level 19) abgestürzt.
    • Android Studio konnte manchmal nicht gestartet werden und es wurde ein ProcessCanceledException während der Klasseninitialisierung für com.intellij.psi.jsp.JspElementType angezeigt.

    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 blieb Android Studio beim Beenden unbegrenzt 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 Run (Ausführen) ausgelöst wurden.
    • Beim Bearbeiten der Datei build.gradle kam es manchmal zu einer spürbaren Verzögerung zwischen dem Eingeben 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 Dexing 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 enthält auch Änderungen, die die Ausführung von Lint-Prüfungen über Gradle in einigen Szenarien deutlich 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 die Gradle-basierte Aufgabe „Make“ beim ersten Öffnen eines in Android Studio 3.0 erstellten Projekts in Android Studio 3.1 aus dem Bereich Before launch (Vor dem Start) in Run/Debug Configurations (Konfigurationen für Ausführung/Fehlerbehebung) entfernt. Das hatte zur Folge, dass Projekte nicht erstellt wurden, wenn auf die Schaltfläche Ausführen oder Debuggen geklickt wurde. Das 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 der Gradle-basierte Make-Task der Ausführungskonfiguration für Projekte hinzugefügt, in 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 der Gradle-Synchronisierung und einmal während des Gradle-Build-Prozesses.
    • Bei einigen aus SVG-Dateien importierten Vektordrawables fehlten Elemente.
    • Die Warnung zur Einstellung der compile-Abhängigkeitskonfiguration wurde aktualisiert und enthält jetzt bessere Anleitungen zur implementation- und api-Konfiguration. 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 bis zur Version 2017.3.3 aktualisiert. Zu den Verbesserungen gehören eine bessere Analyse des Kontrollflusses für Sammlungen und Strings, eine verbesserte Ableitung der Nullable-Eigenschaft, neue Schnellkorrekturen und vieles mehr.

    Weitere Informationen finden Sie in den JetBrains-Versionshinweisen für IntelliJ IDEA-Versionen 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, profitieren Sie von mehreren Verbesserungen bei der SQL-Bearbeitung:

    • Die Codevervollständigung innerhalb von Query versteht 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, z. B. der Rückgabetyp 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-Verwendungen werden angezeigt, wenn Sie Verwendungen suchen verwenden (Rechtsklick und Auswahl von Verwendungen suchen im Kontextmenü).
    • Wenn Sie zur Deklaration einer SQL-Entität in Java- oder Kotlin-Code wechseln 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.

    Aktualisierungen der Datenbindung

    Dieses Update enthält mehrere Verbesserungen für die Datenbindung:

    • Sie können jetzt ein LiveData-Objekt als beobachtbares Feld in Data Binding-Ausdrü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 akzeptieren.

    • Sie können eine Vorschau eines neuen inkrementellen Compilers für Ihre Data Binding-Klassen aufrufen. Weitere Informationen zu diesem neuen Compiler und eine Anleitung zum Aktivieren 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.
      • 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.

    Der neue DEX-Compiler bietet mehrere Vorteile, darunter:

    • Schnellere Dexing-Vorgänge
    • Geringere Speichernutzung
    • Verbesserte Codegenerierung (bessere Registerzuweisung, intelligentere Stringtabellen)
    • Bessere Debugging-Funktionen 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 in Ihrer gradle.properties für android.enableD8 den Wert false festgelegt haben, löschen Sie das Flag oder legen Sie es auf true fest:

            android.enableD8=true
          

    Weitere Informationen finden Sie unter Neuer DEX-Compiler.

    Inkrementelles Desugaring

    Bei Projekten, die Java 8-Sprachfunktionen verwenden, ist die inkrementelle Desugarisierung 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 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.

    Batch-Updates und Indexierungskonkurrenz

    Die Gradle-Synchronisierung und die IDE-Indexierung sind jetzt viel effizienter. Dadurch wird die Zeit reduziert, die für viele redundante Indexierungsvorgänge benötigt wird.

    C++ und LLDB

    Wir haben viele Verbesserungen bei Qualität und Leistung in den Phasen für Codierung, Synchronisierung, Erstellung und Debugging der C++-Entwicklung vorgenommen. Hier einige der Verbesserungen:

    • Wenn Sie mit großen C++-Projekten arbeiten, sollten Sie eine deutliche Verbesserung bei der Reduzierung der Zeit für das Erstellen von Symbolen feststellen. Auch die Synchronisierungszeit für große Projekte wurde 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 Formattern („Pretty Printers“) für weitere C++-Datenstrukturen ist die LLDB-Ausgabe leichter lesbar.

    • 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 die 32‑Bit-Version von 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 dem Befehlszeilen-Lint-Check 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 in Projekten enthalten, die in Android Studio 3.0 und höher erstellt wurden.

    Tools zur Leistungssteigerung

    Native C++-Prozesse mit dem CPU Profiler analysieren

    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-Ebene 26) oder höher bereitstellen und dann im Drop-down-Menü für Aufzeichnungskonfigurationen des CPU Profiler die Option Sampled (Native) (Stichprobenbasiert (nativ)) auswählen. Danach können Sie wie gewohnt einen Trace aufzeichnen und untersuchen.

    Sie können Standardeinstellungen wie das Sampling-Intervall ändern, indem Sie eine Aufzeichnungskonfiguration erstellen.

    Wenn Sie wieder Java-Threads erfassen möchten, wählen Sie entweder die Konfiguration Sampled (Java) oder Instrumented (Java) 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 Methodentraces, von Speicherzuweisungen oder eines Heap-Dumps filtern können.

    Klicken Sie zum Suchen oben rechts im Bereich auf Filtern , geben Sie Ihre Anfrage 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 CPU Profiler werden auf dem Tab Flame Chart (Flammendiagramm) Callstacks, die Methoden enthalten, die mit Ihrer Suchanfrage in Verbindung stehen, hervorgehoben und auf die linke Seite des Diagramms verschoben.

    Weitere Informationen zum Filtern nach Methoden-, Klassen- oder Paketnamen finden Sie unter Methoden-Traces aufzeichnen und prüfen.

    Tab „Anfrage“ im Network Profiler

    Der Network Profiler enthält jetzt den Tab Request (Anfrage), auf dem Details zu Netzwerkanfragen während des ausgewählten Zeitraums angezeigt werden. In früheren Versionen lieferte der Network Profiler nur Informationen zu Netzwerkantworten.

    Thread-Ansicht im Network Profiler

    Nachdem Sie im Network 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: Bietet dieselben Informationen wie frühere Versionen von Android Studio. Es werden Dateien aufgeführt, die während des ausgewählten Zeitabschnitts der Zeitachse über alle CPU-Threads Ihrer App hinweg gesendet oder empfangen wurden. Für jede Anfrage können Sie die Größe, den Typ, den Status und die Übertragungsdauer prüfen.
    • Thread-Ansicht: Zeigt die Netzwerkaktivität der einzelnen CPU-Threads Ihrer App an. In dieser Ansicht können Sie sehen, welche Threads Ihrer App für die einzelnen Netzwerkanfragen verantwortlich sind.

    Layout Inspector

    Der Layout Inspector hat neue Funktionen erhalten, darunter einige, die zuvor von den eingestellten Tools Hierarchy Viewer und Pixel Perfect bereitgestellt wurden:

    • Schaltflächen zum Zoomen 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-Mockup zu vergleichen)
    • Unterbaum rendern, um eine Ansicht in einem komplexen Layout zu isolieren

    Layout Editor

    Die Palette im Layout-Editor wurde in vielerlei Hinsicht verbessert:

    • Neuorganisation der Kategorien für Ansichten und Layouts.
    • Neue Kategorie Allgemein für Ansichten und Layouts, die Sie mit dem Befehl Favorit ergänzen können.
    • Verbesserte Suche nach Ansichten und Layouts.
    • Neue Befehle zum Öffnen der Dokumentation für eine bestimmte Ansicht oder ein bestimmtes Layout-Element.

    Mit dem neuen Befehl Ansicht konvertieren im Komponentenbaum 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 Use same selection for future launches (Dieselbe Auswahl für zukünftige Starts verwenden) im Dialogfeld Select deployment target (Bereitstellungsziel auswählen) wurde vereinheitlicht. Wenn die Option Use same selection (Dieselbe Auswahl verwenden) aktiviert ist, wird das Dialogfeld Select deployment target (Bereitstellungsziel auswählen) nur beim ersten Ausführen des Befehls Run (Ausführen) geöffnet, bis das ausgewählte Gerät nicht mehr verbunden ist.

    Wenn Sie auf ein Gerät mit Android 8.0 (API-Level 26) oder höher ausgerichtet sind, können mit Instant Run Änderungen an Ressourcen bereitgestellt werden, ohne dass die Anwendung neu gestartet werden muss. Dies ist möglich, da die Ressourcen in einem Split-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) kann ein benutzerdefinierter Startstatus gespeichert werden.
    • Fensterloser Emulatorbildschirm
    • System-Images für Android 8.0 (API-Level 26), Android 8.1 (API-Level 27) und Android P Developer Preview.

    Verbesserungen der Benutzeroberfläche und der Nutzerfreundlichkeit

    Weitere Tooltips, Tastenkombinationen und hilfreiche Meldungen

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

    Wenn Sie Tastenkombinationen für viele Befehle sehen möchten, halten Sie den Mauszeiger einfach über eine Schaltfläche, bis die Kurzinfo angezeigt wird.

    „Tools“ > „Android“-Menü 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 Sync project with gradle files (Projekt mit Gradle-Dateien synchronisieren) wurde in das Menü File (Datei) verschoben.
    • Der Befehl Device Monitor wurde wie unten beschrieben entfernt.

    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 waren, jetzt von neuen und verbesserten Tools bereitgestellt.

    Eine Anleitung zum Aufrufen des Device Monitors über die Befehlszeile und Details zu den über den Device Monitor verfügbaren Tools finden Sie in der Device Monitor-Dokumentation.

    3.0 (Oktober 2017)

    Android Studio 3.0.0 ist ein wichtiger Release mit vielen neuen Funktionen und Verbesserungen.

    macOS-Nutzer: Wenn Sie eine ältere Version von Android Studio aktualisieren, wird möglicherweise ein Dialogfeld mit einem Updatefehler angezeigt, in dem steht: „Some conflicts were found in the installation area“ (Im Installationsbereich wurden einige Konflikte gefunden). Ignorieren Sie diesen Fehler einfach und klicken Sie auf Abbrechen, um die Installation fortzusetzen.

    3.0.1 (November 2017)

    Dies ist ein kleines Update für Android Studio 3.0, das allgemeine Fehlerkorrekturen und Leistungsverbesserungen enthält.

    Android-Plug-in für Gradle 3.0.0

    Das neue Android-Plug-in für Gradle bietet eine Vielzahl von Verbesserungen und neuen Funktionen, vor allem aber eine bessere Build-Leistung für Projekte mit einer großen Anzahl von Modulen. Wenn Sie das neue Plug-in mit diesen großen Projekten verwenden, sollten Sie Folgendes feststellen:

    • Schnellere Build-Konfigurationen durch neue verzögerte Abhängigkeitsauflösung.
    • Variantenabhängige Auflösung von Abhängigkeiten nur für die Projekte und Varianten, die Sie erstellen.
    • Schnellere inkrementelle Builds, wenn einfache Änderungen am Code oder an Ressourcen vorgenommen werden.

    Hinweis: Diese Verbesserungen erforderten erhebliche Änderungen, die einige Verhaltensweisen, die DSL und die APIs des Plug-ins beeinträchtigen. Für ein Upgrade auf Version 3.0.0 sind möglicherweise Änderungen an Ihren Build-Dateien und Gradle-Plug-ins erforderlich.

    Diese Version enthält außerdem Folgendes:

    • Unterstützung für Android 8.0.
    • Unterstützung für das Erstellen separater APKs basierend auf Sprachressourcen.
    • Unterstützung von Java 8-Bibliotheken und Java 8-Sprachfunktionen (ohne den Jack-Compiler).
    • Unterstützung für Android Test Support Library 1.0 (Android Test Utility und Android Test Orchestrator).
    • Die Build-Geschwindigkeit von „ndk-build“ und „cmake“ wurde verbessert.
    • Die Geschwindigkeit der Gradle-Synchronisierung wurde verbessert.
    • AAPT2 ist jetzt standardmäßig aktiviert.
    • Die Verwendung von ndkCompile ist jetzt eingeschränkter. Stattdessen sollten Sie entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK packen möchten. Weitere Informationen finden Sie unter Von ndkcompile migrieren.

    Weitere Informationen zu den Änderungen finden Sie in den Versionshinweisen zum Android-Gradle-Plug-in.

    Wenn Sie bereit sind, auf das neue Plug-in zu aktualisieren, lesen Sie den Abschnitt Zu Android-Plug-in für Gradle 3.0.0 migrieren.

    Kotlin-Unterstützung

    Wie auf der Google I/O 2017 angekündigt, wird die Programmiersprache Kotlin jetzt offiziell auf Android unterstützt. Mit diesem Release bietet Android Studio also Unterstützung für die Kotlin-Sprache für die Android-Entwicklung.

    Sie können Kotlin in Ihr Projekt einbinden, indem Sie eine Java-Datei in Kotlin konvertieren (klicken Sie auf Code > Convert Java File to Kotlin File) oder indem Sie mit dem Assistenten „New Project“ ein neues Kotlin-fähiges Projekt erstellen.

    Hier erfahren Sie, wie Sie Kotlin zu Ihrem Projekt hinzufügen.

    Unterstützung von Java 8-Sprachfunktionen

    Sie können jetzt bestimmte Java 8-Sprachfunktionen verwenden und mit Java 8 erstellte Bibliotheken nutzen. Jack ist nicht mehr erforderlich. Sie sollten Jack zuerst deaktivieren, um die verbesserte Java 8-Unterstützung zu nutzen, die in die Standard-Toolchain integriert ist.

    Wenn Sie Ihr Projekt aktualisieren möchten, damit es die neue Java 8-Sprachtoolchain unterstützt, aktualisieren Sie im Dialogfeld Project Structure (Projektstruktur) die Source Compatibility (Quellkompatibilität) und Target Compatibility (Zielkompatibilität) auf 1.8 (klicken Sie auf File > Project Structure (Datei > Projektstruktur)). Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.

    Android Profiler

    Der neue Android Profiler ersetzt das Android Monitor-Tool und bietet eine neue Reihe von Tools, mit denen Sie die CPU-, Speicher- und Netzwerknutzung Ihrer App in Echtzeit messen können. Sie können die Methode auf Grundlage von Stichproben verfolgen, um die Ausführung Ihres Codes zu messen, Heap-Dumps zu erfassen, Speicherzuweisungen anzusehen und die Details von über das Netzwerk übertragenen Dateien zu prüfen.

    Klicken Sie auf View > Tool Windows > Android Profiler (oder klicken Sie in der Symbolleiste auf Android Profiler), um das Fenster zu öffnen.

    In der Ereigniszeitachse oben im Fenster werden Berührungsereignisse, Tastendrücke und Aktivitätsänderungen angezeigt. So erhalten Sie mehr Kontext für andere Leistungsereignisse in der Zeitachse.

    Hinweis: Die Ansicht Logcat wurde ebenfalls in ein separates Fenster verschoben. Sie befand sich zuvor im Android Monitor, der entfernt wurde.

    Klicken Sie in der Übersicht der Zeitachse des Android Profiler auf die Zeitachse CPU, MEMORY oder NETWORK, um auf die entsprechenden Profiler-Tools zuzugreifen.

    CPU-Profiler

    Mit dem CPU Profiler können Sie die CPU-Thread-Nutzung Ihrer App analysieren, indem Sie einen CPU-Trace mit Stichproben oder instrumentierten Daten auslösen. Anschließend können Sie CPU-Leistungsprobleme mithilfe verschiedener Datenansichten und Filter beheben.

    Weitere Informationen finden Sie im CPU Profiler-Leitfaden.

    Speicher-Profiler

    Mit dem Memory Profiler können Sie Speicherlecks und Speicher-Churn identifizieren, die zu Ruckeln, Einfrieren und sogar zu App-Abstürzen führen können. Er zeigt ein Echtzeitdiagramm der Arbeitsspeichernutzung Ihrer App an, ermöglicht es Ihnen, einen Heap-Dump zu erfassen, Garbage Collections zu erzwingen und Speicherzuweisungen zu verfolgen.

    Weitere Informationen finden Sie im Leitfaden zum Memory Profiler.

    Network Profiler

    Mit dem Network Profiler können Sie die Netzwerkaktivität Ihrer App überwachen, die Nutzlast jeder Ihrer Netzwerkanfragen untersuchen und zum Code zurückkehren, der die Netzwerkanfrage generiert hat.

    Weitere Informationen finden Sie im Leitfaden zum Network Profiler.

    APK-Profiling und ‑Fehlerbehebung

    In Android Studio können Sie jetzt jedes APK profilieren und debuggen, ohne es aus einem Android Studio-Projekt erstellen zu müssen. Voraussetzung ist, dass das APK so erstellt wurde, dass Debugging möglich ist, und Sie Zugriff auf die Debugging-Symbole und Quellcode-Dateien haben.

    Klicken Sie zum Starten im Android Studio-Begrüßungsbildschirm auf APK profilieren oder debuggen. Wenn Sie bereits ein Projekt geöffnet haben, klicken Sie in der Menüleiste auf Datei > APK für Profilerstellung oder Debugging. Dadurch werden die entpackten APK-Dateien angezeigt, der Code wird jedoch nicht dekompiliert. Damit Sie Breakpoints richtig hinzufügen und Stacktraces ansehen können, müssen Sie also Java-Quelldateien und native Debug-Symbole anhängen.

    Weitere Informationen finden Sie unter Profil für vorgefertigte APKs erstellen und Fehler beheben.

    Geräte-Datei-Explorer

    Mit dem neuen Device File Explorer können Sie das Dateisystem Ihres verbundenen Geräts untersuchen und Dateien zwischen dem Gerät und Ihrem Computer übertragen. Dieses Tool ersetzt das in DDMS verfügbare Dateisystemtool.

    Klicken Sie zum Öffnen auf View > Tool Windows > Device File Explorer (Ansicht > Toolfenster > Geräte-Datei-Explorer).

    Weitere Informationen finden Sie im Leitfaden zum Device File Explorer.

    Unterstützung für Instant Apps

    Die neue Unterstützung für Android-Instant-Apps ermöglicht es Ihnen, Instant Apps in Ihrem Projekt mit zwei neuen Modultypen zu erstellen: Instant-App-Module und Feature-Module. Dazu müssen Sie das Instant Apps Development SDK installieren.

    Android Studio enthält auch eine neue Refactoring-Aktion zum Modularisieren, mit der Sie einem bestehenden Projekt Unterstützung für Instant Apps hinzufügen können. Wenn Sie beispielsweise Ihr Projekt umgestalten möchten, um einige Klassen in einem Instant-App-Funktionsmodul zu platzieren, wählen Sie die Klassen im Fenster Project (Projekt) aus und klicken Sie auf Refactor > Modularize (Umgestalten > Modularisieren). Wählen Sie im angezeigten Dialogfeld das Modul aus, in dem die Klassen gespeichert werden sollen, und klicken Sie auf OK.

    Wenn Sie Ihre Instant App testen möchten, können Sie das Instant App-Modul auf einem verbundenen Gerät erstellen und ausführen. Geben Sie dazu die URL der Instant App in den Startoptionen der Ausführungskonfiguration an: Wählen Sie Ausführen > Konfigurationen bearbeiten aus, wählen Sie Ihr Instant App-Modul aus und legen Sie dann die URL unter Startoptionen fest.

    Weitere Informationen finden Sie unter Android Instant Apps.

    Android Things-Module

    Neue Android Things-Vorlagen in den Assistenten „New Project“ (Neues Projekt) und „New Module“ (Neues Modul), die Ihnen den Einstieg in die Entwicklung für Android-basierte IoT-Geräte erleichtern.

    Weitere Informationen finden Sie unter Android Things-Projekt erstellen.

    Assistent für adaptive Symbole

    Image Asset Studio unterstützt jetzt Vektordrawables und ermöglicht es Ihnen, adaptive Launcher-Symbole für Android 8.0 zu erstellen und gleichzeitig herkömmliche Symbole („Legacy“-Symbole) für ältere Geräte zu generieren.

    Klicken Sie dazu mit der rechten Maustaste auf den Ordner res in Ihrem Projekt und dann auf Neu > Image Asset. Wählen Sie im Fenster Asset Studio als Symboltyp Launcher-Symbole (adaptiv und Legacy) aus.

    Hinweis: Sie müssen compileSdkVersion auf 26 oder höher festlegen, um adaptive Launcher-Symbole zu verwenden.

    Weitere Informationen finden Sie unter Adaptive Symbole.

    Unterstützung für Schriftartressourcen

    Zur Unterstützung der neuen Schriftartressourcen in Android 8.0 enthält Android Studio eine Schriftartressourcenauswahl, mit der Sie Schriftarten in Ihre App einbinden oder Ihr Projekt so konfigurieren können, dass die Schriftarten auf das Gerät heruntergeladen werden (sofern verfügbar). Im Layout-Editor können Sie sich auch eine Vorschau der Schriftarten in Ihrem Layout ansehen.

    Wenn Sie herunterladbare Schriftarten ausprobieren möchten, muss auf Ihrem Gerät oder Emulator Google Play-Dienste v11.2.63 oder höher ausgeführt werden. Weitere Informationen finden Sie unter Herunterladbare Schriftarten.

    Firebase App Indexing Assistant

    Der Firebase Assistant wurde mit einem neuen Tutorial zum Testen der App-Indexierung aktualisiert. Wählen Sie zum Öffnen des Assistenten Tools > Firebase aus. Wählen Sie dann App-Indexierung > App-Indexierung testen aus.

    Das Tutorial enthält neue Schaltflächen zum Testen der Indexierung Ihrer öffentlichen und persönlichen Inhalte:

    • Klicken Sie in Schritt 2 auf Suchergebnisse in der Vorschau ansehen, um zu prüfen, ob Ihre URLs in den Google-Suchergebnissen angezeigt werden.
    • Klicken Sie in Schritt 3 auf Auf Fehler prüfen, um zu prüfen, ob die indexierbaren Objekte in Ihrer App dem Index für persönliche Inhalte hinzugefügt wurden.

    Der App Links Assistant wurde mit den folgenden neuen Funktionen aktualisiert:

    • Fügen Sie URL-Tests für jede URL-Zuordnung hinzu, damit Ihre Intent-Filter URLs aus der Praxis verarbeiten können.

      Sie können diese URL-Tests auch manuell mit dem unten beschriebenen <tools:validation>-Tag definieren.

    • Erstellen Sie eine Digital Asset Links-Datei mit dem entsprechenden Objekteintrag, um Google Smart Lock zu unterstützen, und fügen Sie Ihrer Manifestdatei das entsprechende asset_statements <meta-data>-Tag hinzu.

    URL-Intent-Filter-Validator

    Android Studio unterstützt jetzt ein spezielles Tag in der Manifestdatei, mit dem Sie Ihre Intent-Filter-URLs testen können. Das sind dieselben Tags, die der Assistent für App-Links für Sie erstellen kann.

    Wenn Sie eine Test-URL für einen Intent-Filter deklarieren möchten, fügen Sie ein <tools:validation>-Element neben dem entsprechenden <intent-filter>-Element hinzu. Beispiel:

          <activity ...>
              <intent-filter>
                  ...
              </intent-filter>
              <tools:validation testUrl="https://www.example.com/recipe/1138" />
          </activity>
        
        

    Achten Sie darauf, xmlns:tools="http://schemas.android.com/tools" auch in das <manifest>-Tag aufzunehmen.

    Wenn eine der Test-URLs die Intent-Filterdefinition nicht besteht, wird ein Lint-Fehler angezeigt. Mit einem solchen Fehler können Sie weiterhin Debug-Varianten erstellen, aber Ihre Release-Builds werden dadurch unterbrochen.

    Layout Editor

    Der Layout-Editor wurde aktualisiert und bietet jetzt einige Verbesserungen, darunter:

    • Neues Symbolleistenlayout und neue Symbole.
    • Aktualisiertes Layout in der Komponentenstruktur.
    • Das Einfügen von Ansichten per Drag-and-drop wurde verbessert.
    • Ein neues Fehlerfeld unter dem Editor, in dem alle Probleme mit Vorschlägen zur Behebung (falls verfügbar) angezeigt werden.
    • Verschiedene Verbesserungen an der Benutzeroberfläche für die Entwicklung mit ConstraintLayout, z. B.:
      • Neue Unterstützung beim Erstellen von Barrieren.
      • Neue Unterstützung zum Erstellen von Gruppen: Wählen Sie in der Symbolleiste Richtlinien > Gruppe hinzufügen aus (erfordert ConstraintLayout 1.1.0 Beta 2 oder höher).
      • Neue Benutzeroberfläche zum Erstellen von Ketten: Wählen Sie mehrere Ansichten aus, klicken Sie mit der rechten Maustaste und wählen Sie Kette aus.

    Layout Inspector

    Der Layout Inspector wurde verbessert, um das Debuggen von Problemen mit App-Layouts zu erleichtern. Dazu gehören das Gruppieren von Eigenschaften in gängige Kategorien und eine neue Suchfunktion sowohl im Bereich View Tree (Ansichtsbaum) als auch im Bereich Properties (Eigenschaften).

    APK Analyzer

    Sie können den APK Analyzer jetzt über die Befehlszeile mit dem Tool apkanalyzer verwenden.

    Der APK Analyzer wurde mit den folgenden Verbesserungen aktualisiert:

    • Für mit ProGuard erstellte APKs können Sie ProGuard-Zuordnungsdateien laden, die dem DEX-Viewer Funktionen hinzufügen, darunter:
      • Fett formatierte Knoten, die angeben, dass die Knoten beim Verkleinern des Codes nicht entfernt werden sollen.
      • Eine Schaltfläche zum Einblenden von Knoten, die während des Verkleinerungsprozesses entfernt wurden.
      • Eine Schaltfläche, mit der die ursprünglichen Namen von Knoten in der Baumansicht wiederhergestellt werden, die von ProGuard verschleiert wurden.
    • Im DEX Viewer wird jetzt die geschätzte Größenwirkung der einzelnen Pakete, Klassen und Methoden angezeigt.
    • Oben gibt es neue Filteroptionen, mit denen Sie Felder und Methoden ein- und ausblenden können.
    • In der Baumansicht werden Knoten, die Verweise sind, die nicht in der DEX-Datei definiert sind, kursiv dargestellt.

    Weitere Informationen finden Sie unter Build mit APK Analyzer analysieren.

    Vorschau für den D8 DEX-Compiler

    Android Studio 3.0 enthält einen optionalen neuen DEX-Compiler namens D8. Er wird den DX-Compiler schließlich ersetzen, aber Sie können den neuen D8-Compiler jetzt schon verwenden.

    Die DEX-Kompilierung wirkt sich direkt auf die Build-Zeit Ihrer App, die Größe der Datei .dex und die Laufzeitleistung aus. Im Vergleich zum aktuellen DX-Compiler kompiliert D8 schneller und gibt kleinere .dex-Dateien aus. Die Laufzeitleistung der App ist dabei gleich oder besser.

    Um die Funktion auszuprobieren, legen Sie in der Datei gradle.properties Ihres Projekts Folgendes fest:

    android.enableD8=true
        

    Weitere Informationen finden Sie im Blogpost zum D8-Compiler.

    Maven-Repository von Google

    Android Studio verwendet jetzt standardmäßig das Maven-Repository von Google. Es ist also nicht mehr erforderlich, den Android SDK Manager zu verwenden, um Updates für die Android-Supportbibliothek, Google Play-Dienste, Firebase und andere Abhängigkeiten zu erhalten. So können Sie Ihre Bibliotheken leichter auf dem neuesten Stand halten, insbesondere wenn Sie ein CI-System (Continuous Integration) verwenden.

    Alle neuen Projekte enthalten jetzt standardmäßig das Google Maven-Repository. Wenn Sie Ihr vorhandenes Projekt aktualisieren möchten, fügen Sie google() im Block repositories der build.gradle-Datei auf oberster Ebene hinzu:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Weitere Informationen zum Maven-Repository von Google

    Sonstige Änderungen

    • Das native Debugging mit Android Studio unterstützt keine 32-Bit-Versionen von Windows mehr. Wir haben uns entschieden, uns auf andere Plattformen zu konzentrieren, da diese Plattform nur von sehr wenigen Entwicklern genutzt wird. Wenn Sie 32-Bit-Windows verwenden und nativen Code debuggen möchten, sollten Sie weiterhin Android Studio 2.3 verwenden.
    • Die Basis-IDE wurde auf IntelliJ 2017.1.2 aktualisiert. Dadurch wurden zahlreiche neue Funktionen aus 2016.3 und 2017.1 hinzugefügt, z. B. Refactoring der Java 8-Sprache, Parameterhinweise, semantische Hervorhebung, verschiebbare Haltepunkte und sofortige Ergebnisse bei der Suche.
    • Es wurden viele neue Lint-Prüfungen hinzugefügt.
    • Aktuelle Updates für den Android-Emulator

    2.3 (März 2017)

    Android Studio 2.3.0 ist in erster Linie ein Release mit Fehlerkorrekturen und Stabilitätsverbesserungen, enthält aber auch einige neue Funktionen.

    2.3.3 (Juni 2017)

    Dies ist ein kleines Update, mit dem Unterstützung für Android O (API-Level 26) hinzugefügt wird.

    2.3.2 (April 2017)

    Dies ist ein kleines Update für Android Studio 2.3, das die folgenden Änderungen enthält:

    • AVD Manager-Updates zur Unterstützung von Google Play in System-Images.
    • Fehlerbehebungen für NDK-Builds bei Verwendung von NDK R14 oder höher.

    Sehen Sie sich auch die entsprechenden Updates für Android Emulator 26.0.3 an.

    2.3.1 (April 2017)

    Dies ist ein kleines Update für Android Studio 2.3, mit dem ein Problem behoben wird, bei dem einige physische Android-Geräte nicht richtig mit Instant Run funktionierten (siehe Problem 235879).

    <h3 class="hide-from-toc">
      New
    </h3>
    
    <div class="video-wrapper-left">
      <iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
              data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
      </iframe>
    </div>
    
    <ul>
      <li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
      WebP format. WebP is an image file format from Google that provides lossy
      compression (like JPEG) as well as transparency (like PNG) but can provide
      better compression than either JPEG or PNG. For more information, see
        <a href="/studio/write/convert-webp.html">Convert images to WebP in Android
        Studio</a>.
      </li>
    
      <li>The new <a href="/studio/write/app-link-indexing.html">App Links
      Assistant</a> simplifies the process of adding Android App Links to your app
      into a step-by-step wizard. Android App Links are HTTP URLs that bring users
      directly to specific content in your Android app.
      </li>
    
      <li>The Layout Editor now includes support for two new ConstraintLayout
      features:
        <ul>
          <li>Define a view size based on an aspect ratio.
          </li>
          <li>Create packed, spread, and weighted linear groups with constraint
          chains.
          </li>
        </ul>
        For more information, see <a href=
        "/training/constraint-layout/index.html">Build a Responsive UI with
        ConstraintLayout</a>.
      </li>
    
      <li>The Layout Editor also now lets you create a list of <a href=
      "/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
      you don't have to click <b>View all attributes</b> to access the attributes
      you use most.
      </li>
    
      <li>When adding a material icon using the Vector Import Dialog (<b>File &gt;
      New &gt; Vector Asset</b>), you can now filter the list of available icons by
      category or by icon name. For more information, see <a href=
      "/studio/write/vector-asset-studio.html#materialicon">Adding a material
      icon</a>.
      </li>
    
      <li>
        <a href="/studio/write/annotations.html#accessibility">New and updated
        annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
        classes, and packages lets you restrict an API. The updated
        <code>@VisibleForTesting</code> annotation now has an optional
        <code>otherwise</code> argument that lets you designate what the visibility
        of a method should be if not for the need to make it visible for testing.
        Lint uses the <code>otherwise</code> option to enforce the intended
        visibility of the method.
      </li>
    
      <li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
      allows you to use a snapshot of your project's current set of warnings as a
      baseline for future inspection runs so only new issues are reported. The
      baseline snapshot lets you start using lint to fail the build for new issues
      without having to go back and address all existing issues first.
      </li>
    
      <li>New lint checks, including the following:
        <ul>
          <li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
          code that checks for SDK versions.
          </li>
          <li>Object Animator Validation: Lint analyzes your code to make sure that
          your <code>ObjectAnimator</code> calls reference valid methods with the
          right signatures and checks that those methods are annotated with <code>
            @Keep</code> to prevent ProGuard from renaming or removing them during
            release builds.
          </li>
          <li>Unnecessary Item Decorator Copy: Older versions of the
          <code>RecyclerView</code> library did not include a divider decorator
          class, but one was provided as a sample in the support demos. Recent
          versions of the library have a divider decorator class. Lint looks for
          the old sample and suggests replacing it with the new one.
          </li>
          <li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
          the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)">Context.getSystemService()</a></code>
          can cause a memory leak if the context is not the application context.
          Lint looks for these initializations, and if it <em>cannot</em> determine
          that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
          initialization.
          </li>
          <li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
          lint check had many limitations. You can now configure your project with
          a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
          }</code>, and lint makes sure that all of your resources are using this
          prefix. You can use variations of the name for styles and themes. For
          example for the <var>my_lib</var> prefix, you can have themes named
          <code>MyLibTheme</code>, <code>myLibAttr</code>,
          <code>my_lib_layout</code>, and so on.
          </li>
          <li>Switch to WebP: This check identifies images in your project that can
          be converted to WebP format based on your projects
          <code>minSdkVersion</code> setting. An associated quickfix can
          automatically convert the images, or you can <a href=
          "/studio/write/convert-webp.html">convert images to WebP</a> manually.
          </li>
          <li>Unsafe WebP: If your project already includes WebP images, this check
          analyzes your project to ensure that your <code>minSdkVersion</code>
          setting is high enough to support the included images. For more
          information about WebP support in Android and Android Studio, see
          <a class="external" href=
          "https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
            Which browsers natively support WebP?</a> and <a href=
            "/studio/write/convert-webp.html">Create WebP Images Using Android
            Studio</a>.
          </li>
        </ul>
      </li>
    </ul>
    
    <h3 class="hide-from-toc">
      Changes
    </h3>
    
    <ul>
      <li>A separate button to push changes with Instant Run: After deploying your
      app, you now click <b>Apply Changes</b> <img src=
      "/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
      "inline-icon"> to quickly push incremental changes to your running app using
      Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
        alt="" class="inline-icon"> and <b>Debug</b> <img src=
        "/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
        buttons are always available to you when you want to reliably push your
        changes and force an app restart.
        <ul>
          <li>Instant Run is supported only when deploying your app to a target
          device running Android 5.0 (API level 21) or higher.
          </li>
          <li>Instant Run is no longer disabled for projects that <a href=
          "/studio/projects/add-native-code.html">link to external native
          projects</a> using CMake or ndk-build. However, you can only use Instant
          Run to push incremental changes to your Java code, not your native code.
          </li>
          <li>Cold swaps (which you can force for a running app by clicking
          <strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
          alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
          also fixes the issue where changes to notification and widget UIs were
          not updated on the target device.
          </li>
          <li>Includes optimizations that make app startup much faster. These
          optimizations may affect profiling, so you should temporarily <a href=
          "/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
          profiling your app.
          </li>
        </ul>
      </li>
    
      <li>
        <p>
          The <b>AVD Manager</b> <img src=
          "/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
          "inline-icon"> and <b>SDK Manager</b> <img src=
          "/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
          "inline-icon"> buttons are now included in the lean Navigation Bar as
          well as the full Toolbar. To use the lean Navigation Bar, click
          <b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
          is selected and <b>Toolbar</b> is <em>not</em> selected.
        </p>
        <img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
      </li>
    
      <li>The "Hybrid" debugger has been renamed to "Dual" debugger.
      </li>
    
      <li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
      Configurations</a> dialog, under Defaults in the left pane, the following run
      configuration names have changed with no behavior changes:
        <ul>
          <li>The JUnit name has changed to Android JUnit. If you have a project
          that uses JUnit run configurations, those configurations are transformed
          to Android JUnit run configurations the first time you open the project
          with Android Studio. A dialog appears to inform you of the name change.
          </li>
          <li>The Android Tests name has changed to Android Instrumented Tests.
          </li>
        </ul>
      </li>
    
      <li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
      been removed from Android Studio as of version 2.3. An open-source,
      standalone version of the tool is now available on <a href=
      "https://github.com/google/gapid" class="external-link">GitHub</a>.
      </li>
    
      <li>The Run/Debug option is no longer available when you right-click a <code>
        *.gradle build</code> script.
      </li>
    
      <li>All templates now use <code>ConstraintLayout</code> as the default
      layout.
      </li>
    
      <li>The Widgets palette in the Layout Editor has been redesigned.
      </li>
    </ul>
    
    <p>
      This release also includes a number of bug fixes. <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.3.0.</a>
    </p>
    
    <p class="note">
      <b>Known issue:</b> Some device manufacturers block apps from automatically
      launching after being installed on the device. When deploying your app to a
      physical device using Android Studio 2.3, this restriction breaks the
      intended behavior of Instant Run and causes the following error output:
      <code>Error: Not found; no service started</code>. To avoid this issue,
      either <a href="/studio/run/emulator.html">use the emulator</a> or enable
      automatic launching for your app in your device's settings. The procedure
      for doing this is different for each device, so check the instructions
      provided by the manufacturer. To learn more about this issue, see
      <a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
        #235879</a>.
    </p>
    

    2.2 (September 2016)

    2.2.3 (Dezember 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a bug fixes
      focused around gradle, the core IDE, and lint.
    </p>
    
    <p>
      Highlighted build changes:
    </p>
    
    <ul>
      <li>ProGuard version rollback. Due to a <a href=
      "https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
      discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
      have worked with the ProGuard team on getting a fix quickly, and we expect
      to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
      </li>
      <li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
      not working properly (<a href="http://b.android.com/224167">issue
      224167</a>)
      </li>
      <li>Bug fix for Gradle autodownload for Constraint Layout library
        (<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
        212128</a>)
      </li>
      <li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
      "http://b.android.com/227729">issue 227729</a>)
      </li>
    </ul>
    
    <p>
      <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.2.3</a>.
    </p>
    

    2.2.2 (Oktober 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a number of small
      changes and bug fixes, including:
    </p>
    
    <ul>
      <li>When reporting Instant Run issues through the IDE, the report now also
      includes logcat output for <code>InstantRun</code> events. To help us
      improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
      </li>
      <li>A number of small bug fixes for Gradle.
      </li>
      <li>A fix for problems with generating multiple APKs.
      </li>
    </ul>
    

    2.2.1 (Oktober 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes several bug fixes
      and a new feature to enable extra logging to help us troubleshoot Instant
      Run issues—to help us improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
    </p>
    

    Neu

    • Der neue Layout-Editor mit speziell für ConstraintLayout entwickelten Tools.
    • <li>New <strong><a href=
      "http://tools.android.com/tech-docs/layout-inspector">Layout
      Inspector</a></strong> lets you examine snapshots of your layout hierarchy
      while your app is running on the emulator or a device.
      </li>
      
      <li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
      window to help you integrate Firebase services into your app.
      </li>
      
      <li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
      Analyzer</a></strong> tool so you can inspect the contents of your packaged
      app.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/test-recorder">Espresso Test
      Recorder</a></strong> tool (currently in beta) to help you create UI tests by
      recording your own interactions.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
      (currently experimental) to speed up build performance.
      </li>
      
      <li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
      Compile and build new or existing native code into libraries packaged into
      your APK, and debug using lldb. For new projects, Android Studio uses CMake
      by default, but also supports ndk-build for existing projects. To learn how
      to include native code in your Android application, read <a href=
      "/studio/projects/add-native-code.html">Add C and C++ Code to Your
      Project</a>. To learn how to debug native code with lldb, see <a href=
      "/studio/debug/index.html#debug-native">Debug Native Code</a>.
      </li>
      
      <li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
      Browser</a></strong> so you can easily look up Google Android sample code
      from within Android Studio to jump start app development.
      </li>
      
      <li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
      manifest file merges with your app dependencies across project build
      variants.
      </li>
      
      <li>The <strong>Run</strong> window now contains log messages for the current
      running app. Note that you can configure the <a href=
      "/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
      <strong>Run</strong> window.
      </li>
      
      <li>New <strong><a href="/studio/run/emulator.html">Android
      Emulator</a></strong> features:
        <ul>
          <li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
          <strong>Cellular</strong> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <strong>Network type</strong> control.
          </li>
          <li>Added simulated vertical swipes for scrolling through vertical menus
          with a mouse wheel.
          </li>
        </ul>
      </li>
      
      <li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
      Configuration</a></strong> features:
        <ul>
          <li>The <strong>Debugger</strong> tab of the Android App and Android
          Tests templates now contain several new options for debugging with LLDB.
          </li>
          <li>The <strong>Profiling</strong> tab of the Android App and Android
          Tests templates now contain a <strong>Capture GPU Commands</strong>
          option for enabling GPU tracing. You can display GPU traces in the GPU
          Debugger (a beta feature).
          </li>
          <li>The Android Tests template now has a <strong>Firebase Test Lab Device
          Matrix</strong> option for the <strong>Deployment Target</strong>.
          </li>
          <li>The Native Application template has been deprecated. If you use this
          template in a project, Android Studio automatically converts it to the
          Android App template.
          </li>
          <li>The Android Application template has been renamed to Android App.
          </li>
        </ul>
      </li>
      
      <li>Improved installation, configuration, performance, and UI features in the
      <strong><a href="/studio/debug/am-gpu-debugger.html">GPU
      Debugger</a></strong> (currently in beta).
      </li>
      
      <li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
      Existing projects still use the JDK specified in <strong>File &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; SDK
      Location</strong> and checking the <strong>Use embedded JDK</strong>
      checkbox.
      </li>
      
      <li>Added new <strong>help menus and buttons</strong> in the UI so you can
      more easily find the online documentation.
      </li>
      

    Änderungen

    • Die IDE-Codebasis wurde von IntelliJ 15 auf IntelliJ 2016.1 aktualisiert.
    • Für Instant Run muss jetzt das Plattform-SDK installiert sein, das dem API-Level des Zielgeräts entspricht.
    • Instant Run wird automatisch deaktiviert, wenn der Nutzer die App in einem Arbeitsprofil oder als sekundärer Nutzer ausführt.
    • Es wurden viele Zuverlässigkeitsprobleme für Instant Run behoben, bei denen Änderungen nicht bereitgestellt wurden oder die App abstürzte:
      • Einige App-Assets wurden nicht in Ihrer laufenden App bereitgestellt. ( Fehler 213454)
      • Die App stürzt ab, wenn der Nutzer zwischen Instant Run- und Nicht-Instant Run-Sitzungen wechselt und für eine serialisierbare Klasse keine serialVersionUID definiert ist. (Fehler 209006)
      • Stiländerungen werden bei Instant Run nicht berücksichtigt. (Fehler 210851)
      • Die Instant Run-Sitzung ist unzuverlässig und verursacht FileNotFoundException. (Fehler 213083)
      • Änderungen an Drawables werden erst nach einem vollständigen Build für KitKat übernommen. (Fehler 21530)
      • Ressourcenänderungen werden bei Instant Run nicht berücksichtigt, wenn benutzerdefinierte „sourceSets“ verschachtelte Pfade enthalten. (Fehler 219145)
      • Hot- und Warm-Swap funktionieren nicht, wenn die geänderte Klasse eine Annotation mit einem Enum-Wert enthält. (Fehler 209047)
      • Änderungen an Anmerkungsdaten werden bei Instant Run nicht berücksichtigt. (Fehler 210089)
      • Instant Run erkennt keine Codeänderungen, die außerhalb der IDE vorgenommen werden. (Fehler 213205)
      • Die Instant Run-Sitzung ist aufgrund eines nicht übereinstimmenden Sicherheitstokens nicht zuverlässig. (Fehler #211989
      • Der Kaltstart schlägt bei Geräten fehl, die „run-as“ nicht richtig unterstützen. (Fehler 210875)
      • App stürzt nach dem Neustart von Instant Run ab. (Fehler 219744)
      • Beim Wechsel von Instant Run zu Instant Debug wird „ClassNotFoundException“ beobachtet. (Fehler 215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you wont be able to use the new fields
      in the <strong>Create New Class</strong> dialog.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
      user interface and added support for Adobe Photoshop Document (PSD) files.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
      interface.
      </li>
      
      <li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
      </li>
      
      <li>Fixed memory leaks and reduced overall memory usage in Android Studio.
      </li>
      
      <li>Added a <strong>Background</strong> button in the <strong><a href=
      "/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
      get back to work and install your packages in the background.
      </li>
      
      <li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
      features</a></strong>, including support for screen readers and keyboard
      navigation.
      </li>
      
      <li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
      Java 8 language usage and more cross-file analysis.
      </li>
      
      <li>Several toolbar icons have changed.
      </li>
      

    2.1 (April 2016)

    Die primären Änderungen in diesem Update bieten Unterstützung für die Entwicklung mit der Android N Preview.

    2.1.3 (August 2016)

    Dieses Update bietet Kompatibilität mit Gradle 2.14.1, das Leistungsverbesserungen, neue Funktionen und einen wichtigen Sicherheitsfix enthält. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.

    Standardmäßig wird in neuen Projekten in Android Studio 2.1.3 Gradle 2.14.1 verwendet. Bei vorhandenen Projekten werden Sie in der IDE aufgefordert, auf Gradle 2.14.1 und das Android-Plug-in für Gradle 2.1.3 zu aktualisieren. Dies ist erforderlich, wenn Sie Gradle 2.14.1 und höher verwenden.

    2.1.2 (Juni 2016)

    Dieses Update enthält eine Reihe kleiner Änderungen und Fehlerkorrekturen:

    • Updates und Fehlerkorrekturen für Instant Run.
    • Verbesserungen bei der LLDB-Leistung und bei Absturzmeldungen.
    • Es wurde ein Regressionsfehler im Sicherheitsupdate für Android Studio 2.1.1 behoben, der dazu führte, dass git rebase fehlschlug.

    2.1.1 (Mai 2016)

    Sicherheitsrelease-Update.

    Die Android N-Plattform bietet Unterstützung für Java 8-Sprachfunktionen, für die ein neuer experimenteller Compiler namens Jack erforderlich ist. Die aktuelle Version von Jack wird derzeit nur in Android Studio 2.1 unterstützt. Wenn Sie also Java 8-Sprachfunktionen verwenden möchten, müssen Sie Ihre App mit Android Studio 2.1 erstellen.

    Hinweis:Instant Run ist deaktiviert, wenn Sie den Jack-Compiler aktivieren, da die beiden derzeit nicht kompatibel sind.

    Android Studio 2.1 ist zwar jetzt stabil, der Jack-Compiler ist aber weiterhin experimentell und muss mit der Eigenschaft jackOptions in der Datei build.gradle aktiviert werden.

    Abgesehen von den Änderungen zur Unterstützung der N-Vorschau enthält Android Studio 2.1 kleinere Fehlerkorrekturen und die folgenden Verbesserungen:

    • Der Java-kompatible C++-Debugger ist jetzt standardmäßig aktiviert, wenn Sie ein N-Gerät oder einen N-Emulator verwenden und den Debuggermodus Native (Nativ) auf dem Tab Debugger (Debugger) für Ihre Run/Debug-Konfiguration auswählen.

    Für andere Build-Optimierungen, einschließlich der inkrementellen Java-Kompilierung und des Dexing im Prozess,aktualisieren Sie das Android-Plug-in für Gradle auf Version 2.1.0.

    2.0 (April 2016)

    Hinweis:Wenn Sie für die N-Entwicklervorschau entwickeln, sollten Sie Android Studio 2.1 Preview verwenden. Android Studio 2.0 unterstützt nicht alle Funktionen, die für die N-Vorschauversion erforderlich sind.

    Instant Run:

    • Android Studio stellt jetzt Clean Builds schneller als je zuvor bereit. Außerdem werden inkrementelle Codeänderungen jetzt fast sofort an den Emulator oder ein physisches Gerät übertragen. Sie können Ihre Updates überprüfen, ohne einen neuen Debug-Build neu bereitzustellen oder die App in vielen Fällen neu zu starten.
    • Mit Instant Run können die folgenden Änderungen an eine laufende App übertragen werden:
      • Änderungen an der Implementierung einer vorhandenen Instanzmethode oder statischen Methode
      • Änderungen an einer vorhandenen App-Ressource
      • Änderungen am strukturellen Code, z. B. an einer Methodensignatur oder einem statischen Feld (erfordert ein Zielgerät mit API‑Level 21 oder höher).
    • Weitere Informationen zu Instant Run

      Hinweis:Instant Run wird nur unterstützt, wenn Sie die Debug-Build-Variante bereitstellen, Android-Plug-in für Gradle-Version 2.0.0 oder höher verwenden und die build.gradle-Datei auf Modulebene Ihrer App für minSdkVersion 15 oder höher konfigurieren. Für eine optimale Leistung sollten Sie Ihre App für minSdkVersion 21 oder höher konfigurieren.

    Neue Ergänzungen für Lint:

    • Prüfung von switch-Anweisungen mit @IntDef-annotierten Ganzzahlen, um sicherzustellen, dass alle Konstanten berücksichtigt werden. Wenn Sie fehlende Anweisungen schnell hinzufügen möchten, verwenden Sie das Drop-down-Menü für Intention-Aktionen und wählen Sie Add Missing @IntDef Constants (Fehlende @IntDef-Konstanten hinzufügen) aus.
    • Flags für falsche Versuche, mit String-Interpolation Versionsnummern in die Datei build.gradle einzufügen.
    • Flags für anonyme Klassen, die die Klasse Fragment erweitern.
    • Flags für nativen Code an unsicheren Speicherorten wie den Ordnern res/ und asset/. Dieses Flag empfiehlt, nativen Code im Ordner libs/ zu speichern, der dann bei der Installation sicher im Ordner data/app-lib/ der Anwendung verpackt wird. AOSP: #169950
    • Flags für unsichere Aufrufe von Runtime.load() und System.load(). AOSP: #179980
    • Suchen und entfernen Sie alle nicht verwendeten Ressourcen, indem Sie in der Menüleiste Refactor > Remove Unused Resources (Umgestalten > Nicht verwendete Ressourcen entfernen) auswählen. Die Erkennung nicht verwendeter Ressourcen unterstützt jetzt Ressourcen, auf die nur von nicht verwendeten Ressourcen verwiesen wird, Verweise in Rohdateien wie .html-Bildverweise sowie tools:keep- und tools:discard-Attribute, die vom Gradle-Ressourcen-Shrinker verwendet werden. Dabei werden inaktive Quellsets (z. B. Ressourcen, die in anderen Build-Varianten verwendet werden) berücksichtigt und statische Feldimporte richtig verarbeitet.
    • Prüft, ob implizite API-Referenzen auf allen Plattformen unterstützt werden, die von minSdkVersion abgedeckt werden.
    • Kennzeichnet die unsachgemäße Verwendung von RecyclerView und Parcelable.
    • Die Prüfungen @IntDef, @IntRange und @Size werden jetzt auch für int-Arrays und Varargs durchgeführt.

    Weitere Verbesserungen:

    • Optimiert für Android Emulator 2.0, der schneller als je zuvor ist, eine größere Auswahl an virtuellen Geräten unterstützt und eine deutlich verbesserte Benutzeroberfläche bietet. Weitere Informationen zum neuen Emulator finden Sie in den Versionshinweisen zu SDK Tools.
    • Verbesserungen am Android Virtual Device Manager:
      • System-Images sind jetzt in die folgenden Tabs unterteilt: Empfohlen, x86 und Sonstige.
      • Unter „Erweiterte Einstellungen“ können Sie die Unterstützung für mehrere Kerne aktivieren und die Anzahl der Kerne angeben, die der Emulator verwenden kann.
      • Unter „Erweiterte Einstellungen“ können Sie festlegen, wie Grafiken im Emulator gerendert werden. Wählen Sie dazu eine der folgenden Optionen aus:
        • Hardware:Verwenden Sie die Grafikkarte Ihres Computers für ein schnelleres Rendern.
        • Software:Verwenden Sie softwarebasiertes Rendering.
        • Automatisch:Der Emulator wählt die beste Option aus. Dies ist die Standardeinstellung.
    • Die AAPT-Paketierungszeiten wurden verbessert, indem das Bereitstellungsziel vor dem Erstellen der App angegeben wird. So kann Android Studio nur die für das angegebene Gerät erforderlichen Ressourcen effizient verpacken.
    • Cloud Test Lab-Integration hinzugefügt, um On-Demand-App-Tests mit dem Komfort und der Skalierbarkeit eines Cloud-Dienstes zu ermöglichen. Weitere Informationen zur Verwendung von Cloud Test Lab mit Android Studio
    • Eine Vorschau des neuen GPU-Debuggers wurde hinzugefügt. Bei grafikintensiven Anwendungen können Sie jetzt Ihren OpenGL ES-Code visuell durchgehen, um Ihre App oder Ihr Spiel zu optimieren.
    • Google App Indexing Test hinzugefügt Fügen Sie Ihren Apps Unterstützung für URLs, App-Indexierung und Suchfunktionen hinzu, um mehr Traffic für Ihre App zu generieren, herauszufinden, welche App-Inhalte am häufigsten verwendet werden, und neue Nutzer zu gewinnen. URLs in Ihrer App direkt in Android Studio testen und validieren Weitere Informationen finden Sie unter URLs und App-Indexierung in Android Studio unterstützen.
    • Upgrades von der neuesten IntelliJ 15-Version, einschließlich verbesserter Codeanalyse und Leistung. Eine vollständige Beschreibung der neuen Funktionen und Verbesserungen finden Sie unter Neuerungen in IntelliJ.
    • Bei der automatischen Vervollständigung im XML-Editor werden jetzt Anführungszeichen hinzugefügt, wenn Attribute vervollständigt werden. Wenn Sie prüfen möchten, ob diese Option aktiviert ist, öffnen Sie das Dialogfeld Einstellungen oder Einstellungen, rufen Sie Editor > Allgemein > Smart Keys auf und setzen Sie ein Häkchen neben Anführungszeichen für Attributwert bei Attributvervollständigung hinzufügen. Problem: 195113
    • Der XML-Editor unterstützt jetzt die Codevervollständigung für Data Binding-Ausdrücke.

    Android Studio v1.5.1 (Dezember 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Es wurde ein Problem behoben, bei dem im Layout-Editor ein Rendering-Fehler auftrat. Problem: 194612
    • Es wurde die Möglichkeit hinzugefügt, description-Manifestattribute nach Konfiguration zu variieren. Problem: 194705
    • Der Kontrast des Darcula-Designs von Android Studio wurde in Vector Asset Studio verbessert. Problem: 191819
    • Unterstützung für die Schaltfläche Hilfe in Vector Asset Studio hinzugefügt.
    • Unterstützung für den Operator % für die Datenbindung hinzugefügt. Problem: 194045
    • Ein Problem wurde behoben, bei dem beim Starten einer App zum Debuggen der Debugger eine Verbindung zum falschen Gerät herstellte. Problem: 195167
    • Eine Nullzeigerausnahme wurde behoben, die beim Ausführen einer App in bestimmten Szenarien auftreten konnte.

    Android Studio v1.5.0 (November 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Android Monitor wurde um neue Funktionen zur Analyse des Arbeitsspeichers erweitert. Wenn Sie eine HPROF-Datei ansehen, die von diesem Monitor erfasst wurde, ist die Darstellung jetzt hilfreicher, sodass Sie Probleme wie Speicherlecks schneller finden können. Klicken Sie unten im Hauptfenster auf Android Monitor, um diesen Monitor zu verwenden. Klicken Sie in Android Monitor auf den Tab Memory (Arbeitsspeicher). Klicken Sie während der Ausführung des Monitors auf das Symbol Java-Heap-Dump und dann im Hauptfenster auf Captures (Aufnahmen). Doppelklicken Sie auf die Datei, um sie anzusehen. Klicken Sie rechts auf Capture-Analyse. (Der Android Device Monitor kann nicht gleichzeitig mit dem Android Monitor ausgeführt werden.)
    • Unterstützung für neue Deeplinks und App-Links hinzugefügt Der Code-Editor kann automatisch einen Intent-Filter für Deep-Linking in der Datei AndroidManifest.xml erstellen. Außerdem kann es Code generieren, mit dem Sie die App Indexing API in eine Aktivität in einer Java-Datei einbinden können. Mit einer Funktion zum Testen von Deeplinks können Sie prüfen, ob eine App über einen bestimmten Deeplink gestartet werden kann. Im Dialogfeld Run/Debug Configurations (Konfigurationen für Ausführung/Debugging) können Sie auf dem Tab General (Allgemein) Optionen für das Starten von Deeplinks angeben. Sie können App Indexing API-Aufrufe in einer Aktivität auch mit der logcat-Anzeige von Android Monitor testen. Das Android-Tool lint gibt jetzt Warnungen für bestimmte Probleme mit Deeplinks und der App Indexing API aus.
    • Es ist jetzt möglich, beim Vervollständigen von benutzerdefinierten Ansichten im Code-Editor Kurznamen zu verwenden.
    • Vector Asset Studio unterstützt jetzt mehr VectorDrawable-Elemente, um die Abwärtskompatibilität zu verbessern. Vector Asset Studio kann diese Elemente verwenden, um Vektordrawables in PNG-Rasterbilder umzuwandeln, die mit Android 4.4 (API-Level 20) und niedriger verwendet werden können.
    • Es wurden neue lint-Prüfungen für Android TV und Android Auto hinzugefügt, um Ihnen in Android Studio sofortiges, umsetzbares Feedback sowie mehrere Schnellkorrekturen zu geben. Bei Android TV kann es beispielsweise Probleme mit Berechtigungen, nicht unterstützter Hardware, dem uses-feature-Element und fehlenden Bannern melden und eine schnelle Lösung anbieten. Bei Android Auto kann es die korrekte Verwendung in der Deskriptordatei validieren, auf die in Ihrer AndroidManifest.xml-Datei verwiesen wird. Außerdem kann es melden, wenn kein Intent-Filter für die MediaBrowserService-Klasse vorhanden ist, und bestimmte Probleme mit Sprachaktionen erkennen.
    • Es wurden neue lint-Prüfungen für unsichere Broadcast-Empfänger, die Verwendung der Klassen SSLCertificateSocketFactory und HostnameVerifier sowie File.setReadable()- und File.setWritable()-Aufrufe hinzugefügt. Außerdem werden ungültige Manifestressourcen-Lookups erkannt, insbesondere für Ressourcen, die je nach Konfiguration variieren.
    • Es wurden mehrere Stabilitätsprobleme behoben.

    Android Studio v1.4.1 (Oktober 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Ein Problem mit dem Caching von Gradle-Modellen wurde behoben, das beim Neustart der IDE zu übermäßigem Gradle-Syncing führen konnte.
    • Ein Problem mit einem Deadlock beim nativen Debugging wurde behoben.
    • Es wurde ein Problem behoben, das Nutzer des Versionskontrollsystems Subversion 1.9 betraf.
    • Ein Problem im Dialogfeld Geräteauswahl wurde behoben. Nachdem ein nicht autorisiertes Gerät verbunden wurde, konnte der Emulator nicht mehr ausgewählt werden. Problem: 189658
    • Die Fehlerberichterstattung für falsche Übersetzungen wurde für Gebietsschemas mit einem Regions-Qualifier und einer Übersetzung in der Region (aber nicht im Basisgebietsschema) korrigiert. Problem: 188577
    • Ein Deadlock-Problem im Designeditor wurde behoben, das mit der Interaktion mit dem Layout-Editor zusammenhing. Problem 188070
    • Ein Problem wurde behoben, bei dem es zu einem Konflikt zwischen dem Neuladen und dem Bearbeiten des Theme-Editors kam, wodurch Attribute nicht richtig aktualisiert wurden. Problem: 187726
    • Die Leistung des Designeditors wurde verbessert.
    • Ein Problem wurde behoben, bei dem das Attribut android:required im Manifest ignoriert wurde. Problem: 187665

    Android Studio v1.4.0 (September 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Das Tool Vector Asset Studio wurde hinzugefügt, um Vektorgrafiken wie Material-Symbole und SVG-Dateien zu importieren. Klicken Sie in der Android-Ansicht des Projektfensters mit der rechten Maustaste auf den Ordner res und wählen Sie Neu > Vektor-Asset aus, um dieses Tool zu verwenden.
    • Es wurden neue Android Monitor-Funktionen für GPU und Netzwerk hinzugefügt. Wenn Sie diese Monitore verwenden möchten, klicken Sie unten im Hauptfenster auf Android Monitor. Der Android Device Monitor darf nicht gleichzeitig mit dem Android Monitor ausgeführt werden.
    • Es wurde eine Vorabversion des neuen Theme-Editors hinzugefügt. Wählen Sie zum Verwenden dieser Funktion Tools > Android > Theme Editor aus.
    • Die Android-Vorlagen für die Design Support Library wurden aktualisiert. Vorlagen unterstützen jetzt die Material Design-Spezifikation sowie die appcompat-Supportbibliothek für die Abwärtskompatibilität.

    Android Studio v1.3.2 (August 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Unterstützung für Android 6.0 (API-Level 23) hinzugefügt, einschließlich neuer Symbole und AVD Manager-Unterstützung zum Erstellen von Geräten mit neuen Bildschirmdichten.
    • Eine Ausnahme wurde behoben, die bei der Suche nach Updates aufgetreten ist. Problem: 183068
    • Ein Problem wurde behoben, durch das der Layout-Editor abstürzen konnte, wenn Ansichtskoordinaten nicht aufgelöst wurden. Problem 178690
    • Ein Problem mit Warnungen zu ungültigen Ressourcentypen wurde behoben. Problem 182433
    • Ein Lint-Check wurde korrigiert, der Ressourcen fälschlicherweise als privat gekennzeichnet hat. Problem: 183120

    Android Studio 1.3.1 (August 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Die Unterstützung für das Erstellen eines AVD für Android Wear unter Windows wurde behoben.
    • Der Projektassistent wurde aktualisiert, sodass der eingegebene Projektname verwendet wird.
    • Unterstützung hinzugefügt, damit das Android SDK in einem schreibgeschützten Verzeichnis gespeichert werden kann.
    • Die Version des Android-Plug-ins für Gradle wurde auf 1.3.0 aktualisiert.
    • Probleme beim Starten einer Debugging-Sitzung über die Unix-Shell von Android Debug Bridge (adb) wurden behoben.
    • Die Meldung zum Umbenennen von Java-Paketen wurde korrigiert, sodass der richtige Paketname angezeigt wird.

    Android Studio v1.3.0 (Juli 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Es wurden Optionen hinzugefügt, mit denen Sie Entwicklerdienste wie Google AdMob und Analytics in Ihrer App direkt in Android Studio aktivieren können.
    • Es wurden zusätzliche Anmerkungen hinzugefügt, z. B. @RequiresPermission, @CheckResults und @MainThread.
    • Es wurde die Möglichkeit hinzugefügt, Java-Heap-Dumps zu generieren und Thread-Zuweisungen über den Memory Monitor zu analysieren. Sie können auch Android-spezifische HPROF-Binärformatdateien in Android Studio in das Standard-HPROF-Format konvertieren.
    • Der SDK-Manager wurde in Android Studio integriert, um den Zugriff auf Pakete und Tools zu vereinfachen und Updatebenachrichtigungen bereitzustellen.

      Hinweis:Der eigenständige SDK Manager ist weiterhin über die Befehlszeile verfügbar, sollte aber nur für eigenständige SDK-Installationen verwendet werden.

    • Der Befehl finger wurde in der Emulator-Konsole hinzugefügt, um die Fingerabdruck-Authentifizierung zu simulieren.
    • Eine <public>-Ressourcendeklaration wurde hinzugefügt, um Bibliotheksressourcen als öffentliche und private Ressourcen zu kennzeichnen.

      Hinweis:Erfordert das Android-Plug-in für Gradle ab Version 1.3.

    • Datenbindung wurde hinzugefügt, um deklarative Layouts zu erstellen, die Ihre Anwendungslogik an Layout-Elemente binden.
    • Unterstützung für ein separates Test-APK-Modul zum Erstellen von Test-APKs in Android Studio wurde hinzugefügt.
    • Der AVD Manager wurde mit HAXM-Optimierungen und verbesserten Benachrichtigungen aktualisiert.
    • Unterstützung für 64-Bit-ARM- und MIPS-Emulatoren für QEMU 2.1 hinzugefügt.
    • Die Behebung von Lint-Warnungen wurde vereinfacht, indem Schnellkorrekturen hinzugefügt wurden, z. B. die automatische Generierung der Parcelable-Implementierung.
    • Unterstützung für Live-Vorlagen zum schnellen Einfügen von Code-Snippets hinzugefügt.

    Android Studio v1.2.2(Juni 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Es wurden Build-Probleme behoben, die den Abschluss von Builds verhindert haben.

    Android Studio v1.2.1 (Mai 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Geringfügige Probleme mit der Leistung und den Funktionen wurden behoben.

    Android Studio v1.2.0 (April 2015)

    Fehlerkorrekturen und Verbesserungen:

    • Das Android-Laufzeitfenster wurde aktualisiert und enthält jetzt das Tool Memory Monitor. Außerdem wurde ein Tab für die Überwachung der CPU-Leistung hinzugefügt.
    • Auf der Registerkarte Captures (Aufnahmen) in der linken Seitenleiste werden die erfassten Dateien mit Arbeitsspeicher- und CPU-Leistungsdaten angezeigt, z. B. CPU-Methoden-Tracking und Arbeitsspeicher-Heap-Snapshots.
    • Die Unterstützung von Anmerkungen wurde um zusätzliche Metadatenanmerkungen und abgeleitete Nullable-Werte erweitert.
    • Der Übersetzungseditor wurde um zusätzliche Unterstützung für BCP 47 (Best Current Practice) erweitert, das 3-Buchstaben-Sprach- und 3-Buchstaben-Regionscodes verwendet.
    • Integrierte IntelliJ-Funktionen für Version 14 und 14.1 für verbesserte Codeanalyse und Leistung:
      • Erweitertes Debugging mit Inline-Werten für Variablen und verweisende Objekte sowie Inline-Auswertung von Lambda- und Operatorausdrücken.
      • Die Erkennung des Codestils für Tabulator- und Einzugsgrößen wurde hinzugefügt.
      • Es wurden Scratch-Dateien für Code-Experimente und Prototyping ohne Projektdateien hinzugefügt.
      • Es wurde die gleichzeitige Einfügung von öffnenden und schließenden Tags in HTML- und XML-Dateien hinzugefügt.
      • Es wurde ein integrierter Java-Klassendecompiler hinzugefügt, mit dem Sie sich ansehen können, was in einer Bibliothek enthalten ist, für die der Quellcode nicht verfügbar ist.

      Eine vollständige Beschreibung der neuen Funktionen und Verbesserungen finden Sie unter Neuerungen in IntelliJ.

    • Es wurden zusätzliche Projektansichten für Scratches, Projektdateien, Probleme, Produktion und Tests hinzugefügt, um die Projektverwaltung und den Zugriff zu verbessern.
    • Das Menü Datei > Einstellungen und die zugehörigen Dialogfelder wurden verbessert, um den Zugriff auf die Einstellungen und deren Verwaltung zu optimieren.
    • Unterstützung für hochauflösende Displays für Windows und Linux hinzugefügt.
    • Unterstützung für 280 dpi-Ressourcen im Ordner res/drawable-280dpi/ hinzugefügt.

    Android Studio v1.1.0 (Februar 2015)

    Verschiedene Fehlerkorrekturen und Verbesserungen:

    • Unterstützung für die Android Wear-Smartwatch-Vorlage hinzugefügt.
    • Die Erstellung neuer Projekte und Module wurde so geändert, dass res/mipmap-Ordner für dichteabhängige Launcher-Symbole enthalten sind. Diese res/mipmap-Ordner ersetzen die res/drawable-Ordner für Launcher-Symbole.
    • Die Launcher-Symbole wurden aktualisiert und haben jetzt ein Material Design-Look. Außerdem wurde ein xxxhdpi-Launcher-Symbol hinzugefügt.
    • Es wurden Lint-Prüfungen für Regions- und Sprachkombinationen, Launcher-Symbole, Ressourcennamen und andere häufige Code-Probleme hinzugefügt und verbessert.
    • Unterstützung für das BCP 47-Sprachentag wurde hinzugefügt.

    Android Studio v1.0.1 (Dezember 2014)

    Verschiedene Fehlerkorrekturen und Verbesserungen:

    • Ein Problem mit der Sperrung von AVD Manager und der Datei device.xml wurde behoben.
    • Das Emulator-Log wurde auf Windows-Systemen korrigiert.
    • Ein Problem beim Erstellen von AVDs mit Android Studio und dem Android SDK, die auf verschiedenen Laufwerken auf Windows-Systemen installiert sind, wurde behoben.
    • Legt den Standard-Update-Channel für neue Downloads auf Stabil fest. Wenn Sie Version 1.0.0 von Android Studio installiert haben und Updates für eine stabile, produktionsreife Version erhalten möchten, wechseln Sie über Datei > Einstellungen > Updates zum Stabil-Updatekanal.

    Android Studio v1.0 (Dezember 2014)

    Erste Version von Android Studio.

    Android Studio v0.8.14 (Oktober 2014)

    Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.

    Android Studio v0.8.6 (August 2014)

    Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.

    Android Studio v0.8.0 (Juni 2014)

    Unterstützung für Android Wear-Projekte hinzugefügt.

    Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.

    Android Studio v0.5.2 (Mai 2014)

    Android Studio v0.4.6 (März 2014)

    Android Studio v0.4.2 (Januar 2014)

    Android Studio v0.3.2 (Oktober 2013)

    Android Studio v0.2.x (Juli 2013)

    • Die neuesten Änderungen an der IntelliJ-Codebasis wurden zusammengeführt. Beinhaltet Korrekturen für von Studio-Nutzern gemeldete Probleme, z. B. Anpassungen der Schriftgrößen und des Schriftrendering unter Linux.
    • Das Android-Gradle-Plug-in wurde auf Version 0.5.0 aktualisiert.

      Achtung:Diese neue Version ist nicht abwärtskompatibel. Wenn Sie ein Projekt öffnen, in dem eine ältere Version des Plug-ins verwendet wird, wird in Studio die Fehlermeldung Gradle <project_name> project refresh failed. angezeigt.

      Das aktualisierte Gradle-Plug-in enthält die folgenden Änderungen:

      • Das IDE-Modell wurde so korrigiert, dass es die Ausgabedatei auch dann enthält, wenn sie über die DSL angepasst wird. Außerdem wurde die DSL zum Abrufen/Festlegen der Ausgabedatei für das Variantenobjekt korrigiert, sodass variant.packageApplication or variant.zipAlign nicht mehr verwendet werden muss.
      • Die Abhängigkeitsauflösung wurde korrigiert, sodass die Kombination aus (Standardkonfiguration, Build-Typen, Flavor(s)) zusammen anstatt separat aufgelöst wird.
      • Die Abhängigkeit für Tests von Bibliotheksprojekten wurde korrigiert, damit alle Abhängigkeiten der Bibliothek selbst richtig einbezogen werden.
      • Es wurde ein Fall behoben, in dem zwei Abhängigkeiten denselben Blattnamen hatten.
      • Das Problem, dass die Proguard-Regeldatei nicht auf Varianten angewendet werden kann, wurde behoben.

      Alle Versionshinweise zum Gradle-Plug-in finden Sie unter http://tools.android.com/tech-docs/new-build-system.

    • Gradle-Fehler von aapt verweisen nicht mehr auf zusammengeführte Ausgabedateien im Ordner „build/“, sondern auf die tatsächlichen Quellspeicherorte.
    • Parallele Builds. Es ist jetzt möglich, parallele Builds von Gradle zu verwenden. Parallele Builds befinden sich noch in der Inkubationsphase (siehe Gradle-Dokumentation). Diese Funktion ist standardmäßig deaktiviert. Aktivieren Sie dazu unter Einstellungen > Compiler das Kästchen Unabhängige Module parallel kompilieren.
    • Weitere Verbesserungen am neuen Ressourcen-Repository, das für das Rendern von Layouts, das Reduzieren von Ressourcen im Editor und mehr verwendet wird:
      • Grundlegende Unterstützung für .aar-Bibliotheksabhängigkeiten (z.B. Verwendung einer Bibliothek ohne lokale Kopie der Quellen). Funktioniert weiterhin nicht für die XML-Validierung und die Navigation in Quellcode-Editoren.
      • Erkennung von Zyklen in Ressourcenreferenzen.
      • In der Kurzdokumentation (F1), in der alle Übersetzungen des Strings unter dem Cursor angezeigt werden können, werden jetzt auch alle Ressourcen-Overlays aus den verschiedenen Gradle-Varianten und Build-Typen sowie Bibliotheken angezeigt. Sie werden in umgekehrter Reihenfolge der Ressourcenüberlagerung aufgeführt. Die Versionen des Strings, die maskiert sind, sind durchgestrichen.
      • Korrekturen für die Aktualisierung der zusammengeführten Ressourcen, wenn sich die Modulabhängigkeiten ändern.
      • Korrekturen für das XML-Rendering, um Deklarationen von Zeichenentitäten sowie XML- und Unicode-Escapes korrekt zu verarbeiten.
    • Unterstützung für das Speichern von Screenshots für die Fenster „Layout-Vorschau“ und „Layout-Editor“.
    • Fehlerkorrekturen für Vorlagen.
    • Fehlerkorrekturen für Lint.
    • Verschiedene Fehlerkorrekturen für Absturzberichte. Vielen Dank und bitte senden Sie uns weiterhin Absturzberichte.

    Android Studio v0.1.x (Mai 2013)

    • Verschiedene Fehlerkorrekturen, einschließlich einer Korrektur für ein häufiges Windows-Installationsproblem.

    Ältere Versionen des Android-Gradle-Plug-ins

    3.6.0 (Februar 2020)

    Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

    Neue Funktionen

    Diese Version des Android-Gradle-Plug-ins enthält die folgenden neuen Funktionen.

    View Binding

    Die Ansichtsbindung bietet Typsicherheit zur Kompilierzeit, wenn Sie in Ihrem Code auf Ansichten verweisen. Sie können findViewById() jetzt durch die automatisch generierte Referenz der Bindungsklasse ersetzen. Wenn Sie View Binding verwenden möchten, fügen Sie in die build.gradle-Datei jedes Moduls Folgendes ein:

          android {
              viewBinding.enabled = true
          }
          
          android {
              viewBinding.enabled = true
          }
          

    Weitere Informationen finden Sie in der Dokumentation zum Ansehen von Bindungen.

    Unterstützung für das Maven-Publish-Plug-in

    Das Android-Gradle-Plug-in unterstützt das Gradle-Plug-in für die Maven-Veröffentlichung, mit dem Sie Build-Artefakte in einem Apache Maven-Repository veröffentlichen können. Das Android-Gradle-Plug-in erstellt eine Komponente für jedes Build-Varianten-Artefakt in Ihrem App- oder Bibliotheksmodul, mit der Sie eine Veröffentlichung in einem Maven-Repository anpassen können.

    Weitere Informationen finden Sie auf der Seite zur Verwendung des Maven-Publish-Plug-ins.

    Neues Standardtool für die Paketerstellung

    Beim Erstellen der Debug-Version Ihrer App verwendet das Plug-in ein neues Verpackungstool namens zipflinger, um Ihr APK zu erstellen. Dieses neue Tool sollte die Build-Geschwindigkeit verbessern. Wenn das neue Verpackungstool nicht wie erwartet funktioniert, melden Sie bitte einen Fehler. Sie können zum alten Verpackungstool zurückkehren, indem Sie Folgendes in Ihre gradle.properties-Datei einfügen:

            android.useNewApkCreator=false
          
    Attribution für native Builds

    Sie können jetzt die Zeitdauer ermitteln, die Clang zum Erstellen und Verknüpfen jeder C/C++-Datei in Ihrem Projekt benötigt. Gradle kann einen Chrome-Trace ausgeben, der Zeitstempel für diese Compilerereignisse enthält. So können Sie besser nachvollziehen, wie viel Zeit für das Erstellen Ihres Projekts benötigt wird. So geben Sie diese Datei mit Build-Attributen aus:

    1. Fügen Sie das Flag -Pandroid.enableProfileJson=true hinzu, wenn Sie einen Gradle-Build ausführen. Beispiel:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. Öffnen Sie den Chrome-Browser und geben Sie chrome://tracing in die Suchleiste ein.

    3. Klicken Sie auf die Schaltfläche Laden und rufen Sie <var>project-root</var>/build/android-profile auf, um die Datei zu finden. Die Datei heißt profile-<var>timestamp</var>.json.gz.

    Die Attributionsdaten für den nativen Build werden oben im Viewer angezeigt:

    Attributions-Trace für native Builds in Chrome

    Geändertes Verhalten

    Bei Verwendung dieser Version des Plug-ins kann es zu den folgenden Verhaltensänderungen kommen.

    Native Bibliotheken werden standardmäßig unkomprimiert verpackt

    Wenn Sie Ihre App erstellen, wird extractNativeLibs vom Plug-in jetzt standardmäßig auf "false" gesetzt. Das bedeutet, dass Ihre nativen Bibliotheken seitenweise ausgerichtet und unkomprimiert verpackt sind. Dadurch wird zwar die Uploadgröße erhöht, aber Ihre Nutzer profitieren von Folgendem:

    • Die App-Installation ist kleiner, da die Plattform direkt über die installierte APK auf die nativen Bibliotheken zugreifen kann, ohne eine Kopie der Bibliotheken zu erstellen.
    • Die Downloadgröße ist geringer, da die Play Store-Komprimierung in der Regel besser ist, wenn Sie unkomprimierte native Bibliotheken in Ihr APK oder Android App Bundle einfügen.

    Wenn das Android-Gradle-Plug-in stattdessen komprimierte native Bibliotheken verpacken soll, fügen Sie das Folgende in das Manifest Ihrer App ein:

            <application
              android:extractNativeLibs="true"
              ... >
            </application>
            
          

    Hinweis:Das Manifestattribut extractNativeLibs wurde durch die DSL-Option useLegacyPackaging ersetzt. Weitere Informationen finden Sie in der Release-Anmerkung DSL zum Verpacken komprimierter nativer Bibliotheken verwenden.

    Standard-NDK-Version

    Wenn Sie mehrere Versionen des NDK herunterladen, wählt das Android-Gradle-Plugin jetzt eine Standardversion aus, die zum Kompilieren Ihrer Quellcode-Dateien verwendet wird. Bisher wurde im Plug-in die zuletzt heruntergeladene Version des NDK ausgewählt. Verwenden Sie das Attribut android.ndkVersion in der build.gradle-Datei des Moduls, um die vom Plug-in ausgewählte Standardeinstellung zu überschreiben.

    Vereinfachte R-Klassengenerierung

    Das Android-Gradle-Plugin vereinfacht den Kompilierungs-Classpath, indem es nur eine R-Klasse für jedes Bibliotheksmodul in Ihrem Projekt generiert und diese R-Klassen mit anderen Modulabhängigkeiten teilt. Diese Optimierung sollte zu schnelleren Builds führen. Dabei ist jedoch Folgendes zu beachten:

    • Da der Compiler R-Klassen mit Upstream-Modulabhängigkeiten teilt, ist es wichtig, dass jedes Modul in Ihrem Projekt einen eindeutigen Paketnamen verwendet.
    • Die Sichtbarkeit der R-Klasse einer Bibliothek für andere Projektabhängigkeiten wird durch die Konfiguration bestimmt, die zum Einbinden der Bibliothek als Abhängigkeit verwendet wird. Wenn Bibliothek A beispielsweise Bibliothek B als „api“-Abhängigkeit enthält, haben Bibliothek A und andere Bibliotheken, die von Bibliothek A abhängen, Zugriff auf die R-Klasse von Bibliothek B. Andere Bibliotheken haben jedoch möglicherweise keinen Zugriff auf die R-Klasse von Bibliothek B. Wenn in Bibliothek A die implementation-Abhängigkeitskonfiguration verwendet wird. Weitere Informationen finden Sie unter Abhängigkeitskonfigurationen.
    Entfernen von Ressourcen, die in der Standardkonfiguration fehlen

    Wenn Sie in Bibliotheksmodulen eine Ressource für eine Sprache einfügen, die nicht im Standardsatz von Ressourcen enthalten ist, z. B. wenn Sie hello_world als String-Ressource in /values-es/strings.xml einfügen, diese Ressource aber nicht in /values/strings.xml definieren, fügt das Android-Gradle-Plugin diese Ressource beim Kompilieren Ihres Projekts nicht mehr ein. Diese Verhaltensänderung sollte zu weniger Resource Not Found-Laufzeitfehlern und einer höheren Build-Geschwindigkeit führen.

    D8 berücksichtigt jetzt die CLASS-Aufbewahrungsrichtlinie für Anmerkungen.

    Beim Kompilieren Ihrer App berücksichtigt D8 jetzt, wenn für Annotationen eine CLASS-Aufbewahrungsrichtlinie gilt. Diese Annotationen sind zur Laufzeit nicht mehr verfügbar. Dieses Verhalten tritt auch auf, wenn das Ziel-SDK der App auf API-Level 23 festgelegt wird. Bisher war der Zugriff auf diese Anmerkungen zur Laufzeit möglich, wenn die App mit älteren Versionen des Android-Gradle-Plug-ins und D8 kompiliert wurde.

    Weitere Verhaltensänderungen
    • aaptOptions.noCompress ist auf allen Plattformen (sowohl für APKs als auch für App-Bundles) nicht mehr case-sensitive und berücksichtigt Pfade, in denen Großbuchstaben verwendet werden.
    • Die Datenbindung erfolgt jetzt standardmäßig inkrementell. Weitere Informationen finden Sie unter Problem 110061530.

    • Alle Unit-Tests, einschließlich Roboelectric-Unit-Tests, können jetzt vollständig im Cache gespeichert werden. Weitere Informationen finden Sie unter Problem Nr. 115873047.

    Fehlerkorrekturen

    Diese Version des Android-Gradle-Plug-ins enthält die folgenden Fehlerkorrekturen:

    • Robolectric-Unit-Tests werden jetzt in Bibliotheksmodulen unterstützt, die die Datenbindung verwenden. Weitere Informationen finden Sie unter Problem 126775542.
    • Sie können jetzt connectedAndroidTest-Aufgaben in mehreren Modulen ausführen, während der parallele Ausführungsmodus von Gradle aktiviert ist.

    Bekannte Probleme

    In diesem Abschnitt werden bekannte Probleme im Android-Gradle-Plug-in 3.6.0 beschrieben.

    Langsame Ausführung der Android Lint-Aufgabe

    Bei einigen Projekten kann es aufgrund einer Regression in der Parsing-Infrastruktur von Android Lint viel länger dauern, bis die Analyse abgeschlossen ist. Dies führt zu einer langsameren Berechnung der abgeleiteten Typen für Lambdas in bestimmten Codekonstrukten.

    Das Problem wird als Fehler in IDEA gemeldet und wird im Android-Gradle-Plug-in 4.0 behoben.

    Fehlende Manifestklasse {:#agp-missing-manifest}

    Wenn in Ihrer App benutzerdefinierte Berechtigungen im Manifest definiert sind, generiert das Android Gradle-Plug-in in der Regel eine Manifest.java-Klasse, die Ihre benutzerdefinierten Berechtigungen als Stringkonstanten enthält. Das Plug-in packt diese Klasse mit Ihrer App, sodass Sie zur Laufzeit einfacher auf diese Berechtigungen verweisen können.

    Das Generieren der Manifestklasse funktioniert im Android-Gradle-Plug-in 3.6.0 nicht. Wenn Sie Ihre App mit dieser Version des Plug-ins erstellen und sie auf die Manifestklasse verweist, wird möglicherweise eine ClassNotFoundException-Ausnahme angezeigt. Führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:

    • Verweisen Sie auf Ihre benutzerdefinierten Berechtigungen mit ihrem vollständig qualifizierten Namen. Beispiel: "com.example.myapp.permission.DEADLY_ACTIVITY".

    • Definieren Sie Ihre eigenen Konstanten, wie unten gezeigt:

                  public final class CustomPermissions {
                    public static final class permission {
                      public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY";
                    }
                  }
                  
                

    3.5.0 (August 2019)

    Das Android-Gradle-Plug-in 3.5.0 ist zusammen mit Android Studio 3.5 eine wichtige Version und das Ergebnis von Project Marble. Dabei liegt der Fokus auf der Verbesserung von drei Hauptbereichen der Android-Entwicklertools: Systemintegrität, Funktionsverbesserungen und Fehlerbehebung. Ein Hauptaugenmerk bei diesem Update lag auf der Verbesserung der Build-Geschwindigkeit von Projekten.

    Informationen zu diesen und anderen Project Marble-Updates finden Sie im Blog für Android-Entwickler oder in den Abschnitten unten.

    Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

    3.5.4 (Juli 2020)

    Diese kleinere Aktualisierung unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit in Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zu Version 4.0.1.

    3.5.3 (Dezember 2019)

    Dieses kleinere Update unterstützt Android Studio 3.5.3 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.

    3.5.2 (November 2019)

    Dieses kleinere Update unterstützt Android Studio 3.5.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    3.5.1 (Oktober 2019)

    Dieses kleinere Update unterstützt Android Studio 3.5.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    Inkrementelle Verarbeitung von Anmerkungen

    Der Annotationsprozessor Data Binding unterstützt die inkrementelle Annotationsverarbeitung, wenn Sie android.databinding.incremental=true in Ihrer gradle.properties-Datei festlegen. Diese Optimierung führt zu einer besseren inkrementellen Build-Leistung. Eine vollständige Liste der optimierten Annotationsprozessoren finden Sie in der Tabelle der inkrementellen Annotationsprozessoren.

    KAPT 1.3.30 und höher unterstützen auch inkrementelle Annotationsprozessoren, die Sie aktivieren können, indem Sie kapt.incremental.apt=true in Ihre gradle.properties-Datei einfügen.

    Cachefähige Unittests

    Wenn Sie festlegen, dass in Unit-Tests Android-Ressourcen, Assets und Manifeste verwendet werden sollen, indem Sie includeAndroidResources auf true setzen, generiert das Android-Gradle-Plug-in eine Testkonfigurationsdatei mit absoluten Pfaden, wodurch die Cache-Verschiebbarkeit beeinträchtigt wird. Sie können das Plug-in anweisen, die Testkonfiguration stattdessen mit relativen Pfaden zu generieren. Dadurch kann die Aufgabe AndroidUnitTest vollständig im Cache gespeichert werden. Fügen Sie dazu Folgendes in Ihre gradle.properties-Datei ein:

          android.testConfig.useRelativePath = true
        

    Bekannte Probleme

    • Wenn Sie das Kotlin-Gradle-Plug-in 1.3.31 oder früher verwenden, wird beim Erstellen oder Synchronisieren Ihres Projekts möglicherweise die folgende Warnung angezeigt:

                WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced
                        with 'variant.getPackageLibraryProvider()'.
                
              

      Aktualisieren Sie das Plug-in auf Version 1.3.40 oder höher, um dieses Problem zu beheben.

    3.4.0 (April 2019)

    Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

    3.4.3 (Juli 2020)

    Diese kleinere Aktualisierung unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit in Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zu Version 4.0.1.

    3.4.2 (Juli 2019)

    Dieses kleinere Update unterstützt Android Studio 3.4.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    3.4.1 (Mai 2019)

    Dieses kleinere Update unterstützt Android Studio 3.4.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    Neue Funktionen

    • Neue Abhängigkeitskonfigurationen für Lint-Prüfungen:Das Verhalten von lintChecks hat sich geändert und eine neue Abhängigkeitskonfiguration, lintPublish, wurde eingeführt, um Ihnen mehr Kontrolle darüber zu geben, welche Lint-Prüfungen in Ihren Android-Bibliotheken enthalten sind.

      • lintChecks: Dies ist eine vorhandene Konfiguration, die Sie für Lint-Prüfungen verwenden sollten, die nur beim lokalen Erstellen Ihres Projekts ausgeführt werden sollen. Wenn Sie zuvor die Abhängigkeitskonfiguration lintChecks verwendet haben, um Lint-Prüfungen in die veröffentlichte AAR-Datei einzufügen, müssen Sie diese Abhängigkeiten migrieren, um stattdessen die neue lintPublish-Konfiguration zu verwenden, die unten beschrieben wird.
      • lintPublish: Verwenden Sie diese neue Konfiguration in Bibliotheksprojekten für Lint-Prüfungen, die Sie in die veröffentlichte AAR-Datei aufnehmen möchten, wie unten gezeigt. Das bedeutet, dass in Projekten, in denen Ihre Bibliothek verwendet wird, auch diese Lint-Prüfungen angewendet werden.

      Im folgenden Codebeispiel werden beide Abhängigkeitskonfigurationen in einem lokalen Android-Bibliotheksprojekt verwendet.

      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks project(':lint')
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish project(':lintpublish')
      }
              
      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks(project(":lint"))
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish(project(":lintpublish"))
          }
              
      • Im Allgemeinen sollte sich die Build-Geschwindigkeit bei Verpackungs- und Signierungsaufgaben insgesamt verbessern. Wenn Sie eine Leistungsverschlechterung im Zusammenhang mit diesen Aufgaben feststellen, melden Sie bitte einen Fehler.

    Geändertes Verhalten

    • Warnung zur Einstellung des Funktions-Plug-ins für Android-Instant-Apps:Wenn Sie zum Erstellen Ihrer Instant-App noch das com.android.feature-Plug-in verwenden, wird im Android-Gradle-Plug-in 3.4.0 eine Warnung zur Einstellung angezeigt. Damit Sie Ihre Instant-App auch mit zukünftigen Versionen des Plug-ins erstellen können, sollten Sie sie auf die Verwendung des Plug-ins für dynamische Funktionen umstellen. Damit können Sie sowohl die installierte Version als auch die Instant-Version Ihrer App über ein einzelnes Android App Bundle veröffentlichen.

    • R8 standardmäßig aktiviert:R8 integriert Desugaring, Shrinking, Verschleierung, Optimierung und Dexing in einem Schritt, was zu einer spürbaren Verbesserung der Build-Leistung führt. R8 wurde im Android-Gradle-Plug-in 3.3.0 eingeführt und ist jetzt standardmäßig für App- und Android-Bibliotheksprojekte aktiviert, die das Plug-in 3.4.0 und höher verwenden.

    Das Bild unten bietet einen allgemeinen Überblick über den Kompilierungsprozess vor der Einführung von R8.

    Vor R8 war ProGuard ein anderer Kompilierungsschritt als Dexing und Desugaring.

    Mit R8 werden Desugaring, Shrinking, Verschleierung, Optimierung und Dexing (D8) jetzt in einem Schritt ausgeführt, wie unten dargestellt.

    Mit R8 werden Desugaring, Shrinking, Obfuscating, Optimizing und Dexing in einem einzigen Kompilierungsschritt ausgeführt.

    R8 ist so konzipiert, dass es mit Ihren vorhandenen ProGuard-Regeln funktioniert. Sie müssen also wahrscheinlich nichts weiter tun, um von R8 zu profitieren. Da es sich jedoch um eine andere Technologie als ProGuard handelt, die speziell für Android-Projekte entwickelt wurde, kann es sein, dass durch das Verkleinern und Optimieren Code entfernt wird, der von ProGuard möglicherweise nicht entfernt worden wäre. In dieser unwahrscheinlichen Situation müssen Sie möglicherweise zusätzliche Regeln hinzufügen, damit der Code in der Build-Ausgabe enthalten bleibt.

    Wenn Sie Probleme mit R8 haben, lesen Sie die Häufig gestellten Fragen zur R8-Kompatibilität, um zu prüfen, ob es eine Lösung für Ihr Problem gibt. Wenn keine Lösung dokumentiert ist, melden Sie bitte einen Fehler. Sie können R8 deaktivieren, indem Sie eine der folgenden Zeilen in die Datei gradle.properties Ihres Projekts einfügen:

          # Disables R8 for Android Library modules only.
          android.enableR8.libraries = false
          # Disables R8 for all modules.
          android.enableR8 = false
          
        

    Hinweis:Wenn Sie für einen bestimmten Build-Typ useProguard in der Datei build.gradle Ihres App-Moduls auf false festlegen, verwendet das Android-Gradle-Plug-in R8, um den Code Ihrer App für diesen Build-Typ zu verkleinern. Das gilt unabhängig davon, ob Sie R8 in der Datei gradle.properties Ihres Projekts deaktivieren.

    • ndkCompile ist veraltet:Wenn Sie versuchen, Ihre nativen Bibliotheken mit ndkBuild zu kompilieren, wird jetzt ein Build-Fehler ausgegeben. Verwenden Sie stattdessen entweder CMake oder ndk-build, um C- und C++-Code zu Ihrem Projekt hinzuzufügen.

    Bekannte Probleme

    • Die korrekte Verwendung eindeutiger Paketnamen wird derzeit nicht erzwungen, wird aber in späteren Versionen des Plug-ins strenger gehandhabt. Mit dem Android-Gradle-Plug-in 3.4.0 können Sie prüfen lassen, ob in Ihrem Projekt zulässige Paketnamen deklariert sind. Fügen Sie dazu die folgende Zeile in Ihre gradle.properties-Datei ein.

                android.uniquePackageNames = true
                
              

      Weitere Informationen zum Festlegen eines Paketnamens über das Android-Gradle-Plug-in finden Sie unter Anwendungs-ID festlegen.

    3.3.0 (Januar 2019)

    Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

    3.3.3 (Juli 2020)

    Diese kleinere Aktualisierung unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit in Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zu Version 4.0.1.

    3.3.2 (März 2019)

    Dieses kleinere Update unterstützt Android Studio 3.3.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Release Updates-Blog.

    3.3.1 (Februar 2019)

    Dieses kleinere Update unterstützt Android Studio 3.3.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.

    Neue Funktionen

    • Verbesserte Classpath-Synchronisierung:Beim Auflösen von Abhängigkeiten in den Classpaths für Laufzeit und Kompilierzeit versucht das Android-Gradle-Plug-in, bestimmte nachgelagerte Versionskonflikte für Abhängigkeiten zu beheben, die in mehreren Classpaths vorkommen.

      Wenn der Laufzeit-Klassenpfad beispielsweise Bibliothek A Version 2.0 enthält und der Kompilierungs-Klassenpfad Bibliothek A Version 1.0, aktualisiert das Plug-in die Abhängigkeit im Kompilierungs-Klassenpfad automatisch auf Bibliothek A Version 2.0, um Fehler zu vermeiden.

      Wenn der Laufzeit-Klassenpfad jedoch Bibliothek A Version 1.0 und der Kompilierungs-Klassenpfad Bibliothek A Version 2.0 enthält, wird die Abhängigkeit im Kompilierungs-Klassenpfad nicht auf Bibliothek A Version 1.0 herabgestuft und es wird ein Fehler ausgegeben. Weitere Informationen finden Sie unter Konflikte zwischen Classpaths beheben.

    • Verbesserte inkrementelle Java-Kompilierung bei Verwendung von Annotationsprozessoren:Mit diesem Update wird die Build-Zeit verkürzt, da die Unterstützung für die inkrementelle Java-Kompilierung bei Verwendung von Annotationsprozessoren verbessert wurde.

      Hinweis: Diese Funktion ist mit Gradle 4.10.1 und höher kompatibel, mit Ausnahme von Gradle 5.1 aufgrund von Gradle-Problem 8194.

      • Für Projekte, die Kapt verwenden (die meisten reinen Kotlin-Projekte und hybriden Kotlin-Java-Projekte): Die inkrementelle Java-Kompilierung ist aktiviert, auch wenn Sie Data Binding oder das Retro-Lambda-Plug-in verwenden. Die Verarbeitung von Annotationen durch die Kapt-Aufgabe ist noch nicht inkrementell.

      • Für Projekte, die Kapt nicht verwenden (reine Java-Projekte): Wenn die von Ihnen verwendeten Annotationsprozessoren alle inkrementelle Annotationsverarbeitung unterstützen, ist die inkrementelle Java-Kompilierung standardmäßig aktiviert. Wenn Sie die Einführung des inkrementellen Annotationsprozessors beobachten möchten, sehen Sie sich Gradle-Problem 5277 an.

        Wenn jedoch ein oder mehrere Anmerkungsprozessoren keine inkrementellen Builds unterstützen, wird die inkrementelle Java-Kompilierung nicht aktiviert. Stattdessen können Sie das folgende Flag in Ihre gradle.properties-Datei einfügen:

        android.enableSeparateAnnotationProcessing=true
                    

        Wenn Sie dieses Flag einfügen, führt das Android-Gradle-Plug-in die Annotationsprozessoren in einer separaten Aufgabe aus und ermöglicht die inkrementelle Ausführung der Java-Kompilierungsaufgabe.

    • Bessere Debugging-Informationen bei Verwendung einer veralteten API:Wenn das Plug-in erkennt, dass Sie eine API verwenden, die nicht mehr unterstützt wird, kann es jetzt detailliertere Informationen liefern, um Ihnen bei der Ermittlung der Verwendung dieser API zu helfen. Damit die zusätzlichen Informationen angezeigt werden, müssen Sie Folgendes in die Datei gradle.properties Ihres Projekts einfügen:

                android.debug.obsoleteApi=true
              

      Sie können das Flag auch aktivieren, indem Sie -Pandroid.debug.obsoleteApi=true über die Befehlszeile übergeben.

    • Sie können Instrumentierungstests für Funktionsmodule über die Befehlszeile ausführen.

    Geändertes Verhalten

    • Lazy Task Configuration:Das Plug-in verwendet jetzt die neue API zum Erstellen von Aufgaben in Gradle, um die Initialisierung und Konfiguration von Aufgaben zu vermeiden, die für den aktuellen Build nicht erforderlich sind (oder Aufgaben, die sich nicht im Ausführungs-Task-Diagramm befinden). Wenn Sie beispielsweise mehrere Build-Varianten haben, z. B. die Build-Varianten „release“ und „debug“, und Sie die „debug“-Version Ihrer App erstellen, werden durch das Plug-in Initialisierungs- und Konfigurationsaufgaben für die „release“-Version Ihrer App vermieden.

      Beim Aufrufen bestimmter älterer Methoden in der Variants API, z. B. variant.getJavaCompile(), kann es weiterhin erforderlich sein, Aufgaben zu konfigurieren. Damit Ihr Build für die Lazy-Task-Konfiguration optimiert ist, rufen Sie neue Methoden auf, die stattdessen ein TaskProvider-Objekt zurückgeben, z. B. variant.getJavaCompileProvider().

      Wenn Sie benutzerdefinierte Build-Aufgaben ausführen, erfahren Sie hier, wie Sie die neue API zum Erstellen von Aufgaben in Gradle anpassen.

    • Wenn Sie useProguard false für einen bestimmten Build-Typ festlegen, verwendet das Plug-in jetzt R8 anstelle von ProGuard, um den Code und die Ressourcen Ihrer App zu verkleinern und zu verschleiern. Weitere Informationen zu R8 finden Sie in diesem Blogpost im Blog für Android-Entwickler.

    • Schnellere R-Klassengenerierung für Bibliotheksprojekte:Bisher hat das Android-Gradle-Plug-in für jede Abhängigkeit Ihres Projekts eine R.java-Datei generiert und diese R-Klassen dann zusammen mit den anderen Klassen Ihrer App kompiliert. Das Plug-in generiert jetzt direkt eine JAR-Datei mit der kompilierten R-Klasse Ihrer App, ohne zuerst R.java-Zwischenklassen zu erstellen. Diese Optimierung kann die Build-Leistung für Projekte mit vielen Bibliotheksunterprojekten und ‑abhängigkeiten erheblich verbessern und die Indexierungsgeschwindigkeit in Android Studio steigern.

    • Wenn Sie ein Android App Bundle erstellen, enthalten APKs, die aus diesem App-Bundle generiert werden und auf Android 6.0 (API-Level 23) oder höher ausgerichtet sind, jetzt standardmäßig unkomprimierte Versionen Ihrer nativen Bibliotheken. Durch diese Optimierung muss das Gerät keine Kopie der Bibliothek erstellen, wodurch die Größe Ihrer App auf dem Datenträger reduziert wird. Wenn Sie diese Optimierung lieber deaktivieren möchten, fügen Sie der Datei gradle.properties Folgendes hinzu:

      android.bundle.enableUncompressedNativeLibs = false
              
    • Das Plug-in erzwingt Mindestversionen einiger Drittanbieter-Plug-ins.

    • Projektsynchronisierung mit einer einzelnen Variante: Das Synchronisieren Ihres Projekts mit Ihrer Build-Konfiguration ist ein wichtiger Schritt, damit Android Studio die Struktur Ihres Projekts nachvollziehen kann. Bei großen Projekten kann dieser Vorgang jedoch zeitaufwendig sein. Wenn in Ihrem Projekt mehrere Build-Varianten verwendet werden, können Sie die Projektsynchronisierung optimieren, indem Sie sie auf die aktuell ausgewählte Variante beschränken.

      Sie benötigen Android Studio 3.3 oder höher mit dem Android Gradle-Plug-in 3.3.0 oder höher, um diese Optimierung zu aktivieren. Wenn Sie diese Anforderungen erfüllen, werden Sie in der IDE aufgefordert, diese Optimierung zu aktivieren, wenn Sie Ihr Projekt synchronisieren. Die Optimierung ist auch für neue Projekte standardmäßig aktiviert.

      Wenn Sie diese Optimierung manuell aktivieren möchten, klicken Sie auf Datei > Einstellungen > Experimentell > Gradle (unter Android Studio auf einem Mac: Android Studio > Einstellungen > Experimentell > Gradle) und aktivieren Sie das Kästchen Nur die aktive Variante synchronisieren.

      Hinweis: Diese Optimierung unterstützt Projekte mit Java- und C++-Sprachen vollständig und bietet eingeschränkte Unterstützung für Kotlin. Wenn Sie die Optimierung für Projekte mit Kotlin-Inhalten aktivieren, wird bei der Gradle-Synchronisierung intern auf die Verwendung vollständiger Varianten zurückgegriffen.

    • Automatisches Herunterladen fehlender SDK-Pakete: Diese Funktion wurde erweitert und unterstützt jetzt auch das NDK. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.

    Fehlerkorrekturen

    • Im Android-Gradle-Plug-in 3.3.0 wurden die folgenden Probleme behoben:

      • Beim Build-Prozess wird android.support.v8.renderscript.RenderScript anstelle der AndroidX-Version aufgerufen, obwohl Jetifier aktiviert ist.
      • Konflikte aufgrund von androidx-rs.jar, einschließlich statisch gebündelter annotation.AnyRes
      • Bei der Verwendung von RenderScript müssen Sie die Build Tools-Version nicht mehr manuell in Ihren build.gradle-Dateien festlegen.

    3.2.0 (September 2018)

    Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

    3.2.1 (Oktober 2018)

    Mit diesem Update müssen Sie keine Version mehr für die SDK-Build-Tools angeben. Das Android-Gradle-Plug-in verwendet jetzt standardmäßig Version 28.0.3.

    Neue Funktionen

    • Unterstützung für das Erstellen von Android App Bundles:Das App Bundle ist ein neues Uploadformat, das den gesamten kompilierten Code und alle Ressourcen Ihrer App enthält. Die APK-Generierung und -Signierung wird an den Google Play Store übertragen. Sie müssen nicht mehr mehrere APKs erstellen, signieren und verwalten und Nutzer erhalten kleinere Downloads, die für ihr Gerät optimiert sind. Weitere Informationen zu Android App Bundles

    • Unterstützung für verbesserte inkrementelle Build-Geschwindigkeiten bei Verwendung von Annotationsprozessoren:Die AnnotationProcessorOptions-DSL erweitert jetzt CommandLineArgumentProvider, sodass Sie oder der Autor des Annotationsprozessors Argumente für den Prozessor mit Annotations für inkrementelle Build-Eigenschaftstypen annotieren können. Durch die Verwendung dieser Anmerkungen werden die Richtigkeit und Leistung von inkrementellen und gecachten Clean Builds verbessert. Weitere Informationen finden Sie unter Argumente an Annotationsprozessoren übergeben.

    • Migrationstool für AndroidX:Wenn Sie das Android-Gradle-Plug-in 3.2.0 mit Android 3.2 oder höher verwenden, können Sie die lokalen und Maven-Abhängigkeiten Ihres Projekts migrieren, um die neuen AndroidX-Bibliotheken zu verwenden. Wählen Sie dazu in der Menüleiste Refactor > Migrate to AndroidX (Umgestalten > Zu AndroidX migrieren) aus. Wenn Sie dieses Migrationstool verwenden, werden in Ihrer gradle.properties-Datei auch die folgenden Flags auf true gesetzt:

      • android.useAndroidX:Wenn dieser Wert auf true festgelegt ist, verwendet das Android-Plug-in die entsprechende AndroidX-Bibliothek anstelle einer Support Library. Wenn dieses Flag nicht angegeben ist, wird es vom Plug-in standardmäßig auf false gesetzt.

      • android.enableJetifier:Wenn diese Option auf true festgelegt ist, migriert das Android-Plug-in vorhandene Drittanbieterbibliotheken automatisch zu AndroidX, indem die Binärdateien neu geschrieben werden. Wenn dieses Flag nicht angegeben ist, wird es vom Plug-in standardmäßig auf false gesetzt. Sie können dieses Flag nur dann auf true setzen, wenn android.useAndroidX ebenfalls auf true gesetzt ist. Andernfalls erhalten Sie einen Build-Fehler.

        Weitere Informationen finden Sie in der AndroidX-Übersicht.

    • Neues Tool zur Codekomprimierung: R8: R8 ist ein neues Tool zur Codekomprimierung und ‑verschleierung, das ProGuard ersetzt. Sie können die Vorabversion von R8 verwenden, indem Sie Folgendes in die gradle.properties-Datei Ihres Projekts einfügen:

              android.enableR8 = true
              
              android.enableR8 = true
              

    Geändertes Verhalten

    • Desugaring mit D8 ist jetzt standardmäßig aktiviert.

    • AAPT2 ist jetzt im Maven-Repository von Google verfügbar. Wenn Sie AAPT2 verwenden möchten, muss die google()-Abhängigkeit in Ihrer build.gradle-Datei vorhanden sein, wie unten dargestellt:

                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
    • Die native Multidex-Funktion ist jetzt standardmäßig aktiviert. In früheren Versionen von Android Studio wurde beim Bereitstellen der Debug-Version einer App auf einem Gerät mit Android API‑Level 21 oder höher automatisch die native Multidex-Funktion aktiviert. Ganz gleich, ob Sie die App auf einem Gerät bereitstellen oder eine APK für die Veröffentlichung erstellen – das Android-Gradle-Plug-in ermöglicht jetzt nativen Multidex für alle Module, für die minSdkVersion=21 oder höher festgelegt ist.

    • Das Plugin erzwingt jetzt eine Mindestversion des Protobuf-Plugins (0.8.6), des Kotlin-Plugins (1.2.50) und des Crashlytics-Plugins (1.25.4).

    • Das Funktionsmodul-Plug-in,com.android.feature, erzwingt jetzt die Verwendung von nur Buchstaben, Ziffern und Unterstrichen bei der Angabe eines Modulnamens. Wenn der Name Ihres Funktionsmoduls beispielsweise Bindestriche enthält, erhalten Sie einen Build-Fehler. Dieses Verhalten entspricht dem des Plug-ins für dynamische Module.

    Fehlerkorrekturen

    • JavaCompile kann jetzt in Projekten mit Datenbindung im Cache gespeichert werden. (Problem 69243050)
    • Bessere Kompilierungsvermeidung für Bibliotheksmodule mit Datenbindung. (Problem 77539932)
    • Sie können configure-on-demand jetzt wieder aktivieren, wenn Sie es in früheren Versionen aufgrund einiger unvorhersehbarer Build-Fehler deaktiviert haben. (Problem 77910727)

    3.1.0 (März 2018)

    Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

    • Gradle 4.4 oder höher.

      Weitere Informationen finden Sie im Abschnitt Gradle aktualisieren.

    • Build Tools 27.0.3 oder höher.

      Sie müssen keine Version für die Build-Tools mit der Eigenschaft android.buildToolsVersion mehr angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion.

    Neuer DEX-Compiler, D8

    Standardmäßig verwendet Android Studio jetzt einen neuen DEX-Compiler namens D8. Bei der DEX-Kompilierung wird .class-Bytecode in .dex-Bytecode für die Android-Laufzeit (oder Dalvik für ältere Android-Versionen) umgewandelt. Im Vergleich zum vorherigen Compiler namens DX kompiliert D8 schneller und gibt kleinere DEX-Dateien aus. Dabei ist die Laufzeitleistung der App gleich oder besser.

    D8 sollte Ihren alltäglichen App-Entwicklungs-Workflow nicht ändern. Sollten Sie jedoch Probleme mit dem neuen Compiler haben, melden Sie bitte einen Fehler. Sie können D8 vorübergehend deaktivieren und DX verwenden, indem Sie Folgendes in die Datei gradle.properties Ihres Projekts einfügen:

          android.enableD8=false
        

    Für Projekte, die Java 8-Sprachfunktionen verwenden, ist das inkrementelle Desugaring standardmäßig aktiviert. Sie können sie deaktivieren, indem Sie Folgendes in der gradle.properties-Datei Ihres Projekts angeben:

          android.enableIncrementalDesugaring=false.
        

    Vorschauversionen:Wenn Sie bereits eine Vorschauversion von D8 verwenden, beachten Sie, dass sie jetzt für Bibliotheken kompiliert wird, die in den SDK-Build-Tools enthalten sind, nicht im JDK. Wenn Sie also auf APIs zugreifen, die im JDK, aber nicht in den Bibliotheken der SDK-Build-Tools vorhanden sind, erhalten Sie einen Kompilierungsfehler.

    Geändertes Verhalten

    • Wenn Sie mehrere APKs erstellen, die jeweils auf eine andere ABI ausgerichtet sind, werden mit nicht mehr standardmäßig APKs für die folgenden ABIs generiert: mips, mips64 und armeabi.

      Wenn Sie APKs erstellen möchten, die auf diese ABIs ausgerichtet sind, müssen Sie NDK r16b oder niedriger verwenden und die ABIs in Ihrer Datei build.gradle angeben, wie unten gezeigt:

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • Im Build-Cache des Android-Plug-ins werden jetzt Cache-Einträge entfernt, die älter als 30 Tage sind.

    • Wenn Sie "auto" an resConfig übergeben, werden keine String-Ressourcen mehr automatisch für die Aufnahme in Ihr APK ausgewählt. Wenn Sie "auto" weiterhin verwenden, packt das Plug-in alle String-Ressourcen, die Ihre App und ihre Abhängigkeiten bereitstellen. Stattdessen sollten Sie jede Sprache angeben, die das Plug-in in Ihr APK packen soll.

    • Da lokale Module nicht vom Test-APK Ihrer App abhängen können, wird durch das Hinzufügen von Abhängigkeiten zu Ihren instrumentierten Tests mit der Konfiguration androidTestApi anstelle von androidTestImplementation in Gradle die folgende Warnung ausgegeben:

              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              
              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              

    Fehlerkorrekturen

    • Ein Problem wurde behoben, bei dem Android Studio Abhängigkeiten in zusammengesetzten Builds nicht richtig erkennt.
    • Es wurde ein Problem behoben, bei dem beim Laden des Android-Plug-ins mehrmals in einem einzelnen Build ein Projektsynchronisierungsfehler auftrat, z. B. wenn mehrere Unterprojekte das Android-Plug-in jeweils in ihrem Buildscript-Classpath enthalten.

    3.0.0 (Oktober 2017)

    Das Android-Gradle-Plug-in 3.0.0 enthält eine Reihe von Änderungen, die darauf abzielen, Leistungsprobleme bei großen Projekten zu beheben.

    Bei einem Beispielprojekt mit Skelettstruktur mit etwa 130 Modulen und einer großen Anzahl externer Abhängigkeiten (aber ohne Code oder Ressourcen) können Sie beispielsweise ähnliche Leistungsverbesserungen wie die folgenden erzielen:

    Android-Plug-in-Version + Gradle-Version Android-Plug-in 2.2.0 + Gradle 2.14.1 Android-Plug-in 2.3.0 + Gradle 3.3 Android-Plug-in 3.0.0 + Gradle 4.1
    Konfiguration (z.B. Ausführen von ./gradlew --help) ~2 Min. ~ 9 Sek. ~2,5 s
    1-zeilige Java-Änderung (Implementierungsänderung) ~2 Min. 15 Sek. ~29 s ~6,4 s

    Einige dieser Änderungen führen dazu, dass vorhandene Builds nicht mehr funktionieren. Sie sollten also den Aufwand für die Migration Ihres Projekts berücksichtigen, bevor Sie das neue Plug-in verwenden.

    Wenn Sie die oben beschriebenen Leistungsverbesserungen nicht feststellen, melden Sie bitte einen Fehler und fügen Sie einen Trace Ihres Builds mit dem Gradle Profiler bei.

    Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

    • Gradle 4.1 oder höher. Weitere Informationen finden Sie im Abschnitt Gradle aktualisieren.
    • Build Tools 26.0.2 oder höher. Mit diesem Update müssen Sie keine Version für die Build-Tools mehr angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion. Sie können die Property android.buildToolsVersion jetzt entfernen.

    3.0.1 (November 2017)

    Dieses Update ist ein kleineres Update zur Unterstützung von Android Studio 3.0.1 und enthält allgemeine Fehlerkorrekturen und Leistungsverbesserungen.

    Optimierungen

    • Bessere Parallelität für Projekte mit mehreren Modulen durch einen detaillierten Task-Graphen.
    • Wenn Sie Änderungen an einer Abhängigkeit vornehmen, führt Gradle schnellere Builds aus, da Module, die keinen Zugriff auf die API dieser Abhängigkeit haben, nicht neu kompiliert werden. Sie sollten einschränken, welche Abhängigkeiten ihre APIs an andere Module weitergeben, indem Sie die neuen Abhängigkeitskonfigurationen von Gradle verwenden: implementation, api, compileOnly und runtimeOnly.
    • Schnellere inkrementelle Builds durch Dexing pro Klasse. Jede Klasse wird jetzt in separate DEX-Dateien kompiliert und nur die geänderten Klassen werden neu dexiert. Außerdem sollten Sie mit einer höheren Build-Geschwindigkeit für Apps rechnen, bei denen minSdkVersion auf 20 oder niedriger festgelegt ist und die Legacy-Multi-Dex verwenden.
    • Die Build-Geschwindigkeit wurde verbessert, indem bestimmte Aufgaben so optimiert wurden, dass sie zwischengespeicherte Ausgaben verwenden. Damit Sie von dieser Optimierung profitieren können, müssen Sie zuerst den Gradle-Build-Cache aktivieren.
    • Verbesserte inkrementelle Ressourcenverarbeitung mit AAPT2, das jetzt standardmäßig aktiviert ist. Wenn bei der Verwendung von AAPT2 Probleme auftreten, melden Sie bitte einen Fehler. Sie können AAPT2 auch deaktivieren, indem Sie android.enableAapt2=false in Ihrer gradle.properties-Datei festlegen und den Gradle-Daemon neu starten, indem Sie ./gradlew --stop über die Befehlszeile ausführen.

    Neue Funktionen

    • Variantenabhängige Abhängigkeitsverwaltung: Wenn Sie eine bestimmte Variante eines Moduls erstellen, gleicht das Plug-in jetzt automatisch Varianten von lokalen Bibliotheksmodulabhängigkeiten mit der Variante des Moduls ab, das Sie erstellen.
    • Enthält ein neues Feature-Modul-Plug-in zur Unterstützung von Android-Sofort-Apps und dem Android-Sofort-Apps-SDK (das Sie mit dem SDK Manager herunterladen können). Weitere Informationen zum Erstellen von Funktionsmodulen mit dem neuen Plug-in finden Sie unter Struktur einer Instant-App mit mehreren Funktionen.
    • Integrierte Unterstützung für die Verwendung bestimmter Java 8-Sprachfunktionen und Java 8-Bibliotheken. Jack ist jetzt veraltet und nicht mehr erforderlich. Sie sollten Jack zuerst deaktivieren, um die verbesserte Java 8-Unterstützung zu nutzen, die in die Standard-Toolchain integriert ist. Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.
    • Unterstützung für das Ausführen von Tests mit Android Test Orchestrator hinzugefügt. Damit können Sie jeden Test Ihrer App in einem eigenen Aufruf von Instrumentation ausführen. Da jeder Test in einer eigenen Instrumentation-Instanz ausgeführt wird, wird kein gemeinsamer Status zwischen Tests auf der CPU oder im Arbeitsspeicher Ihres Geräts gespeichert. Selbst wenn ein Test abstürzt, wird nur die zugehörige Instrumentation-Instanz beendet, sodass die anderen Tests weiterhin ausgeführt werden.

      • testOptions.execution wurde hinzugefügt, um festzulegen, ob die Testorchestration auf dem Gerät verwendet werden soll. Wenn Sie Android Test Orchestrator verwenden möchten, müssen Sie ANDROID_TEST_ORCHESTRATOR wie unten gezeigt angeben. Standardmäßig ist diese Eigenschaft auf HOST gesetzt. Dadurch wird die Orchestrierung auf dem Gerät deaktiviert. Dies ist die Standardmethode zum Ausführen von Tests.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • Mit der neuen androidTestUtil-Abhängigkeitskonfiguration können Sie vor dem Ausführen Ihrer Instrumentierungstests ein weiteres Test-Helper-APK installieren, z. B. Android Test Orchestrator:

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • testOptions.unitTests.includeAndroidResources wurde hinzugefügt, um Unittests zu unterstützen, für die Android-Ressourcen wie Roboelectric erforderlich sind. Wenn Sie diese Eigenschaft auf true setzen, führt das Plug-in das Zusammenführen von Ressourcen, Assets und Manifesten durch, bevor die Unit-Tests ausgeführt werden. Ihre Tests können dann com/android/tools/test_config.properties im Klassenpfad nach den folgenden Schlüsseln durchsuchen:

      • android_merged_assets: der absolute Pfad zum Verzeichnis mit den zusammengeführten Assets.

        Hinweis:Bei Bibliotheksmodulen enthalten die zusammengeführten Assets nicht die Assets von Abhängigkeiten (siehe Problem 65550419).

      • android_merged_manifest: der absolute Pfad zur zusammengeführten Manifestdatei.

      • android_merged_resources: Der absolute Pfad zum Verzeichnis mit den zusammengeführten Ressourcen, das alle Ressourcen aus dem Modul und allen zugehörigen Abhängigkeiten enthält.

      • android_custom_package: Der Paketname der endgültigen R-Klasse. Wenn Sie die Anwendungs-ID dynamisch ändern, stimmt dieser Paketname möglicherweise nicht mit dem package-Attribut im Manifest der App überein.

    • Unterstützung für Schriftarten als Ressourcen (eine neue Funktion, die in Android 8.0 (API-Level 26) eingeführt wurde).
    • Unterstützung für sprachspezifische APKs mit Android Instant Apps SDK 1.1 und höher.
    • Sie können jetzt das Ausgabeverzeichnis für Ihr externes natives Build-Projekt ändern, wie unten gezeigt:

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Sie können jetzt CMake 3.7 oder höher verwenden, wenn Sie native Projekte in Android Studio erstellen.
    • Mit der neuen lintChecks-Abhängigkeitskonfiguration können Sie eine JAR-Datei erstellen, in der benutzerdefinierte Lint-Regeln definiert sind, und sie in Ihre AAR- und APK-Projekte einbinden.

      Ihre benutzerdefinierten Lint-Regeln müssen zu einem separaten Projekt gehören, das eine einzelne JAR-Datei ausgibt und nur compileOnly-Abhängigkeiten enthält. Andere App- und Bibliotheksmodule können dann mit der lintChecks-Konfiguration von Ihrem Lint-Projekt abhängen:

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Geändertes Verhalten

    • Im Android-Plug-in 3.0.0 wurden bestimmte APIs entfernt. Wenn Sie diese verwenden, schlägt der Build fehl. Sie können beispielsweise nicht mehr über die Variants API auf outputFile()-Objekte zugreifen oder processManifest.manifestOutputFile() verwenden, um die Manifest-Datei für jede Variante abzurufen. Weitere Informationen finden Sie unter API-Änderungen.
    • Sie müssen keine Version mehr für die Build-Tools angeben. Sie können die Property android.buildToolsVersion also entfernen. Standardmäßig verwendet das Plug-in automatisch die mindestens erforderliche Version der Build-Tools für die Version des Android-Plug-ins, die Sie verwenden.
    • Sie aktivieren/deaktivieren die PNG-Kompression jetzt im Block buildTypes, wie unten gezeigt. Die PNG-Kompression ist standardmäßig für alle Builds außer Debug-Builds aktiviert, da sie die Build-Zeiten für Projekte mit vielen PNG-Dateien verlängert. Wenn Sie die Build-Zeiten für andere Build-Typen verbessern möchten, sollten Sie entweder die PNG-Kompression deaktivieren oder Ihre Bilder in WebP konvertieren.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Das Android-Plug-in erstellt jetzt automatisch ausführbare Ziele, die Sie in Ihren externen CMake-Projekten konfigurieren.
    • Sie müssen jetzt Annotationsprozessoren mit der Abhängigkeitskonfiguration annotationProcessor zum Prozessor-Classpath hinzufügen.
    • Die Verwendung der eingestellten ndkCompile ist jetzt eingeschränkter. Stattdessen sollten Sie entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK aufnehmen möchten. Weitere Informationen finden Sie unter Von ndkcompile migrieren.

    3.0.0 (Oktober 2017)

    Das Android-Gradle-Plug-in 3.0.0 enthält eine Reihe von Änderungen, die darauf abzielen, Leistungsprobleme bei großen Projekten zu beheben.

    Bei einem Beispielprojekt mit Skelettstruktur mit etwa 130 Modulen und einer großen Anzahl externer Abhängigkeiten (aber ohne Code oder Ressourcen) können Sie beispielsweise ähnliche Leistungsverbesserungen wie die folgenden erzielen:

    Android-Plug-in-Version + Gradle-Version Android-Plug-in 2.2.0 + Gradle 2.14.1 Android-Plug-in 2.3.0 + Gradle 3.3 Android-Plug-in 3.0.0 + Gradle 4.1
    Konfiguration (z.B. Ausführen von ./gradlew --help) ~2 Min. ~ 9 Sek. ~2,5 s
    1-zeilige Java-Änderung (Implementierungsänderung) ~2 Min. 15 Sek. ~29 s ~6,4 s

    Einige dieser Änderungen führen dazu, dass vorhandene Builds nicht mehr funktionieren. Sie sollten also den Aufwand für die Migration Ihres Projekts berücksichtigen, bevor Sie das neue Plug-in verwenden.

    Wenn Sie die oben beschriebenen Leistungsverbesserungen nicht feststellen, melden Sie bitte einen Fehler und fügen Sie einen Trace Ihres Builds mit dem Gradle Profiler bei.

    Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

    • Gradle 4.1 oder höher. Weitere Informationen finden Sie im Abschnitt Gradle aktualisieren.
    • Build Tools 26.0.2 oder höher. Mit diesem Update müssen Sie keine Version für die Build-Tools mehr angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion. Sie können die Property android.buildToolsVersion jetzt entfernen.

    3.0.1 (November 2017)

    Dieses Update ist ein kleineres Update zur Unterstützung von Android Studio 3.0.1 und enthält allgemeine Fehlerkorrekturen und Leistungsverbesserungen.

    Optimierungen

    • Bessere Parallelität für Projekte mit mehreren Modulen durch einen detaillierten Task-Graphen.
    • Wenn Sie Änderungen an einer Abhängigkeit vornehmen, führt Gradle schnellere Builds aus, da Module, die keinen Zugriff auf die API dieser Abhängigkeit haben, nicht neu kompiliert werden. Sie sollten einschränken, welche Abhängigkeiten ihre APIs an andere Module weitergeben, indem Sie die neuen Abhängigkeitskonfigurationen von Gradle verwenden: implementation, api, compileOnly und runtimeOnly.
    • Schnellere inkrementelle Builds durch Dexing pro Klasse. Jede Klasse wird jetzt in separate DEX-Dateien kompiliert und nur die geänderten Klassen werden neu dexiert. Außerdem sollten Sie mit einer höheren Build-Geschwindigkeit für Apps rechnen, bei denen minSdkVersion auf 20 oder niedriger festgelegt ist und die Legacy-Multi-Dex verwenden.
    • Die Build-Geschwindigkeit wurde verbessert, indem bestimmte Aufgaben so optimiert wurden, dass sie zwischengespeicherte Ausgaben verwenden. Damit Sie von dieser Optimierung profitieren können, müssen Sie zuerst den Gradle-Build-Cache aktivieren.
    • Verbesserte inkrementelle Ressourcenverarbeitung mit AAPT2, das jetzt standardmäßig aktiviert ist. Wenn bei der Verwendung von AAPT2 Probleme auftreten, melden Sie bitte einen Fehler. Sie können AAPT2 auch deaktivieren, indem Sie android.enableAapt2=false in Ihrer gradle.properties-Datei festlegen und den Gradle-Daemon neu starten, indem Sie ./gradlew --stop über die Befehlszeile ausführen.

    Neue Funktionen

    • Variantenabhängige Abhängigkeitsverwaltung: Wenn Sie eine bestimmte Variante eines Moduls erstellen, gleicht das Plug-in jetzt automatisch Varianten von lokalen Bibliotheksmodulabhängigkeiten mit der Variante des Moduls ab, das Sie erstellen.
    • Enthält ein neues Feature-Modul-Plug-in zur Unterstützung von Android-Sofort-Apps und dem Android-Sofort-Apps-SDK (das Sie mit dem SDK Manager herunterladen können). Weitere Informationen zum Erstellen von Funktionsmodulen mit dem neuen Plug-in finden Sie unter Struktur einer Instant-App mit mehreren Funktionen.
    • Integrierte Unterstützung für die Verwendung bestimmter Java 8-Sprachfunktionen und Java 8-Bibliotheken. Jack ist jetzt veraltet und nicht mehr erforderlich. Sie sollten Jack zuerst deaktivieren, um die verbesserte Java 8-Unterstützung zu nutzen, die in die Standard-Toolchain integriert ist. Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.
    • Unterstützung für das Ausführen von Tests mit Android Test Orchestrator hinzugefügt. Damit können Sie jeden Test Ihrer App in einem eigenen Aufruf von Instrumentation ausführen. Da jeder Test in einer eigenen Instrumentation-Instanz ausgeführt wird, wird kein gemeinsamer Status zwischen Tests auf der CPU oder im Arbeitsspeicher Ihres Geräts gespeichert. Selbst wenn ein Test abstürzt, wird nur die zugehörige Instrumentation-Instanz beendet, sodass die anderen Tests weiterhin ausgeführt werden.

      • testOptions.execution wurde hinzugefügt, um festzulegen, ob die Testorchestration auf dem Gerät verwendet werden soll. Wenn Sie Android Test Orchestrator verwenden möchten, müssen Sie ANDROID_TEST_ORCHESTRATOR wie unten gezeigt angeben. Standardmäßig ist diese Eigenschaft auf HOST gesetzt. Dadurch wird die Orchestrierung auf dem Gerät deaktiviert. Dies ist die Standardmethode zum Ausführen von Tests.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • Mit der neuen androidTestUtil-Abhängigkeitskonfiguration können Sie vor dem Ausführen Ihrer Instrumentierungstests ein weiteres Test-Helper-APK installieren, z. B. Android Test Orchestrator:

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • testOptions.unitTests.includeAndroidResources wurde hinzugefügt, um Unittests zu unterstützen, für die Android-Ressourcen wie Roboelectric erforderlich sind. Wenn Sie diese Eigenschaft auf true setzen, führt das Plug-in das Zusammenführen von Ressourcen, Assets und Manifesten durch, bevor die Unit-Tests ausgeführt werden. Ihre Tests können dann com/android/tools/test_config.properties im Klassenpfad nach den folgenden Schlüsseln durchsuchen:

      • android_merged_assets: der absolute Pfad zum Verzeichnis mit den zusammengeführten Assets.

        Hinweis:Bei Bibliotheksmodulen enthalten die zusammengeführten Assets nicht die Assets von Abhängigkeiten (siehe Problem 65550419).

      • android_merged_manifest: der absolute Pfad zur zusammengeführten Manifestdatei.

      • android_merged_resources: Der absolute Pfad zum Verzeichnis mit den zusammengeführten Ressourcen, das alle Ressourcen aus dem Modul und allen zugehörigen Abhängigkeiten enthält.

      • android_custom_package: Der Paketname der endgültigen R-Klasse. Wenn Sie die Anwendungs-ID dynamisch ändern, stimmt dieser Paketname möglicherweise nicht mit dem package-Attribut im Manifest der App überein.

    • Unterstützung für Schriftarten als Ressourcen (eine neue Funktion, die in Android 8.0 (API-Level 26) eingeführt wurde).
    • Unterstützung für sprachspezifische APKs mit Android Instant Apps SDK 1.1 und höher.
    • Sie können jetzt das Ausgabeverzeichnis für Ihr externes natives Build-Projekt ändern, wie unten gezeigt:

      Groovy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Sie können jetzt CMake 3.7 oder höher verwenden, wenn Sie native Projekte in Android Studio erstellen.
    • Mit der neuen lintChecks-Abhängigkeitskonfiguration können Sie eine JAR-Datei erstellen, in der benutzerdefinierte Lint-Regeln definiert sind, und sie in Ihre AAR- und APK-Projekte einbinden.

      Ihre benutzerdefinierten Lint-Regeln müssen zu einem separaten Projekt gehören, das eine einzelne JAR-Datei ausgibt und nur compileOnly-Abhängigkeiten enthält. Andere App- und Bibliotheksmodule können dann mit der lintChecks-Konfiguration von Ihrem Lint-Projekt abhängen:

      Groovy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Geändertes Verhalten

    • Im Android-Plug-in 3.0.0 wurden bestimmte APIs entfernt. Wenn Sie diese verwenden, schlägt der Build fehl. Sie können beispielsweise nicht mehr über die Variants API auf outputFile()-Objekte zugreifen oder processManifest.manifestOutputFile() verwenden, um die Manifest-Datei für jede Variante abzurufen. Weitere Informationen finden Sie unter API-Änderungen.
    • Sie müssen keine Version mehr für die Build-Tools angeben. Sie können die Property android.buildToolsVersion also entfernen. Standardmäßig verwendet das Plug-in automatisch die mindestens erforderliche Version der Build-Tools für die Version des Android-Plug-ins, die Sie verwenden.
    • Sie aktivieren/deaktivieren die PNG-Kompression jetzt im Block buildTypes, wie unten gezeigt. Die PNG-Kompression ist standardmäßig für alle Builds außer Debug-Builds aktiviert, da sie die Build-Zeiten für Projekte mit vielen PNG-Dateien verlängert. Wenn Sie die Build-Zeiten für andere Build-Typen verbessern möchten, sollten Sie entweder die PNG-Kompression deaktivieren oder Ihre Bilder in WebP konvertieren.

      Groovy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Das Android-Plug-in erstellt jetzt automatisch ausführbare Ziele, die Sie in Ihren externen CMake-Projekten konfigurieren.
    • Sie müssen jetzt Annotationsprozessoren mit der Abhängigkeitskonfiguration annotationProcessor zum Prozessor-Classpath hinzufügen.
    • Die Verwendung der eingestellten ndkCompile ist jetzt eingeschränkter. Stattdessen sollten Sie entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK aufnehmen möchten. Weitere Informationen finden Sie unter Von ndkcompile migrieren.

    2.3.0 (Februar 2017)

    2.3.3 (Juni 2017)

    Dieses Update ist geringfügig und bietet Kompatibilität mit Android Studio 2.3.3.

    2.3.2 (Mai 2017)

    Dieses Update ist geringfügig und bietet Kompatibilität mit Android Studio 2.3.2.

    2.3.1 (April 2017)

    Dies ist ein kleines Update für das Android-Plug-in 2.3.0, mit dem ein Problem behoben wird, bei dem einige physische Android-Geräte nicht richtig mit Instant Run funktionierten (siehe Problem 235879).

    Abhängigkeiten:
    Neu:
    • Verwendet Gradle 3.3, das Leistungsverbesserungen und neue Funktionen enthält. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
    • Build-Cache: Hier werden bestimmte Ausgaben gespeichert, die das Android-Plug-in beim Erstellen Ihres Projekts generiert, z. B. entpackte AARs und vorab dexed-Remote-Abhängigkeiten. Ihre Clean Builds sind mit dem Cache viel schneller, da das Build-System diese im Cache gespeicherten Dateien bei nachfolgenden Builds einfach wiederverwenden kann, anstatt sie neu zu erstellen. In Projekten mit Android-Plug-in 2.3.0 und höher wird der Build-Cache standardmäßig verwendet. Weitere Informationen finden Sie unter Build-Geschwindigkeit mit Build-Cache verbessern.
    Änderungen:

    2.2.0 (September 2016)

    Abhängigkeiten:
    Neu:
    • Verwendet Gradle 2.14.1, das Leistungsverbesserungen und neue Funktionen enthält und eine Sicherheitslücke behebt, die eine lokale Rechteausweitung bei Verwendung des Gradle-Daemons ermöglicht. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
    • Mit der externalNativeBuild {}-DSL können Sie jetzt in Gradle Links zu Ihren nativen Quellen erstellen und native Bibliotheken mit CMake oder ndk-build kompilieren. Nachdem Sie Ihre nativen Bibliotheken erstellt haben, packt Gradle sie in Ihr APK. Weitere Informationen zur Verwendung von CMake und ndk-build mit Gradle finden Sie unter C- und C++-Code zum Projekt hinzufügen.
    • Wenn Sie einen Build über die Befehlszeile ausführen, versucht Gradle jetzt, alle fehlenden SDK-Komponenten oder Updates, von denen Ihr Projekt abhängt, automatisch herunterzuladen. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.
    • Mit einer neuen experimentellen Caching-Funktion kann Gradle die Build-Zeiten verkürzen, indem die vorab dexed-Versionen Ihrer Bibliotheken vorab dexed, gespeichert und wiederverwendet werden. Weitere Informationen zur Verwendung dieser experimentellen Funktion finden Sie im Leitfaden Build-Cache.
    • Die Build-Leistung wird durch die Einführung einer neuen Standard-Packaging-Pipeline verbessert, die das Zippen, Signieren und Zipalignen in einer Aufgabe übernimmt. Sie können zu den älteren Verpackungstools zurückkehren, indem Sie android.useOldPackaging=true in Ihre gradle.properties-Datei einfügen. Bei Verwendung des neuen Tools zur Paketerstellung ist die Aufgabe zipalignDebug nicht verfügbar. Sie können jedoch selbst eine erstellen, indem Sie die Methode createZipAlignTask(String taskName, File inputFile, File outputFile) aufrufen.
    • Für die APK-Signierung wird jetzt zusätzlich zur herkömmlichen JAR-Signierung das APK-Signaturschema v2 verwendet. Alle Android-Plattformen akzeptieren die resultierenden APKs. Jede Änderung an diesen APKs nach der Signierung macht ihre V2-Signaturen ungültig und verhindert die Installation auf einem Gerät. Wenn Sie diese Funktion deaktivieren möchten, fügen Sie der Datei build.gradle auf Modulebene Folgendes hinzu:

      Groovy

      android {
        ...
        signingConfigs {
          config {
            ...
            v2SigningEnabled false
          }
        }
      }
            

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • Bei Multidex-Builds können Sie jetzt ProGuard-Regeln verwenden, um festzulegen, welche Klassen Gradle in die main-DEX-Datei Ihrer App kompilieren soll. Da das Android-System beim Starten Ihrer App zuerst die Haupt-DEX-Datei lädt, können Sie bestimmte Klassen beim Start priorisieren, indem Sie sie in die Haupt-DEX-Datei kompilieren. Nachdem Sie eine ProGuard-Konfigurationsdatei speziell für Ihre Haupt-DEX-Datei erstellt haben, übergeben Sie den Pfad der Konfigurationsdatei mit buildTypes.multiDexKeepProguard an Gradle. Die Verwendung dieser DSL unterscheidet sich von der Verwendung von buildTypes.proguardFiles, die allgemeine ProGuard-Regeln für Ihre App bereitstellt und keine Klassen für die primäre DEX-Datei angibt.
    • Unterstützung für das Flag android:extractNativeLibs wurde hinzugefügt, wodurch die Größe Ihrer App bei der Installation auf einem Gerät reduziert werden kann. Wenn Sie dieses Flag im Element <application> Ihres App-Manifests auf false setzen, packt Gradle unkomprimierte und ausgerichtete Versionen Ihrer nativen Bibliotheken mit Ihrem APK. Dadurch wird verhindert, dass PackageManager Ihre nativen Bibliotheken während der Installation aus dem APK in das Dateisystem des Geräts kopiert. Außerdem werden Delta-Updates Ihrer App dadurch kleiner.
    • Sie können jetzt versionNameSuffix und applicationIdSuffix für Produktvarianten angeben. (Problem 59614)
    Änderungen:
    • getDefaultProguardFile gibt jetzt die Standard-ProGuard-Dateien zurück, die vom Android-Plug-in für Gradle bereitgestellt werden, und verwendet nicht mehr die Dateien im Android SDK.
    • Verbesserte Leistung und Funktionen des Jack-Compilers:
      • Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn testCoverageEnabled auf true gesetzt ist.
      • Verbesserte Unterstützung für Annotationsprozessoren. Annotationsprozessoren in Ihrem Klassenpfad, z. B. compile-Abhängigkeiten, werden automatisch auf Ihren Build angewendet. Sie können auch einen Annotationsprozessor in Ihrem Build angeben und Argumente über die javaCompileOptions.annotationProcessorOptions {}-DSL in Ihrer build.gradle-Datei auf Modulebene übergeben:

        Groovy

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className 'com.example.MyProcessor'
                // Arguments are optional.
                arguments = [ foo : 'bar' ]
              }
            }
          }
        }
            

        Kotlin

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className = "com.example.MyProcessor"
                // Arguments are optional.
                arguments(mapOf(foo to "bar"))
              }
            }
          }
        }
            

        Wenn Sie einen Annotationsprozessor zur Kompilierzeit anwenden, ihn aber nicht in Ihr APK aufnehmen möchten, verwenden Sie den Abhängigkeitsbereich annotationProcessor:

        Groovy

        dependencies {
            compile 'com.google.dagger:dagger:2.0'
            annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            

        Kotlin

        dependencies {
            implementation("com.google.dagger:dagger:2.0")
            annotationProcessor("com.google.dagger:dagger-compiler:2.0")
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            
      • Eine Liste der Parameter, die Sie festlegen können, erhalten Sie, wenn Sie den folgenden Befehl über die Befehlszeile ausführen:

        java -jar /build-tools/jack.jar --help-properties
        
      • Wenn die Heap-Größe des Gradle-Daemons mindestens 1, 5 GB beträgt, wird Jack standardmäßig im selben Prozess wie Gradle ausgeführt. Fügen Sie der Datei gradle.properties Folgendes hinzu, um die Heap-Größe des Daemons anzupassen:
        # This sets the daemon heap size to 1.5GB.
        org.gradle.jvmargs=-Xmx1536M
        

    2.1.0 (April 2016)

    2.1.3 (August 2016)

    Für dieses Update ist Gradle 2.14.1 oder höher erforderlich. Gradle 2.14.1 enthält Leistungsverbesserungen, neue Funktionen und einen wichtigen Sicherheitsfix. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.

    Abhängigkeiten:
    Neu:
    • Unterstützung für die N Developer Preview, JDK 8 und Java 8-Sprachfunktionen mit der Jack-Toolchain hinzugefügt. Weitere Informationen finden Sie im N-Vorschauleitfaden.

      Hinweis:Instant Run funktioniert derzeit nicht mit Jack und wird deaktiviert, wenn Sie die neue Toolchain verwenden. Sie müssen Jack nur verwenden, wenn Sie für die N-Vorabversion entwickeln und die unterstützten Java 8-Sprachfunktionen nutzen möchten.

    • Standardunterstützung für die inkrementelle Java-Kompilierung wurde hinzugefügt, um die Kompilierungszeit während der Entwicklung zu verkürzen. Dazu werden nur Teile des Quellcodes neu kompiliert, die sich geändert haben oder neu kompiliert werden müssen. Wenn Sie diese Funktion deaktivieren möchten, fügen Sie der Datei build.gradle auf Modulebene den folgenden Code hinzu:

      Groovy

      android {
        ...
        compileOptions {
          incremental false
        }
      }

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
    • Unterstützung für Dexing im Prozess hinzugefügt, bei dem Dexing im Build-Prozess und nicht in separaten, externen VM-Prozessen erfolgt. Das beschleunigt nicht nur inkrementelle Builds, sondern auch vollständige Builds. Die Funktion ist standardmäßig für Projekte aktiviert, bei denen die maximale Heap-Größe des Gradle-Daemons auf mindestens 2048 MB festgelegt ist. Fügen Sie dazu Folgendes in die Datei gradle.properties Ihres Projekts ein:

      ```none org.gradle.jvmargs = -Xmx2048m ```

      Wenn Sie in der Datei build.gradle auf Modulebene einen Wert für javaMaxHeapSize definiert haben, müssen Sie org.gradle.jvmargs auf den Wert von javaMaxHeapSize + 1024 MB festlegen. Wenn Sie beispielsweise javaMaxHeapSize auf „2048m“ festgelegt haben, müssen Sie der Datei gradle.properties Ihres Projekts Folgendes hinzufügen:

      ```none org.gradle.jvmargs = -Xmx3072m ```

      Wenn Sie die In-Process-Dexing deaktivieren möchten, fügen Sie der Datei build.gradle auf Modulebene den folgenden Code hinzu:

      Groovy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }

    2.0.0 (April 2016)

    Abhängigkeiten:
    Neu:
    • Ermöglicht Instant Run durch Unterstützung der Bytecode-Einfügung und durch Übertragen von Code- und Ressourcenaktualisierungen an eine laufende App auf dem Emulator oder einem physischen Gerät.
    • Unterstützung für inkrementelle Builds wurde hinzugefügt, auch wenn die App nicht ausgeführt wird. Die Zeiten für vollständige Builds werden verkürzt, indem inkrementelle Änderungen über die Android Debug Bridge an das verbundene Gerät gesendet werden.
    • maxProcessCount wurde hinzugefügt, um zu steuern, wie viele Worker-DEX-Prozesse gleichzeitig gestartet werden können. Mit dem folgenden Code in der Datei build.gradle auf Modulebene wird die maximale Anzahl gleichzeitiger Prozesse auf 4 festgelegt:

      Groovy

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }

      Kotlin

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
        </li>
      
        <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing
        of dependencies, which are not supported with Proguard. This improves the build
        speed of your debug build variant. Because the experimental shrinker does not
        support optimization and obfuscation, you should enable Proguard for your
        release builds. To enable the experimental shrinker for your debug builds, add
        the following to your module-level <code>build.gradle</code> file:
      

      Groovy

      android {
        ...
        buildTypes {
          debug {
            minifyEnabled true
            useProguard false
          }
          release {
            minifyEnabled true
            useProguard true // this is a default setting
          }
        }
      }

      Kotlin

      android {
        ...
        buildTypes {
          getByName("debug") {
            minifyEnabled = true
            useProguard = false
          }
          getByName("release") {
            minifyEnabled = true
            useProguard = true // this is a default setting
          }
        }
      }
        </li>
      
        <li>Added logging support and improved performance for the resource shrinker.
        The resource shrinker now logs all of its operations into a <code>resources.txt</code>
        file located in the same folder as the Proguard log files.
        </li>
      </ul>
      

    Geändertes Verhalten:
    • Wenn minSdkVersion auf 18 oder höher festgelegt ist, wird beim Signieren von APKs SHA256 verwendet.
    •   <li>DSA and ECDSA keys can now sign APK packages.
      
          <p class="note">
            <strong>Note:</strong> The <a href=
            "/training/articles/keystore.html">Android keystore</a> provider no
            longer supports <a href=
            "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore">
            DSA keys on Android 6.0</a> (API level 23) and higher.
          </p>
      
        </li>
      </ul>
      

    Behobene Probleme:
    • Ein Problem wurde behoben, das dazu führte, dass doppelte AAR-Abhängigkeiten sowohl in der Test- als auch in der Haupt-Build-Konfiguration vorhanden waren.

    Android-Plug-in für Gradle, Revision 1.5.0 (November 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 oder höher
    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Das Data Binding-Plug-in wurde in das Android-Plug-in für Gradle integriert. Fügen Sie den folgenden Code in jede build.gradle-Datei pro Projekt ein, in der das Plug-in verwendet wird, um es zu aktivieren:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • Eine neue Transform API wurde hinzugefügt, mit der Drittanbieter-Plug-ins kompilierte .class-Dateien bearbeiten können, bevor sie in .dex-Dateien konvertiert werden. Die Transform API vereinfacht das Einfügen benutzerdefinierter Klassenmanipulationen und bietet mehr Flexibilität bei den Manipulationsmöglichkeiten. Wenn Sie eine Transformation in einen Build einfügen möchten, erstellen Sie eine neue Klasse, die eine der Transform-Schnittstellen implementiert, und registrieren Sie sie mit android.registerTransform(theTransform) oder android.registerTransform(theTransform, dependencies). Aufgaben müssen nicht miteinander verknüpft werden. Beachten Sie Folgendes zur Transform API:
      • Eine Transformation kann auf eines oder mehrere der folgenden Elemente angewendet werden: das aktuelle Projekt, Unterprojekte und externe Bibliotheken.
      • Eine Transformation muss global registriert werden, damit sie auf alle Varianten angewendet wird.
      • Die interne Codeverarbeitung über die Java Code Coverage Library (JaCoCo), ProGuard und MultiDex erfolgt jetzt über die Transform API. Das Java Android Compiler Kit (Jack) verwendet diese API jedoch nicht, sondern nur der javac/dx-Codepfad.
      • Gradle führt die Transformationen in dieser Reihenfolge aus: JaCoCo, Drittanbieter-Plug-ins, ProGuard. Die Ausführungsreihenfolge für Drittanbieter-Plug-ins entspricht der Reihenfolge, in der die Transformationen von den Drittanbieter-Plug-ins hinzugefügt werden. Entwickler von Drittanbieter-Plug-ins können die Ausführungsreihenfolge der Transformationen nicht über eine API steuern.
    • Der Getter dex wurde aus der Klasse ApplicationVariant entfernt. Sie können nicht mehr über die Variant-API auf die Aufgabe Dex zugreifen, da sie jetzt über eine Transformation ausgeführt wird. Derzeit gibt es keine Möglichkeit, den DEX-Prozess zu steuern.
    • Unterstützung für inkrementelle Assets wurde korrigiert.
    • Verbesserte MultiDex-Unterstützung durch Verfügbarkeit für Testprojekte und automatische com.android.support:multidex-instrumentation-Abhängigkeit für Tests.
    • Es wurde die Möglichkeit hinzugefügt, einen Gradle-Build ordnungsgemäß fehlschlagen zu lassen und die zugrunde liegende Fehlerursache zu melden, wenn beim Gradle-Build asynchrone Aufgaben aufgerufen werden und im Worker-Prozess ein Fehler auftritt.
    • Unterstützung für die Konfiguration einer bestimmten Application Binary Interface (ABI) in Varianten mit mehreren ABIs wurde hinzugefügt.
    • Es wurde Unterstützung für eine kommagetrennte Liste von Geräteseriennummern für die Umgebungsvariable ANDROID_SERIAL beim Installieren oder Ausführen von Tests hinzugefügt.
    • Ein Installationsfehler auf Geräten mit Android 5.0 (API-Level 20) und höher wurde behoben, wenn der APK-Name ein Leerzeichen enthält.
    • Verschiedene Probleme mit der Fehlerausgabe des Android Asset Packaging Tool (AAPT) wurden behoben.
    • Unterstützung für die inkrementelle JaCoCo-Instrumentierung für schnellere inkrementelle Builds wurde hinzugefügt. Das Android-Plug-in für Gradle ruft jetzt das JaCoCo-Instrumentierungstool direkt auf. Wenn Sie eine neuere Version des JaCoCo-Instrumentierungstools erzwingen möchten, müssen Sie es als Build-Skript-Abhängigkeit hinzufügen.
    • Die JaCoCo-Unterstützung wurde korrigiert, sodass Dateien, die keine Klassen sind, ignoriert werden.
    • Unterstützung für Vektordrawables wurde hinzugefügt, um PNGs zur Build-Zeit für die Abwärtskompatibilität zu generieren. Das Android-Plug-in für Gradle generiert PNGs für jede Vektordrawable, die in einem Ressourcenverzeichnis gefunden wird, in dem keine API-Version angegeben ist oder in dem im <uses-sdk>-Element im App-Manifest ein android:minSdkVersion-Attribut von 20 oder niedriger angegeben ist. Sie können PNG-Dichten festlegen, indem Sie die generatedDensities-Eigenschaft in den Abschnitten defaultConfig oder productFlavor einer build.gradle-Datei verwenden.
    • Die Freigabe des simulierbaren android.jar wurde hinzugefügt, das vom Plug‑in nur einmal generiert und für Unittests verwendet wird. Mehrere Module, z. B. app und lib, verwenden sie jetzt gemeinsam. Löschen Sie $rootDir/build, um sie neu zu generieren.
    • Die Verarbeitung von Java-Ressourcen erfolgt jetzt vor den Verschleierungsaufgaben und nicht mehr während der Paketierung der APK. Durch diese Änderung können die Verschleierungsaufgaben die Java-Ressourcen nach der Paketverschleierung anpassen.
    • Ein Problem mit der Verwendung von Java Native Interface-Code (JNI) im experimentellen Bibliotheks-Plug-in wurde behoben.
    • Es wurde die Möglichkeit hinzugefügt, die Plattformversion unabhängig vom android:compileSdkVersion-Attribut im experimentellen Bibliotheks-Plug-in festzulegen.

    Android-Plug-in für Gradle, Revision 1.3.1 (August 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 oder höher
    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Die Aufgabe ZipAlign wurde korrigiert, sodass die Ausgabe der vorherigen Aufgabe bei Verwendung eines benutzerdefinierten Dateinamens richtig verarbeitet wird.
    • Das Verpacken von Renderscript mit dem NDK wurde korrigiert.
    • Die Unterstützung für die Build-Aufgabe createDebugCoverageReport wurde beibehalten.
    • Die Unterstützung für die benutzerdefinierte Verwendung des Attributs archiveBaseName in der Build-Datei build.gradle wurde korrigiert.
    • Die Invalid ResourceType-lint-Warnung, die durch die Suche nach der Annotation der Parametermethode beim Ausführen von lint außerhalb von Android Studio verursacht wurde, wurde behoben.

    Android-Plug-in für Gradle, Revision 1.3.0 (Juli 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 oder höher
    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Unterstützung für die com.android.build.threadPoolSize-Property hinzugefügt, um die Größe des Android-Task-Threadpools über die gradle.properties-Datei oder die Befehlszeile zu steuern. Im folgenden Beispiel wird diese Eigenschaft auf 4 festgelegt.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Legen Sie das Standardverhalten für Builds so fest, dass LICENSE- und LICENSE.txt-Dateien aus APKs ausgeschlossen werden. Wenn Sie diese Dateien in ein APK aufnehmen möchten, entfernen Sie sie aus der Eigenschaft packagingOptions.excludes in der Datei build.gradle. Beispiel:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • Die Aufgabe sourceSets wurde hinzugefügt, um alle verfügbaren Quellsets zu prüfen.
    • Verbesserte Unterstützung von Unit-Tests zur Erkennung von Quellordnern für mehrere Produktvarianten und Build-Varianten. Wenn Sie beispielsweise eine App mit den Produktvarianten flavor1 und flavorA mit dem Build-Typ Debug testen möchten, sind die Test-Quellsets folgende:
      • Test
      • testFlavor1
      • testFlavorA
      • testFlavor1FlavorA
      • testFlavor1FlavorADebug

      In Android-Tests wurden bereits Quellordner mit mehreren Produktvarianten erkannt.

    • Verbesserte Unterstützung von Unit-Tests für Folgendes:
      • Führen Sie javac für Haupt- und Testquellen aus, auch wenn das Attribut useJack in Ihrer Build-Datei auf true festgelegt ist.
      • Abhängigkeiten für jeden Build-Typ korrekt erkennen.
    • Unterstützung für die Angabe von Argumenten für den Instrumentationstest-Runner über die Befehlszeile hinzugefügt. Beispiel:
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • Unterstützung für beliebige zusätzliche AAPT-Parameter (Android Asset Packaging Tool) in der Datei build.gradle hinzugefügt. Beispiel:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • Es wurde Unterstützung für ein Test-APK-Modul als separates Testmodul hinzugefügt. Mit den Eigenschaften targetProjectPath und targetVariant können der APK-Pfad und die Zielvariante festgelegt werden.

      Hinweis:Ein Test-APK-Modul unterstützt keine Produktvarianten und kann nur auf eine einzelne Variante ausgerichtet sein. Außerdem wird Jacoco noch nicht unterstützt.

    • Vor dem Zusammenführen von Ressourcen wurde eine Validierung des Ressourcennamens hinzugefügt.
    • Wenn Sie ein AAR-Paket (Android ARchive) für Bibliotheksmodule erstellen, geben Sie keinen automatischen @{applicationId}-Platzhalter in den Einstellungen für das Zusammenführen von Manifesten an. Verwenden Sie stattdessen einen anderen Platzhalter, z. B. @{libApplicationId}, und geben Sie einen Wert dafür an, wenn Sie Anwendungs-IDs in die Archivbibliothek aufnehmen möchten.

    Android-Plug-in für Gradle, Revision 1.2.0 (April 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 oder höher
    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Verbesserte Unterstützung für das Ausführen von Einheitentests mit Gradle.
      • Es wurde Unterstützung für das Einbeziehen von Ressourcen im Java-Stil in den Klassenpfad hinzugefügt, wenn Unittests direkt über Gradle ausgeführt werden.
      • Unterstützung für Abhängigkeiten von Einheitentests für AAR-Artefakte (Android Archive) wurde hinzugefügt.
      • Unterstützung für das Attribut unitTestVariants wurde hinzugefügt, damit Unittestvarianten über die Datei build.gradle bearbeitet werden können.
      • Der Codeblock unitTest.all wurde unter testOptions hinzugefügt, um benutzerdefinierte Aufgaben für den Unittest zu konfigurieren. Im folgenden Beispielcode sehen Sie, wie Sie mit dieser neuen Option Konfigurationseinstellungen für Unit-Tests hinzufügen:
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • Die Verarbeitung von Enums und öffentlichen Instanzfeldern beim Verpacken der Datei mockable-android.jar wurde korrigiert.
      • Die Abhängigkeiten von Bibliotheksaufgaben wurden korrigiert, sodass Testklassen nach Änderungen neu kompiliert werden.
    • Das Attribut testProguardFile wurde hinzugefügt, um ProGuard-Dateien beim Minimieren eines Test-APKs anzuwenden.
    • Dem Codeblock adbOptions wurde das Attribut timeOut hinzugefügt, um die maximale Aufzeichnungszeit für die Bildschirmaufzeichnung mit Android Debug Bridge festzulegen.
    • Unterstützung für Ressourcen mit 280 dpi hinzugefügt.
    • Verbesserte Leistung bei der Projektbewertung

    Android-Plug-in für Gradle, Revision 1.1.3 (März 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 oder höher
    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Ein Problem mit doppelten Abhängigkeiten in einer Test-App, das einen ProGuard-Fehler ausgelöst hat, wurde behoben.
    • Die Comparator-Implementierung wurde korrigiert, da sie nicht dem JDK Comparator-Vertrag entsprach und einen JDK 7-Fehler generierte.

    Android-Plug-in für Gradle, Revision 1.1.2 (Februar 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 oder höher
    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Normalisierter Pfad beim Erstellen eines mockable JAR für Einheitentests.
    • Die Einstellung archivesBaseName in der Datei build.gradle wurde korrigiert.
    • Der Fehler mit dem nicht aufgelösten Platzhalter beim Zusammenführen von Manifesten beim Erstellen einer Bibliothekstestanwendung wurde behoben.

    Android-Plug-in für Gradle, Revision 1.1.1 (Februar 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 oder höher
    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Die Build-Varianten wurden so geändert, dass nur Varianten, die eine Wear-App enthalten, Wear-spezifische Build-Aufgaben auslösen.
    • Probleme mit Abhängigkeiten führen jetzt zu einem Fehler während der Build-Phase und nicht erst während der Debugging-Phase. So können Sie Diagnosen wie „dependencies“ ausführen, um den Konflikt zu beheben.
    • Die Methode android.getBootClasspath() wurde korrigiert, sodass sie einen Wert zurückgibt.

    Android-Plug-in für Gradle, Revision 1.1.0 (Februar 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 oder höher
    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Unterstützung für neue Unittests hinzugefügt
      • Aktivierte Unittests, die in der lokalen JVM für eine spezielle Version der Datei android.jar ausgeführt werden, die mit beliebten Mocking-Frameworks wie Mockito kompatibel ist.
      • Beim Verwenden von Produktvarianten wurden die neuen Testaufgaben testDebug, testRelease und testMyFlavorDebug hinzugefügt.
      • Es wurden neue Quellordner hinzugefügt, die als Unit-Tests erkannt werden: src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • Es wurden neue Konfigurationen in der Datei build.gradle hinzugefügt, um reine Testabhängigkeiten zu deklarieren, z. B. testCompile 'junit:junit:4.11' und testMyFlavorCompile 'some:library:1.0'.

        Hinweis:Nur für Tests bestimmte Abhängigkeiten sind derzeit nicht mit Jack (Java Android Compiler Kit) kompatibel.

      • Die Option android.testOptions.unitTests.returnDefaultValues wurde hinzugefügt, um das Verhalten der mockable android.jar zu steuern.
    • Test in Testaufgabennamen wurde durch AndroidTest ersetzt. Die Aufgabe assembleDebugTest ist jetzt beispielsweise die Aufgabe assembleDebugAndroidTest. Unit-Test-Aufgaben haben weiterhin UnitTest im Aufgabennamen, z. B. assembleDebugUnitTest.
    • Die ProGuard-Konfigurationsdateien wurden so geändert, dass sie nicht mehr auf das Test-APK angewendet werden. Wenn die Minimierung aktiviert ist, verarbeitet ProGuard das Test-APK und wendet nur die Zuordnungsdatei an, die beim Minimieren des Haupt-APKs generiert wird.
    • Aktualisierte Abhängigkeitsverwaltung
      • Probleme bei der Verwendung der Bereiche provided und package wurden behoben.

        Hinweis:Diese Bereiche sind nicht mit AAR-Paketen (Android ARchive) kompatibel und führen dazu, dass ein Build mit AAR-Paketen fehlschlägt.

      • Die Abhängigkeitsauflösung wurde so geändert, dass die Abhängigkeiten einer zu testenden App und der Test-App verglichen werden. Wenn für beide Apps ein Artefakt mit derselben Version gefunden wird, ist es nicht in der Test-App enthalten, sondern wird nur mit der zu testenden App verpackt. Wenn für beide Apps ein Artefakt mit einer anderen Version gefunden wird, schlägt der Build fehl.
    • Unterstützung für den anyDpi-Ressourcenqualifizierer im Ressourcenzusammenführungstool hinzugefügt.
    • Die Auswertung und die IDE-Synchronisierung wurden für Projekte mit einer großen Anzahl von Android-Modulen verbessert.

    Android-Plug-in für Gradle, Revision 1.0.1 (Januar 2015)

    Abhängigkeiten:
    • Gradle 2.2.1 bis 2.3.x

      Hinweis:Diese Version des Android-Plug-ins für Gradle ist nicht mit Gradle 2.4 und höher kompatibel.

    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Ein Problem wurde behoben, durch das der Gradle-Build beim Zugriff auf das Modul extractReleaseAnnotations fehlschlug. (Problem 81638)
    • Ein Problem wurde behoben, bei dem Disable die Einstellung --no-optimize an den Dalvik Executable-Bytecode (DEX) übergeben hat. (Problem 82662)
    • Probleme beim Zusammenführen von Manifesten beim Importieren von Bibliotheken mit einem targetSdkVersion unter 16 wurden behoben.
    • Ein Problem mit der Reihenfolge der Dichte bei der Verwendung von Android Studio mit JDK 8 wurde behoben.

    Android-Plug-in für Gradle, Revision 1.0.0 (Dezember 2014)

    Abhängigkeiten:
    • Gradle 2.2.1 bis 2.3.x

      Hinweis:Diese Version des Android-Plug-ins für Gradle ist nicht mit Gradle 2.4 und höher kompatibel.

    • Build Tools 21.1.1 oder höher
    Allgemeine Hinweise:
    • Erste Version des Plug-ins.