Ä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 ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.

Außerdem möchten wir uns bei allen Community-Mitgliedern bedanken, die an dieser Version mitgewirkt haben.

3.6.3 (April 2020)

Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.

3.6.2 (März 2020)

Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.

3.6.1 (Februar 2020)

Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.

Design tools

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

Splitscreen und Zoomen in Design-Editoren

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

Diese Version enthält die folgenden Updates für die visuellen Design-Editoren:

  • Design-Editoren wie der Layout-Editor und der Navigations-Editor bieten jetzt eine Splitansicht, mit der Sie die Design- und die Codeansicht Ihrer Benutzeroberfläche gleichzeitig sehen können. Oben rechts im Editorfenster befinden sich jetzt drei Schaltflächen Symbole anzeigen, mit denen Sie zwischen den Ansichtsoptionen wechseln können:

    • Klicken Sie auf das Symbol Splitscreen Symbol für die geteilte Ansicht, um die geteilte Ansicht zu aktivieren.
    • Klicken Sie auf das Symbol Quelle Symbol für die Quellansicht, um die XML-Quelldatenansicht 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 Designeditoren wurden in ein schwebendes Steuerfeld rechts unten im Editorfenster verschoben.

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

Tab „Ressourcen für die Farbauswahl“

Damit Sie die Farbressourcenwerte in Ihrer App schnell aktualisieren können, wenn Sie die Farbauswahl in Ihrer XML-Datei oder die Designtools verwenden, werden die Farbressourcenwerte jetzt in der IDE für Sie ausgefüllt.

Farbauswahl mit ausgefüllten Farbwerten

Resource Manager

Der Resource Manager enthält die folgenden Updates:

  • Der Resource Manager 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.
  • Über die Filterschaltfläche können Sie sich Ressourcen aus lokal abhängigen Modulen, externen Bibliotheken und dem Android-Framework ansehen. Mit dem Filter können Sie auch Themenattribute anzeigen lassen.
  • Sie können Ressourcen jetzt während des Importprozesses umbenennen, indem Sie in das Textfeld über der Ressource klicken.

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

Aktualisierungen des Android-Gradle-Plug-ins

Die neueste Version des Android Gradle-Plug-ins enthält viele Updates, darunter Optimierungen für die Buildgeschwindigkeit, Unterstützung für das Maven-Veröffentlichungs-Plug-in und Unterstützung für View-Binding. Weitere Informationen finden Sie in den vollständigen Versionshinweisen.

Bindung ansehen

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

Da die Datenbindung findViewById() ersetzt, wird das Risiko von Nullzeigerausnahmen aufgrund einer ungültigen Ansichts-ID eliminiert.

Wenn Sie die Ansichtsbindung aktivieren möchten, müssen Sie das Android Gradle-Plug-in 3.6.0 oder höher verwenden und in der build.gradle-Datei jedes Moduls Folgendes angeben:

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Änderungen übernehmen

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

Weitere Informationen zu den Unterschieden zwischen diesen beiden Aktionen finden Sie unter Änderungen anwenden.

Menüoption für die Unterstützung von Instant Apps überarbeiten

Sie können Ihr Basismodul jetzt jederzeit nach dem Erstellen Ihres App-Projekts sofort aktivieren:

  1. Öffnen Sie den Bereich Projekt, indem Sie in der Menüleiste Ansicht > Toolfenster > Projekt auswählen.
  2. Klicken Sie mit der rechten Maustaste auf das Basismodul, das in der Regel den Namen „app“ hat, und wählen Sie Refactor > Enable Instant Apps Support (Umstrukturieren > 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 zum sofortigen Aktivieren des Basis-App-Moduls im Assistenten Neues Projekt erstellen wurde entfernt.

Weitere Informationen finden Sie unter Übersicht über Google Play Instant.

Bytecode von Klasse und Methode in APK Analyzer deobfuscieren

Wenn Sie DEX-Dateien mit dem APK Analyzer prüfen, können Sie den Bytecode von Klassen und Methoden so deobfuscieren:

  1. Wählen Sie in der Menüleiste Build > APK analysieren aus.
  2. Wählen Sie im angezeigten Dialogfeld das APK aus, das Sie prüfen möchten.
  3. Klicken Sie auf Öffnen.
  4. Wählen Sie im APK-Analysator die DEX-Datei aus, die Sie prüfen möchten.
  5. Laden Sie in der DEX-Dateianzeige die ProGuard-Zuordnungsdatei für die zu analysierende APK-Datei.
  6. Klicken Sie mit der rechten Maustaste auf die Klasse oder Methode, die Sie prüfen 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:

  • Sie können von einer JNI-Deklaration zur entsprechenden Implementierungsfunktion in C/C++ wechseln. Bewegen Sie dazu den Mauszeiger in der verwalteten Quellcodedatei auf die C- oder C++-Elementmarkierung in der Nähe der Zeilennummer.

  • 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 zu aktivierende C/C++-Datei ein.

  • Nicht verwendete native Implementierungsfunktionen werden im Quellcode als Warnung hervorgehoben. JNI-Deklarationen mit fehlenden Implementierungen werden ebenfalls als Fehler hervorgehoben.

  • Wenn Sie eine native Implementierungsfunktion umbenennen (umstrukturieren), 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-Entwicklungsablauf, einschließlich verbesserter Typhinweise, automatischer Vervollständigung, Prüfungen und Code-Refaktorisierung.

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 noch einmal zu importieren.

Nur Kotlin-APK-Quellen anhängen

Es ist jetzt möglich, externe APK-Quellen, die nur Kotlin-Code enthalten, anzuhängen, wenn Sie vorgefertigte APKs profilieren und beheben. Weitere Informationen finden Sie unter Kotlin-/Java-Quellen anhängen.

Leckortung im Speicher-Profiler

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

Die folgenden Datentypen werden im Filter angezeigt:

  • Activity-Instanzen, die gelöscht wurden, aber weiterhin referenziert werden.
  • Fragment-Instanzen, die keinen gültigen FragmentManager haben, aber trotzdem referenziert werden.

Nur Kotlin-APK-Quellen anhängen

Es ist jetzt möglich, externe APK-Quellen, die nur Kotlin-Code enthalten, anzuhängen, wenn Sie vorgefertigte APKs profilieren und beheben. Weitere Informationen finden Sie unter Kotlin-/Java-Quellen anhängen.

Leckortung im Speicher-Profiler

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

Die folgenden Datentypen werden im Filter angezeigt:

  • Activity-Instanzen, die gelöscht wurden, aber weiterhin referenziert werden.
  • Fragment-Instanzen, die keinen gültigen FragmentManager haben, aber trotzdem referenziert werden.

In bestimmten Situationen, z. B. in den folgenden, kann der Filter zu Falschmeldungen führen:

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

Wenn Sie diese Funktion verwenden 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 anzeigen möchten, die möglicherweise Speicherlecks verursachen, setzen Sie im Bereich „Heap-Dump“ des Speicherprofils ein Häkchen in das Kästchen Aktivitäts-/Fragmentlecks.

Profiler: Erkennung von Speicherlecks

Heap-Dump nach Speicherlecks filtern

Emulatoren

Mit Android Studio 3.6 können Sie mehrere Updates nutzen, die im Android Emulator 29.2.7 und höher enthalten sind, wie unten beschrieben.

Verbesserte Standortunterstützung

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 auf zwei Tabs verteilt: Einzelne Punkte und Routen.

Einzelne Punkte

Auf dem Tab Einzelne Punkte können Sie über die Google Maps-Webansicht nach POIs suchen, genau wie bei der Verwendung von 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 Ihre gespeicherten Standorte werden rechts im Fenster Erweiterte Einstellungen aufgeführt.

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

Tab „Einzelne Punkte“ in den erweiterten Steuerelementen des Emulators.

Routen

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

  1. Verwenden Sie in der Kartenansicht das Textfeld, um nach dem ersten Ziel Ihrer Route zu suchen.
  2. Wählen Sie den Standort in den Suchergebnissen aus.
  3. Wählen Sie die Schaltfläche Navigieren aus.
  4. Wählen Sie auf der Karte den Startpunkt Ihrer Route aus.
  5. Optional: Klicken Sie auf Ziel hinzufügen, um Ihrer Route weitere Haltestellen 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 von Ihnen gespeicherten Route folgt, wählen Sie die Route aus der Liste der Gespeicherten Routen aus und klicken Sie rechts unten im Fenster Erweiterte Steuerelemente auf Route abspielen. Klicken Sie auf Route beenden, um die Simulation zu beenden.

Tab „Routen“ in den erweiterten Steuerelementen des Emulators.

Wenn der Emulator kontinuierlich die angegebene Route abfahren soll, 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 Multifenster und Multidisplay unterstützen. Während ein virtuelles Gerät ausgeführt wird, können Sie so bis zu zwei zusätzliche Displays hinzufügen:

  1. Öffnen Sie die erweiterten Steuerelemente und gehen Sie zum Tab Bildschirme.

  2. Klicken Sie auf Sekundäres Display hinzufügen, um ein weiteres Display hinzuzufügen.

  3. Wählen Sie im Drop-down-Menü unter Sekundäre Bildschirme eine der folgenden Optionen 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 das benutzerdefinierte Display fest.

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

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

Mehrere Displays auf dem Tab „Display“ der erweiterten Steuerelemente des Emulators hinzufügen

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

Wenn Sie ein neues Projekt mit Android Studio erstellen, können Sie im Assistenten Neues Projekt erstellen auf dem Tab Automotive jetzt drei Vorlagen auswählen: Keine Aktivität, Mediendienst und Messagingdienst. Bei vorhandenen Projekten können Sie die Unterstützung für Android Automotive-Geräte hinzufügen, indem Sie in der Menüleiste Datei > Neu > Neues Modul und dann Automotive-Modul auswählen. Im Assistenten Neues Modul erstellen werden Sie dann durch das Erstellen eines neuen Moduls mit einer der Android Automotive-Projektvorlagen geführt.

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

Außerdem können Sie jetzt ein virtuelles Android-Gerät (AVD) für Android Automotive OS-Geräte erstellen. Wählen Sie dazu im Assistenten Konfiguration virtueller Geräte auf dem Tab Automotive eine der folgenden Optionen aus.

  1. Polestar 2: Erstellen Sie einen Anzeigenblock, der das Infotainmentsystem von Polestar 2 emuliert.
  2. Automotive (1024p, Querformat): Erstellen Sie eine AVD für generische Android Automotive-Infotainmentsysteme mit einer Auflösung von 1.024 × 768 Pixeln.

Auswahl eines virtuellen Android Automotive-Geräts.

Fortsetzbare SDK-Downloads

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

Wenn im Hintergrund ein SDK-Download ausgeführt wird, können Sie den Download jetzt über die Steuerelemente in der Statusleiste anhalten oder fortsetzen.

Ein Hintergrunddownload in der Statusleiste mit neuen Steuerelementen, mit denen Sie den Download pausieren oder fortsetzen können.

Ein Hintergrunddownload in der Statusleiste mit neuen Steuerelementen, mit denen Sie den Download pausieren oder fortsetzen können.

Win32 wird 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, führen Sie ein Upgrade Ihrer Workstation auf eine 64-Bit-Version von Windows durch.

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

Neue Option zur Optimierung der Gradle-Synchronisierungszeit

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

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

Wenn Sie diese Option aktivieren, überspringt Android Studio das Erstellen der Aufgabenliste während der Synchronisierung. Dadurch wird die Gradle-Synchronisierung schneller abgeschlossen und die UI reagiert reaktionsschneller. Wenn die IDE das Erstellen der Aufgabenliste überspringt, sind die Aufgabenlisten im Gradle-Steuerfeld leer und die automatische Vervollständigung von Aufgabennamen in Build-Dateien funktioniert nicht.

Neuer Ort zum Aktivieren und Deaktivieren des Offlinemodus von Gradle

Wenn Sie den Offlinemodus von Gradle aktivieren oder deaktivieren möchten, wählen Sie zuerst in der Menüleiste Ansicht > Toolfenster > Gradle aus. Klicken Sie dann oben im Fenster Gradle auf Offlinemodus aktivieren/deaktivieren Schaltfläche „Gradle offline“ im Gradle-Steuerfeld.

IntelliJ IDEA 2019.2

Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA in der Version 2019.2 aktualisiert.

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

Communitybeiträge

Vielen Dank an alle Community-Mitglieder, die uns dabei geholfen haben, Fehler zu finden und Android Studio 3.6 weiter zu verbessern. Wir möchten uns insbesondere bei den folgenden Personen bedanken, die uns 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 ein Ergebnis von Project Marble. Seit der Veröffentlichung von Android Studio 3.3 wurden im Rahmen von Project Marble mehrere Releases veröffentlicht, die sich auf die Verbesserung von drei Hauptbereichen der IDE konzentrieren: Systemintegrität, Funktionsverbesserungen und Behebung von Programmfehlern.

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

    Wir möchten uns auch bei allen Community-Mitgliedern bedanken, die an dieser Version mitgewirkt 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 entsprechenden Beitrag im Blog „Release Updates“.

    3.5.1 (Oktober 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.

    Project Marble: Systemzustand

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

    Empfohlene Arbeitsspeichereinstellungen

    Android Studio benachrichtigt Sie jetzt, wenn die Leistung verbessert werden könnte, indem Sie die maximale RAM-Menge erhöhen, die Ihr Betriebssystem für Android Studio-Prozesse wie die IDE, den Gradle-Daemon und den Kotlin-Daemon zuweisen sollte. Sie können die empfohlenen Einstellungen entweder akzeptieren, indem Sie in der Benachrichtigung auf den Aktionslink klicken, oder sie manuell anpassen. Wählen Sie dazu Datei > Einstellungen (oder Android Studio > Einstellungen unter macOS) aus und gehen Sie dann unter Darstellung und Verhalten > Systemeinstellungen zum Bereich Speichereinstellungen. Weitere Informationen finden Sie unter Maximale Heap-Größe.

    Eine Benachrichtigung zu empfohlenen Speichereinstellungen.

    Eine Benachrichtigung zu empfohlenen Speichereinstellungen.

    Bericht zur Arbeitsspeichernutzung

    Arbeitsspeicherprobleme in Android Studio sind manchmal schwer zu reproduzieren und zu melden. Um dieses Problem zu lösen, können Sie in Android Studio einen Bericht zur Speichernutzung erstellen. Klicken Sie dazu in der Menüleiste auf Hilfe > Speichernutzung analysieren. Dabei werden die Daten lokal von der IDE auf personenbezogene Daten geprüft, bevor Sie gefragt werden, ob Sie sie an das Android Studio-Team senden möchten, um die Ursache der Speicherprobleme zu ermitteln. Weitere Informationen finden Sie unter Bericht zur Arbeitsspeichernutzung erstellen.

    Einen Bericht zur Arbeitsspeichernutzung.

    Einen Bericht zur Arbeitsspeichernutzung.

    Windows: Optimierung der Datei-E/A durch Antivirenprogramme

    Android Studio prüft jetzt automatisch, ob bestimmte Projektverzeichnisse vom Echtzeit-Antiviren-Scan ausgenommen sind. Wenn Anpassungen zur Verbesserung der Buildleistung vorgenommen werden können, werden Sie von Android Studio benachrichtigt und erhalten eine Anleitung zur Optimierung Ihrer Antivirenkonfiguration. Weitere Informationen finden Sie unter Auswirkungen von Antivirensoftware auf die Build-Geschwindigkeit minimieren.

    Project Marble: Funktionelle Optimierung

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

    Änderungen übernehmen

    Mit „Änderungen anwenden“ können Sie Code- und Ressourcenänderungen an die laufende App senden, ohne die App neu starten zu müssen – und in einigen Fällen auch ohne die aktuelle Aktivität neu starten zu müssen. Mit „Änderungen anwenden“ wird ein völlig neuer Ansatz zum Speichern des App-Status implementiert. Anders als bei Instant Run, bei dem der Bytecode Ihres APK neu geschrieben wurde, werden bei „Änderungen anwenden“ Klassen im laufenden Betrieb neu definiert. Dabei wird die Laufzeitinstrumentierung genutzt, die unter Android 8.0 (API-Ebene 26) oder höher unterstützt wird.

    Weitere Informationen finden Sie unter Änderungen anwenden.

    Die Symbole in der Symbolleiste für „Änderungen anwenden“

    Die Symbole in der Symbolleiste für „Änderungen anwenden“

    Ablauf der App-Bereitstellung

    Die IDE bietet ein neues Drop-down-Menü, über das Sie schnell auswählen können, auf welchem Gerät 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, wann Gradle den Build-Cache regelmäßig löscht, um den Festplattenverbrauch zu reduzieren. In früheren Versionen führte dieser Zustand dazu, dass die IDE fehlende Abhängigkeiten meldete und die Gradle-Synchronisierung fehlschlug. Jetzt lädt die IDE die Abhängigkeiten einfach nach Bedarf herunter, damit die Gradle-Synchronisierung erfolgreich abgeschlossen werden kann.

    Verbesserte Build-Fehlerausgabe

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

    • AAPT-Kompilierung und -Verknüpfung
    • R8 und ProGuard
    • Dexing
    • Ressourcenzusammenführung
    • XML-Dateien parsen
    • Javac-, Kotlinc- und CMake-Kompilierung

    Projekt-Upgrades

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

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

    Layout-Editor

    Android Studio 3.5 enthält mehrere Verbesserungen bei der Visualisierung, Verwaltung und Interaktion von Layouts.

    Wenn Sie mit ConstraintLayout arbeiten, wird im Bereich Attribute der neue Bereich Einschränkungen mit den Einschränkungen der ausgewählten UI-Komponente angezeigt. 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.

    Einschränkungsbeziehungen für ein ausgewähltes UI-Element.

    Einschränkungsbeziehungen für ein ausgewähltes UI-Element.

    Ebenso können Sie eine Einschränkung jetzt löschen, indem Sie sie auswählen und die Taste Delete drücken. Sie können eine Einschränkung auch löschen, indem Sie die Taste Control (Command unter 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, um anzuzeigen, dass Sie sie durch Klicken löschen können.

    Wenn eine Ansicht ausgewählt ist, können Sie eine Einschränkung erstellen, indem Sie im Bereich Attribute auf eines der +-Symbole im Abschnitt Einschränkungs-Widget klicken, wie in der folgenden Abbildung dargestellt. Wenn Sie eine neue Einschränkung erstellen, wird sie jetzt im Layout-Editor ausgewählt und hervorgehoben. So erhalten Sie sofort visuelles Feedback zu den gerade hinzugefügten Elementen.

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

    Mit dem Constraint-Widget Einschränkungen erstellen

    Beim Erstellen einer Einschränkung werden im Layout-Editor jetzt nur die zulässigen Ankerpunkte angezeigt, die Sie einschränken können. Bisher wurden im Layout-Editor alle Ankerpunkte in allen Ansichten hervorgehoben, unabhängig davon, ob sie für die Begrenzung verwendet werden konnten. Außerdem wird das Ziel der Einschränkung jetzt durch ein blaues Overlay hervorgehoben. Diese Markierung ist besonders nützlich, wenn Sie eine Komponente einschränken möchten, die sich mit einer anderen überschneidet.

    Eine Animation, die zeigt, wie Sie in Android Studio 3.4 eine Einschränkung für eine sich überschneidende Komponente erstellen.

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

    Eine Animation, die zeigt, wie Sie in Android Studio 3.5 eine Einschränkung für eine sich überschneidende Komponente erstellen.

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

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

    • Im Begrenzungs-Widget und im Drop-down-Menü für Standardränder 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 Anpassen beim Ändern der Größe verbessert und die Ziehpunkte zum Ändern der Größe auf der Designoberfläche sind jetzt immer sichtbar. Beim Ändern der Größe werden neue Overlays mit gängigen Gerätegrößen angezeigt.
    • Der Layout-Editor hat ein neues Farbschema, das für mehr Einheitlichkeit sorgt und den Kontrast zwischen Komponenten, Text und Einschränkungen reduziert.
    • Im Blueprint-Modus wird jetzt Text für einige Komponenten unterstützt, bei denen er zuvor nicht angezeigt wurde.

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

    Datenbindung

    Neben der Unterstützung der inkrementellen Anmerkungsverarbeitung für die Datenbindung wurden in der IDE die Funktionen des intelligenten Editors und die Leistung beim Erstellen von Datenbindungsausdrücken in XML verbessert.

    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

    Verbesserte Code-Bearbeitungsleistung in Android Studio 3.5.

    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 Buildvariante als auch das aktive ABI im Bereich Buildvarianten angeben. Diese Funktion vereinfacht die Build-Konfiguration pro Modul und kann auch die Gradle-Synchronisierungsleistung verbessern.

    Weitere Informationen finden Sie unter Build-Variante ändern.

    Bereich „Build Variants“ (Build-Varianten) mit Auswahl einer einzelnen Variante nach ABI

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

    Parallele Versionen des NDK

    Sie können jetzt mehrere Versionen des NDK parallel verwenden. Diese Funktion bietet Ihnen mehr Flexibilität bei der Konfiguration Ihrer Projekte, z. B. wenn Sie Projekte haben, in denen auf demselben Computer unterschiedliche Versionen des NDK verwendet werden.

    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 jedes Modul in Ihrem Projekt verwenden soll. Mit dieser Funktion können Sie reproduzierbare Builds erstellen und Inkompatibilitäten zwischen NDK-Versionen und dem Android Gradle-Plug-in beheben.

    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 weitere, die in den Systemanforderungen aufgeführt sind. Laden Sie Android Studio auf Ihr kompatibles ChromeOS-Gerät herunter und folgen Sie der Installationsanleitung.

    Hinweis: Android Studio unter ChromeOS unterstützt derzeit nur die Bereitstellung Ihrer App auf einem verbundenen Hardwaregerät. Weitere Informationen finden Sie unter Apps auf einem Hardwaregerät ausführen.

    Bedingte Bereitstellung für Funktionsmodule

    Mit der bedingten Bereitstellung können Sie bestimmte Gerätekonfigurationsanforderungen festlegen, damit Funktionsmodule während der App-Installation automatisch heruntergeladen werden. Sie können beispielsweise ein Funktionsmodul mit Augmented-Reality-Funktionen (AR) so konfigurieren, dass es bei der App-Installation nur auf Geräten verfügbar ist, die AR unterstützen.

    Mit diesem Bereitstellungsmechanismus kann der Download eines Moduls bei der App-Installation basierend auf den folgenden Gerätekonfigurationen gesteuert werden:

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

    Wenn ein Gerät nicht allen von Ihnen angegebenen Anforderungen entspricht, wird das Modul nicht bei der App-Installation heruntergeladen. Ihre App kann jedoch später über die Play Core Library anfordern, das Modul bei Bedarf herunterzuladen. Weitere Informationen finden Sie unter Bedingte Zustellung konfigurieren.

    IntelliJ IDEA 2019.1

    Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA aktualisiert. Dazu gehören beispielsweise die 2019.1-Version und die Möglichkeit zur Anpassung des Designs.

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

    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. zur verbesserten Unterstützung der inkrementellen Anmerkungsverarbeitung und der cachbaren Unit-Tests, finden Sie in den Versionshinweisen.

    Communitybeiträge

    Vielen Dank an alle Community-Mitglieder, die uns dabei geholfen haben, Fehler zu finden und Android Studio 3.5 weiter zu verbessern. Wir möchten uns insbesondere bei den folgenden Personen bedanken, die P0- und P1-Fehler gemeldet haben:

    3.4 (April 2019)

    Android Studio 3.4 ist ein wichtiger Release 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 entsprechenden Beitrag im Blog „Release Updates“.

    3.4.1 (Mai 2019)

    Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.

    Bekannte Probleme mit der Version 3.4.0

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

    • Wenn Sie die Data Binding Library verwenden, schlägt LiveDataListener.onChanged() möglicherweise mit einer Null-Pointer-Ausnahme fehl. Eine Behebung dieses Problems ist in Android Studio 3.4.1 enthalten und 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 aktualisiert, die in der Version 2018.3.4 enthalten sind.

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

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

    Dialogfeld „Neue Projektstruktur“

    Mit dem neuen Dialogfeld „Projektstruktur“ 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-Datei öffnen, indem Sie in der Menüleiste Datei > Projektstruktur auswählen. Sie können die PSD-Datei auch öffnen, indem Sie unter Windows und Linux die Taste Ctrl+Shift+Alt+S oder unter macOS die Taste Command+; (Semikolon) drücken. Beschreibungen einiger neuer und aktualisierter Abschnitte der PSD finden Sie unten.

    Variablen

    Im neuen Bereich „Variablen“ der PSD können Sie Buildvariablen erstellen und verwalten, z. B. solche, mit denen Sie Versionsnummern für Abhängigkeiten im gesamten Projekt einheitlich halten.

    • Sie können Build-Variablen, die bereits in den Gradle-Build-Scripts Ihres Projekts vorhanden sind, schnell aufrufen und bearbeiten.
    • Fügen Sie neue Build-Variablen direkt über die 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 mit der PSD keine Build-Dateien bearbeiten, die in Kotlin geschrieben wurden.

    Module

    Konfigurieren Sie Properties, die auf alle Buildvarianten in einem vorhandenen Modul angewendet werden, oder fügen Sie Ihrem Projekt im Bereich Module neue Module hinzu. 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, die von Gradle während der Projektsynchronisierung aufgelöst wurde:

    1. Wählen Sie im linken Bereich der PSD Dependencies (Abhängigkeiten) aus.
    2. Wählen Sie im Bereich Module ein Modul aus, für das Sie die aufgelösten Abhängigkeiten prüfen möchten.
    3. Öffnen Sie rechts in der PSD den Bereich Aufgelöste Abhängigkeiten, der unten dargestellt ist.

    Sie können auch schnell nach Abhängigkeiten suchen und diese Ihrem Projekt hinzufügen. Wählen Sie dazu zuerst ein Modul im Bereich Dependencies (Abhängigkeiten) der PSD aus, klicken Sie im Bereich Declared Dependencies (Angekündigte 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ählter Abhängigkeit sollte ein Dialogfeld ähnlich dem unten angezeigt werden, in dem Sie die Abhängigkeit dem Modul hinzufügen können.

    Build-Varianten

    In diesem Abschnitt der PSD erstellen und konfigurieren Sie Buildvarianten und Produktvarianten für jedes Modul in Ihrem Projekt. Sie können unter anderem Manifest-Platzhalter hinzufügen, ProGuard-Dateien hinzufügen und Signaturschlüssel zuweisen.

    Vorschläge

    Im Abschnitt Vorschläge finden Sie Vorschläge für Aktualisierungen von Projektabhängigkeiten und Build-Variablen.

    Neuer Resource Manager

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

    • Ressourcen visualisieren:Sie können sich eine Vorschau von Drawables, Farben und Layouts ansehen, um schnell die benötigten Ressourcen zu finden.
    • Bulk-Import:Sie können mehrere Zeichnungs-Assets gleichzeitig importieren, indem Sie sie per Drag-and-drop in das Toolfenster Ressourcenmanager ziehen oder den Assistenten Zeichnungselemente importieren verwenden. Klicken Sie zum Aufrufen des Assistenten links oben im Toolfenster auf das Pluszeichen (+) und wählen Sie dann im Drop-down-Menü Zeichnbare Elemente importieren aus.
    • SVGs in VectorDrawable-Objekte konvertieren:Mit dem Assistenten Zeichnbare Elemente importieren können Sie Ihre SVG-Bilder in VectorDrawable-Objekte konvertieren.
    • Assets per Drag-and-drop hinzufügen:Im Toolfenster Ressourcenmanager können Sie Drawables per Drag-and-drop sowohl in die Design- als auch in die XML-Ansicht des Layout-Editors ziehen.
    • Alternative Versionen ansehen:Sie können jetzt alternative Versionen Ihrer Ressourcen aufrufen, indem Sie im Fenster Tool auf eine Ressource doppelklicken. In dieser Ansicht sehen Sie die verschiedenen Versionen, die Sie erstellt haben, und die eingeschlossenen Einschränkungen.
    • Kachel- und Listenansicht:Sie können die Ansicht im Toolfenster ändern, um Ihre Ressourcen in verschiedenen Anordnungen zu visualisieren.

    Weitere Informationen finden Sie im Leitfaden zum Verwalten von App-Ressourcen.

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

    Wenn Sie Symboldateien für die gemeinsamen .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. Andernfalls werden die Symboldateien abgelehnt. Wenn Sie den Build nicht mit einer Build-ID erstellt haben, kann die Angabe falscher Symboldateien zu Problemen beim Debuggen führen.

    R8 standardmäßig aktiviert

    R8 integriert Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing in einem Schritt. Das führt zu erheblichen Leistungsverbesserungen beim Erstellen. R8 wurde im Android Gradle-Plug-in 3.3.0 eingeführt und ist jetzt standardmäßig für App- und Android-Bibliotheksprojekte mit dem Plug-in 3.4.0 und höher aktiviert.

    Das folgende Bild 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, Schrumpfen, Verschleierung, Optimierung und Dexing (D8) jetzt in einem Schritt ausgeführt, wie unten dargestellt.

    Mit R8 werden Entzugerung, Schrumpfen, Verschleierung, Optimierung und Dekompilierung in einem einzigen Kompilierungsschritt ausgeführt.

    R8 ist für die Verwendung mit Ihren vorhandenen ProGuard-Regeln konzipiert. Sie müssen also wahrscheinlich nichts unternehmen, 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 Schrumpfen und Optimieren dazu kommen, dass Code entfernt wird, der von ProGuard möglicherweise nicht entfernt wurde. In diesem unwahrscheinlichen Fall müssen Sie möglicherweise zusätzliche Regeln hinzufügen, damit dieser Code in der Build-Ausgabe enthalten bleibt.

    Wenn bei der Verwendung von R8 Probleme auftreten, lesen Sie die häufig gestellten Fragen zur Kompatibilität mit R8, um zu sehen, 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 der gradle.properties-Datei Ihres Projekts eine der folgenden Zeilen hinzufü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 Buildtyp in der Datei build.gradle Ihres App-Moduls useProguard auf false festlegen, verwendet das Android Gradle-Plug-in R8, um den Code Ihrer App für diesen Buildtyp zu verkleinern, unabhängig davon, ob Sie R8 in der Datei gradle.properties Ihres Projekts deaktivieren.

    Alle Argumenttypen, die von der Navigationskomponente unterstützt werden, werden jetzt auch 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 zu einer einzigen Seite mit Abschnitten zusammengefasst, die Sie maximieren können, um konfigurierbare Attribute zu sehen. Der Bereich Attribute enthält außerdem die folgenden Änderungen:

    • Im neuen Bereich Deklarierte Attribute sind die Attribute aufgeführt, die in der Layoutdatei angegeben sind. Dort können Sie auch schnell neue hinzufügen.
    • Der Bereich Attribute enthält jetzt neben jedem Attribut einen Indikator. Dieser ist ausgefüllt, wenn der Wert des Attributs eine Ressourcenreferenz ist, andernfalls leer.
    • Attribute mit Fehlern oder Warnungen werden jetzt hervorgehoben. Rote Markierungen weisen auf Fehler hin (z. B. wenn Sie ungültige Layoutwerte verwenden), orangefarbene Markierungen auf Warnungen (z. B. wenn Sie hartcodierte Werte verwenden).

    Neue Absichtsaktion zum schnellen Importieren von Abhängigkeiten

    Wenn Sie bestimmte Jetpack- und Firebase-Klassen in Ihrem Code verwenden, wird Ihnen mit einer neuen Intent-Aktion vorgeschlagen, Ihrem Projekt die erforderliche Gradle-Bibliotheksabhängigkeit hinzuzufügen, falls Sie dies noch nicht getan haben. Wenn Sie beispielsweise auf die WorkManager-Klasse verweisen, ohne zuerst die erforderliche android.arch.work:work-runtime-Abhängigkeit zu importieren, können Sie dies mit einer Intent-Aktion ganz einfach mit nur einem Klick tun, wie unten gezeigt.

    Da Jetpack die Supportbibliothek in einzelne Pakete verpackt hat, die sich leichter verwalten und aktualisieren lassen, können Sie mit dieser Absichtsaktion schnell nur die Abhängigkeiten hinzufügen, die Sie für die von Ihnen verwendeten Jetpack-Komponenten benötigen.

    3.3 (Januar 2019)

    Android Studio 3.3 ist ein wichtiger Release mit einer Vielzahl neuer 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 entsprechenden Beitrag im Blog „Release Updates“.

    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 in der 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 Navigationsarchitekturkomponente schnell visualisieren und einbinden.

    Weitere Informationen finden Sie unter Navigation mit der Navigationsarchitekturkomponente implementieren.

    Nicht verwendete Android Studio-Verzeichnisse löschen

    Wenn Sie eine Hauptversion von Android Studio zum ersten Mal ausführen, wird nach Verzeichnissen mit Caches, Einstellungen, Indexen und Protokollen für Versionen von Android Studio gesucht, für die keine entsprechende Installation gefunden werden kann. Im Dialogfeld Nicht verwendete Android Studio-Verzeichnisse löschen werden dann die Speicherorte, die Größe und die letzten Änderungszeiten dieser nicht verwendeten Verzeichnisse angezeigt. Außerdem haben Sie die Möglichkeit, sie zu löschen.

    Die folgenden Verzeichnisse werden von Android Studio zum Löschen vorgeschlagen:

    • 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 Lint bis zu viermal schneller ausgeführt werden.

    Assistent zum Erstellen eines neuen Projekts

    Der Assistent Neues Projekt erstellen hat ein neues Design und enthält Updates, die die Erstellung neuer Android Studio-Projekte optimieren.

    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 der Nutzer wurde die Renderingleistung bei der Verwendung der Profiler erheblich verbessert. Bitte geben Sie uns weiterhin Feedback, insbesondere wenn weiterhin Leistungsprobleme auftreten.

    Optionen zum Speichern der Speicherzuweisung im Profiler

    Um die App-Leistung beim Profiling zu verbessern, werden im Speicher-Profiler jetzt standardmäßig Speicherzuweisungen regelmäßig abgetastet. Sie können dieses Verhalten bei Tests auf Geräten mit Android 8.0 (API-Level 26) oder höher über das Drop-down-Menü Zuweisungs-Tracking ändern.

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

    • Vollständig:Hier werden alle Objektspeicherzuweisungen erfasst. Wenn Ihre App viele Objekte zuweist, können beim Profiling erhebliche Leistungsprobleme auftreten.

    • Gemustert:Es wird eine regelmäßige Stichprobe der Objektspeicherzuweisungen erfasst. Dies ist das Standardverhalten und hat weniger Auswirkungen auf die App-Leistung während des Profilings. Bei Apps, die innerhalb kurzer Zeit viele Objekte zuweisen, können Leistungsprobleme auftreten.

    • Aus:Die Arbeitsspeicherzuweisung wird deaktiviert. Wenn dieser Modus nicht bereits ausgewählt ist, wird er während einer CPU-Aufzeichnung automatisch aktiviert und nach Abschluss der Aufzeichnung wieder auf die vorherige Einstellung zurückgesetzt. Sie können dieses Verhalten im Dialogfeld zur Konfiguration der CPU-Aufzeichnung ändern.

      Das Tracking wirkt sich sowohl auf Java-Objekte als auch auf JNI-Referenzen aus.

    Daten zum Frame-Rendering prüfen

    Im CPU-Profiler können Sie jetzt prüfen, wie lange es dauert, bis Ihre Java-Anwendung jeden Frame im Haupt-UI-Thread und im Render-Thread gerendert hat. Diese Daten können hilfreich sein, wenn Sie Engpässe untersuchen, die zu Rucklern in der Benutzeroberfläche und zu niedrigen Frameraten führen. Beispielsweise werden alle Frames, für die mehr als die 16 ms erforderlich sind, die für eine flüssige Framerate erforderlich sind, rot angezeigt.

    Wenn Sie Daten zum Frame-Rendering sehen möchten, erstellen Sie einen Trace mit einer Konfiguration, mit der Sie Systemaufrufe erfassen können. Nach der Aufzeichnung finden Sie Informationen zu den einzelnen Frames entlang der Zeitachse der Aufzeichnung im Abschnitt FRAMES, wie unten dargestellt.

    Weitere Informationen zum Untersuchen und Beheben von Problemen mit der Framerate findest du unter Langsames Rendern.

    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 in einer Kurzinfo der Status des Fragments angezeigt.

    Formatierten Text für Verbindungsnutzlasten im Netzwerkprofiler ansehen

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

    Weitere Informationen finden Sie unter Netzwerkverkehr mit dem Netzwerk-Profiler prüfen.

    Automatischer Download von SDK-Komponenten

    Wenn Ihr Projekt eine SDK-Komponente von den SDK-Plattformen, NDK oder CMake benötigt, versucht Gradle jetzt, die erforderlichen Pakete automatisch herunterzuladen, sofern Sie zuvor alle zugehörigen Lizenzvereinbarungen über den 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 statische Codeanalyse 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 Version r18 oder höher.

    Sie können die Prüfungen dann aktivieren oder wieder aktivieren, indem Sie das Dialogfeld Einstellungen oder Vorgaben öffnen und zu Editor > Prüfungen > C/C++ > Allgemein > Clang-Tidy gehen. Wenn Sie diese Prüfung im Dialogfeld Einstellungen oder Voreinstellungen auswählen, sehen Sie im rechten Bereich unter Option eine Liste der aktivierten und deaktivierten Clang-Tidy-Prüfungen. 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üfoptionen konfigurieren und fügen Sie sie im sich öffnenden Dialogfeld hinzu.

    Optionen für die C++-Anpassung wurden entfernt

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

    • Unterstützung für 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. Hinweis: Gradle verwendet standardmäßig weiterhin Version 3.6.0.

    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 der Mindestversionen von CMake

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

    Achtung:Die Verwendung der Syntax „+“ mit anderen Build-Abhängigkeiten wird nicht empfohlen, da dynamische Abhängigkeiten zu unerwarteten Versionsaktualisierungen und Schwierigkeiten bei der Behebung von Versionsunterschieden führen können.

    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. Mit anderen Worten: Sie können jetzt sowohl installierbare Apps als auch Instant-Apps aus einem einzigen Android Studio-Projekt erstellen und bereitstellen und sie in einem einzigen Android App Bundle einschließen.

    Wenn Sie ein neues Android Studio-Projekt über das Dialogfeld Neues Projekt erstellen erstellen, setzen Sie ein Häkchen neben Projekt konfigurieren > Dieses Projekt unterstützt Instant-Apps. Android Studio erstellt dann wie gewohnt ein neues App-Projekt, fügt aber die folgenden Properties in Ihr 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>
        
      

    Sie können dann ein Modul mit einer Instant-fähigen Funktion erstellen. Wählen Sie dazu in der Menüleiste Datei > Neu > Neues Modul und dann im Dialogfeld Neues Modul erstellen die Option Instant Dynamic Feature Module aus. Beachten Sie, dass durch das Erstellen dieses Moduls auch das Basismodul Ihrer App sofort aktiviert wird.

    Wenn Sie Ihre App als Instant-App auf einem lokalen Gerät bereitstellen möchten, bearbeiten Sie die 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 erkennen kann. Bei großen Projekten kann dieser Vorgang jedoch zeitaufwendig sein. Wenn Sie in Ihrem Projekt mehrere Buildvarianten verwenden, können Sie Projektsynchronisierungen jetzt optimieren, indem Sie sie auf die aktuell ausgewählte Variante beschränken.

    Sie müssen Android Studio 3.3 oder höher mit dem Android Gradle-Plug-in 3.3.0 oder höher verwenden, 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 bei neuen Projekten standardmäßig aktiviert.

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

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

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

    Schnell Feedback geben

    Wenn Sie die Freigabe von Nutzungsstatistiken zur Verbesserung von Android Studio aktiviert haben, werden in der Statusleiste unten im IDE-Fenster zwei neue Symbole angezeigt:

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

    Wenn Sie die Freigabe von Nutzungsstatistiken noch nicht aktiviert haben, können Sie dies tun, indem Sie das Dialogfeld Einstellungen (Preferences auf einem Mac) öffnen, zu Darstellung und Verhalten > Systemeinstellungen > Datenfreigabe gehen und die Option Nutzungsstatistiken an Google senden aktivieren.

    3.2 (September 2018)

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

    3.2.1 (Oktober 2018)

    Dieses Update auf Android Studio 3.2 enthält die folgenden Änderungen und Fehlerkorrekturen:

    • Die mitgelieferte 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.
    • Die folgenden Fehler wurden behoben:
      • Bei Verwendung der Data Binding-Bibliothek führten Variablennamen mit Unterstrichen zu Kompilierungsfehlern.
      • CMake führte dazu, dass IntelliSense und andere CLion-Funktionen fehlgeschlagen sind.
      • Das Hinzufügen von SliceProvider führte in Projekten, in denen keine androidx.*-Bibliotheken verwendet wurden, zu Kompilierungsfehlern.
      • Einige Kotlin-Einheitstests wurden nicht ausgeführt.
      • Ein Problem mit der Datenbindung führte zu einem PsiInvalidElementAccessException.
      • <merge>-Elemente führten manchmal zum Absturz des Layout-Editors.

    Bekannte Probleme mit der Version 3.2.0

    Hinweis:Diese Probleme wurden in Android Studio 3.2.1 behoben.

    • Wir empfehlen dringend, Kotlin-Version 1.2.70 nicht zu verwenden.

      In Kotlin-Version 1.2.61 wurde ein Fehler behoben, der zu einem Absturz von Android Studio führen kann. Dieser Fehler wurde in Kotlin 1.2.70 nicht behoben.

      In Kotlin-Versionen 1.2.71 und höher 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 verwenden und renderscriptSupportModeEnabled auf true festgelegt ist, müssen Sie in der build.gradle-Datei jedes Moduls Folgendes angeben:

      android.buildToolsVersion "28.0.3"

    Neuigkeiten zu 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 er erkennt, dass neue Informationen angezeigt werden können. Sie können den Assistant auch über Hilfe > Neuigkeiten in Android Studio öffnen.

    Android Jetpack

    Android Jetpack beschleunigt die Android-Entwicklung mit Komponenten, Tools und Anleitungen, die sich wiederholende Aufgaben ersparen und es Ihnen ermöglichen, schneller und einfacher hochwertige, testbare Apps zu erstellen. 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 eingebunden 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 auf dem Mac), wählen Sie im linken Bereich die Kategorie Experimentell aus, klicken Sie das Kästchen neben Navigationseditor aktivieren an und starten Sie Android Studio neu.

    Weitere Informationen finden Sie in der Dokumentation zum Navigationseditor.

    Migration zu AndroidX

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

    Android Studio 3.2 unterstützt Sie dabei mit einer neuen Migrationsfunktion.

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

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

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

    Beide Flags sind auf true gesetzt, wenn Sie den Befehl Zu AndroidX migrieren verwenden.

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

    Android App Bundle

    Android App Bundle ist ein neues Uploadformat, das den gesamten kompilierten Code und alle Ressourcen Ihrer App enthält. Die APK-Generierung und -Signatur werden jedoch an den Google Play Store weitergeleitet.

    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 lädt jeder Nutzer nur den Code und die Ressourcen herunter, die er zum Ausführen Ihrer App benötigt. Sie müssen nicht mehr mehrere APKs erstellen, signieren und verwalten. Nutzer erhalten kleinere, optimiertere 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 schwierig machen können, das Erscheinungsbild eines Layouts in 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 die Schaltfläche  angezeigt. Klicken Sie auf diese Schaltfläche, um die Ansichtsattribute in der Designzeit festzulegen. Sie können aus einer Vielzahl von Vorlagen für Beispieldaten wählen und die Anzahl der Beispielelemente 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 Auswahl aus dem Karussell mit Vorlagen für Beispieldaten aus.

    Slices

    Slices bieten eine neue Möglichkeit, Teile der Funktionen Ihrer App in andere Benutzeroberflächen auf Android-Geräten einzubetten. So können Sie beispielsweise App-Funktionen und -Inhalte in den Vorschlägen der Google Suche präsentieren.

    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 > Sonstiges > Slice-Anbieter aus.

    Weitere Informationen, unter anderem zum Testen von Interaktionen mit Snippets, finden Sie im Einstiegsleitfaden für Snippets.

    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 bis zur Version 2018.1.6 aktualisiert.

    Android-Profiler

    In Android Studio 3.2 stehen die folgenden neuen Funktionen des Android-Profilers zur Verfügung.

    Sitzungen

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

    Wenn Sie einen Methoden-Trace oder einen Heap-Dump aufzeichnen, fügt die IDE diese Daten (zusammen mit den Netzwerkaktivitäten Ihrer App) als separaten Eintrag zur aktuellen Sitzung hinzu. Sie können dann ganz einfach zwischen den Aufzeichnungen wechseln, 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 Geräts zu prüfen. Diese Trace-Konfiguration basiert auf systrace und eignet sich zur Untersuchung von Problemen auf Systemebene, z. B. Ruckler in der Benutzeroberfläche.

    Wenn Sie diese Trace-Konfiguration verwenden, können Sie wichtige Coderoutinen in der Zeitachse des Profilers 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 Speicher-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 Speicher-Profiler die Speicherzuweisungen für den JNI-Code Ihrer App prüfen.

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

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

    Sie können jetzt .hprof-Speicher-Heap-Dumpdateien importieren, exportieren und prüfen, die mit dem Speicher-Profiler erstellt wurden.

    Importieren Sie die Datei .hprof, indem Sie im Bereich Sitzungen des Profilers auf Neue Profiler-Sitzung starten und dann auf Aus Datei laden klicken. Sie können die Daten dann wie bei jedem anderen Heap-Dump im Speicher-Profiler prüfen.

    Wenn Sie Heap-Dump-Daten zur späteren Auswertung speichern möchten, verwenden Sie die Schaltfläche Heap-Dump exportieren rechts neben dem Eintrag Heap-Dump im Bereich Sitzungen. Speichern Sie die Datei im Dialogfeld Als mit der Dateiendung .hprof.

    CPU-Aktivität beim Starten der App aufzeichnen

    So können Sie die CPU-Aktivität beim Starten Ihrer App erfassen:

    1. Wählen Sie im Hauptmenü Ausführen > Konfigurationen bearbeiten aus.
    2. Setzen Sie in der gewünschten Ausführungskonfiguration auf dem Tab Profiling ein Häkchen neben Methoden-Trace beim Starten aufzeichnen.
    3. Wählen Sie im Drop-down-Menü eine CPU-Aufzeichnungskonfiguration aus.
    4. Wählen Sie Ausführen > Profil aus, um Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereitzustellen.
    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 für andere freizugeben oder später zu prüfen.

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

    1. Klicken Sie auf der CPU-Zeitachse mit der rechten Maustaste auf die Aufnahme, die Sie exportieren möchten.
    2. Wählen Sie im Drop-down-Menü die Option Trace exportieren aus.
    3. Wählen Sie den Speicherort der Datei aus und klicken Sie auf Speichern.
    CPU-Tracedateien importieren und prüfen

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

    Importieren Sie die Ablaufverfolgungsdatei, indem Sie im Bereich Sitzungen des Profilers auf Neue Profiler-Sitzung starten und dann auf Aus Datei laden klicken. Sie können die Daten dann wie gewohnt im CPU-Profiler prüfen, mit den folgenden Ausnahmen:

    • Die CPU-Aktivität wird nicht auf der CPU-Zeitachse dargestellt.
    • Die Zeitachse der Threadaktivität gibt nur an, wo für jeden Thread Ablaufdaten verfügbar sind, nicht die tatsächlichen Threadstatus (z. B. „Ausführen“, „Warten“ oder „Ruhemodus“).
    CPU-Aktivitäten mit der Debug API aufzeichnen

    Sie können jetzt die Aufzeichnung der CPU-Aktivitäten 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 CPU-Profiler die CPU-Aktivitäten aufzeichnet, die mit dieser API ausgelöst werden, wird Debug API als ausgewählte CPU-Aufzeichnungskonfiguration angezeigt.

    Energy Profiler

    Der Energieprofiler zeigt eine Visualisierung des geschätzten Energieverbrauchs Ihrer App sowie Systemereignisse, die sich auf den Energieverbrauch auswirken, z. B. Wakelocks, Wecker und Jobs.

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

    Klicken Sie auf die Zeile Energie, um die Ansicht des Energieprofils zu maximieren. Bewegen Sie den Mauszeiger auf einen Balken in der Zeitachse, um eine Aufschlüsselung der Energienutzung 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 auf der Zeitachse Energie einen Zeitraum auswählen.

    Wenn Sie den Aufrufstack und andere Details für ein Systemereignis wie ein 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, klicken Sie doppelt 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.

    Mit den neuen Lint-Prüfungen können Sie häufige Codeprobleme finden und identifizieren, von Warnungen zu potenziellen Usability-Problemen bis hin zu Fehlern mit hoher Priorität im Hinblick auf potenzielle Sicherheitslücken.

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

    Damit Ihr Java-Code gut mit Ihrem Kotlin-Code interagieren kann, werden mit neuen Lint-Prüfungen die Best Practices erzwungen, die im Kotlin Interop Guide beschrieben sind. Beispiele für diese Prüfungen sind die Suche nach Anmerkungen zur Ignorierbarkeit, die Verwendung von Kotlin-Schlüsselwörtern und das Platzieren von Lambda-Parametern an letzter Stelle.

    Wenn Sie diese Prüfungen aktivieren möchten, klicken Sie auf Datei > Einstellungen (Android Studio > Einstellungen auf dem Mac), um das Dialogfeld Einstellungen zu öffnen. Gehen Sie dann zu Editor > Prüfungen > Android > Lint > Interoperability > Kotlin Interoperability und wählen Sie die Regeln aus, die Sie aktivieren möchten.

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

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

    Mit den neuen Lint-Prüfungen für Slices können Sie dafür sorgen, dass Sie Slices korrekt erstellen. So werden Sie beispielsweise durch Lint-Prüfungen gewarnt, wenn Sie einem Snippet keine primäre Aktion zugewiesen haben.

    Neues Gradle-Ziel

    Mit der neuen Gradle-Aufgabe lintFix können Sie alle sicheren Korrekturen, die von der Lint-Prüfung vorgeschlagen wurden, direkt auf den Quellcode anwenden. Ein Beispiel für eine Lint-Prüfung, bei der eine sichere Korrektur vorgeschlagen wird, ist SyntheticAccessor.

    Metadatenaktualisierungen

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

    Warnung beim Ausführen von lint auf einer neuen Variante

    Lint zeichnet jetzt auf, mit welcher Variante und Version eine Baseline erfasst wird. Außerdem werden Sie gewarnt, wenn Sie Lint auf einer anderen Variante ausführen als der, mit der die Baseline erstellt wurde.

    Verbesserungen an vorhandenen Lint-Prüfungen

    Android Studio 3.2 enthält viele Verbesserungen an den vorhandenen Lint-Prüfungen. So gelten die Ressourcenzyklusprüfungen jetzt beispielsweise für weitere Ressourcentypen und der Übersetzungsdetektor kann fehlende Übersetzungen im Editor direkt finden.

    Bessere Sichtbarkeit von Problem-IDs

    Problem-IDs werden jetzt an mehr Stellen angezeigt, z. B. im Fenster Prüfergebnisse. So können Sie die Informationen, die Sie zum Aktivieren oder Deaktivieren bestimmter Prüfungen benötigen, leichter über lintOptions in build.gradle finden.

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

    Datenbindung V2

    Data Binding V2 ist jetzt standardmäßig aktiviert und mit V1 kompatibel. Das bedeutet, dass Sie Bibliotheksabhängigkeiten, die Sie mit Version 1 kompiliert haben, in Projekten mit Datenbindung V2 verwenden können. Projekte, die V1 verwenden, können jedoch keine Abhängigkeiten verwenden, die mit V2 kompiliert wurden.

    D8-Entzuckerung

    In Android Studio 3.1 haben wir den Desugaring-Schritt als experimentelle Funktion in das D8-Tool integriert, wodurch die Gesamtbauzeit verkürzt wird. In Android Studio 3.2 ist die Entsaccharisierung mit D8 standardmäßig aktiviert.

    Neuer Code-Optimierungstool

    R8 ist ein neues Tool zum Minimieren und Verschleieren von Code, 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
        

    Standard-ABIs für Multi-APKs geändert

    Wenn Sie mehrere APKs erstellen, die jeweils auf ein anderes 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 der Datei build.gradle 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-Builddateien

    Wenn Sie CMake verwenden, um Ihrem Projekt C- und C++-Code hinzuzufügen, bietet Android Studio jetzt verbesserte Editorfunktionen, mit denen Sie Ihre CMake-Build-Scripts bearbeiten können, z. B.:

    • Syntaxhervorhebung und Codevervollständigung:In der IDE werden jetzt gängige CMake-Befehle hervorgehoben und Vorschläge zur Codevervollständigung gemacht. Sie können auch eine Datei aufrufen, indem Sie darauf klicken und dabei die Strg-Taste gedrückt halten (Befehlstaste auf dem Mac).
    • Code neu formatieren:Mit der Option zum Neuformatieren von Code in IntelliJ können Sie jetzt Codestile auf Ihre CMake-Buildscripts anwenden.
    • 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-Scripts verweisen.

    In früheren Versionen von Android Studio konnten Sie im Fenster Projekt nur die Headerdateien aufrufen und prüfen, 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 aufgenommen haben, öffnen Sie das Fenster Projekt auf der linken Seite der IDE. Wählen Sie dazu im Hauptmenü Ansicht > Toolfenster > Projekt und dann im Drop-down-Menü Android aus. Im Verzeichnis cpp sind alle Header, die zum Geltungsbereich Ihres App-Projekts gehören, für jede Ihrer lokalen C/C++-Bibliotheksabhängigkeiten unter dem Knoten include organisiert, wie unten dargestellt.

    Nativer Multidex standardmäßig aktiviert

    In früheren Versionen von Android Studio wurde native Multidex aktiviert, wenn die Debugversion einer App auf einem Gerät mit Android API-Level 21 oder höher bereitgestellt wurde. Unabhängig davon, ob Sie eine Bereitstellung auf einem Gerät vornehmen oder ein APK für die Veröffentlichung erstellen, aktiviert das Android-Plug-in für Gradle jetzt native Multidex-Unterstützung für alle Module, für die minSdkVersion=21 oder höher festgelegt ist.

    AAPT2 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, muss in Ihrer build.gradle-Datei eine google()-Abhängigkeit vorhanden sein, 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()
            }
        }
        

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

    Entfernung der Konfiguration auf Anfrage

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

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

    ADB-Verbindungsassistent

    Der neue ADB-Verbindungsassistent enthält eine detaillierte Anleitung zum Einrichten und Verwenden eines Geräts über die Android Debug Bridge (ADB)-Verbindung.

    Wählen Sie Tools > Verbindungsassistent aus, um den Assistenten zu starten.

    Der ADB-Verbindungsassistent bietet auf mehreren Seiten im Bereich Assistant eine Anleitung, Kontextsteuerelemente 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 können Sie ein emuliertes Gerät schnell und einfach zu einem bekannten Status für Tests zurückversetzen. Wenn Sie eine AVD mit dem AVD Manager bearbeiten, können Sie angeben, welcher AVD-Snapshot beim Starten der AVD geladen werden soll.

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

    Weitere Informationen finden Sie unter Snapshots.

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

    3.1 (März 2018)

    Android Studio 3.1.0 ist ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.

    3.1.4 (August 2018)

    Dieses Update auf Android Studio 3.1 enthält die folgenden Änderungen und Fehlerkorrekturen:

    • Die im Lieferumfang enthaltene Kotlin-Version ist jetzt 1.2.50.
    • Neue Projekte werden mit kotlin-stdlib-jdk* artifacts und nicht mit kotlin-stdlib-jre*-Artefakten erstellt, die eingestellt werden.
    • Das R8-Parsen von ProGuard-Regeln wurde verbessert.
    • Die folgenden Fehler wurden behoben:
      • Der Versuch, die Kotlin-Hauptklasse auszuführen, ist mit dem Fehler "Error: Could not find or load main class..." fehlgeschlagen.
      • R8 ist bei bestimmten Optimierungen in eine Endlosschleife geraten.
      • Wenn Sie im Fenster Ausführen den Befehl Fehlgeschlagene Tests wiederholen verwenden, wurde manchmal fälschlicherweise die Meldung „Keine Tests gefunden“ angezeigt.
      • D8 hat invoke-virtual-Instanzen nicht richtig verarbeitet, was zu einem Absturz mit einer VerifyError geführt hat: invoke-super/virtual can't be used on private method
      • Der Datenbindungscompiler war auf eine alte Version von com.android.tools:annotations angewiesen. Der Compiler verwendet jetzt, sofern verfügbar, Anmerkungen zu Tools aus dem Basisprojekt.
      • Android Studio stürzte bei der Verwendung von Profilern während Fragmentübergängen ab.
      • Der Debugger stürzte beim Debuggen eines Layouts mit einem Textfeld ab.
      • D8 konnte einige ZIP-Dateien mit Sonderzeichen nicht lesen.

    3.1.3 (Juni 2018)

    Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:

    • Aufgrund von Speicherlecks ist Android Studio nach der Verwendung des Layout-Editors langsam geworden und reagiert nicht mehr. Dieses Update enthält Korrekturen für die meisten dieser Probleme. Wir werden bald ein weiteres Update veröffentlichen, um weitere Speicherlecks zu beheben.
    • Einige mit D8 erstellte Anwendungen stürzten auf einigen Verizon Ellipsis-Tablets ab.
    • Die Installation von mit D8 erstellten Apps schlägt auf Geräten mit Android 5.0 oder 5.1 (API-Level 21 oder 22) mit dem Fehler INSTALL_FAILED_DEXOPT fehl.
    • Einige Anwendungen, die die OkHttp-Bibliothek verwenden und mit D8 erstellt wurden, stürzten auf Geräten mit Android 4.4 (API-Level 19) ab.
    • Android Studio konnte manchmal nicht gestartet werden. Dabei wurde während der Kursinitialisierung für com.intellij.psi.jsp.JspElementType die Meldung ProcessCanceledException angezeigt.

    3.1.2 (April 2018)

    Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:

    • In einigen Fällen blieb Android Studio beim Beenden endlos hängen.
    • Builds, die mit Quellsätzen konfiguriert wurden, schlugen mit der folgenden Meldung fehl, wenn Instant Run aktiviert war:

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

    • Wenn Instant Run aktiviert war, schlugen Builds neuer Kotlin-Projekte fehl, wenn sie durch den Befehl Ausführen ausgelöst wurden.
    • Beim Bearbeiten der build.gradle-Datei gab es manchmal eine merkliche Verzögerung zwischen dem Eintippen eines Zeichens und dem Erscheinen des Zeichens auf dem Bildschirm.
    • Bei einigen Projekten mit einer großen Anzahl von Modulen oder externen Abhängigkeiten sind beim Dezimieren Buildfehler mit der folgenden Fehlermeldung aufgetreten:

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

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

    Dieses Update enthält auch Änderungen, durch die das Ausführen von Lint-Prüfungen über Gradle in einigen Fällen viel schneller wird.

    3.1.1 (April 2018)

    Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:

    • In einigen Fällen wurde die Gradle-kompatible Make-Aufgabe beim ersten Öffnen eines in Android Studio 3.0 erstellten Projekts in Android Studio 3.1 aus dem Bereich Vor dem Start in Ausführungs-/Debug-Konfigurationen entfernt. Das führte dazu, dass Projekte nicht erstellt wurden, wenn auf die Schaltfläche Ausführen oder Fehler beheben geklickt wurde. Dies wiederum führte zu Fehlern wie der Bereitstellung falscher APKs und Abstürzen bei der Verwendung von Instant Run.

      Um dieses Problem zu beheben, wird in Android Studio 3.1.1 die Gradle-kompatible Make-Aufgabe der Ausführungskonfiguration für Projekte hinzugefügt, bei denen dieser Eintrag fehlt. Diese Änderung erfolgt nach der ersten Gradle-Synchronisierung, wenn das Projekt geladen wird.

    • Der Debugger stürzte beim Debuggen eines Layouts mit einem Textfeld ab, wenn das erweiterte Profiling aktiviert war.
    • Android Studio ist eingefroren, nachdem Sie auf Build-Varianten geklickt haben.
    • AAR-Dateien (Android-Archive) wurden zweimal extrahiert, einmal während des Gradle-Synchronisierungsvorgangs und einmal während des Gradle-Build-Prozesses.
    • Bei einigen aus SVG-Dateien importierten Vektorgrafiken fehlten Elemente.
    • Die Warnung zur Einstellung der compile-Abhängigkeitskonfiguration wurde aktualisiert und enthält jetzt eine bessere Anleitung für die implementation- und api-Konfigurationen. Weitere Informationen zur Migration von der compile-Konfiguration finden Sie in der Dokumentation zu den neuen Abhängigkeitskonfigurationen.

    Programmieren/IDE

    IntelliJ 2017.3.3

    Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA der Version 2017.3.3 aktualisiert. Zu den Verbesserungen gehören eine bessere Analyse der Kontrollflusssteuerung für Sammlungen und Strings, eine verbesserte Nullbarkeitsableitung, neue Schnellkorrekturen und vieles mehr.

    Weitere Informationen finden Sie in den JetBrains-Releasenotes für IntelliJ IDEA-Versionen 2017.2 und 2017.3 sowie in den JetBrains-Releasenotes für Updates mit Fehlerkorrekturen.

    Verbesserungen beim Bearbeiten von SQL-Abfragen mit Room

    Wenn Sie die Room-Datenbankbibliothek verwenden, können Sie von mehreren Verbesserungen bei der SQL-Bearbeitung profitieren:

    • Die Codevervollständigung in einem Query versteht SQL-Tabellen (Entitäten), Spalten, Abfrageparameter, Aliasse, Joins, Unterabfragen und WITH-Klauseln.
    • Die SQL-Syntaxhervorhebung funktioniert jetzt.
    • Sie können in SQL mit der rechten Maustaste auf einen Tabellennamen klicken und ihn umbenennen. Dadurch wird auch der entsprechende Java- oder Kotlin-Code neu geschrieben, einschließlich beispielsweise des Rückgabetyps der Abfrage. Das Umbenennen funktioniert auch in die andere Richtung. Wenn Sie also eine Java-Klasse oder ein Java-Feld umbenennen, wird der entsprechende SQL-Code neu geschrieben.
    • SQL-Nutzungen werden angezeigt, wenn Sie Nutzungen suchen verwenden (Rechtsklick und Auswahl von Nutzungen suchen aus dem Kontextmenü).
    • Wenn Sie die Deklaration einer SQL-Entität in Java- oder Kotlin-Code aufrufen möchten, halten Sie die Strg-Taste (Befehlstaste auf dem Mac) gedrückt und klicken Sie auf die Entität.

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

    Änderungen an der Datenbindung

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

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

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

    • Sie können sich eine Vorschau eines neuen inkrementellen Compilers für Ihre Datenbindungsklassen ansehen. Weitere Informationen zu diesem neuen Compiler und eine Anleitung zum Aktivieren finden Sie unter Data Binding Compiler V2.

      Zu den Vorteilen des neuen Compilers gehören:

      • ViewBinding-Klassen werden vom Android-Plug-in für Gradle vor dem Java-Compiler generiert.
      • Die generierten Bindungsklassen von Bibliotheken bleiben beim Kompilieren der App erhalten, anstatt jedes Mal neu generiert zu werden. Dies kann die Leistung bei Projekten mit mehreren Modulen erheblich verbessern.

    Compiler und Gradle

    D8 ist der Standard-DEX-Compiler

    Der D8-Compiler wird jetzt standardmäßig zum Generieren von DEX-Bytecode verwendet.

    Dieser neue DEX-Compiler bietet mehrere Vorteile, darunter:

    • Schnellere Deindexierung
    • Niedrigere Arbeitsspeichernutzung
    • Verbesserte Codegenerierung (bessere Registerzuweisung, intelligentere Stringtabellen)
    • Verbesserte Fehlerbehebung beim Durchlaufen von Code

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

    Wenn Sie in gradle.properties für android.enableD8 den Wert false festgelegt haben, löschen Sie dieses Flag oder legen Sie es auf true fest:

            android.enableD8=true
          

    Weitere Informationen finden Sie unter Neuer DEX-Compiler.

    Inkrementelle Desugaring

    Bei Projekten, die Java 8-Sprachfunktionen verwenden, ist die inkrementelle Desugaring standardmäßig aktiviert. Dadurch können die Buildzeiten verbessert werden.

    Beim Entfernen von Syntaktikzucker wird Syntaktikzucker in eine Form umgewandelt, die der Compiler effizienter verarbeiten kann.

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

            android.enableIncrementalDesugaring=false
          
    Fenster für die vereinfachte Ausgabe

    Die Gradle Console wurde durch das Fenster Build ersetzt, das die Tabs Sync und Build enthält.

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

    Gleichzeitige Ausführung von Batch-Updates und Indexierung

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

    C++ und LLDB

    Wir haben viele Qualitäts- und Leistungsverbesserungen in den Phasen Codieren, Synchronisieren, Erstellen und Entfernen von Fehlern der C++-Entwicklung vorgenommen. Zu den Verbesserungen gehören:

    • Wenn Sie mit großen C++-Projekten arbeiten, sollten Sie eine deutliche Verkürzung der Zeit für das Erstellen von Symbolen feststellen. Außerdem wird die Synchronisierungszeit bei großen Projekten deutlich verkürzt.

    • Die Leistung beim Erstellen und Synchronisieren mit CMake wurde durch eine aggressivere Wiederverwendung von im Cache gespeicherten Ergebnissen verbessert.

    • Durch die Hinzufügung von Formatierungstools („Pretty Printer“) für weitere C++-Datenstrukturen ist die LLDB-Ausgabe leichter lesbar.

    • LLDB funktioniert jetzt nur noch mit Android 4.1 (API-Ebene 16) und höher.

    Hinweis:Das native Debuggen mit Android Studio 3.0 oder höher funktioniert nicht unter 32-Bit-Windows. Wenn Sie 32-Bit-Windows verwenden und nativen Code debuggen möchten, verwenden Sie Android Studio 2.3.

    Kotlin

    Kotlin auf Version 1.2.30 aktualisiert

    Android Studio 3.1 enthält Kotlin-Version 1.2.30.

    Kotlin-Code wird jetzt mit der Befehlszeilen-Lint-Prüfung analysiert

    Wenn Sie Lint über die Befehlszeile ausführen, werden jetzt auch Ihre Kotlin-Klassen analysiert.

    Für jedes Projekt, für das Sie lint ausführen möchten, muss das Maven-Repository von Google in der Datei build.gradle auf oberster Ebene enthalten sein. Das Maven-Repository ist bereits für Projekte enthalten, die in Android Studio 3.0 und höher erstellt wurden.

    Tools zur Leistungssteigerung

    Beispiel für native C++-Prozesse mit dem CPU-Profiler

    Der CPU-Profiler enthält jetzt eine Standardkonfiguration zum Aufzeichnen von Stichproben von Traces der nativen Threads Ihrer App. Sie können diese Konfiguration verwenden, indem Sie Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereitstellen und dann im Drop-down-Menü für die Aufzeichnungskonfigurationen des CPU-Profilers Gemustert (nativ) auswählen. Anschließend können Sie wie gewohnt einen Trace aufzeichnen und prüfen.

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

    Wenn Sie wieder zum Erfassen Ihrer Java-Threads zurückkehren möchten, wählen Sie entweder die Konfiguration Beispiel (Java) oder Instrumentiert (Java) aus.

    CPU-Traces, Arbeitsspeicherzuweisungsergebnisse und Heap-Dumps filtern

    Der CPU-Profiler und der Speicher-Profiler enthalten eine Suchfunktion, mit der Sie Ergebnisse aus der Aufzeichnung eines Methoden-Traces, von Speicherzuweisungen oder von einem Heap-Dump filtern können.

    Klicken Sie zum Suchen rechts oben im Bereich auf Filter , geben Sie Ihre Suchanfrage ein und drücken Sie die Eingabetaste.

    Tipp:Sie können das Suchfeld auch mit der Tastenkombination Strg + F (Befehlstaste + F auf einem Mac) öffnen.

    Auf dem Tab Feuerdiagramm des CPU-Profilers werden Aufrufstacks, die Methoden mit Bezug zu Ihrer Suchanfrage enthalten, hervorgehoben und auf die linke Seite des Diagramms verschoben.

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

    Tab „Anfrage“ im Netzwerk-Profiler

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

    Threadansicht im Netzwerk-Profiler

    Nachdem Sie im Netzwerk-Profiler einen Teil der Zeitachse ausgewählt haben, können Sie einen der folgenden Tabs auswählen, um weitere Details zu den Netzwerkaktivitäten in diesem Zeitraum aufzurufen:

    • Verbindungsansicht: Enthält dieselben Informationen wie frühere Versionen von Android Studio. Hier werden Dateien aufgeführt, die während des ausgewählten Zeitabschnitts in allen CPU-Threads Ihrer App gesendet oder empfangen wurden. Sie können Größe, Typ, Status und Übertragungsdauer jeder Anfrage prüfen.
    • Threadansicht: Zeigt die Netzwerkaktivität der einzelnen CPU-Threads Ihrer App an. In dieser Ansicht können Sie prüfen, welche Threads Ihrer App für jede Netzwerkanfrage verantwortlich sind.

    Layout Inspector

    Der Layout-Inspektor wurde um neue Funktionen erweitert, darunter einige, die zuvor vom eingestellten Hierarchy Viewer und den Pixel Perfect-Tools angeboten wurden:

    • Zoomschaltflächen und Tastenkombinationen zum Navigieren und Prüfen von Layouts
    • Raster-Overlay für Referenz
    • Möglichkeit, ein Referenzbild zu laden und als Overlay zu verwenden (nützlich, um Ihr Layout mit einem UI-Mockup zu vergleichen)
    • Vorschau des untergeordneten Knotens rendern, um eine Ansicht in einem komplexen Layout zu isolieren

    Layout-Editor

    Die Palette im Layout-Editor wurde erheblich verbessert:

    • Neuorganisation der Kategorien für Ansichten und Layouts
    • Neue Kategorie Gängig für Ansichten und Layouts, der Sie mit dem Befehl Favoriten Elemente hinzufügen können.
    • Verbesserte Suche nach Ansichten und Layouts.
    • Neue Befehle zum Öffnen der Dokumentation für eine bestimmte Ansicht oder ein bestimmtes Layoutelement.

    Mit dem neuen Befehl Ansicht konvertieren im Komponentenbaum oder im Design-Editor können Sie eine Ansicht oder ein Layout in eine andere Art von Ansicht oder Layout umwandeln.

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

    Ausführen und Instant Run

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

    Wenn Sie Ihre App auf ein Gerät mit Android 8.0 (API-Level 26) oder höher ausrichten, können mit Instant Run Änderungen an Ressourcen bereitgestellt werden, ohne dass die Anwendung neu gestartet werden muss. Das ist möglich, weil die Ressourcen in einem Split-APK enthalten sind.

    Emulator

    Informationen zu den Neuerungen und Änderungen am Emulator seit Android Studio 3.0 finden Sie in den Versionshinweisen für den Android-Emulator von Version 27.0.2 bis Version 27.1.12.

    Zu den wichtigsten Verbesserungen gehören:

    • Schnellstart-Snapshots zum Speichern des Emulatorstatus und für einen schnelleren Start. Mit dem Befehl Jetzt speichern können Sie einen benutzerdefinierten Startstatus speichern.
    • Emulatorbildschirm ohne Fenster
    • Systemabbilder für Android 8.0 (API-Level 26), Android 8.1 (API-Level 27) und die Android P-Entwicklervorschau

    Verbesserungen an der Benutzeroberfläche und der Nutzerfreundlichkeit

    Mehr Kurzinfos, Tastenkombinationen und hilfreiche Meldungen

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

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

    Das Menü „Tools“ > „Android“ wurde entfernt

    Das Menü Tools > Android wurde entfernt. Befehle, die sich zuvor in diesem Menü befanden, wurden verschoben.

    • Viele Befehle wurden direkt unter das Menü Tools verschoben.
    • Der Befehl Projekt mit Gradle-Dateien synchronisieren wurde in das Menü Datei verschoben.
    • Der Befehl Device Monitor wurde entfernt, wie unten beschrieben.

    Device Monitor über die Befehlszeile verfügbar

    In Android Studio 3.1 spielt der Gerätemonitor eine geringere Rolle als zuvor. In vielen Fällen werden die Funktionen des Gerätemonitors jetzt von neuen und verbesserten Tools bereitgestellt.

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

    3.0 (Oktober 2017)

    Android Studio 3.0.0 ist ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.

    macOS-Nutzer:Wenn Sie eine ältere Version von Android Studio aktualisieren, wird möglicherweise das Updatefehlerdialogfeld „Im Installationsbereich wurden einige Konflikte gefunden“ angezeigt. Ignorieren Sie diesen Fehler einfach und klicken Sie auf Abbrechen, um die Installation fortzusetzen.

    3.0.1 (November 2017)

    Dieses Update für Android Studio 3.0 enthält allgemeine Fehlerkorrekturen und Leistungsverbesserungen.

    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:

    • Kürzere Buildkonfigurationszeiten dank der neuen verzögerten Abhängigkeitsauflösung.
    • Variantenspezifische Abhängigkeitsauflösung nur für die Projekte und Varianten, die Sie erstellen.
    • Schnellere inkrementelle Buildzeiten beim Anwenden einfacher Änderungen an Code oder Ressourcen.

    Hinweis: Diese Verbesserungen erforderten erhebliche Änderungen, die einige Verhaltensweisen, DSLs und APIs des Plug-ins beeinträchtigen. Für das 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 für Java 8-Bibliotheken und Java 8-Sprachfunktionen (ohne Jack-Compiler).
    • Unterstützung für Android Test Support Library 1.0 (Android Test Utility und Android Test Orchestrator)
    • Verbesserte Build-Geschwindigkeiten von ndk-build und cmake.
    • Die Geschwindigkeit der Gradle-Synchronisierung wurde verbessert.
    • AAPT2 ist jetzt standardmäßig aktiviert.
    • Die Verwendung von ndkCompile ist jetzt eingeschränkter. Sie sollten stattdessen entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK einbinden möchten. Weitere Informationen finden Sie unter Von ndkcompile migrieren.

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

    Wenn Sie bereit sind, auf das neue Plug-in umzustellen, lesen Sie den Hilfeartikel Zum Android-Plug-in für Gradle 3.0.0 migrieren.

    Kotlin-Unterstützung

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

    Sie können Kotlin in Ihr Projekt einbinden, indem Sie eine Java-Datei in Kotlin konvertieren (Code > Java-Datei in Kotlin-Datei konvertieren) oder über den Assistenten „Neues Projekt“ ein neues Kotlin-kompatibles Projekt erstellen.

    Weitere Informationen zum Hinzufügen von Kotlin zu Ihrem Projekt

    Unterstützung für Java 8-Sprachfunktionen

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

    Wenn Sie Ihr Projekt für die neue Java 8-Sprach-Toolchain aktualisieren möchten, ändern Sie im Dialogfeld Projektstruktur (Datei > Projektstruktur) die Quellkompatibilität und die Zielkompatibilität in „1.8“. Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.

    Android-Profiler

    Der neue Android Profiler ersetzt das Android Monitor-Tool und bietet eine neue Suite von Tools, mit denen Sie die CPU-, Arbeitsspeicher- und Netzwerknutzung Ihrer App in Echtzeit messen können. Sie können ein probebasiertes Methoden-Tracing durchführen, um die Ausführung Ihres Codes zu messen, Heap-Dumps zu erfassen, sich die Speicherzuordnungen anzusehen und die Details der über das Netzwerk übertragenen Dateien zu prüfen.

    Klicken Sie auf Ansicht > Toolfenster > Android-Profiler oder auf Android-Profiler in der Symbolleiste, um das Tool zu öffnen.

    In der Ereigniszeitleiste oben im Fenster werden Touch-Ereignisse, Tastendrücke und Aktivitätsänderungen angezeigt, damit Sie andere Leistungsereignisse in der Zeitleiste besser nachvollziehen können.

    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 Übersichtszeitachse des Android-Profilers auf die Zeitachsen CPU, ARBEITSSPEICHER oder Netzwerk, 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 Beispiel- oder instrumentierten CPU-Trace auslösen. Anschließend können Sie mithilfe verschiedener Datenansichten und Filter Probleme mit der CPU-Leistung beheben.

    Weitere Informationen finden Sie im Leitfaden zum CPU-Profiler.

    Speicher-Profiler

    Mit dem Memory Profiler können Sie Speicherlecks und Speicherschwankungen erkennen, die zu Rucklern, Einfrieren und sogar zu App-Abstürzen führen können. Er zeigt ein Echtzeitdiagramm der Arbeitsspeichernutzung Ihrer App, ermöglicht das Erfassen eines Heap-Dumps, erzwingt das Garbage Collection und überwacht die Speicherzuweisungen.

    Weitere Informationen finden Sie im Leitfaden zum Arbeitsspeicher-Profiler.

    Network Profiler

    Mit dem Netzwerk-Profiler können Sie die Netzwerkaktivitäten Ihrer App im Blick behalten, die Nutzlast jeder Netzwerkanfrage prüfen und eine Verknüpfung zum Code herstellen, der die Netzwerkanfrage generiert hat.

    Weitere Informationen finden Sie im Leitfaden für Network Profiler.

    APK-Profiling und ‑Fehlerbehebung

    Mit Android Studio können Sie jetzt beliebige APKs profilieren und debuggen, ohne sie aus einem Android Studio-Projekt erstellen zu müssen. Voraussetzung ist, dass das APK so erstellt wurde, dass die Fehlerbehebung aktiviert ist, und dass Sie Zugriff auf die Debugsymbole und Quelldateien haben.

    Klicken Sie zum Einstieg auf dem Begrüßungsbildschirm von Android Studio auf APK profilern oder debuggen. Wenn Sie bereits ein Projekt geöffnet haben, klicken Sie in der Menüleiste auf Datei > APK profilieren oder debuggen. Dadurch werden die entpackten APK-Dateien angezeigt, der Code wird jedoch nicht dekompiliert. Wenn Sie also Breakpoints richtig hinzufügen und Stack-Traces ansehen möchten, müssen Sie Java-Quelldateien und native Debugsymbole anhängen.

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

    Geräte-Datei-Explorer

    Mit dem neuen Gerätedatei-Explorer können Sie das Dateisystem Ihres verbundenen Geräts prüfen und Dateien zwischen dem Gerät und Ihrem Computer übertragen. Es ersetzt das Dateisystem-Tool in DDMS.

    Klicken Sie auf Ansicht > Toolfenster > Device File Explorer, um es zu öffnen.

    Weitere Informationen finden Sie im Leitfaden zum Gerätedatei-Explorer.

    Support für Instant Apps

    Mit der neuen Unterstützung für Android Instant Apps können Sie Instant Apps in Ihrem Projekt mit zwei neuen Modultypen erstellen: Instant App-Module und Funktionsmodule. Dazu müssen Sie das Instant Apps Development SDK installieren.

    Android Studio enthält außerdem eine neue Refaktorierungsaktion zum Modularisieren, mit der Sie einem vorhandenen Projekt die Unterstützung für Instant Apps hinzufügen können. Wenn Sie Ihr Projekt beispielsweise umstrukturieren möchten, um einige Klassen in einem Instant App-Funktionsmodul zu platzieren, wählen Sie die Klassen im Fenster Projekt aus und klicken Sie auf Umstrukturieren > Modularisieren. Wählen Sie im angezeigten Dialogfeld das Modul aus, in das die Kurse verschoben werden sollen, und klicken Sie auf OK.

    Wenn Sie Ihre Instant App testen möchten, können Sie Ihr Instant App-Modul auf einem verbundenen Gerät erstellen und ausführen. Geben Sie dazu die URL der Instant App in den Ausführungsoptionen 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 Ausführungsoptionen fest.

    Weitere Informationen finden Sie unter Android Instant Apps.

    Android Things-Module

    Neue Android Things-Vorlagen in den Assistenten „Neues Projekt“ und „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 Vektorgrafiken und ermöglicht das Erstellen von adaptiven Launcher-Symbolen für Android 8.0 und gleichzeitig von traditionellen Symbolen („Legacy“-Symbolen) für ältere Geräte.

    Klicken Sie zuerst mit der rechten Maustaste auf den Ordner res in Ihrem Projekt und dann auf Neu > Bild-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 Schriftressourcen

    Zur Unterstützung der neuen Schriftressourcen in Android 8.0 enthält Android Studio eine Auswahl für Schriftressourcen, mit der Sie Schriftarten in Ihre App einbinden oder Ihr Projekt so konfigurieren können, dass die Schriftarten (falls verfügbar) auf das Gerät heruntergeladen werden. 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 Version 11.2.63 oder höher installiert sein. Weitere Informationen finden Sie unter Herunterladbare Schriftarten.

    Firebase App Indexing Assistant

    Der Firebase Assistant wurde um eine neue Anleitung zum Testen der App-Indexierung ergänzt. Wählen Sie Tools > Firebase aus, um den Assistant zu öffnen. Wählen Sie dann App-Indexierung > App-Indexierung testen aus.

    Die Anleitung enthält neue Schaltflächen, mit denen Sie die Indexierung Ihrer öffentlichen und privaten Inhalte testen können:

    • 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 überprüfen, ob die indexierbaren Objekte in Ihrer App dem Index für persönliche Inhalte hinzugefügt wurden.

    Der App-Link-Assistent wurde um die folgenden neuen Funktionen erweitert:

    • Fügen Sie für jede URL-Zuordnung URL-Tests hinzu, um sicherzustellen, dass Ihre Intent-Filter mit echten URLs umgehen.

      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 App Links Assistant für Sie erstellen kann.

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

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

    Achten Sie darauf, dass auch xmlns:tools="http://schemas.android.com/tools" im <manifest>-Tag enthalten ist.

    Wenn eine der Test-URLs die Definition des Intent-Filters nicht besteht, wird ein Lint-Fehler angezeigt. Bei einem solchen Fehler können Sie zwar weiterhin Debugvarianten erstellen, Ihre Release-Builds funktionieren aber nicht.

    Layout-Editor

    Der Layout-Editor wurde mit einer Reihe von Verbesserungen aktualisiert, darunter:

    • Neues Symbolleisten-Layout und neue Symbole
    • Das Layout in der Komponentenstruktur wurde aktualisiert.
    • Verbesserte Drag-and-drop-Funktion zum Einfügen von Ansichten
    • 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 Erstellung mit ConstraintLayout, darunter:
      • Neue Unterstützung für Hindernisse
      • Neue Unterstützung für das Erstellen von Gruppen: Wählen Sie in der Symbolleiste Richtlinien > Gruppe hinzufügen aus. ConstraintLayout 1.1.0 Beta 2 oder höher ist erforderlich.
      • 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-Inspektor enthält Verbesserungen, die das Beheben von Problemen mit App-Layouts erleichtern. Dazu gehören die Gruppierung von Eigenschaften in gängige Kategorien und neue Suchfunktionen im Ansichtsbaum und im Bereich Eigenschaften.

    APK Analyzer

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

    Der APK Analyzer wurde außerdem um die folgenden Verbesserungen ergänzt:

    • Für mit ProGuard erstellte APKs können Sie ProGuard-Zuordnungsdateien laden, die dem DEX-Betrachter zusätzliche Funktionen hinzufügen, darunter:
      • Fett formatierte Knoten, die angeben, dass die Knoten beim Schrumpfen des Codes nicht entfernt werden sollen.
      • Eine Schaltfläche, mit der Knoten angezeigt werden, die während des Schrumpfens entfernt wurden.
      • Eine Schaltfläche, mit der die ursprünglichen Namen der Knoten in der Baumansicht wiederhergestellt werden, die von ProGuard verschleiert wurden.
    • Der DEX-Viewer zeigt jetzt die geschätzte Größe jedes Pakets, jeder Klasse und jeder Methode an.
    • Oben gibt es neue Filteroptionen, mit denen Felder und Methoden ein- und ausgeblendet werden können.
    • In der Strukturansicht 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.

    Vorabversion des D8-DEX-Compilers

    Android Studio 3.0 enthält einen optionalen neuen DEX-Compiler namens D8. Er wird den DX-Compiler irgendwann ersetzen, Sie können die Verwendung des neuen D8-Compilers aber schon jetzt aktivieren.

    Die DEX-Kompilierung wirkt sich direkt auf die Buildzeit, die Größe der .dex-Datei und die Laufzeitleistung Ihrer App aus. Im Vergleich zum aktuellen DX-Compiler ist D8 schneller und generiert kleinere .dex-Dateien bei gleicher oder besserer Laufzeitleistung.

    Um dies zu testen, 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, anstatt Updates für die Android-Supportbibliothek, Google Play-Dienste, Firebase und andere Abhängigkeiten über den Android SDK Manager abzurufen. So lassen sich 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 ein vorhandenes Projekt aktualisieren möchten, fügen Sie google() in den Block repositories der obersten build.gradle-Datei ein:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Weitere Informationen zum Maven-Repository von Google

    Sonstige Änderungen

    • Das native Debugging mit Android Studio wird unter 32-Bit-Windows nicht mehr unterstützt. Wir konzentrieren uns auf andere Plattformen, 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 zugrunde liegende IDE wurde auf IntelliJ 2017.1.2 umgestellt. Diese Version bietet eine Reihe neuer Funktionen aus 2016.3 und 2017.1, z. B. Java 8-Refactoring, Parameterhinweise, semantische Hervorhebung, verschiebbare Haltepunkte, sofortige Ergebnisse bei der Suche und vieles mehr.
    • Viele neue Lint-Prüfungen wurden hinzugefügt.
    • Weitere Informationen finden Sie in den aktuellen Updates für den Android-Emulator.

    2.3 (März 2017)

    Android Studio 2.3.0 enthält hauptsächlich Fehlerkorrekturen und Stabilitätsverbesserungen, aber auch einige neue Funktionen.

    2.3.3 (Juni 2017)

    Dieses Update ist geringfügig und dient der Unterstützung von Android O (API-Level 26).

    2.3.2 (April 2017)

    Dieses Update auf Android Studio 2.3 enthält die folgenden Änderungen:

    • Der AVD Manager wird aktualisiert, um Google Play in Systemabbildern zu unterstützen.
    • Fehlerkorrekturen für NDK-Builds bei Verwendung von R14 oder höher des NDK.

    Weitere Informationen finden Sie in den entsprechenden Updates für den Android-Emulator 26.0.3.

    2.3.1 (April 2017)

    Dieses kleine Update für Android Studio 2.3 behebt ein Problem, 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 project’s
          <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 brandneue Layout-Editor mit Tools, die speziell für ConstraintLayout entwickelt wurden.
    • <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 unter einem Arbeitsprofil oder als sekundärer Nutzer ausführt.
    • Viele Zuverlässigkeitsprobleme bei Instant Run wurden 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 kein serialVersionUID definiert ist. (Fehler: #209006)
      • Stiländerungen werden bei Instant Run nicht berücksichtigt. (Fehler: #210851)
      • Die Instant Run-Sitzung ist unzuverlässig und führt zu einer FileNotFoundException. (Fehler: #213083)
      • Änderungen an drawables werden für KitKat erst nach einem vollständigen Neuaufbau ü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 Anmerkung mit einem Enum-Wert enthält. (Fehler: #209047)
      • Änderungen an Anmerkungsdaten werden bei Instant Run nicht berücksichtigt. (Fehler: #210089)
      • Codeänderungen, die Sie außerhalb der IDE vornehmen, werden von Instant Run nicht erkannt. (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 ordnungsgemäß unterstützen. (Fehler: #210875)
      • App stürzt nach Neustart des Instant Run-Dienstes ab. (Fehler: #219744)
      • Beim Wechsel von Instant Run zu Instant Debug wird die ClassNotFoundException angezeigt. (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 won’t 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 wichtigsten Änderungen in diesem Update bieten Unterstützung für die Entwicklung mit der Android N-Vorabversion.

    2.1.3 (August 2016)

    Dieses Update bietet Kompatibilität mit Gradle 2.14.1, einschließlich Leistungsverbesserungen, neuer Funktionen und einer wichtigen Sicherheitskorrektur. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.

    In Android Studio 2.1.3 wird für neue Projekte standardmäßig Gradle 2.14.1 verwendet. Bei vorhandenen Projekten werden Sie von der IDE aufgefordert, auf Gradle 2.14.1 und das Android-Plug-in für Gradle 2.1.3 zu aktualisieren. Letzteres ist für die Verwendung von Gradle 2.14.1 und höher erforderlich.

    2.1.2 (Juni 2016)

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

    • Aktualisierungen und Fehlerkorrekturen für Instant Run
    • Verbesserungen bei der LLDB-Leistung und Absturzbenachrichtigungen.
    • Behebung einer Regression im Sicherheitsupdate von Android Studio 2.1.1, die zu einem Fehler bei git rebase geführt hat.

    2.1.1 (Mai 2016)

    Sicherheitsaktualisierung

    Die Android N-Plattform unterstützt 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 Android Studio 2.1 zum Erstellen Ihrer App verwenden.

    Hinweis:Instant Run wird deaktiviert, wenn Sie den Jack-Compiler aktivieren, da sie derzeit nicht kompatibel sind.

    Obwohl Android Studio 2.1 jetzt stabil ist, ist der Jack-Compiler noch experimentell und muss mit dem Attribut jackOptions in der Datei build.gradle aktiviert werden.

    Neben den Änderungen zur Unterstützung der N-Vorabversion 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 Emulator verwenden und den Debuggermodus Native (auf dem Tab Debugger für Ihre Ausführungs-/Debug-Konfiguration) auswählen.

    Wenn Sie weitere Build-Optimierungen wie die inkrementelle Java-Kompilierung und die Deaktivierung von Java-Code während des Build-Prozesses nutzen möchten, aktualisieren Sie Ihr 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-Vorabversion verwenden. Android Studio 2.0 unterstützt nicht alle Funktionen, die für die Ausrichtung auf die N-Vorabversion erforderlich sind.

    Instant Run:

    • In Android Studio werden jetzt schneller als zuvor saubere Builds bereitgestellt. Außerdem werden inkrementelle Codeänderungen jetzt fast sofort an den Emulator oder ein physisches Gerät gesendet. Sie können Ihre Updates prüfen, ohne einen neuen Debug-Build neu bereitzustellen oder in vielen Fällen die App neu zu starten.
    • Instant Run unterstützt das Übertragen der folgenden Änderungen auf eine laufende App:
      • Änderungen an der Implementierung einer vorhandenen Instanzmethode oder statischen Methode
      • Änderungen an einer vorhandenen App-Ressource
      • Änderungen am Strukturcode, 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 finden Sie in der Dokumentation.

      Hinweis:Instant Run wird nur unterstützt, wenn Sie die Debug-Buildvariante bereitstellen, das Android-Plug-in für Gradle Version 2.0.0 oder höher verwenden und die build.gradle-Datei Ihrer App auf Modulebene 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 Funktionen in Lint:

    • Prüfung von switch-Anweisungen mit @IntDef-annotierten Ganzzahlen, um sicherzustellen, dass alle Konstanten verarbeitet werden. Wenn Sie schnell fehlende Anweisungen hinzufügen möchten, wählen Sie im Drop-down-Menü für die Absichtsaktion Fehlende @IntDef-Konstanten hinzufügen aus.
    • Flags für fehlerhafte Versuche, Versionsnummern mithilfe von String-Interpolation in die build.gradle-Datei einzufügen.
    • Flags für anonyme Klassen, die die Klasse Fragment erweitern.
    • Flags für nativen Code an unsicheren Speicherorten, z. B. in 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
    • Markiert unsichere Aufrufe von Runtime.load()- und System.load()-Aufrufen. AOSP: #179980
    • Sie können nicht verwendete Ressourcen finden und entfernen, indem Sie in der Menüleiste Umstrukturieren > 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-Schrumpfer verwendet werden. Außerdem werden inaktive Quellsätze (z. B. Ressourcen, die in anderen Build-Varianten verwendet werden) berücksichtigt und statische Feldimporte werden ordnungsgemäß verarbeitet.
    • Prüft, ob implizite API-Referenzen auf allen Plattformen unterstützt werden, auf die minSdkVersion ausgerichtet ist.
    • Meldet die falsche Verwendung von RecyclerView und Parcelable.
    • Bei den Prüfungen @IntDef, @IntRange und @Size werden jetzt auch int-Arrays und vararg-Argumente geprüft.

    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 drastisch 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 auf den folgenden Tabs kategorisiert: 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:Sie können die Grafikkarte Ihres Computers für ein schnelleres Rendering verwenden.
        • Software:Softwarebasiertes Rendering verwenden.
        • Automatisch:Der Emulator entscheidet, welche Option am besten geeignet ist. Dies ist die Standardeinstellung.
    • Verbesserte AAPT-Verpackungszeiten durch Angabe des Bereitstellungsziels vor dem Erstellen der App. 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 der Benutzerfreundlichkeit und Skalierbarkeit eines Cloud-Dienstes bereitzustellen. Weitere Informationen zur Verwendung des Cloud-Testlabs mit Android Studio
    • Vorschau des neuen GPU-Debuggers hinzugefügt. Bei grafikintensiven Anwendungen können Sie Ihren OpenGL ES-Code jetzt visuell durchgehen, um Ihre App oder Ihr Spiel zu optimieren.
    • Test für die Google App-Indexierung hinzugefügt. Binden Sie URLs, die App-Indexierung und Suchfunktionen in Ihre Apps ein, um mehr Zugriffe auf Ihre App zu erzielen, herauszufinden, welche App-Inhalte am häufigsten verwendet werden, und neue Nutzer zu gewinnen. URLs in Ihrer App 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 Das ist neu in IntelliJ.
    • Bei der automatischen Vervollständigung von Attributen werden im XML-Editor jetzt Anführungszeichen hinzugefügt. Wenn Sie prüfen möchten, ob diese Option aktiviert ist, öffnen Sie das Dialogfeld Einstellungen oder Benutzereinstellungen, gehen Sie zu Bearbeitung > Allgemein > Smart-Schlüssel und setzen Sie ein Häkchen neben Anführungszeichen für Attributwert beim Ausfüllen des Attributs hinzufügen. Problem: 195113
    • Der XML-Editor unterstützt jetzt die Codevervollständigung für Ausdrücke zur Datenbindung.

    Android Studio 1.5.1 (Dezember 2015)

    Korrekturen und Verbesserungen:

    • Ein Problem mit dem Rendern im Layout-Editor wurde behoben. Problem: 194612
    • Es ist jetzt möglich, description-Manifestattribute je nach Konfiguration zu variieren. Problem: 194705
    • Der Kontrast des Darcula-Designs von Android Studio wurde in Vector Asset Studio verbessert. Problem: 191819
    • In Vector Asset Studio wurde die Schaltfläche Hilfe hinzugefügt.
    • Der Operator % für die Datenbindung wird jetzt unterstützt. Problem: 194045
    • Ein Fall wurde behoben, in dem beim Starten einer App zum Debuggen eine Verbindung zum falschen Gerät hergestellt wurde. Problem: 195167
    • Eine Nullzeiger-Ausnahme wurde behoben, die beim Ausführen einer App in bestimmten Szenarien auftreten konnte.

    Android Studio 1.5.0 (November 2015)

    Korrekturen und Verbesserungen:

    • Dem Android-Monitor wurden neue Analysefunktionen für den Arbeitsspeicher hinzugefügt. Wenn Sie eine HPROF-Datei aufrufen, die mit diesem Monitor erfasst wurde, ist die Anzeige jetzt hilfreicher, sodass Sie Probleme wie Speicherlecks schneller finden können. Wenn Sie diesen Monitor verwenden möchten, klicken Sie unten im Hauptfenster auf Android-Monitor. Klicken Sie im Android-Monitor auf den Tab Arbeitsspeicher. Klicken Sie während der Ausführung des Monitors auf das Symbol Java-Heap-Dump, dann im Hauptfenster auf Captures und doppelt auf die Datei, um sie aufzurufen. Klicken Sie rechts auf Analyse erfassen. Der Android Device Monitor kann nicht gleichzeitig mit dem Android Monitor ausgeführt werden.
    • Unterstützung für Deeplinks und App-Links hinzugefügt. Im Code-Editor kann automatisch ein Intent-Filter für Deeplinks in der AndroidManifest.xml-Datei erstellt werden. Außerdem kann er Code generieren, mit dem Sie die App Indexing API in einer Aktivität in einer Java-Datei einbinden können. Mit einer Deeplink-Testfunktion können Sie prüfen, ob ein bestimmter Deeplink eine App starten kann. Auf dem Tab Allgemein des Dialogfelds Konfigurationen ausführen/debuggen können Sie Optionen für das Starten von Deeplinks angeben. Sie können App Indexing API-Aufrufe auch in einer Aktivität mithilfe des logcat-Displays des Android-Monitors testen. Das Android-lint-Tool enthält jetzt Warnungen für bestimmte Probleme im Zusammenhang mit Deeplinks und der App Indexing API.
    • Es ist jetzt möglich, kurze Namen zu verwenden, wenn benutzerdefinierte Ansichten im Code-Editor automatisch fertiggestellt werden.
    • In Vector Asset Studio wurde die Unterstützung für weitere VectorDrawable-Elemente hinzugefügt, um die Abwärtskompatibilität zu verbessern. Mit diesen Elementen können Sie in Vector Asset Studio Vektor-Drawables in PNG-Rasterbilder konvertieren, 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 sofort umsetzbares Feedback in Android Studio zu geben. Außerdem wurden mehrere Fehlerkorrekturen vorgenommen. So können beispielsweise Probleme mit Berechtigungen, nicht unterstützter Hardware, dem uses-feature-Element und fehlenden Bannern für Android TV gemeldet und schnell behoben werden. Bei Android Auto kann damit die korrekte Verwendung in der Deskriptordatei überprüft werden, auf die in Ihrer AndroidManifest.xml-Datei verwiesen wird. Außerdem wird gemeldet, wenn kein Intent-Filter für die MediaBrowserService-Klasse vorhanden ist, und bestimmte Probleme mit Sprachaktionen werden erkannt.
    • Es wurden neue lint-Prüfungen für unsichere Broadcastempfänger, die Verwendung der Klassen SSLCertificateSocketFactory und HostnameVerifier sowie File.setReadable()- und File.setWritable()-Aufrufe hinzugefügt. Außerdem werden ungültige Manifestressourcen-Suchanfragen erkannt, insbesondere bei Ressourcen, die je nach Konfiguration variieren.
    • Es wurden einige Stabilitätsprobleme behoben.

    Android Studio Version 1.4.1 (Oktober 2015)

    Korrekturen und Verbesserungen:

    • Ein Problem beim Gradle-Modell-Caching wurde behoben, das beim Neustarten der IDE zu einer übermäßigen Gradle-Synchronisierung führen konnte.
    • Ein Deadlock-Problem beim nativen Debuggen wurde behoben.
    • Ein Problem wurde behoben, bei dem Nutzer des Versionskontrollsystems Subversion 1.9 blockiert wurden.
    • Ein Problem im Dialogfeld Geräteauswahl wurde behoben, bei dem nach der Verbindung eines nicht autorisierten Geräts der Emulator nicht mehr ausgewählt werden konnte. Problem: 189658
    • Fehler bei der Meldung von Übersetzungsfehlern für Sprachen mit einem Regions-Qualifier und einer Übersetzung in der Region (aber nicht in der Basissprache) behoben. Problem: 188577
    • Ein Deadlock-Problem im Design-Editor im Zusammenhang mit der Interaktion mit dem Layout-Editor wurde behoben. Problem: 188070
    • Ein Konflikt beim Aktualisieren und Bearbeiten im Design-Editor wurde behoben, der dazu führte, dass Attribute nicht richtig aktualisiert wurden. Problem: 187726
    • Verbesserte Leistung des Designeditors.
    • Ein Problem wurde behoben, durch das das Attribut android:required im Manifest ignoriert wurde. Problem: 187665

    Android Studio 1.4.0 (September 2015)

    Korrekturen und Verbesserungen:

    • Das Tool Vector Asset Studio zum Importieren von Vektorgrafiken wie Materialsymbolen und SVG-Dateien wurde hinzugefügt. Wenn Sie dieses Tool verwenden möchten, klicken Sie im Projektfenster in der Android-Ansicht mit der rechten Maustaste auf den Ordner res und wählen Sie Neu > Vektor-Asset aus.
    • Neue Funktionen für die Android-Überwachung hinzugefügt: GPU und Netzwerk. Wenn Sie diese Monitore verwenden möchten, klicken Sie unten im Hauptfenster auf Android-Monitor. Der Android Device Monitor kann nicht gleichzeitig mit dem Android Monitor ausgeführt werden.
    • Eine frühe Vorschau des neuen Themen-Editors wurde hinzugefügt. Wenn Sie diese Funktion verwenden möchten, wählen Sie Tools > Android > Design-Editor aus.
    • Die Android-Vorlagen für die Design Support Library wurden aktualisiert. Die Vorlagen unterstützen jetzt die Material Design-Spezifikation sowie die appcompat-Supportbibliothek für die Abwärtskompatibilität.

    Android Studio 1.3.2 (August 2015)

    Korrekturen und Verbesserungen:

    • Unterstützung für Android 6.0 (API-Level 23) hinzugefügt, einschließlich neuer Symbole und AVD Manager-Unterstützung für die Erstellung von Geräten mit neuen Bildschirmdichten.
    • Eine Ausnahme, die bei der Überprüfung von Updates aufgetreten ist, wurde behoben. Problem: 183068
    • Ein Problem wurde behoben, durch das nicht aufgelöste Ansichtskoordinaten zum Absturz des Layout-Editors führen konnten. Problem: 178690
    • Problem mit Warnungen zu ungültigen Ressourcentypen behoben Problem: 182433
    • Die Lint-Prüfung wurde korrigiert, da sie Ressourcen fälschlicherweise als privat gekennzeichnet hat. Problem: 183120

    Android Studio 1.3.1 (August 2015)

    Korrekturen und Verbesserungen:

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

    Android Studio Version 1.3.0 (Juli 2015)

    Korrekturen 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 Hinweise hinzugefügt, z. B. @RequiresPermission, @CheckResults und @MainThread.
    • Es wurde die Möglichkeit hinzugefügt, Java-Heap-Dumps zu generieren und Threadzuweisungen über den Speichermonitor 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 Benachrichtigungen zu Updates zu erhalten.

      Hinweis:Der eigenständige SDK-Manager ist weiterhin über die Befehlszeile verfügbar, wird aber nur für die Installation eigenständiger SDKs empfohlen.

    • Der Befehl finger wurde in der Emulatorkonsole hinzugefügt, um die Fingerabdruckauthentifizierung zu simulieren.
    • Es wurde eine <public>-Ressourcendeklaration hinzugefügt, um Bibliotheksressourcen als öffentliche und private Ressourcen zu kennzeichnen.

      Hinweis:Es ist das Android-Plug-in für Gradle in Version 1.3 oder höher erforderlich.

    • Unterstützung für Datenbindungen hinzugefügt, um deklarative Layouts zu erstellen, die die Anwendungslogik an Layoutelemente binden.
    • Unterstützung für ein separates Test-APK-Modul zum Erstellen von Test-APKs in Android Studio 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 durch das Hinzufügen von Schnellkorrekturen vereinfacht, 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 1.2.2(Juni 2015)

    Korrekturen und Verbesserungen:

    • Probleme beim Erstellen, die den Abschluss von Builds verhindert haben, wurden behoben.

    Android Studio 1.2.1 (Mai 2015)

    Korrekturen und Verbesserungen:

    • Kleinere Leistungs- und Funktionsprobleme wurden behoben.

    Android Studio 1.2.0 (April 2015)

    Korrekturen und Verbesserungen:

    • Das Android-Laufzeitfenster wurde um das Tool Memory Monitor und einen Tab für die CPU-Leistungsüberwachung erweitert.
    • Im linken Rand wurde der Tab Aufzeichnungen hinzugefügt, auf dem die erfassten Arbeitsspeicher- und CPU-Leistungsdatendateien angezeigt werden, z. B. CPU-Methoden-Tracking und Arbeitsspeicher-Heap-Snapshots.
    • Die Unterstützung von Anmerkungen wurde um zusätzliche Metadatenanmerkungen und abgeleitete Nullbarkeit erweitert.
    • Der Übersetzungseditor wurde um zusätzliche Unterstützung für BCP 47 (Best Current Practice) erweitert, bei dem dreistellige Sprach- und Regionscodes verwendet werden.
    • Integrierte IntelliJ 14- und 14.1-Funktionen für eine verbesserte Codeanalyse und Leistung:
      • Verbessertes Debugging, um Inline-Werte für Variablen und verweisende Objekte anzuzeigen sowie Inline-Bewertungen von Lambda- und Operatorausdrücken durchzuführen.
      • Codestilerkennung für Tabulator- und Einzuggrößen hinzugefügt
      • Es wurden Scratch-Dateien für Codeexperimente und Prototyping ohne Projektdateien hinzugefügt.
      • Es ist jetzt möglich, öffnende und schließende Tags gleichzeitig in HTML- und XML-Dateien einzufügen.
      • Es wurde ein integrierter Java-Klassen-Decompiler hinzugefügt, mit dem Sie sich den Inhalt einer Bibliothek ansehen können, für die der Quellcode nicht verfügbar ist.

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

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

    Android Studio 1.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 geändert, um Ordner res/mipmap für dichtespezifische Launcher-Symbole einzubinden. Diese res/mipmap-Ordner ersetzen die Ordner res/drawable für Launcher-Symbole.
    • Die Launcher-Symbole wurden im Material Design-Look aktualisiert und es wurde ein xxxhdpi-Launcher-Symbol hinzugefügt.
    • Es wurden Lint-Prüfungen für Kombinationen aus Region und Sprache, Launcher-Symbole, Ressourcennamen und andere häufige Codeprobleme hinzugefügt und verbessert.
    • Unterstützung für das BCP-47-Sprachtag (Best Current Practice) hinzugefügt.

    Android Studio Version 1.0.1 (Dezember 2014)

    Verschiedene Fehlerkorrekturen und Verbesserungen:

    • Problem mit der Sperrung der Dateien „AVD Manager“ und device.xml behoben
    • Das Emulatorprotokoll wurde auf Windows-Systemen korrigiert.
    • Das Problem beim Erstellen von AVDs mit Android Studio und Android SDK auf verschiedenen Laufwerken auf Windows-Systemen wurde behoben.
    • Der Standard-Update-Channel für neue Downloads wird auf Stable festgelegt. Wenn Sie die Version 1.0.0 von Android Studio installiert haben und stabile, produktionsreife Versionsupdates erhalten möchten, wechseln Sie unter Datei > Einstellungen > Updates zum Update-Kanal Stable.

    Android Studio 1.0 (Dezember 2014)

    Erste Version von Android Studio.

    Android Studio Version 0.8.14 (Oktober 2014)

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

    Android Studio Version 0.8.6 (August 2014)

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

    Android Studio Version 0.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 Version 0.5.2 (Mai 2014)

    Android Studio Version 0.4.6 (März 2014)

    Android Studio Version 0.4.2 (Januar 2014)

    Android Studio Version 0.3.2 (Oktober 2013)

    Android Studio 0.2.x (Juli 2013)

    • Die neuesten Änderungen an der IntelliJ-Codebasis wurden zusammengeführt. Enthält Fehlerkorrekturen für von Studio-Nutzern gemeldete Probleme, z. B. Anpassungen an der Schriftgröße und dem 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-Projekt „<project_name>“ konnte nicht aktualisiert werden angezeigt.

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

      • Das IDE-Modell wurde so angepasst, dass es die Ausgabedatei enthält, auch wenn sie über die DSL angepasst wurde. Außerdem wurde die DSL korrigiert, um die Ausgabedatei für das Variantenobjekt abzurufen/festzulegen, sodass variant.packageApplication or variant.zipAlign nicht mehr verwendet werden muss.
      • Die Abhängigkeitsauflösung wurde so korrigiert, dass die Kombination aus Standardkonfiguration, Buildtypen und Varianten zusammen und nicht separat aufgelöst wird.
      • Die Abhängigkeit für Tests des Bibliotheksprojekts wurde korrigiert, damit alle Abhängigkeiten der Bibliothek selbst korrekt berücksichtigt werden.
      • Es wurde ein Fall behoben, bei dem zwei Abhängigkeiten denselben Blattnamen haben.
      • Das Problem, dass die Proguard-Regelndatei nicht auf Flavors angewendet werden konnte, wurde behoben.

      Alle Versionshinweise für das Gradle-Plug-in finden Sie hier: 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, die parallelen Builds von Gradle zu verwenden. Parallele Builds befinden sich in der Entwicklungsphase (siehe Gradle-Dokumentation). Diese Funktion ist standardmäßig deaktiviert. Wenn Sie diese Funktion aktivieren möchten, klicken Sie auf Einstellungen > Compiler und setzen Sie ein Häkchen in das Kästchen Unabhängige Module parallel kompilieren.
    • Weitere Arbeiten am neuen Ressourcen-Repository, das für das Layout-Rendering verwendet wird, sowie zum Zusammenklappen von Ressourcen im Editor:
      • Grundlegende Unterstützung für Abhängigkeiten von .aar-Bibliotheken (z. B. Verwendung einer Bibliothek ohne lokale Kopie der Quellen) Die XML-Validierung und Navigation in Ressourcen in Quelleditoren funktioniert weiterhin nicht.
      • Zykluserkennung in Ressourcenreferenzen
      • Die Schnelldokumentation (F1), mit der alle Übersetzungen des Strings unter dem Caret angezeigt werden können, zeigt jetzt auch alle Ressourcen-Overlays aus den verschiedenen Gradle-Varianten und Build-Typen sowie aus Bibliotheken an. Sie werden in umgekehrter Reihenfolge des Ressourcen-Overlays aufgeführt. Die Versionen des Strings, die ausgeblendet sind, sind durchgestrichen.
      • Fehlerkorrekturen beim Aktualisieren der zusammengeführten Ressourcen, wenn sich die Modulabhängigkeiten ändern.
      • Korrekturen beim XML-Rendering, um Zeichenentitätsdeklarationen und XML- und Unicode-Escapes ordnungsgemäß zu verarbeiten.
    • Unterstützung für das Speichern von Screenshots für die Layoutvorschau und den Layout-Editor
    • Fehlerkorrekturen für Vorlagen
    • Fehlerkorrekturen für Lint.
    • Verschiedene Fehler bei Absturzberichten wurden behoben. Vielen Dank und bitte melden Sie weiterhin Absturzberichte.

    Android Studio Version 0.1.x (Mai 2013)

    • Verschiedene Fehlerkorrekturen, einschließlich einer Korrektur für ein häufiges Problem bei der Windows-Installation.

    Ältere Releases 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.

    Bindung ansehen

    Die View-Bindung bietet Sicherheit bei der Kompilierung, wenn in Ihrem Code auf Ansichten verwiesen wird. Sie können findViewById() jetzt durch die automatisch generierte Bindungsklassenreferenz ersetzen. Wenn Sie die Ansichtsbindung verwenden möchten, fügen Sie der build.gradle-Datei jedes Moduls Folgendes hinzu:

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

    Weitere Informationen finden Sie in der Dokumentation zur Bindung.

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

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

    Weitere Informationen finden Sie auf der Seite Maven Publish-Plug-in verwenden.

    Neues Standard-Paketierungstool

    Beim Erstellen der Debugversion Ihrer App verwendet das Plug-in ein neues Verpackungstool namens zipflinger, um Ihr APK zu erstellen. Dieses neue Tool sollte die Buildgeschwindigkeit verbessern. Wenn das neue Tool zum Verpacken 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 Zeitspanne ermitteln, die Clang für das Erstellen und Verknüpfen jeder C/C++-Datei in Ihrem Projekt benötigt. Gradle kann einen Chrome-Trace mit Zeitstempeln für diese Compilerereignisse ausgeben, damit Sie die für den Build Ihres Projekts erforderliche Zeit besser nachvollziehen können. So geben Sie diese Datei mit den Attributionsdaten für den Build 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 gehen Sie zu <var>project-root</var>/build/android-profile, um die Datei zu finden. Die Datei heißt profile-<var>timestamp</var>.json.gz.

    Die Attributionsdaten für native Anzeigen werden oben im Viewer angezeigt:

    Native Attributions-Spuren für Builds in Chrome

    Geändertes Verhalten

    Bei Verwendung dieser Version des Plug-ins können die folgenden Verhaltensänderungen auftreten.

    Native Bibliotheken, die standardmäßig unkomprimiert verpackt sind

    Wenn Sie Ihre App erstellen, wird extractNativeLibs jetzt standardmäßig vom Plug-in auf "false" gesetzt. Das bedeutet, dass Ihre nativen Bibliotheken seitenausgerichtet und unkomprimiert verpackt sind. Das führt zwar zu einer größeren Uploadgröße, Ihre Nutzer profitieren aber von folgenden Vorteilen:

    • Kleinere App-Installationsgröße, da die Plattform direkt über das installierte APK auf die nativen Bibliotheken zugreifen kann, ohne eine Kopie der Bibliotheken zu erstellen.
    • Kleinere Downloadgröße, da die Komprimierung im Play Store in der Regel besser ist, wenn Sie unkomprimierte native Bibliotheken in Ihr APK oder Android App-Bundle aufnehmen.

    Wenn das Android Gradle-Plug-in stattdessen komprimierte native Bibliotheken verpacken soll, fügen Sie Folgendes 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 Anmerkung zur Version.

    Standard-NDK-Version

    Wenn Sie mehrere Versionen des NDK herunterladen, wählt das Android Gradle-Plug-in jetzt eine Standardversion für die Kompilierung Ihrer Quellcodedateien aus. Bisher wurde vom 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-Klassenerstellung

    Das Android Gradle-Plug-in vereinfacht den Compile-Classpath, indem für jedes Bibliotheksmodul in Ihrem Projekt nur eine R-Klasse generiert und diese R-Klassen für andere Modulabhängigkeiten freigegeben werden. Diese Optimierung sollte zu schnelleren Builds führen. Beachten Sie dabei Folgendes:

    • 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, mit der die Bibliothek als Abhängigkeit eingeschlossen wurde. 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 Bibliothek A die implementation-Abhängigkeitskonfiguration verwendet. Weitere Informationen finden Sie unter Abhängigkeitskonfigurationen.
    Ressourcen entfernen, die in der Standardkonfiguration fehlen

    Wenn Sie für Bibliotheksmodule eine Ressource für eine Sprache angeben, die nicht in den Standardressourcen enthalten ist, wird diese Ressource beim Kompilieren Ihres Projekts nicht mehr vom Android Gradle-Plug-in berücksichtigt. Das ist beispielsweise der Fall, wenn Sie hello_world als Stringressource in /values-es/strings.xml angeben, sie aber nicht in /values/strings.xml definieren. Diese Verhaltensänderung sollte zu weniger Resource Not Found-Laufzeitausnahmen und einer verbesserten Buildgeschwindigkeit führen.

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

    Beim Kompilieren Ihrer App berücksichtigt D8 jetzt, wenn Anmerkungen eine CLASS-Aufbewahrungsrichtlinie anwenden. Diese Anmerkungen sind dann zur Laufzeit nicht mehr verfügbar. Dieses Verhalten tritt auch auf, wenn Sie das Ziel-SDK der App auf API-Level 23 festlegen. Bei älteren Versionen des Android Gradle-Plug-ins und von D8 war es zuvor möglich, während der Laufzeit auf diese Anmerkungen zuzugreifen, wenn die App kompiliert wurde.

    Weitere Verhaltensänderungen
    • aaptOptions.noCompress ist auf allen Plattformen (sowohl für APKs als auch für Bundles) nicht mehr groß- und kleinschreibungsempfindlich und berücksichtigt Pfade mit Großbuchstaben.
    • Die Datenbindung ist jetzt standardmäßig inkrementell. Weitere Informationen finden Sie unter Problem 110061530.

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

    Fehlerkorrekturen

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

    • Robolectric-Unit-Tests werden jetzt in Bibliotheksmodulen unterstützt, die Datenbindung verwenden. Weitere Informationen finden Sie unter Problem 126775542.
    • Sie können jetzt connectedAndroidTest-Aufgaben in mehreren Modulen ausführen, wenn 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 Leistung der Android Lint-Aufgabe

    Bei einigen Projekten kann die Ausführung von Android Lint aufgrund einer Regression der Parseinfrastruktur viel länger dauern. 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 in Android Gradle Plugin 4.0 behoben.

    Fehlende Manifest-Klasse {:#agp-missing-manifest}

    Wenn Ihre App benutzerdefinierte Berechtigungen in ihrem Manifest definiert, generiert das Android Gradle-Plug-in normalerweise eine Manifest.java-Klasse, die Ihre benutzerdefinierten Berechtigungen als Stringkonstanten enthält. Das Plug-in verpackt diese Klasse mit Ihrer App, damit Sie diese Berechtigungen bei der Laufzeit leichter referenzieren 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:

    • Geben Sie Ihre benutzerdefinierten Berechtigungen mit ihrem vollständig qualifizierten Namen an. 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 ein wichtiger Release und ein Ergebnis von Project Marble. Bei diesem Projekt liegt der Schwerpunkt auf der Verbesserung von drei Hauptbereichen der Android-Entwicklertools: Systemintegrität, Funktionsoptimierung und Behebung von Programmfehlern. Ein besonderer Schwerpunkt dieses Updates war die Verbesserung der Build-Geschwindigkeit von Projekten.

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

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

    3.5.4 (Juli 2020)

    Dieses Minor-Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit unter Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zur Version 4.0.1.

    3.5.3 (Dezember 2019)

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

    3.5.2 (November 2019)

    Dieses Minor-Update unterstützt Android Studio 3.5.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.

    3.5.1 (Oktober 2019)

    Dieses Minor-Update unterstützt Android Studio 3.5.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.

    Inkrementelle Anmerkungsverarbeitung

    Der Data Binding-Anmerkungs-Prozessor unterstützt die inkrementelle Anmerkungsverarbeitung, wenn Sie in der Datei gradle.properties die Option android.databinding.incremental=true festlegen. Diese Optimierung führt zu einer verbesserten Leistung bei inkrementellen Builds. Eine vollständige Liste der optimierten Annotierungs-Prozessoren finden Sie in der Tabelle der inkrementellen Annotierungs-Prozessoren.

    Außerdem unterstützen KAPT 1.3.30 und höher auch inkrementelle Anmerkungs-Prozessoren. Sie können diese aktivieren, indem Sie kapt.incremental.apt=true in die Datei gradle.properties einfügen.

    Cachefähige Unittests

    Wenn Sie die Verwendung von Android-Ressourcen, -Assets und -Manifesten für Unit-Tests aktivieren, indem Sie includeAndroidResources auf true festlegen, generiert das Android Gradle-Plug-in eine Testkonfigurationsdatei mit absoluten Pfaden, wodurch die Cache-Neuverlagerung nicht mehr möglich ist. Sie können das Plug-in anweisen, die Testkonfiguration stattdessen mit relativen Pfaden zu generieren, wodurch die AndroidUnitTest-Aufgabe vollständig im Cache gespeichert werden kann. Fügen Sie dazu Folgendes in die gradle.properties-Datei ein:

          android.testConfig.useRelativePath = true
        

    Bekannte Probleme

    • Wenn Sie das Kotlin Gradle-Plug-in 1.3.31 oder älter 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)

    Dieses Minor-Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit unter Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zur Version 4.0.1.

    3.4.2 (Juli 2019)

    Dieses Minor-Update unterstützt Android Studio 3.4.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.

    3.4.1 (Mai 2019)

    Dieses Minor-Update unterstützt Android Studio 3.4.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.

    Neue Funktionen

    • Neue Konfigurationen für Lint-Prüfungsabhängigkeiten:Das Verhalten von lintChecks hat sich geändert und es wurde eine neue Abhängigkeitskonfiguration namens lintPublish eingeführt, mit der Sie besser steuern können, welche Lint-Prüfungen in Ihren Android-Bibliotheken verpackt werden.

      • 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 lintChecks-Abhängigkeitskonfiguration verwendet haben, um Lint-Prüfungen in die veröffentlichte AAR aufzunehmen, müssen Sie diese Abhängigkeiten migrieren, um stattdessen die unten beschriebene neue lintPublish-Konfiguration zu verwenden.
      • lintPublish: Verwenden Sie diese neue Konfiguration in Bibliotheksprojekten für Lint-Prüfungen, die in die veröffentlichte AAR aufgenommen werden sollen, wie unten dargestellt. Das bedeutet, dass diese Lint-Prüfungen auch auf Projekte angewendet werden, die Ihre Bibliothek verwenden.

      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 die Buildgeschwindigkeit bei den Aufgaben zum Verpacken und Signieren insgesamt verbessert werden. Wenn Sie eine Leistungsverschlechterung im Zusammenhang mit diesen Aufgaben feststellen, melden Sie bitte einen Fehler.

    Geändertes Verhalten

    • Warnung zur Einstellung des Android Instant Apps-Funktions-Plug-ins:Wenn Sie zum Erstellen Ihrer Instant App weiterhin das com.android.feature-Plug-in verwenden, erhalten Sie mit dem Android Gradle-Plug-in 3.4.0 eine Warnung zur Einstellung. Damit Sie Ihre Instant-App auch in zukünftigen Versionen des Plug-ins erstellen können, sollten Sie sie auf das Plug-in für dynamische Funktionen umstellen. So können Sie sowohl Ihre installierbare App als auch Ihre Instant-App über ein einziges Android App Bundle veröffentlichen.

    • R8 standardmäßig aktiviert:R8 integriert Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing in einem Schritt. 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 dem Plug-in 3.4.0 und höher aktiviert.

    Das folgende Bild 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, Schrumpfen, Verschleierung, Optimierung und Dexing (D8) jetzt in einem Schritt ausgeführt, wie unten dargestellt.

    Mit R8 werden Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing in einem einzigen Kompilierungsschritt ausgeführt.

    R8 ist für die Verwendung mit Ihren vorhandenen ProGuard-Regeln konzipiert. Sie müssen also wahrscheinlich nichts unternehmen, 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 das Schrumpfen und Optimieren dazu führen, dass Code entfernt wird, der von ProGuard möglicherweise nicht entfernt wurde. In diesem unwahrscheinlichen Fall müssen Sie möglicherweise zusätzliche Regeln hinzufügen, damit dieser Code in der Build-Ausgabe enthalten bleibt.

    Wenn bei der Verwendung von R8 Probleme auftreten, lesen Sie die häufig gestellten Fragen zur Kompatibilität von R8, um zu sehen, 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 der gradle.properties-Datei Ihres Projekts eine der folgenden Zeilen hinzufü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 Buildtyp in der Datei build.gradle Ihres App-Moduls useProguard auf false festlegen, verwendet das Android Gradle-Plug-in R8, um den Code Ihrer App für diesen Buildtyp zu komprimieren, unabhängig davon, ob Sie R8 in der Datei gradle.properties Ihres Projekts deaktivieren.

    • ndkCompile wird eingestellt:Wenn Sie versuchen, Ihre nativen Bibliotheken mit ndkBuild zu kompilieren, erhalten Sie jetzt einen Buildfehler. Verwenden Sie stattdessen CMake oder ndk-build, um Ihrem Projekt C- und C++-Code hinzuzufügen.

    Bekannte Probleme

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

                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)

    Dieses Minor-Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit unter Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zur Version 4.0.1.

    3.3.2 (März 2019)

    Dieses Minor-Update unterstützt Android Studio 3.3.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.

    3.3.1 (Februar 2019)

    Dieses Minor-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 Ihren Laufzeit- und Kompilierungszeit-Classpaths versucht das Android Gradle-Plug-in, bestimmte Downstream-Versionskonflikte für Abhängigkeiten zu beheben, die in mehreren Classpaths auftreten.

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

      Wenn der Laufzeit-Classpath jedoch Bibliothek A Version 1.0 und der Compile-Classpath Bibliothek A Version 2.0 enthält, wird die Abhängigkeit im Compile-Classpath nicht auf Bibliothek A Version 1.0 herabgestuft. In diesem Fall wird ein Fehler ausgegeben. Weitere Informationen finden Sie unter Konflikte zwischen Klassenpfaden beheben.

    • Verbesserte inkrementelle Java-Kompilierung bei Verwendung von Anmerkungs-Prozessoren: Durch dieses Update wird die Buildzeit verkürzt, da die Unterstützung für die inkrementelle Java-Kompilierung bei Verwendung von Anmerkungs-Prozessoren 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 mit Kapt (die meisten reinen Kotlin-Projekte und Kotlin-Java-Hybridprojekte): Die inkrementelle Java-Kompilierung ist aktiviert, auch wenn Sie Data Binding oder das Retro-Lambda-Plug-in verwenden. Die Anmerkungsverarbeitung durch die Kapt-Aufgabe ist noch nicht inkrementell.

      • Für Projekte ohne Kapt (nur Java-Projekte): Wenn alle von Ihnen verwendeten Anmerkungs-Prozessoren die inkrementelle Anmerkungsverarbeitung unterstützen, ist die inkrementelle Java-Kompilierung standardmäßig aktiviert. Informationen zur Einführung des schrittweisen Annotationseintrags finden Sie unter Gradle-Problem 5277.

        Wenn jedoch mindestens einer der Anmerkungs-Prozessoren keine inkrementellen Builds unterstützt, wird die inkrementelle Java-Kompilierung nicht aktiviert. Stattdessen können Sie das folgende Flag in die gradle.properties-Datei einfügen:

        android.enableSeparateAnnotationProcessing=true
                    

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

    • Verbesserte Informationen zur Fehlerbehebung bei Verwendung einer veralteten API:Wenn das Plug-in erkennt, dass Sie eine nicht mehr unterstützte API verwenden, können Sie jetzt detailliertere Informationen erhalten, um zu ermitteln, wo diese API verwendet wird. Damit Sie die zusätzlichen Informationen sehen können, müssen Sie Folgendes in die Datei gradle.properties Ihres Projekts aufnehmen:

                android.debug.obsoleteApi=true
              

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

    • Sie können Instrumentierungstests für Feature-Module über die Befehlszeile ausführen.

    Geändertes Verhalten

    • Lazy-Task-Konfiguration:Das Plug-in verwendet jetzt die neue API zum Erstellen von Aufgaben in Gradle, um Aufgaben zu vermeiden, die nicht zum Abschluss des aktuellen Builds erforderlich sind (oder Aufgaben, die nicht im Ausführungsaufgabengraphen enthalten sind). Wenn Sie beispielsweise mehrere Buildvarianten wie „Release“ und „Debug“ haben und die „Debug“-Version Ihrer App erstellen, wird durch das Plug-in verhindert, dass Aufgaben für die „Release“-Version Ihrer App initialisiert und konfiguriert werden.

      Wenn Sie bestimmte ältere Methoden in der Variants API aufrufen, z. B. variant.getJavaCompile(), wird die Aufgabenkonfiguration möglicherweise trotzdem erzwungen. Damit Ihr Build für die Lazy-Task-Konfiguration optimiert ist, rufen Sie neue Methoden auf, die stattdessen ein TaskProvider-Objekt wie variant.getJavaCompileProvider() zurückgeben.

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

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

    • Schnellere Generierung von R-Klassen für Bibliotheksprojekte:Bisher generierte das Android Gradle-Plug-in für jede Abhängigkeit Ihres Projekts eine R.java-Datei und kompilierte diese R-Klassen dann zusammen mit den anderen Klassen Ihrer App. Das Plug-in generiert jetzt direkt eine JAR-Datei mit der kompilierten R-Klasse Ihrer App, ohne zuerst ZwischenR.java-Klassen zu erstellen. Diese Optimierung kann die Build-Leistung für Projekte mit vielen Bibliotheks-Unterprojekten und Abhängigkeiten erheblich verbessern und die Indexierungsgeschwindigkeit in Android Studio erhöhen.

    • Wenn Sie ein Android App Bundle erstellen, enthalten die daraus generierten APKs, die 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 der App auf dem Laufwerk 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.

    • Synchronisierung eines Projekts mit einer einzelnen Variante: Die Synchronisierung Ihres Projekts mit Ihrer Build-Konfiguration ist ein wichtiger Schritt, damit Android Studio die Struktur Ihres Projekts erkennen kann. Bei großen Projekten kann dieser Vorgang jedoch zeitaufwendig sein. Wenn Sie in Ihrem Projekt mehrere Buildvarianten verwenden, können Sie Projektsynchronisierungen jetzt optimieren, indem Sie sie auf die aktuell ausgewählte Variante beschränken.

      Sie müssen Android Studio 3.3 oder höher mit dem Android Gradle-Plug-in 3.3.0 oder höher verwenden, 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 bei neuen Projekten standardmäßig aktiviert.

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

      Hinweis: Diese Optimierung unterstützt Projekte, die Java- und C++-Code enthalten, vollständig. Kotlin wird teilweise unterstützt. Wenn Sie die Optimierung für Projekte mit Kotlin-Inhalten aktivieren, verwendet die Gradle-Synchronisierung intern die vollständigen Varianten.

    • Automatischer Download fehlender SDK-Pakete: Diese Funktion wurde um die Unterstützung des NDK erweitert. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.

    Fehlerkorrekturen

    • Mit dem Android Gradle-Plug-in 3.3.0 werden die folgenden Probleme behoben:

      • Der Build-Prozess ruft android.support.v8.renderscript.RenderScript anstelle der AndroidX-Version auf, obwohl Jetifier aktiviert ist
      • Konflikte aufgrund von androidx-rs.jar, einschließlich statisch eingebundener annotation.AnyRes
      • Wenn Sie RenderScript verwenden, müssen Sie die Version der Build-Tools 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 die Erstellung 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 -Signatur werden dagegen an den Google Play Store weitergeleitet. Sie müssen nicht mehr mehrere APKs erstellen, signieren und verwalten. Nutzer erhalten kleinere Downloads, die für ihr Gerät optimiert sind. Weitere Informationen finden Sie unter Android App Bundles.

    • Unterstützung für eine verbesserte Geschwindigkeit bei der inkrementellen Erstellung bei Verwendung von Anmerkungs-Prozessoren: Das AnnotationProcessorOptions-DSL erweitert jetzt CommandLineArgumentProvider. So können Sie oder der Ersteller des Anmerkungs-Prozessors Argumente für den Prozessor mit Anmerkungen zum Property-Typ für die inkrementelle Erstellung annotieren. Mithilfe dieser Anmerkungen lassen sich die Korrektheit und Leistung von inkrementellen und im Cache gespeicherten sauberen Builds verbessern. Weitere Informationen finden Sie unter Argumente an Anmerkungs-Prozessoren ü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 Umstrukturieren > Zu AndroidX migrieren aus. Außerdem werden mit diesem Migrationstool die folgenden Flags in der Datei gradle.properties auf true gesetzt:

      • android.useAndroidX:Wenn dieser Parameter auf true festgelegt ist, verwendet das Android-Plug-in die entsprechende AndroidX-Bibliothek anstelle einer Supportbibliothek. 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 Bibliotheken von Drittanbietern automatisch zur Verwendung von 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 auch android.useAndroidX auf true gesetzt ist. Andernfalls wird ein Buildfehler ausgegeben.

        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

    • Die Entsaccharisierung 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()
                  }
                
    • Native Multidex-Unterstützung ist jetzt standardmäßig aktiviert. In früheren Versionen von Android Studio wurde native Multidex-Unterstützung aktiviert, wenn die Debugversion einer App auf einem Gerät mit Android API-Level 21 oder höher bereitgestellt wurde. Unabhängig davon, ob Sie eine Bereitstellung auf einem Gerät vornehmen oder ein APK für die Veröffentlichung erstellen, aktiviert das Android Gradle-Plug-in jetzt native Multidex-Unterstützung für alle Module, die minSdkVersion=21 oder höher festlegen.

    • Das Plug-in erzwingt jetzt eine Mindestversion des Protobuf-Plug-ins (0.8.6), des Kotlin-Plug-ins (1.2.50) und des Crashlytics-Plug-ins (1.25.4).

    • Beim Plug-in für das Funktionsmodulcom.android.feature dürfen beim Angeben eines Modulnamens jetzt nur noch Buchstaben, Ziffern und Unterstriche verwendet werden. Wenn der Name des Feature-Moduls beispielsweise Bindestriche enthält, wird ein Buildfehler ausgegeben. Dieses Verhalten entspricht dem des Plug-ins für dynamische Funktionen.

    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 unvorhersehbarer Buildfehler 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 zum Aktualisieren von Gradle.

    • Build Tools 27.0.3 oder höher

      Sie müssen für die Build-Tools nicht mehr über die Property android.buildToolsVersion eine Version angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion.

    Neuer DEX-Compiler, D8

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

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

          android.enableD8=false
        

    Bei Projekten, in denen Java 8-Sprachfunktionen verwendet werden, ist die inkrementelle Desugaring standardmäßig aktiviert. Sie können sie deaktivieren, indem Sie Folgendes in der gradle.properties-Datei Ihres Projekts angeben:

          android.enableIncrementalDesugaring=false.
        

    Vorabversionsnutzer:Wenn Sie bereits eine Vorabversion von D8 verwenden, wird sie jetzt mit Bibliotheken kompiliert, die in den SDK-Build-Tools enthalten sind, nicht mit dem 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 ein anderes ABI ausgerichtet sind, werden standardmäßig keine APKs mehr 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 build.gradle-Datei angeben, wie unten gezeigt:

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

    • Wenn Sie "auto" an resConfig übergeben, werden nicht mehr automatisch Stringressourcen ausgewählt, die in Ihr APK verpackt werden. Wenn Sie "auto" weiterhin verwenden, werden alle Stringressourcen, die von Ihrer App und ihren Abhängigkeiten bereitgestellt werden, vom Plug-in verpackt. Sie sollten stattdessen jede Sprache angeben, die das Plug-in in Ihre APK-Datei einbinden soll.

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

              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, durch das Android Studio Abhängigkeiten in zusammengesetzten Builds nicht richtig erkannte.
    • Es wurde ein Problem behoben, bei dem ein Projektsynchronisierungsfehler auftritt, wenn das Android-Plug-in mehrmals in einem einzigen Build geladen wird. Das kann beispielsweise passieren, wenn mehrere Unterprojekte das Android-Plug-in in ihrem Build-Script-Classpath enthalten.

    3.0.0 (Oktober 2017)

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

    Bei einem Beispiel-Skelettprojekt mit etwa 130 Modulen und einer großen Anzahl externer Abhängigkeiten (aber ohne Code oder Ressourcen) können Sie beispielsweise 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 und Gradle 3.3 Android-Plug-in 3.0.0 und Gradle 4.1
    Konfiguration (z.B. Ausführung von ./gradlew --help) ~ 2 Min. ~9 s ~ 2,5 s
    Java-Änderung mit einer Zeile (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, erstellen Sie bitte einen Fehlerbericht und fügen Sie einen Build-Trace mit dem Gradle-Profiler hinzu.

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

    • Gradle 4.1 oder höher Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
    • Build Tools 26.0.2 oder höher Mit diesem Update müssen Sie keine Version mehr für die Build-Tools 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 kleine Update unterstützt Android Studio 3.0.1 und enthält allgemeine Fehlerkorrekturen und Leistungsverbesserungen.

    Optimierungen

    • Bessere Parallelität bei Projekten mit mehreren Modulen durch einen detaillierten Aufgabengraphen.
    • 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. Verwenden Sie dazu die neuen Abhängigkeitskonfigurationen von Gradle: implementation, api, compileOnly und runtimeOnly.
    • Schnellere inkrementelle Buildgeschwindigkeit durch Dezimierung pro Klasse. Jede Klasse wird jetzt in separate DEX-Dateien kompiliert und nur die Klassen, die geändert werden, werden neu dexiert. Außerdem sollten Sie eine verbesserte Buildgeschwindigkeit für Apps erwarten, bei denen minSdkVersion auf 20 oder niedriger festgelegt ist und Legacy Multi-Dex verwendet wird.
    • Die Build-Geschwindigkeit wurde durch die Optimierung bestimmter Aufgaben für die Verwendung von zwischengespeicherten Ausgaben verbessert. Damit Sie von dieser Optimierung profitieren können, müssen Sie zuerst den Gradle-Build-Cache aktivieren.
    • Die inkrementelle Ressourcenverarbeitung wurde mit AAPT2 verbessert, 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 in Ihrer gradle.properties-Datei android.enableAapt2=false festlegen und den Gradle-Daemon neu starten, indem Sie ./gradlew --stop über die Befehlszeile ausführen.

    Neue Funktionen

    • Variantenspezifische Abhängigkeitsverwaltung Beim Erstellen einer bestimmten Variante eines Moduls gleicht das Plug-in jetzt automatisch die Varianten der Abhängigkeiten von lokalen Bibliotheksmodulen mit der Variante des Moduls ab, das Sie erstellen.
    • Enthält ein neues Feature-Modul-Plug-in zur Unterstützung von Android Instant Apps und dem Android Instant Apps SDK (das Sie über den SDK-Manager herunterladen können). Weitere Informationen zum Erstellen von Feature-Modulen 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 wurde eingestellt und ist nicht mehr erforderlich. Sie sollten Jack zuerst deaktivieren, um die verbesserte Java 8-Unterstützung zu verwenden, die in der Standard-Toolchain enthalten ist. Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.
    • Unterstützung für die Ausführung von Tests mit Android Test Orchestrator hinzugefügt. Damit können Sie die Tests Ihrer App in einer eigenen Aufrufinstanz der Instrumentierung ausführen. Da jeder Test in einer eigenen Instrumentierungsinstanz ausgeführt wird, wird der gemeinsame Status zwischen den Tests nicht auf der CPU oder im Arbeitsspeicher des Geräts angesammelt. Selbst wenn ein Test abstürzt, wird nur die entsprechende Instanz der Instrumentierung beendet. Die anderen Tests werden also weiterhin ausgeführt.

      • Es wurde testOptions.execution 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 angeben, wie unten gezeigt. Standardmäßig ist diese Eigenschaft auf HOST festgelegt. Dadurch wird die On-Device-Orchestrierung 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-Hilfs-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 Unit-Tests zu unterstützen, für die Android-Ressourcen erforderlich sind, z. B. Roboelectric. Wenn Sie diese Eigenschaft auf true festlegen, führt das Plug-in vor dem Ausführen der Unit-Tests eine Zusammenführung von Ressourcen, Assets und Manifesten durch. Ihre Tests können dann com/android/tools/test_config.properties im Klassenpfad auf die folgenden Schlüssel prüfen:

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

        Hinweis:Bei Bibliotheksmodulen enthalten die zusammengeführten Assets nicht die Assets der 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 alle zugehörigen Abhängigkeiten enthält.

      • android_custom_package: 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 dem 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 dargestellt:

      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, um native Projekte in Android Studio zu erstellen.
    • Mit der neuen lintChecks-Abhängigkeitskonfiguration können Sie eine JAR-Datei erstellen, die benutzerdefinierte Lint-Regeln definiert, 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 von Ihrem Lint-Projekt mit der lintChecks-Konfiguration 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

    • Mit dem Android-Plug-in 3.0.0 werden bestimmte APIs entfernt. Wenn Sie diese verwenden, funktioniert Ihr Build nicht mehr. Sie können beispielsweise nicht mehr die Variants API verwenden, um auf outputFile()-Objekte zuzugreifen, oder processManifest.manifestOutputFile(), um die Manifestdatei 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 Mindestversion der Build-Tools für die Version des Android-Plug-ins, die Sie verwenden.
    • Sie aktivieren oder deaktivieren die PNG-Komprimierung jetzt im Block buildTypes, wie unten dargestellt. Die PNG-Komprimierung ist standardmäßig für alle Builds aktiviert, mit Ausnahme von Debug-Builds, da sich die Buildzeit für Projekte mit vielen PNG-Dateien dadurch verlängert. Wenn Sie die Buildzeiten für andere Buildtypen verbessern möchten, sollten Sie entweder die PNG-Komprimierung 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 dem Prozessor-Classpath jetzt mithilfe der annotationProcessor-Abhängigkeitskonfiguration Anmerkungs-Prozessoren hinzufügen.
    • Die Verwendung des eingestellten ndkCompile ist jetzt stärker eingeschränkt. Sie sollten stattdessen entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK einbinden 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 Vielzahl von Änderungen, die Leistungsprobleme bei großen Projekten beheben sollen.

    Bei einem Beispiel-Skelettprojekt mit etwa 130 Modulen und einer großen Anzahl externer Abhängigkeiten (aber ohne Code oder Ressourcen) können Sie beispielsweise 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 und Gradle 3.3 Android-Plug-in 3.0.0 und Gradle 4.1
    Konfiguration (z.B. Ausführung von ./gradlew --help) ~ 2 Min. ~9 s ~ 2,5 s
    Java-Änderung mit einer Zeile (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, erstellen Sie bitte einen Fehlerbericht und fügen Sie einen Build-Trace mit dem Gradle-Profiler hinzu.

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

    • Gradle 4.1 oder höher Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
    • Build Tools 26.0.2 oder höher Mit diesem Update müssen Sie keine Version mehr für die Build-Tools 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 kleine Update unterstützt Android Studio 3.0.1 und enthält allgemeine Fehlerkorrekturen und Leistungsverbesserungen.

    Optimierungen

    • Bessere Parallelität bei Projekten mit mehreren Modulen durch einen detaillierten Aufgabengraphen.
    • 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. Verwenden Sie dazu die neuen Abhängigkeitskonfigurationen von Gradle: implementation, api, compileOnly und runtimeOnly.
    • Schnellere inkrementelle Buildgeschwindigkeit durch Dezimierung pro Klasse. Jede Klasse wird jetzt in separate DEX-Dateien kompiliert und nur die Klassen, die geändert werden, werden neu dexiert. Außerdem sollten Sie eine verbesserte Buildgeschwindigkeit für Apps erwarten, bei denen minSdkVersion auf 20 oder niedriger festgelegt ist und Legacy Multi-Dex verwendet wird.
    • Die Build-Geschwindigkeit wurde durch die Optimierung bestimmter Aufgaben für die Verwendung von zwischengespeicherten Ausgaben verbessert. Damit Sie von dieser Optimierung profitieren können, müssen Sie zuerst den Gradle-Build-Cache aktivieren.
    • Die inkrementelle Ressourcenverarbeitung wurde mit AAPT2 verbessert, 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 in Ihrer gradle.properties-Datei android.enableAapt2=false festlegen und den Gradle-Daemon neu starten, indem Sie ./gradlew --stop über die Befehlszeile ausführen.

    Neue Funktionen

    • Variantenspezifische Abhängigkeitsverwaltung Beim Erstellen einer bestimmten Variante eines Moduls gleicht das Plug-in jetzt automatisch die Varianten der Abhängigkeiten von lokalen Bibliotheksmodulen mit der Variante des Moduls ab, das Sie erstellen.
    • Enthält ein neues Feature-Modul-Plug-in zur Unterstützung von Android Instant Apps und dem Android Instant Apps SDK (das Sie über den SDK-Manager herunterladen können). Weitere Informationen zum Erstellen von Feature-Modulen 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 wurde eingestellt und ist nicht mehr erforderlich. Sie sollten Jack zuerst deaktivieren, um die verbesserte Java 8-Unterstützung zu verwenden, die in der Standard-Toolchain enthalten ist. Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.
    • Unterstützung für die Ausführung von Tests mit Android Test Orchestrator hinzugefügt. Damit können Sie die Tests Ihrer App in einer eigenen Aufrufinstanz der Instrumentierung ausführen. Da jeder Test in einer eigenen Instrumentierungsinstanz ausgeführt wird, wird der gemeinsame Status zwischen den Tests nicht auf der CPU oder im Arbeitsspeicher des Geräts angesammelt. Selbst wenn ein Test abstürzt, wird nur die entsprechende Instanz der Instrumentierung beendet. Die anderen Tests werden also weiterhin ausgeführt.

      • Es wurde testOptions.execution 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 angeben, wie unten gezeigt. Standardmäßig ist diese Eigenschaft auf HOST festgelegt. Dadurch wird die On-Device-Orchestrierung 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-Hilfs-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 Unit-Tests zu unterstützen, für die Android-Ressourcen erforderlich sind, z. B. Roboelectric. Wenn Sie diese Eigenschaft auf true festlegen, führt das Plug-in vor dem Ausführen der Unit-Tests eine Zusammenführung von Ressourcen, Assets und Manifesten durch. Ihre Tests können dann com/android/tools/test_config.properties im Klassenpfad auf die folgenden Schlüssel prüfen:

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

        Hinweis:Bei Bibliotheksmodulen enthalten die zusammengeführten Assets nicht die Assets der 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 alle zugehörigen Abhängigkeiten enthält.

      • android_custom_package: 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 dem 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 dargestellt:

      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, um native Projekte in Android Studio zu erstellen.
    • Mit der neuen lintChecks-Abhängigkeitskonfiguration können Sie eine JAR-Datei erstellen, die benutzerdefinierte Lint-Regeln definiert, 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 von Ihrem Lint-Projekt mit der lintChecks-Konfiguration 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

    • Mit dem Android-Plug-in 3.0.0 werden bestimmte APIs entfernt. Wenn Sie diese verwenden, funktioniert Ihr Build nicht mehr. Sie können beispielsweise nicht mehr die Variants API verwenden, um auf outputFile()-Objekte zuzugreifen, oder processManifest.manifestOutputFile(), um die Manifestdatei 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 Mindestversion der Build-Tools für die Version des Android-Plug-ins, die Sie verwenden.
    • Sie aktivieren oder deaktivieren die PNG-Komprimierung jetzt im Block buildTypes, wie unten dargestellt. Die PNG-Komprimierung ist standardmäßig für alle Builds aktiviert, mit Ausnahme von Debug-Builds, da sich die Buildzeit für Projekte mit vielen PNG-Dateien dadurch verlängert. Wenn Sie die Buildzeiten für andere Buildtypen verbessern möchten, sollten Sie entweder die PNG-Komprimierung 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 dem Prozessor-Classpath jetzt mithilfe der annotationProcessor-Abhängigkeitskonfiguration Anmerkungs-Prozessoren hinzufügen.
    • Die Verwendung des eingestellten ndkCompile ist jetzt stärker eingeschränkt. Sie sollten stattdessen entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK einbinden möchten. Weitere Informationen finden Sie unter Von ndkcompile migrieren.

    2.3.0 (Februar 2017)

    2.3.3 (Juni 2017)

    Dieses kleine Update bietet Kompatibilität mit Android Studio 2.3.3.

    2.3.2 (Mai 2017)

    Dieses kleine Update bietet Kompatibilität mit Android Studio 2.3.2.

    2.3.1 (April 2017)

    Dieses kleine Update des Android-Plug-ins 2.3.0 behebt ein Problem, bei dem einige physische Android-Geräte nicht richtig mit Instant Run funktionierten (siehe Problem 235879).

    Abhängigkeiten:
    Neu:
    • Verwendet Gradle 3.3 mit Leistungsverbesserungen und neuen Funktionen. 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. nicht verpackte AARs und vordekompilierte Remote-Abhängigkeiten. Ihre sauberen 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. Bei Projekten, die das Android-Plug-in 2.3.0 oder höher verwenden, wird standardmäßig der Build-Cache verwendet. Weitere Informationen finden Sie unter Build-Geschwindigkeit mit dem Build-Cache verbessern.
    Änderungen:

    2.2.0 (September 2016)

    Abhängigkeiten:
    Neu:
    • Verwendet Gradle 2.14.1, das Leistungsverbesserungen und neue Funktionen enthält. Außerdem wird eine Sicherheitslücke geschlossen, die eine lokale Berechtigungseskalierung bei Verwendung des Gradle-Daemons ermöglicht. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
    • Mit der externalNativeBuild {}-DSL können Sie in Gradle jetzt Verknüpfungen zu Ihren nativen Quellen herstellen und native Bibliotheken mit CMake oder ndk-build kompilieren. Nachdem Sie Ihre nativen Bibliotheken erstellt haben, verpackt Gradle sie in Ihr APK. Weitere Informationen zur Verwendung von CMake und ndk-build mit Gradle finden Sie im Hilfeartikel C- und C++-Code in Ihr Projekt einfügen.
    • Wenn Sie einen Build über die Befehlszeile ausführen, versucht Gradle jetzt, alle fehlenden SDK-Komponenten oder Updates automatisch herunterzuladen, von denen Ihr Projekt abhängt. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.
    • Mit einer neuen experimentellen Caching-Funktion kann Gradle die Build-Zeiten beschleunigen, indem die dex-optimierten Versionen Ihrer Bibliotheken vorab dex-optimiert, gespeichert und wiederverwendet werden. Weitere Informationen zur Verwendung dieser experimentellen Funktion finden Sie im Leitfaden Cache erstellen.
    • Die Build-Leistung wurde durch die Einführung einer neuen Standard-Packerpipeline verbessert, die Zippen, Signieren und Zipaligning in einer einzigen Aufgabe verarbeitet. Sie können zu den älteren Tools zur Paketierung zurückkehren, indem Sie Ihrer gradle.properties-Datei android.useOldPackaging=true hinzufügen. Wenn Sie das neue Tool zur Paketierung verwenden, ist die Aufgabe zipalignDebug nicht verfügbar. Sie können jedoch eine selbst erstellen, indem Sie die Methode createZipAlignTask(String taskName, File inputFile, File outputFile) aufrufen.
    • Für die APK-Signatur wird jetzt zusätzlich zur traditionellen JAR-Signatur das APK-Signaturschema v2 verwendet. Die resultierenden APKs werden von allen Android-Plattformen akzeptiert. Jede Änderung an diesen APKs nach der Signatur 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, das allgemeine ProGuard-Regeln für Ihre App enthält und keine Klassen für die Haupt-DEX-Datei angibt.
    • Unterstützung für das Flag android:extractNativeLibs hinzugefügt, mit dem 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 festlegen, verpackt 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 im Android SDK enthaltenen Dateien.
    • Verbesserte Leistung und Funktionen des Jack-Compilers:
      • Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn testCoverageEnabled auf true gesetzt wird.
      • Verbesserte Unterstützung für Anmerkungs-Prozessoren. Anmerkungs-Prozessoren in Ihrem Klassenpfad, z. B. compile-Abhängigkeiten, werden automatisch auf Ihren Build angewendet. Sie können auch einen Anmerkungs-Prozessor in Ihrem Build angeben und Argumente übergeben, indem Sie die javaCompileOptions.annotationProcessorOptions {}-DSL in Ihrer build.gradle-Datei auf Modulebene verwenden:

        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 Anmerkungs-Prozessor zur Kompilierungszeit anwenden, ihn aber nicht in Ihr APK aufnehmen möchten, verwenden Sie den annotationProcessor-Abhängigkeitsbereich:

        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 über die Befehlszeile mit dem folgenden Befehl:

        java -jar /build-tools/jack.jar --help-properties
        
      • Wenn die Heap-Größe des Gradle-Daemons mindestens 1, 5 GB beträgt, wird Jack jetzt standardmäßig im selben Prozess wie Gradle ausgeführt. Wenn Sie die Größe des Daemon-Haufens anpassen möchten, fügen Sie der Datei gradle.properties Folgendes hinzu:
        # 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 Leitfaden für die N-Vorabversion.

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

    • Standardunterstützung für die inkrementelle Java-Kompilierung hinzugefügt, um die Kompilierungszeit während der Entwicklung zu verkürzen. Dazu werden nur die Teile der Quelle 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 das Dexing-in-Process wurde hinzugefügt, bei dem das Dexing im Buildprozess und nicht in separaten externen VM-Prozessen ausgeführt wird. Dadurch werden nicht nur inkrementelle Builds, sondern auch vollständige Builds beschleunigt. Die Funktion ist standardmäßig für Projekte aktiviert, bei denen die maximale Heap-Größe des Gradle-Daemons auf mindestens 2.048 MB festgelegt wurde. Fügen Sie dazu Folgendes in die Datei gradle.properties Ihres Projekts ein:

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

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

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

      Wenn Sie das DeXing während des Betriebs 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-Injektion und das Pushen von Code- und Ressourcenupdates an eine laufende App auf dem Emulator oder einem physischen Gerät.
    • Unterstützung für inkrementelle Builds hinzugefügt, auch wenn die App nicht ausgeführt wird. Die Buildzeit wird verbessert, indem inkrementelle Änderungen über die Android Debug Bridge an das verbundene Gerät gesendet werden.
    • Es wurde maxProcessCount hinzugefügt, um zu steuern, wie viele Worker-DEX-Prozesse gleichzeitig gestartet werden können. Im 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 gesetzt ist, wird für die APK-Signatur 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 zu doppelten AAR-Abhängigkeiten sowohl in der Test- als auch in der Haupt-Build-Konfiguration führte.

    Android-Plug-in für Gradle, Version 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 eingebunden. Fügen Sie dazu jeder projektspezifischen build.gradle-Datei, in der das Plug-in verwendet wird, den folgenden Code hinzu:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • Neue Transform API hinzugefügt, mit der Drittanbieter-Plug-ins kompilierte .class-Dateien bearbeiten können, bevor sie in .dex-Dateien umgewandelt werden. Die Transform API vereinfacht das Einfügen benutzerdefinierter Klassenmanipulationen und bietet mehr Flexibilität bei den Optionen, die Sie manipulieren können. 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 bei android.registerTransform(theTransform) oder android.registerTransform(theTransform, dependencies). Es ist nicht erforderlich, Aufgaben miteinander zu verknüpfen. Beachten Sie Folgendes bei der 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 verwendet jetzt die Transform API. Das Java Android Compiler Kit (Jack) verwendet diese API jedoch nicht. Lediglich der javac/dx-Codepfad tut dies.
      • Gradle führt die Transformationen in der folgenden Reihenfolge aus: JaCoCo, Drittanbieter-Plug-ins, ProGuard. Die Ausführungsreihenfolge für Drittanbieter-Plug-ins entspricht der Reihenfolge, in der die Transformationen durch die Drittanbieter-Plug-ins hinzugefügt werden. Die Entwickler von Drittanbieter-Plug-ins können die Ausführungsreihenfolge der Transformationen nicht über eine API steuern.
    • Der dex-Getter wurde aus der Klasse ApplicationVariant eingestellt. 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 keinen Ersatz für die Steuerung des dex-Prozesses.
    • Die inkrementelle Unterstützung für Assets wurde behoben.
    • Die MultiDex-Unterstützung wurde verbessert, indem sie für Testprojekte verfügbar gemacht wurde. Tests haben jetzt automatisch die com.android.support:multidex-instrumentation-Abhängigkeit.
    • Es ist jetzt möglich, einen Gradle-Build korrekt fehlschlagen zu lassen und die zugrunde liegende Fehlerursache zu melden, wenn der Gradle-Build asynchrone Aufgaben aufruft und es im Worker-Prozess zu einem Fehler kommt.
    • Unterstützung für die Konfiguration einer bestimmten Binärschnittstelle (Application Binary Interface, ABI) in Varianten hinzugefügt, die mehrere ABIs enthalten.
    • 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 einen Leerraum enthält.
    • Verschiedene Probleme im Zusammenhang mit der Fehlerausgabe des Android Asset Packaging Tools (AAPT) wurden behoben.
    • Unterstützung für die inkrementelle Instrumentierung mit JaCoCo für schnellere inkrementelle Builds. Das Android-Plug-in für Gradle ruft jetzt den JaCoCo-Instrumentierer direkt auf. Wenn Sie eine neuere Version des JaCoCo-Instrumentierungstools erzwingen möchten, müssen Sie es als Build-Script-Abhängigkeit hinzufügen.
    • Die JaCoCo-Unterstützung wurde so angepasst, dass Dateien, die keine Klassen sind, ignoriert werden.
    • Unterstützung für vektorbasierte Grafiken zum Generieren von PNGs zur Laufzeit hinzugefügt, um die Abwärtskompatibilität zu verbessern. Das Android-Plug-in für Gradle generiert PNGs für jedes Vektor-Zeichnen, das in einem Ressourcenverzeichnis gefunden wird, in dem keine API-Version angegeben ist oder für das im <uses-sdk>-Element im App-Manifest ein android:minSdkVersion-Attribut mit dem Wert 20 oder niedriger angegeben ist. Sie können PNG-Dichten mithilfe der generatedDensities-Eigenschaft in den Abschnitten defaultConfig oder productFlavor einer build.gradle-Datei festlegen.
    • Es wurde die Freigabe der mockbaren android.jar hinzugefügt, die das Plug-in nur einmal generiert und für Unit-Tests verwendet. Mehrere Module, z. B. app und lib, teilen sich jetzt die ID. 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 des Paketierens des APK. Durch diese Änderung haben die Obfuscation-Aufgaben die Möglichkeit, die Java-Ressourcen nach der Obfuscation der Pakete anzupassen.
    • Ein Problem mit der Verwendung von Java Native Interface (JNI)-Code im experimentellen Bibliotheks-Plug-in wurde behoben.
    • Es wurde die Möglichkeit hinzugefügt, die Plattformversion im Plug-in für die experimentelle Bibliothek unabhängig vom android:compileSdkVersion-Attribut festzulegen.

    Android-Plug-in für Gradle, Version 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, damit die Ausgabe der vorherigen Aufgabe bei Verwendung eines benutzerdefinierten Dateinamens korrekt verarbeitet wird.
    • Korrigiertes Renderscript-Paket mit dem NDK
    • Unterstützung für die createDebugCoverageReport-Build-Aufgabe beibehalten
    • Unterstützung für die benutzerdefinierte Verwendung des Attributs archiveBaseName in der build.gradle-Build-Datei behoben
    • Die Invalid ResourceType-lint-Warnung, die durch den Suchvorgang nach Anmerkungen für Parametermethoden beim Ausführen von lint außerhalb von Android Studio verursacht wurde, wurde behoben.

    Android-Plug-in für Gradle, Version 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 Property com.android.build.threadPoolSize hinzugefügt, um die Größe des Android-Aufgaben-Thread-Pools ü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 Standard-Build-Verhalten 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 Quellsätze zu prüfen.
    • Verbesserte Unterstützung für Unit-Tests, um Quellordner für mehrere Varianten und Buildvarianten zu erkennen. Wenn Sie beispielsweise eine App mit mehreren Varianten (flavor1 und flavorA) mit dem Buildtyp Debug testen möchten, sind die Testquellensätze:
      • Test
      • testFlavor1
      • testFlavorA
      • testFlavor1FlavorA
      • testFlavor1FlavorADebug

      Bei Android-Tests wurden bereits Quellordner mit mehreren Varianten erkannt.

    • Verbesserte Unterstützung für Unit-Tests:
      • Führen Sie javac auf Haupt- und Testquellen aus, auch wenn das Attribut useJack in Ihrer Build-Datei auf true festgelegt ist.
      • Abhängigkeiten für jeden Buildtyp korrekt erkennen
    • Unterstützung für die Angabe von Instrumentierungs-Test-Runner-Argumenten ü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")
          }
      }
            
    • Unterstützung für ein APK-Testmodul 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 werden. Außerdem wird Jacoco noch nicht unterstützt.

    • Es wurde eine Validierung des Ressourcennamens vor dem Zusammenführen von Ressourcen hinzugefügt.
    • Geben Sie beim Erstellen eines AAR-Pakets (Android ARchive) für Bibliotheksmodule keinen automatischen Platzhalter für @{applicationId} in den Einstellungen für die Manifest-Dateizusammenführung an. Verwenden Sie stattdessen einen anderen Platzhalter wie @{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, Version 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 Unit-Tests mit Gradle.
      • Es wird jetzt unterstützt, Java-Ressourcen in den Klassenpfad aufzunehmen, wenn Unit-Tests direkt über Gradle ausgeführt werden.
      • Unterstützung für Abhängigkeiten von Unit-Tests für Android-Archiv-Artefakte (AAR) hinzugefügt.
      • Unterstützung für das Attribut unitTestVariants hinzugefügt, damit Varianten von Unit-Tests über die Datei build.gradle manipuliert werden können.
      • Der Codeblock unitTest.all wurde unter testOptions hinzugefügt, um benutzerdefinierte Aufgaben für den Unit-Test zu konfigurieren. Im folgenden Codebeispiel wird gezeigt, 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 Enumerationen und öffentlichen Instanzfeldern beim Verpacken der mockable-android.jar-Datei wurde korrigiert.
      • Die Abhängigkeiten zwischen den Aufgaben des Bibliotheksprojekts wurden korrigiert, damit 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 Aufnahmezeit 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, Version 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, die einen ProGuard-Fehler ausgelöst hat, wurde behoben.
    • Die Implementierung des Vergleichers wurde korrigiert, da sie nicht dem JDK-Vergleichsvertrag entsprach und einen JDK 7-Fehler verursachte.

    Android-Plug-in für Gradle, Version 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 mockbaren JAR-Archivs für Unit-Tests.
    • Die archivesBaseName-Einstellung in der Datei build.gradle wurde korrigiert.
    • Der nicht behobene Fehler beim Zusammenführen von Manifesten beim Erstellen einer Bibliothek-Testanwendung wurde behoben.

    Android-Plug-in für Gradle, Version 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 Buildvarianten wurden so geändert, dass nur Varianten, die eine Wear-App enthalten, Wear-spezifische Buildaufgaben auslösen.
    • Abhängigkeitsbezogene Probleme werden jetzt bei der Buildzeit statt bei der Debugzeit fehlschlagen. So können Sie Diagnoseaufgaben wie „Abhängigkeiten“ ausführen, um den Konflikt zu beheben.
    • Die android.getBootClasspath()-Methode gibt jetzt einen Wert zurück.

    Android-Plug-in für Gradle, Version 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 Unit-Tests hinzugefügt
      • Es können jetzt Unittests auf der lokalen JVM mit einer speziellen Version der android.jar-Datei ausgeführt werden, die mit gängigen Mocking-Frameworks wie Mockito kompatibel ist.
      • Neue Testaufgaben testDebug, testRelease und testMyFlavorDebug für die Verwendung von Produktvarianten hinzugefügt
      • Es wurden neue Quellordner hinzugefügt, die als Unit-Tests erkannt werden: src/test/java/, src/testDebug/java/ und src/testMyFlavor/java/.
      • In der Datei build.gradle wurden neue Konfigurationen zum Deklarieren von reinen Testabhängigkeiten hinzugefügt, z. B. testCompile 'junit:junit:4.11' und testMyFlavorCompile 'some:library:1.0'.

        Hinweis:Nur für Tests vorgesehene 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 mockbaren android.jar zu steuern.
    • Test in den Namen von Testaufgaben durch AndroidTest ersetzt. Beispiel: Die Aufgabe assembleDebugTest ist jetzt die Aufgabe assembleDebugAndroidTest. Aufgaben für Unit-Tests enthalten 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 mit den Bereichen 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 geändert, um die Abhängigkeiten einer zu testenden App und der Test-App zu vergleichen. Wenn für beide Apps ein Artefakt mit derselben Version gefunden wird, wird es nicht in der Test-App enthalten, sondern nur in 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 beim Zusammenführen von Ressourcen hinzugefügt.
    • Verbesserte Bewertungs- und IDE-Synchronisierungsgeschwindigkeit für Projekte mit einer großen Anzahl von Android-Modulen.

    Android-Plug-in für Gradle, Version 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:
    • Das Problem mit dem Gradle-Buildfehler beim Zugriff auf das extractReleaseAnnotations-Modul wurde behoben. (Problem 81638)
    • Problem behoben, bei dem Disable die Einstellung --no-optimize an den Dalvik-Ausführcode (dex) weitergab. (Problem 82662)
    • Probleme beim Zusammenführen von Manifesten beim Importieren von Bibliotheken mit einer targetSdkVersion unter 16 wurden behoben.
    • Das Problem mit der Dichtesortierung bei der Verwendung von Android Studio mit JDK 8 wurde behoben.

    Android-Plug-in für Gradle, Version 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.