Ältere Versionen

Im Folgenden finden Sie Versionshinweise für Android Studio 3.6 und niedriger sowie für das Android-Gradle-Plug-in 3.6.0 und niedriger.

Ältere Versionen von Android Studio

3.6 (Februar 2020)

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

Außerdem möchten wir uns bei allen Beitragenden der Community bedanken, die bei dieser Version geholfen haben.

3.6.3 (April 2020)

Dieses kleine Update umfasst verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.

3.6.2 (März 2020)

Dieses kleine Update umfasst verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.

3.6.1 (Februar 2020)

Dieses kleine Update umfasst 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 verschiedene Designtools, darunter den Layout Editor und Resource Manager.

Designeditoren heranzoomen und die Ansicht teilen

Die geteilte Ansicht zeigt die Design- und die Textansicht gleichzeitig an.

Diese Version enthält die folgenden Aktualisierungen der Editoren für das visuelle Design:

  • Designeditoren wie der Layout-Editor und der Navigationseditor bieten jetzt eine geteilte Ansicht, in der Sie die Designansicht und die Codeansicht Ihrer UI gleichzeitig sehen können. Oben rechts im Editorfenster finden Sie jetzt drei Schaltflächen Symbole anzeigen, mit denen Sie zwischen den Anzeigeoptionen wechseln können:

    • Um die geteilte Ansicht zu aktivieren, klicken Sie auf das Symbol Teilen Symbol für geteilte Ansicht.
    • Klicken Sie auf das Symbol Quelle Symbol für die Quellansicht, um die XML-Quellansicht zu aktivieren.
    • Klicken Sie auf das Designsymbol Symbol für die Designansicht, um die Designansicht zu aktivieren.
  • Die Steuerelemente zum Zoomen und Schwenken in Designeditoren wurden in ein unverankertes Steuerfeld unten rechts im Editorfenster verschoben.

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

Ressourcenregisterkarte für Farbauswahl

Damit Sie die Werte für Farbressourcen in Ihrer App schnell aktualisieren können, wenn Sie die Farbauswahl in Ihrer XML-Datei oder die Designtools verwenden, füllt die IDE die Werte für die Farbressourcen jetzt für Sie aus.

Farbauswahl mit ausgefüllten Farbwerten

Resource Manager

Der Resource Manager enthält die folgenden Aktualisierungen:

  • Resource Manager unterstützt jetzt die meisten Ressourcentypen.
  • Bei der Suche nach einer Ressource zeigt Resource Manager jetzt Ergebnisse aus allen Projektmodulen an. Bisher wurden bei der Suche nur Ergebnisse des ausgewählten Moduls zurückgegeben.
  • Mit der Schaltfläche zum Filtern können Sie Ressourcen aus lokalen abhängigen Modulen, externen Bibliotheken und dem Android-Framework ansehen. Sie können den Filter auch verwenden, um Designattribute anzuzeigen.
  • Sie können Ressourcen jetzt während des Importvorgangs umbenennen. Klicken Sie dazu in das Textfeld über der Ressource.

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

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

Die neueste Version des Android-Gradle-Plug-ins enthält viele Updates, darunter Optimierungen der Build-Geschwindigkeit, 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 Ansichtsbindung können Sie einfacher Code schreiben, der mit Ansichten interagiert, 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 sie findViewById() ersetzt, beseitigt die Ansichtsbindung das Risiko von Nullzeigerausnahmen aufgrund einer ungültigen Ansichts-ID.

Zum Aktivieren der Ansichtsbindung müssen Sie das Android-Gradle-Plug-in 3.6.0 oder höher verwenden und in die build.gradle-Datei jedes Moduls Folgendes einfügen:

Groovig

  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 der laufenden Anwendung bereitstellen. Klicken Sie dazu entweder auf Codeänderungen anwenden oder auf Änderungen übernehmen und Aktivität neu starten.

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

Menüoption zur Aktivierung der Unterstützung von Instant Apps refaktoriert

Sie können Ihr Basismodul jetzt jederzeit so aktivieren, nachdem Sie Ihr App-Projekt erstellt haben:

  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 Ihr Basismodul, das in der Regel "app" genannt wird, und wählen Sie Refactor > Instant Apps Support aktivieren aus.
  3. Wählen Sie im angezeigten Dialogfeld Ihr Basismodul aus dem Dropdown-Menü aus.
  4. Klicke auf OK.

Hinweis: Die Option zur sofortigen Aktivierung des Basisanwendungsmoduls im Assistenten Neues Projekt erstellen wurde entfernt.

Weitere Informationen findest du unter Übersicht über Google Play Instant.

Offenlegung der Klasse und Methode des Bytecodes in APK Analyzer

Wenn Sie DEX-Dateien mit dem APK Analyzer untersuchen, können Sie den Bytecode der Klasse und der Methode so offenlegen:

  1. Wählen Sie in der Menüleiste Build > Analyze APK (Erstellen > APK analysieren) aus.
  2. Gehen Sie im angezeigten Dialogfeld zu der APK, die Sie prüfen möchten, und wählen Sie es aus.
  3. Klicken Sie auf Öffnen.
  4. Wählen Sie in APK Analyzer die DEX-Datei aus, die Sie prüfen möchten.
  5. Laden Sie im DEX-Dateibetrachter die ProGuard-Zuordnungsdatei für das APK, das Sie analysieren.
  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 Entwicklung (C/C++) in Android Studio.

Kotlin-Unterstützung

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

  • Wechseln Sie von einer JNI-Deklaration zur entsprechenden Implementierungsfunktion in C/C++. Sie sehen diese Zuordnung, indem Sie den Mauszeiger auf die C- oder C++-Artikelmarkierung in der Nähe der Zeilennummer in der verwalteten Quellcodedatei bewegen.

  • Erstellen Sie automatisch eine Stub-Implementierungsfunktion für eine JNI-Deklaration. Definieren Sie zuerst die JNI-Deklaration und geben Sie dann zum Aktivieren „jni“ oder den Methodennamen in die C/C++-Datei ein.

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

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

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

Weitere JNI-Verbesserungen

Der Code-Editor in Android Studio unterstützt jetzt einen nahtloseren JNI-Entwicklungsworkflow, einschließlich verbesserter Typhinweise, automatischer Vervollständigung, Inspektionen und Code-Refaktorierung.

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 im APK und bietet dir die Möglichkeit, es noch einmal zu importieren.

Nur Kotlin-basierte APK-Quellen anhängen

Es ist jetzt möglich, externe APK-Quellen, die ausschließlich Kotlin enthalten, anzuhängen, wenn Sie für vordefinierte APKs Profile erstellen und Fehler beheben. Weitere Informationen finden Sie unter Kotlin-/Java-Quellen anhängen.

Speicherleck-Erkennung im Speicher-Profiler

Beim Analysieren eines Heap-Dumps im Speicher-Profiler können Sie jetzt Profildaten filtern, von denen Android Studio annimmt, dass sie auf Speicherlecks für Activity- und Fragment-Instanzen in Ihrer App hindeuten.

Der Filter zeigt folgende Datentypen an:

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

Nur Kotlin-basierte APK-Quellen anhängen

Es ist jetzt möglich, externe APK-Quellen, die ausschließlich Kotlin enthalten, anzuhängen, wenn Sie für vordefinierte APKs Profile erstellen und Fehler beheben. Weitere Informationen finden Sie unter Kotlin-/Java-Quellen anhängen.

Speicherleck-Erkennung im Speicher-Profiler

Beim Analysieren eines Heap-Dumps im Speicher-Profiler können Sie jetzt Profildaten filtern, von denen Android Studio annimmt, dass sie auf Speicherlecks für Activity- und Fragment-Instanzen in Ihrer App hindeuten.

Der Filter zeigt folgende Datentypen an:

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

In bestimmten Situationen, wie z. B. in den folgenden, kann der Filter falsch positive Ergebnisse liefern:

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

Wenn Sie dieses Feature verwenden möchten, müssen Sie zuerst einen Heap-Dump erfassen oder eine Heap-Dump-Datei in Android Studio importieren. Klicken Sie im Heap-Dump-Bereich des Speicher-Profilers auf das Kästchen Aktivitäts-/Fragmentlecks, um sich die Fragmente und Aktivitäten anzeigen zu lassen, die möglicherweise Speicherlecks verursachen.

Profiler: Erkennung von Speicherlecks

Heap-Dump nach Speicherlecks filtern

Emulatoren

Mit Android Studio 3.6 können Sie die Vorteile mehrerer Updates nutzen, die im Android Emulator 29.2.7 und höher enthalten sind, 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 des Emulators öffnen, sind die Optionen auf dem Tab „Standort“ jetzt auf zwei Tabs angeordnet: Einzelne Punkte und Routen.

Einzelne Punkte

Auf dem Tab Einzelne Punkte können Sie die Google Maps WebView verwenden, um nach POIs zu suchen, so als würden Sie Google Maps auf einem Smartphone oder in einem Browser verwenden. Wenn Sie auf der Karte nach einem Ort suchen oder darauf klicken, können Sie den Ort speichern, indem Sie unten auf der Karte „Punkt speichern“ auswählen. Alle deine gespeicherten Orte werden auf der rechten Seite des Fensters Erweiterte Steuerelemente aufgeführt.

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

Tab „Einzelpunkte“ in der erweiterten Steuerung des Emulators..

Routen

Ähnlich wie auf dem Tab Einzelne Punkte enthält der 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 aus den Suchergebnissen aus.
  3. Klicken Sie auf die Schaltfläche Navigation.
  4. Wählen Sie auf der Karte den Startpunkt Ihrer Route aus.
  5. Optional: Klicken Sie auf Ziel hinzufügen, um weitere Zwischenstopps für die Route 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 den Emulator simulieren möchten, der der gespeicherten Route folgt, wählen Sie die Route in der Liste Gespeicherte Routen aus und klicken unten rechts im Fenster Erweiterte Steuerelemente auf Route abspielen. Um die Simulation zu beenden, klicken Sie auf Route stoppen.

Tab „Routen“ in der erweiterten Steuerung des Emulators..

Wenn Sie den Emulator kontinuierlich gemäß der angegebenen Route simulieren möchten, aktivieren Sie den Schalter neben Wiederholte Wiedergabe. 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.

Multi-Display-Unterstützung

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

  1. Öffnen Sie die erweiterten Steuerelemente und dann den Tab Displays (Anzeigen).

  2. Wenn Sie eine weitere Anzeige hinzufügen möchten, klicken Sie auf Sekundären Bildschirm hinzufügen.

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

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

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

  6. Optional: Klicken Sie auf Sekundären Bildschirm hinzufügen, um einen dritten Bildschirm hinzuzufügen.

  7. Klicken Sie auf Änderungen anwenden, um die angegebenen Bildschirme dem aktiven virtuellen Gerät hinzuzufügen.

Mehrere Bildschirme hinzufügen: Tab „Anzeige“ für erweiterte Steuerelemente für Emulator

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

Wenn Sie mit Android Studio ein neues Projekt erstellen, stehen Ihnen jetzt auf dem Tab Automotive im Assistenten Neues Projekt erstellen drei Vorlagen zur Auswahl: Keine Aktivität, Mediendienst und Messaging-Dienst. Bei vorhandenen Projekten können Sie Unterstützung für Android Automotive-Geräte hinzufügen, indem Sie in der Menüleiste File > New > New Module und dann Automotive Module auswählen. Der Assistent Neues Modul erstellen führt Sie dann durch die Erstellung eines neuen Moduls mithilfe einer der Android Automotive-Projektvorlagen.

Android Automotive-Projektvorlage auswählen.

Außerdem kannst du jetzt ein virtuelles Android-Gerät (Android Virtual Device, AVD) für Android Automotive OS-Geräte erstellen. Wähle dazu im Assistenten für die Konfiguration virtueller Geräte auf dem Tab Automotive eine der folgenden Optionen aus.

  1. Polestar 2: Erstellen Sie ein AVD, das das Polestar 2-Hauptgerät emuliert.
  2. Automotive (1024p Querformat): Erstellen Sie einen AVD für generische Android Automotive-Haupteinheiten mit 1024 x 768 Pixeln.

Ein virtuelles Android Automotive-Gerät auswählen.

Fortsetzbare SDK-Downloads

Wenn du SDK-Komponenten und -Tools mit dem SDK-Manager herunterlädst, kannst du in Android Studio jetzt Downloads fortsetzen, die unterbrochen wurden (z. B. aufgrund eines Netzwerkproblems), anstatt den Download noch einmal von vorn zu starten. Diese Verbesserung ist besonders hilfreich bei großen Downloads wie dem Android-Emulator oder System-Images, bei denen die Internetverbindung unzuverlässig ist.

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

Eine Hintergrund-Downloadaufgabe in der Statusleiste mit neuen Steuerelementen, mit denen du den Download pausieren oder fortsetzen kannst.

Eine Downloadaufgabe im Hintergrund in der Statusleiste mit neuen Steuerelementen zum Pausieren oder Fortsetzen des Downloads.

Win32 wurde eingestellt

Die Windows 32-Bit-Version von Android Studio wird nach Dezember 2019 nicht mehr aktualisiert und auch ab Dezember 2020 nicht mehr unterstützt. Sie können Android Studio weiterhin verwenden. Aktualisieren Sie Ihre Workstation auf eine 64-Bit-Version von Windows, um weitere Updates zu erhalten.

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 die Liste aller Gradle-Aufgaben während der Gradle-Synchronisierung 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 während der Gradle-Synchronisierung die Option „Gradle-Aufgabenliste nicht erstellen“ aus.

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

Neuer Ort zum Ein-/Ausschalten des Offlinemodus von Gradle

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

IntelliJ IDEA 2019.2

Die zentrale Android Studio-IDE wurde mit Verbesserungen von IntelliJ IDEA bis zum Release 2019.2 aktualisiert.

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

Community-Beitragende

Vielen Dank an alle Community-Beitragenden, die uns geholfen haben, Programmfehler zu finden und Android Studio 3.6 weiter zu verbessern. Insbesondere möchten wir den folgenden Personen danken, die Fehler gemeldet haben:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andreevici
  • Elli Graber
  • Emin Kokalari
  • Evan Tatarka
  • František Nagy
  • Gregor Schneider
  • Hannes Achleitner
  • Hans Peter Eide
  • Henning-Etagenbett
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Peter Schneider
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Lukas Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Matthias Winter
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Mike Scamell
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nicolas 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 Chaladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • Warren He
  • Yenchi Lin
  • Mustermann
  • 3.5 (August 2019)

    Android Studio 3.5 ist eine Hauptversion und das Ergebnis von Project Marble. Seit der Veröffentlichung von Android Studio 3.3 umfasste die Project Marble-Initiative mehrere Releases, deren Schwerpunkt auf der Verbesserung von drei Hauptbereichen der IDE liegt: Systemzustand, Verbesserung von Funktionen und Behebung von Fehlern.

    Informationen zu diesen und anderen Project Marble-Updates findest du im Blogpost für Android-Entwickler oder in den Abschnitten unten.

    Außerdem möchten wir uns bei allen Beitragenden der Community bedanken, die bei dieser Version geholfen haben.

    3.5.3 (Dezember 2019)

    Dieses kleine Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.

    3.5.2 (November 2019)

    Dieses kleine 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 kleine 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 vor allem auf die Verbesserung des Systemzustands abzielen.

    Empfohlene Arbeitsspeichereinstellungen

    Android Studio benachrichtigt dich, wenn erkannt wird, dass sich die Leistung verbessern lässt, wenn du die maximale RAM-Kapazität erhöht, die dein Betriebssystem Android Studio-Prozessen wie der Core IDE, dem Gradle-Daemon und dem Kotlin-Daemon zuweisen sollte. Sie können die empfohlenen Einstellungen entweder übernehmen, indem Sie auf den Aktionslink in der Benachrichtigung klicken, oder diese Einstellungen manuell anpassen. Wählen Sie dazu Datei > Einstellungen (oder Android Studio > Einstellungen unter macOS) und dann den Abschnitt Arbeitsspeichereinstellungen unter Darstellung und Verhalten > Systemeinstellungen aus. Weitere Informationen finden Sie unter Maximale Heap-Größe.

    Eine Benachrichtigung zu den empfohlenen Speichereinstellungen.

    Eine Benachrichtigung zu den empfohlenen Speichereinstellungen.

    Bericht zur Arbeitsspeichernutzung

    Speicherprobleme in Android Studio sind manchmal schwer zu reproduzieren und zu melden. Zur Lösung dieses Problems können Sie in Android Studio einen Bericht zur Arbeitsspeichernutzung erstellen. Klicken Sie dazu in der Menüleiste auf Hilfe > Arbeitsspeichernutzung analysieren. Dabei prüft die IDE die Daten lokal auf personenbezogene Daten, bevor Sie gefragt werden, ob Sie die Daten 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: E/A-Optimierung der Antivirendatei

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

    Project Marble: Verbesserung der Funktionen

    In diesem Abschnitt werden die Änderungen in Android Studio 3.5 beschrieben, mit denen vor allem vorhandene Funktionen verbessert werden sollen.

    Änderungen übernehmen

    Mit „Änderungen übernehmen“ können Sie Code- und Ressourcenänderungen in die laufende Anwendung übertragen, ohne die Anwendung neu zu starten – und in einigen Fällen auch, ohne die aktuelle Aktivität neu zu starten. Mit „Änderungen übernehmen“ wird ein völlig neuer Ansatz implementiert, um den Status Ihrer Anwendung beizubehalten. Im Gegensatz zu Instant Run, bei der der Bytecode Ihres APK neu geschrieben wurde, werden bei „Änderungen anwenden“ Klassen im laufenden Betrieb neu definiert. Dazu wird die in Android 8.0 (API-Ebene 26) oder höher unterstützte Laufzeitinstrumentierung genutzt.

    Weitere Informationen finden Sie unter Änderungen übernehmen.

    Die Symbolleistenschaltflächen für „Änderungen übernehmen“.

    Die Symbolleistenschaltflächen für „Änderungen übernehmen“.

    Ablauf der Anwendungsbereitstellung

    Die IDE hat ein neues Drop-down-Menü, mit dem 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 du deine App auf mehreren Geräten gleichzeitig ausführen kannst.

    Drop-down-Menü für Zielgerät.

    Drop-down-Menü für Zielgerät.

    Verbesserte Gradle-Synchronisierungs- und Cache-Erkennung

    Die IDE kann jetzt besser erkennen, wenn Gradle regelmäßig den Build-Cache leert, um die Festplattennutzung zu reduzieren. In früheren Versionen führte dieser Status dazu, dass die IDE fehlende Abhängigkeiten meldet und die Gradle-Synchronisierung fehlgeschlagen ist. Jetzt lädt die IDE einfach die Abhängigkeiten nach Bedarf herunter, um sicherzustellen, dass die Gradle-Synchronisierung erfolgreich abgeschlossen wird.

    Verbesserte Build-Fehlerausgabe

    Das Fenster Build Symbol für Build-Fenster bietet jetzt bessere Fehlerberichte, wie einen Link zur Datei und Zeile des gemeldeten Fehlers für die folgenden Build-Prozesse:

    • AAPT-Kompilierung und Verknüpfung
    • R8 und ProGuard
    • Dexing
    • Ressourcen zusammenführen
    • Parsen von XML-Dateien
    • Javac-, Kotlinc- und CMake-Kompilierung

    Projekt-Upgrades

    Verbesserte Aktualisierung, um mehr Informationen und Aktionen zum Aktualisieren der IDE und des Android-Gradle-Plug-ins bereitzustellen. Zu mehr Synchronisierungs- und Build-Fehlern gehören beispielsweise Aktionen, mit denen Sie Fehler beim Aktualisieren minimieren können.

    Beachte, dass du die IDE unabhängig von anderen Komponenten wie dem Android-Gradle-Plug-in aktualisieren kannst. Sie können also 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 einige Verbesserungen bei der Visualisierung, Verwaltung und Interaktion des Layouts.

    Wenn Sie mit ConstraintLayout arbeiten, werden im Bereich Attribute im neuen Bereich Einschränkungen die Einschränkungsbeziehungen der ausgewählten UI-Komponente aufgeführt. Sie können eine Einschränkung entweder auf der Designoberfläche oder aus der Liste der Einschränkungen auswählen, um die Einschränkung in beiden Bereichen hervorzuheben.

    Beschränken Sie Beziehungen für ein ausgewähltes UI-Element.

    Beschränken Sie Beziehungen für ein ausgewähltes UI-Element.

    Analog können Sie jetzt eine Einschränkung 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 Control-Taste (Command unter macOS) gedrückt halten und auf den Einschränkungsanker 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 per Klick löschen können.

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

    Eine Animation, die zeigt, wie mit dem Einschränkungs-Widget Einschränkungen erstellt werden.

    Verwendung des Einschränkungs-Widgets zum Erstellen von Einschränkungen .

    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 daran beschränkt werden konnten. Außerdem wird das Ziel der Einschränkung jetzt in einem blauen Overlay hervorgehoben. Diese Hervorhebung ist besonders nützlich, wenn Sie versuchen, auf eine Komponente zu beschränken, die sich mit einer anderen überschneidet.

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

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

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

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

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

    • Mit dem Einschränkungs-Widget und dem Drop-down-Menü für die Standardmarge 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 Andockenverhalten bei der Größenänderung verbessert und die Ziehpunkte zur Größenänderung 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 die Einheitlichkeit verbessert und den Kontrast zwischen Komponenten, Text und Einschränkungen reduziert.
    • Der Entwurfsmodus bietet jetzt Textunterstützung für einige Komponenten, in denen kein Text angezeigt wurde.

    Weitere Informationen zu diesen Änderungen findest du unter Android Studio Project Marble: Layout Editor.

    Datenbindung

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

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

    Leistung des Code-Editors in Android Studio 3.4

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

    Die Codebearbeitungsleistung in Android Studio 3.5 wurde verbessert.

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

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

    Verbesserungen im Bereich „Varianten erstellen“ für die Synchronisierung einzelner Varianten

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

    Weitere Informationen finden Sie unter Build-Variante ändern.

    Bereich „Build Variants“ (Varianten erstellen) mit Auswahl einzelner Varianten nach ABI

    Der Bereich „Build Variants“ (Varianten erstellen) mit der Auswahl einzelner Varianten durch ABI

    Parallele Versionen des NDK

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

    Wenn Ihr Projekt das Android-Gradle-Plug-in 3.5.0 oder höher verwendet, können Sie auch die Version des NDK angeben, die von den einzelnen Modulen in Ihrem Projekt verwendet werden soll. Sie können dieses Feature verwenden, um reproduzierbare Builds zu erstellen und Inkompatibilitäten zwischen NDK-Versionen und dem Android-Gradle-Plug-in zu verringern.

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

    ChromeOS-Support

    Android Studio unterstützt jetzt offiziell ChromeOS-Geräte, wie z. B. das HP Chromebook x360 14, das Acer Chromebook 13/Spin 13 und andere Geräte. Weitere Informationen dazu findest du in den Systemanforderungen. Laden Sie zuerst Android Studio auf Ihr kompatibles ChromeOS-Gerät herunter und folgen Sie der Installationsanleitung.

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

    Bedingte Bereitstellung für Funktionsmodule

    Mit der bedingten Bereitstellung kannst du bestimmte Gerätekonfigurationsanforderungen für Featuremodule festlegen, die während der App-Installation automatisch heruntergeladen werden. Beispielsweise können Sie ein Funktionsmodul mit Augmented-Reality-Funktionen (AR) bei der App-Installation nur für Geräte konfigurieren, die AR unterstützen.

    Dieser Übermittlungsmechanismus unterstützt derzeit die Steuerung des Downloads eines Moduls bei der App-Installation anhand der folgenden Gerätekonfigurationen:

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

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

    IntelliJ IDEA 2019.1

    Die zentrale Android Studio-IDE wurde mit Verbesserungen von IntelliJ IDEA bis zum Release 2019.1 aktualisiert, z. B. bei der Designanpassung.

    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 diesem Release von Android Studio kumulativ enthalten sind, finden Sie in den folgenden Fehlerkorrekturen:

    Updates für Android Gradle-Plug-in 3.5.0

    Informationen zu den Neuerungen im Android-Gradle-Plug-in 3.5.0, z. B. verbesserter Support für die inkrementelle Annotationsverarbeitung und im Cache speicherbare Einheitentests, findest du in den Versionshinweisen.

    Community-Beitragende

    Vielen Dank an alle Beitragenden, die uns geholfen haben, Programmfehler zu finden und Android Studio 3.5 weiter zu verbessern. Insbesondere möchten wir den folgenden Personen danken, die P0- und P1-Fehler gemeldet haben:

    3.4 (April 2019)

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

    3.4.2 (Juli 2019)

    Dieses kleine 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 kleine Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.

    3.4.0 Bekannte Probleme

    • Die Profilerstellung ist deaktiviert, wenn Sie Ihre App auf einem Gerät bereitstellen, auf dem die Android Q-Betaversion ausgeführt wird.

    • Wenn Sie die Datenbindungsbibliothek verwenden, schlägt LiveDataListener.onChanged() möglicherweise mit einer NPE fehl. Eine Lösung für dieses Problem wird in Android Studio 3.4.1 enthalten sein und ist in der aktuellen Vorabversion von Android Studio 3.5 bereits verfügbar. (Siehe Problem Nr. 122066788)

    IntelliJ IDEA 2018.3.4

    Die zentrale Android Studio-IDE wurde mit Verbesserungen von IntelliJ IDEA bis zum Release 2018.3.4 aktualisiert.

    Updates für 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“

    Das neue Dialogfeld für die Projektstruktur (Project Structure Dialog, PSD) vereinfacht das Aktualisieren von Abhängigkeiten und das Konfigurieren verschiedener Aspekte Ihres Projekts wie Module, Build-Varianten, Signaturkonfigurationen und Build-Variablen.

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

    Variablen

    Im neuen Variablenabschnitt der PSD können Sie Build-Variablen erstellen und verwalten, z. B. solche, um Versionsnummern für Abhängigkeiten im gesamten Projekt einheitlich zu halten.

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

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

    Module

    Konfigurieren Sie Attribute, die auf alle Build-Varianten 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

    Prüfen und visualisieren Sie jede Abhängigkeit im Abhängigkeitsdiagramm Ihres Projekts, das von Gradle während der Projektsynchronisierung aufgelöst wurde. Gehen Sie dazu so vor:

    1. Wählen Sie im linken Bereich der PSD die Option 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 auf der rechten Seite der PSD den Bereich Aufgelöste Abhängigkeiten, wie unten gezeigt.

    Sie können auch schnell Abhängigkeiten zu Ihrem Projekt suchen und Ihrem Projekt hinzufügen. Wählen Sie dazu zuerst ein Modul aus dem Abschnitt Abhängigkeiten des PSD aus, klicken Sie im Abschnitt Deklarierte Abhängigkeiten auf das Pluszeichen und wählen Sie den Typ der Abhängigkeit aus, die Sie hinzufügen möchten.

    Je nach ausgewähltem Abhängigkeitstyp sollte ein Dialogfeld wie das folgende angezeigt werden, über das Sie die Abhängigkeit zum Modul hinzufügen können.

    Varianten erstellen

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

    Vorschläge

    Informationen zu Updates für Projektabhängigkeiten und Build-Variablen finden Sie im Abschnitt Vorschläge (siehe unten).

    Neuer Resource Manager

    Resource Manager ist ein neues Toolfenster zum Importieren, Erstellen, Verwalten und Verwenden von Ressourcen in Ihrer Anwendung. Sie können das Toolfenster öffnen, indem Sie in der Menüleiste View > Tool Windows > Resource Manager auswählen. Mit dem Resource Manager haben Sie folgende Möglichkeiten:

    • Ressourcen visualisieren:Du kannst dir Drawables, Farben und Layouts als Vorschau ansehen, um schnell die benötigten Ressourcen zu finden.
    • Bulk-Import:Du kannst mehrere Drawable-Assets gleichzeitig importieren. Dazu kannst du sie entweder per Drag-and-drop in das Toolfenster von Resource Manager ziehen oder den Assistenten zum Importieren von Drawables verwenden. Um auf den Assistenten zuzugreifen, klicken Sie links oben im Toolfenster auf das Pluszeichen (+) und wählen Sie dann im Drop-down-Menü Dawables importieren aus.
    • SVGs in VectorDrawable-Objekte konvertieren:Mit dem Assistenten Drawables importieren können Sie Ihre SVG-Bilder in VectorDrawable-Objekte konvertieren.
    • Assets per Drag-and-drop hinzufügen:Aus dem Toolfenster von Resource Manager 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. Klicken Sie dazu im Fenster Tool doppelt auf eine Ressource. In dieser Ansicht sehen Sie die verschiedenen von Ihnen erstellten Versionen und die enthaltenen Qualifier.
    • Kachel- und Listenansichten:Sie können die Ansicht im Toolfenster ändern, um Ihre Ressourcen unterschiedlich anzuordnen.

    Weitere Informationen findest du im Leitfaden zum Verwalten von App-Ressourcen.

    Build-IDs bei der Profilerstellung und der Fehlerbehebung für APKs prüfen

    Wenn du Debugging-Symboldateien für die gemeinsam genutzten .so-Bibliotheken in deinem APK bereitstellst, wird in Android Studio überprüft, 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, und lehnt die Symboldateien ab, wenn sie nicht übereinstimmen. Wenn Sie Ihre Builds nicht mit einer Build-ID erstellt haben, kann die Bereitstellung falscher Symboldateien zu Problemen beim Debugging führen.

    R8 standardmäßig aktiviert

    R8 integriert Entsorgung, Verkleinerung, Verschleierung, Optimierung und Dexing in einem Schritt, was zu deutlichen Verbesserungen der Build-Leistung führt. R8 wurde mit dem Android-Gradle-Plug-in 3.3.0 eingeführt und ist jetzt standardmäßig für App- und Android-Bibliotheksprojekte mit Plug-in 3.4.0 und höher aktiviert.

    Die folgende Abbildung bietet einen allgemeinen Überblick über den Kompilierungsprozess vor der Einführung von R8.

    Vor R8 war ProGuard ein anderer Schritt zur Kompilierung als Dexing und Entzugaren.

    Mit R8 werden nun Entsugaren, Schrumpfen, Verschleieren, Optimieren und Dexing (D8) in einem Schritt abgeschlossen, wie unten dargestellt.

    Bei R8 werden Entsugaren, Verkleinern, Verschleierung, Optimierung und Dexing in einem einzigen Kompilierungsschritt ausgeführt.

    Beachten Sie, dass R8 so konzipiert ist, dass es mit Ihren vorhandenen ProGuard-Regeln funktioniert. Sie müssen also wahrscheinlich keine Maßnahmen ergreifen, um von R8 zu profitieren. Da es sich um eine andere Technologie als ProGuard handelt, die speziell für Android-Projekte entwickelt wurde, kann eine Verkleinerung und Optimierung dazu führen, dass Code entfernt wird, den ProGuard möglicherweise nicht hat. In diesem unwahrscheinlichen Fall müssen Sie also möglicherweise zusätzliche Regeln hinzufügen, um diesen Code in Ihrer Build-Ausgabe beizubehalten.

    Wenn bei der Verwendung von R8 Probleme auftreten, lesen Sie die FAQ zur R8-Kompatibilität, um zu prüfen, ob es eine Lösung für Ihr Problem gibt. Wenn keine Lösung dokumentiert ist, melden Sie einen Fehler. Sie können R8 deaktivieren, indem Sie der Datei gradle.properties 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 Build-Typ 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 Build-Typ zu verkleinern, unabhängig davon, ob Sie R8 in der gradle.properties-Datei Ihres Projekts deaktivieren.

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

    Verbesserungen am Layout-Editor {:#layout-editor}

    Der Bereich Attribute im Layout-Editor wurde zu einer einzelnen Seite mit Abschnitten zusammengefasst, die sich maximieren und konfigurieren lassen. Der Bereich Attribute enthält ebenfalls die folgenden Aktualisierungen:

    • Im neuen Abschnitt Deklarierte Attribute werden die in der Layoutdatei angegebenen Attribute aufgeführt. Hier können Sie schnell neue Attribute hinzufügen.
    • Im Bereich Attribute werden jetzt auch Indikatoren neben jedem Attribut angezeigt, die ausgefüllt sind, wenn der Wert des Attributs eine Ressourcenreferenz ist, ansonsten leer.
    • Attribute mit Fehler- oder Warnungen sind jetzt hervorgehoben. Rote Markierungen weisen auf Fehler hin (z. B. bei Verwendung ungültiger Layoutwerte) und orangefarbene Markierungen weisen auf Warnungen hin (z. B. bei hartcodierten Werten).

    Neue Absichtsaktion zum schnellen Import von Abhängigkeiten

    Wenn Sie ab jetzt bestimmte Jetpack- und Firebase-Klassen in Ihrem Code verwenden, empfiehlt eine neue Intent-Aktion, die erforderliche Abhängigkeit der Gradle-Bibliothek zu Ihrem Projekt hinzuzufügen (falls noch nicht geschehen). Wenn Sie beispielsweise auf die Klasse WorkManager verweisen, ohne zuvor die erforderliche android.arch.work:work-runtime-Abhängigkeit zu importieren, können Sie dies mit einer Intent-Aktion ganz einfach mit einem einzigen Klick tun (siehe unten).

    Da Jetpack die Supportbibliothek in diskrete Pakete umverpackt hat, die sich leichter verwalten und aktualisieren lassen, hilft Ihnen diese Absichtsaktion dabei, schnell nur die Abhängigkeiten hinzuzufügen, die Sie für die Jetpack-Komponenten benötigen, die Sie verwenden möchten.

    3.3 (Januar 2019)

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

    3.3.2 (März 2019)

    Dieses kleine 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 kleine Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.

    IntelliJ IDEA 2018.2.2

    Die zentrale Android Studio-IDE wurde mit Verbesserungen von IntelliJ IDEA bis zum Release 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 mithilfe der Komponente „Navigation Architecture“ schnell visualisieren und in Ihre Anwendung einbinden.

    Weitere Informationen findest du unter Navigation mit der Komponente „Navigationsarchitektur“ 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 Logs 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, Größen und Zeitpunkte der letzten Änderung dieser nicht verwendeten Verzeichnisse angezeigt und es besteht die Möglichkeit, sie zu löschen.

    Folgende Verzeichnisse sind die Verzeichnisse, die von Android Studio zum Löschen berücksichtigt werden:

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

    Lint-Verbesserungen

    Wenn Lint über Gradle aufgerufen wird, ist das 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 einen neuen Look und enthält Updates, mit denen das Erstellen neuer Android Studio-Projekte vereinfacht wird.

    Weitere Informationen finden Sie unter Projekt erstellen.

    Profiler-Updates

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

    Bessere Leistung

    Aufgrund des Nutzerfeedbacks wurde die Rendering-Leistung bei der Verwendung der Profiler erheblich verbessert. Wir freuen uns auch weiterhin über Feedback, vor allem, wenn Sie weiterhin Leistungsprobleme feststellen.

    Tracking-Optionen für die Profiler-Arbeitsspeicherzuweisung

    Zum Verbessern der Anwendungsleistung während der Profilerstellung nimmt der Speicher-Profiler jetzt standardmäßig regelmäßig eine Stichprobe der Arbeitsspeicherzuweisungen auf. Bei Bedarf können Sie dieses Verhalten über das Drop-down-Menü Zuordnungsverfolgung beim Testen auf Geräten mit Android 8.0 (API-Ebene 26) oder höher ändern.

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

    • Full:Erfasst alle Objektarbeitsspeicherzuweisungen. Bei einer Anwendung, die viele Objekte zuweist, kann es bei der Profilerstellung zu erheblichen Leistungsproblemen kommen.

    • Sampled (Abgetastet): Erfasst eine regelmäßige Stichprobe von Objektspeicherzuweisungen. Dies ist das Standardverhalten und hat während der Profilerstellung weniger Auswirkungen auf die Anwendungsleistung. Bei Anwendungen, die viele Objekte innerhalb kurzer Zeit zuweisen, kann es zu Leistungsproblemen kommen.

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

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

    Frame-Renderingdaten prüfen

    Im CPU Profiler können Sie jetzt prüfen, wie lange Ihre Java-Anwendung benötigt, um die einzelnen Frames im Haupt-UI-Thread und RenderThread zu rendern. Diese Daten können bei der Untersuchung von Engpässen hilfreich sein, die zu UI-Verzögerungen und niedrigen Framerates führen. Beispielsweise wird jeder Frame, der länger als die 16 ms dauert, die für eine reibungslose Framerate erforderlich sind, rot angezeigt.

    Wenn Sie Frame-Renderingdaten sehen möchten, zeichnen Sie ein Trace auf. Verwenden Sie dazu eine Konfiguration, mit der Sie Systemaufrufe verfolgen können. Suchen Sie nach dem Aufzeichnen des Trace nach Informationen zu jedem Frame auf der Zeitachse für die Aufzeichnung im Abschnitt FRAMES, wie unten dargestellt.

    Weitere Informationen zur Untersuchung und Behebung von Problemen mit der Framerate findest du unter Langsames Rendering.

    Fragmente in der Ereigniszeitachse

    In der Ereigniszeitachse wird jetzt angezeigt, wann Fragmente angehängt und getrennt wurden. Wenn Sie außerdem den Mauszeiger auf ein Fragment bewegen, wird der Status des Fragments in einer Kurzinfo angezeigt.

    Formatierten Text für Verbindungsnutzlasten im Netzwerk-Profiler ansehen

    Bisher zeigte der Netzwerk-Profiler nur den Rohtext aus Verbindungsnutzlasten an. In Android Studio 3.3 werden jetzt bestimmte Texttypen standardmäßig formatiert, einschließlich JSON, XML und HTML. Klicken Sie auf den Tabs Antwort und Anfrage auf den Link Geparst anzeigen, um formatierten Text anzuzeigen, und klicken Sie auf den Link Quelle anzeigen, um Rohtext anzuzeigen.

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

    Automatisches Herunterladen 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 mit dem SDK Manager akzeptiert haben.

    Weitere Informationen findest du unter Fehlende Pakete mit Gradle automatisch herunterladen.

    Unterstützung für Clang-Tidy

    Android Studio unterstützt jetzt eine statische Codeanalyse mit Clang-Tidy für Projekte, die nativen Code enthalten. Aktualisieren Sie Ihren NDK auf r18 oder höher, um die Unterstützung für Clang-Tidy zu aktivieren.

    Sie können die Inspektionen dann aktivieren oder wieder aktivieren. Öffnen Sie dazu das Dialogfeld Einstellungen oder Einstellungen und rufen Sie Editor > Inspektionen > C/C++ > Allgemein > Clang-Tidy auf. Wenn Sie diese Prüfung im Dialogfeld Einstellungen oder Einstellungen auswählen, können Sie auch die Liste der aktivierten und deaktivierten Clang-Tidy-Prüfungen im Abschnitt Option im Bereich ganz rechts sehen. 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 Optionen für Clang-Tidy-Prüfungen konfigurieren und fügen Sie sie im daraufhin geöffneten Dialogfeld hinzu.

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

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

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

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

    CMake Version 3.10.2

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

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

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

    Weitere Informationen zum Konfigurieren von CMake in build.gradle findest du unter Gradle manuell konfigurieren.

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

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

    Achtung: Von der Verwendung der Syntax „+“ mit anderen Build-Abhängigkeiten wird abgeraten, da dynamische Abhängigkeiten zu unerwarteten Versionsaktualisierungen und Problemen beim Beheben von Versionsunterschieden führen können.

    Android App Bundles unterstützen jetzt Instant Apps

    Mit Android Studio kannst du jetzt Android App Bundles mit vollständiger Unterstützung für Google Play Instant erstellen. Mit anderen Worten: Sie können jetzt sowohl installierte Apps als auch Instant-Versionen über ein einziges Android Studio-Projekt erstellen und bereitstellen und in ein einziges Android App Bundle aufnehmen.

    Wenn Sie über das Dialogfeld Neues Projekt erstellen ein neues Android Studio-Projekt erstellen, müssen Sie das Kästchen neben Projekt konfigurieren > Dieses Projekt unterstützt Instant-Apps anklicken. Android Studio erstellt dann wie gewohnt ein neues App-Projekt, fügt jedoch die folgenden Attribute in dein Manifest ein, um dem Basismodul deiner App Instant-App-Unterstützung hinzuzufügen:

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

    Sie können dann ein Modul mit Instant-Version 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 die App als Instant-Version auf einem lokalen Gerät bereitstellen möchten, bearbeiten Sie die Ausführungskonfiguration und klicken Sie auf das Kästchen neben Allgemein > Als Instant App bereitstellen.

    Projektsynchronisierung einer einzelnen Variante

    Das Synchronisieren des Projekts mit der Build-Konfiguration ist ein wichtiger Schritt, damit Android Studio verstehen kann, wie Ihr Projekt strukturiert ist. Bei großen Projekten kann dies jedoch zeitaufwändig sein. Wenn in Ihrem Projekt mehrere Build-Varianten verwendet werden, können Sie die Projektsynchronisierung jetzt optimieren, indem Sie sie auf die aktuell ausgewählte Variante beschränken.

    Sie 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 von der IDE aufgefordert, diese Optimierung beim Synchronisieren Ihres Projekts zu aktivieren. Die Optimierung ist außerdem bei neuen Projekten standardmäßig aktiviert.

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

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

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

    Kurzes Feedback geben

    Wenn du das Teilen von Nutzungsstatistiken zur Verbesserung von Android Studio aktiviert hast, werden in der Statusleiste unten im IDE-Fenster diese beiden neuen Symbole angezeigt:

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

    Falls Sie dies noch nicht getan haben, können Sie die Freigabe von Nutzungsstatistiken aktivieren, indem Sie auf einem Mac das Dialogfeld Einstellungen Einstellungen öffnen, Darstellung und Verhalten > Systemeinstellungen > Datenfreigabe aufrufen und das Kästchen Nutzungsstatistiken an Google senden anklicken.

    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 für Android Studio 3.2 umfasst die folgenden Änderungen und Fehlerbehebungen:

    • Die gebündelte Kotlin-Version ist jetzt 1.2.71.
    • Die Standardversion für Build-Tools ist jetzt 28.0.3.
    • In der Navigationsbibliothek wurden die Argumenttypen von type in argType umbenannt.
    • Die folgenden Fehler wurden behoben:
      • Beim Verwenden der Datenbindungsbibliothek verursachten Variablennamen mit Unterstrichen Kompilierungsfehler.
      • Durch CMake stürzten IntelliSense und andere CLion-Funktionen ab.
      • Das Hinzufügen einer SliceProvider verursachte Kompilierungsfehler in Projekten, in denen keine androidx.*-Bibliotheken verwendet wurden.
      • Einige Kotlin-Einheitentests wurden nicht ausgeführt.
      • Ein Problem mit der Datenbindung verursachte einen PsiInvalidElementAccessException.
      • Manchmal haben <merge>-Elemente den Absturz des Layout-Editors verursacht.

    3.2.0 Bekannte Probleme

    Hinweis:Diese Probleme wurden in Android Studio 3.2.1 behoben.

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

      Kotlin-Version 1.2.61 behebt einen Fehler, der dazu führen kann, dass Android Studio sich aufhängt, aber Kotlin 1.2.70 enthält diese Fehlerkorrektur nicht.

      Kotlin-Versionen 1.2.71 und höher enthalten diese Fehlerkorrektur jedoch.

    • Normalerweise musst du die Version der Build-Tools nicht angeben. Wenn du das Android-Gradle-Plug-in 3.2.0 mit renderscriptSupportModeEnabled auf true verwendest, musst du jedoch Folgendes in die Datei build.gradle jedes Moduls aufnehmen:

      android.buildToolsVersion "28.0.3"

    Neue Funktionen, Assistant

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

    Der Assistent wird geöffnet, wenn du Android Studio nach einer Neuinstallation startest oder wenn der Assistent neue Informationen erkennt. Sie können den Assistenten auch öffnen, indem Sie Hilfe > Neuerungen in Android Studio auswählen.

    Android Jetpack

    Android Jetpack unterstützt die Android-Entwicklung mit Komponenten, Tools und Anleitungen, die sich wiederholende Aufgaben eliminieren und es Ihnen ermöglichen, qualitativ hochwertige, testbare Apps schneller und einfacher 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, um eine grafische Ansicht zum Erstellen der Navigationsstruktur deiner App bereitzustellen. Er vereinfacht das Design und die Implementierung der Navigation zwischen App-internen Zielen.

    Der Navigationseditor in Android Studio 3.2 ist eine experimentelle Funktion. Klicken Sie zum Aktivieren des Navigationseditors auf Datei > Einstellungen (Android Studio > Einstellungen auf dem Mac), wählen Sie im linken Bereich die Kategorie Experimentell aus, setzen Sie ein Häkchen neben Navigationseditor aktivieren und starten Sie Android Studio neu.

    Weitere Informationen finden Sie in der Dokumentation zum Navigationseditor.

    AndroidX-Migration

    Im Rahmen von Jetpack migrieren wir die Android-Supportbibliotheken zu einer neuen Android-Erweiterungsbibliothek, die den androidx-Namespace verwendet. Weitere Informationen findest du in der Übersicht zu AndroidX.

    Android Studio 3.2 unterstützt Sie mit einer neuen Migrationsfunktion durch diesen Prozess.

    Wählen Sie Refactor > Migrate to AndroidX (Refaktorieren > Zu AndroidX migrieren) aus, um ein vorhandenes Projekt zu AndroidX zu migrieren. Falls Sie Maven-Abhängigkeiten haben, die nicht zum AndroidX-Namespace migriert wurden, konvertiert das Android Studio-Build-System diese Projektabhängigkeiten automatisch.

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

    • android.useAndroidX: Wenn dieses Flag auf true gesetzt ist, gibt es an, dass Sie von jetzt an AndroidX verwenden möchten. Wenn das Flag nicht vorhanden ist, verhält sich Android Studio so, als wäre es auf false gesetzt.
    • android.enableJetifier: Wenn dieses Flag auf true gesetzt ist, gibt es an, dass Sie Toolunterstützung (über das Android-Gradle-Plug-in) benötigen, um vorhandene Drittanbieterbibliotheken automatisch zu konvertieren, so 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 gesetzt.

    Beide Flags sind auf true festgelegt, wenn Sie den Befehl Migration zu AndroidX verwenden.

    Wenn Sie die AndroidX-Bibliotheken sofort verwenden möchten und vorhandene Bibliotheken von Drittanbietern nicht konvertieren müssen, können Sie das Flag android.useAndroidX auf true und das Flag android.enableJetifier auf false setzen.

    Android App Bundle

    Android App Bundle ist ein neues Uploadformat, das den gesamten kompilierten Code und die Ressourcen Ihrer App enthält, aber die APK-Erstellung und -Signierung im Google Play Store auf später verschieben wird.

    Das neue App-Bereitstellungsmodell von Google Play verwendet dann dein App Bundle, um optimierte APKs für die Gerätekonfiguration der einzelnen Nutzer zu generieren und bereitzustellen, sodass jeder Nutzer nur den Code und die Ressourcen herunterlädt, die er zum Ausführen deiner App benötigt. Du musst nicht mehr mehrere APKs erstellen, signieren und verwalten und die Nutzer erhalten kleinere, optimierte Downloads.

    Darüber hinaus können Sie Ihrem App-Projekt Funktionsmodule hinzufügen und sie in Ihr App Bundle aufnehmen. Deine Nutzer können die Funktionen deiner App dann bei Bedarf herunterladen und installieren.

    Um ein Bundle zu erstellen, wählen Sie Build > Build Bundle(s) / APK(s) > Build Bundle(s) (Build > Build-Bundles/APKs > Build-Bundle(s)) aus.

    Weitere Informationen, einschließlich Anleitungen zum Erstellen und Analysieren eines Android App Bundles, findest du unter Android App Bundle.

    Beispieldaten im Layout-Editor

    Viele Android-Layouts enthalten Laufzeitdaten, die es schwierig machen, das Erscheinungsbild eines Layouts in der Designphase der App-Entwicklung zu visualisieren. Sie können sich jetzt ganz einfach eine Vorschau Ihrer Ansicht im Layout-Editor mit Beispieldaten ansehen. Wenn Sie eine Ansicht hinzufügen, wird im Designfenster unter der Ansicht die Schaltfläche angezeigt. Klicken Sie auf diese Schaltfläche, um die Attribute der Ansicht für die Entwurfszeit festzulegen. Sie können aus einer Vielzahl von Beispieldatenvorlagen auswä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 „Designzeit-Attribute“ und wählen Sie eine Auswahl aus dem Karussell der Beispieldatenvorlagen aus.

    Segmente

    Slices bieten eine neue Möglichkeit, Teile der Funktionalität deiner App in andere Benutzeroberflächenoberflächen unter Android einzubetten. Mit „Slices“ ist es beispielsweise möglich, App-Funktionen und -Inhalte in Google-Suchvorschlägen darzustellen.

    Android Studio 3.2 verfügt über 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 beim Erstellen der Slices den Best Practices folgen.

    Klicken Sie mit der rechten Maustaste auf einen Projektordner und wählen Sie Neu > Sonstige > Slice-Anbieter aus.

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

    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 einbinden. Weitere Informationen finden Sie im Blog für Android-Entwickler.

    IntelliJ IDEA 2018.1.6

    Die zentrale Android Studio-IDE wurde mit Verbesserungen von IntelliJ IDEA bis zum Release 2018.1.6 aktualisiert.

    Android-Profiler

    Probieren Sie die folgenden neuen Android Profiler-Funktionen in Android Studio 3.2 aus.

    Sitzungen

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

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

    System Tracing

    Wählen Sie im CPU Profiler die neue Konfiguration für System Trace aus, um die System-CPU- und Thread-Aktivität Ihres Geräts zu überprüfen. Diese Trace-Konfiguration basiert auf systrace und ist nützlich, um Probleme auf Systemebene zu untersuchen, z. B. Verzögerungen in der UI.

    Mit dieser Trace-Konfiguration können Sie wichtige Coderoutinen visuell auf der Profiler-Zeitachse markieren. Dazu instrumentieren Sie Ihren C/C++-Code mit der nativen Tracing API oder mit der Klasse Trace in Ihren Java-Code.

    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 Arbeitsspeicherzuweisungen für den JNI-Code Ihrer App prüfen.

    Wählen Sie, während Ihre Anwendung ausgeführt wird, einen Teil der Zeitachse aus, den Sie untersuchen möchten. Wählen Sie dann wie unten gezeigt im Drop-down-Menü über der Klassenliste JNI-Heap aus. Sie können dann wie gewohnt Objekte im Heap untersuchen und auf dem Tab Allocation-Aufrufstack doppelt auf Objekte klicken, um zu sehen, wo die JNI-Referenzen in Ihrem Code zugewiesen und freigegeben werden.

    Arbeitsspeicher-Heap-Dump-Dateien importieren, exportieren und prüfen

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

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

    Wenn Sie die Heap-Dump-Daten speichern möchten, um sie später zu überprüfen, klicken Sie im Bereich Sitzungen rechts neben dem Eintrag Heap-Dump auf die Schaltfläche Heap-Dump exportieren. Speichern Sie die Datei im Dialogfeld Exportieren als mit der Dateiendung .hprof.

    CPU-Aktivität beim Start der App aufzeichnen

    Sie können jetzt die CPU-Aktivität beim Start Ihrer App so aufzeichnen:

    1. Wählen Sie im Hauptmenü Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten) aus.
    2. Klicken Sie auf dem Tab Profilerstellung der gewünschten Ausführungskonfiguration auf das Kästchen neben Methoden-Trace beim Start aufzeichnen.
    3. Wählen Sie eine zu verwendende CPU-Aufzeichnungskonfiguration aus dem Drop-down-Menü aus.
    4. Stellen Sie Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereit, indem Sie Run > Profile (Ausführen > Profil) auswählen.
    CPU-Traces exportieren

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

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

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

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

    Importieren Sie die Trace-Datei, indem Sie im Bereich Sitzungen des Profilers auf Neue Profiler-Sitzung starten klicken und dann Aus Datei laden auswählen. Anschließend können Sie die Daten im CPU-Profiler wie gewohnt prüfen. Es gibt jedoch folgende Ausnahmen:

    • CPU-Aktivität wird nicht entlang der CPU-Zeitachse dargestellt.
    • Die Zeitachse der Thread-Aktivität gibt nur an, wo Trace-Daten für jeden Thread verfügbar sind. Die tatsächlichen Thread-Zustände (z. B. „Wird ausgeführt“, „Warten“ oder „Ruhemodus“) sind davon ausgeschlossen.
    CPU-Aktivität mit der Debug API aufzeichnen

    Sie können die Aufzeichnung von CPU-Aktivitäten im CPU-Profiler jetzt starten und beenden, indem Sie Ihre Anwendung mit der Debug API instrumentieren. Nachdem Sie die 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. Der Profiler beendet die Aufzeichnung, wenn Ihre App stopMethodTracing() aufruft. Beim Aufzeichnen von CPU-Aktivitäten, die über diese API ausgelöst werden, zeigt der CPU-Profiler Debug API als ausgewählte Konfiguration für die CPU-Aufzeichnung an.

    Energie-Profiler

    Der Energy Profiler zeigt eine Visualisierung des geschätzten Energieverbrauchs Ihrer App sowie von Systemereignissen, die sich auf den Energieverbrauch auswirken, wie Wakelocks, Alarme und Jobs.

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

    Klicken Sie auf die Zeile Energie, um die Ansicht „Energie Profiler“ zu maximieren. Bewegen Sie den Mauszeiger auf einen Balken in der Zeitleiste, um eine Aufschlüsselung des Energieverbrauchs nach CPU, Netzwerk- und Standortressourcen (GPS) sowie relevanten Systemereignissen zu sehen.

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

    Wenn Sie den Aufrufstack und andere Details für ein Systemereignis, z. B. einen Wakelock, sehen möchten, wählen Sie es im Ereignisbereich aus. Doppelklicken Sie auf den Eintrag im Aufrufstack, um den für ein Systemereignis verantwortlichen Code aufzurufen.

    Flusenprüfung

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

    Die neuen Lint-Prüfungen helfen Ihnen, gängige Codeprobleme zu finden und zu identifizieren. Diese reichen von Warnungen zu möglichen Problemen mit der Nutzerfreundlichkeit bis hin zu Fehlern mit hoher Priorität in Bezug auf potenzielle Sicherheitslücken.

    Lint prüft die Java-/Kotlin-Interoperabilität

    Damit der Java-Code gut mit dem Kotlin-Code zusammenarbeitet, werden durch neue Lint-Prüfungen die im Kotlin-Interop-Leitfaden beschriebenen Best Practices erzwungen. Beispiele für diese Prüfungen sind das Vorhandensein von Nullability-Annotationen, die Verwendung harter Kotlin-Schlüsselwörter und die letzte Platzierung von Lambda-Parametern.

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

    Fügen Sie der Datei build.gradle Folgendes hinzu, um diese Prüfungen für Befehlszeilen-Builds zu aktivieren:

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    Lint prüft auf Slices

    Neue Lint-Prüfungen für Slices tragen dazu bei, dass Sie Slices korrekt erstellen. Mit Lint-Prüfungen werden Sie beispielsweise gewarnt, wenn Sie einem Slice keine primäre Aktion zugewiesen haben.

    Neues Gradle-Ziel

    Verwenden Sie die neue Gradle-Aufgabe lintFix, um alle sicheren Fehlerbehebungen, die von der Lint-Prüfung vorgeschlagen werden, direkt auf den Quellcode anzuwenden. Ein Beispiel für eine Lint-Prüfung, die eine sichere Lösung für das Anwenden vorschlägt, ist SyntheticAccessor.

    Aktualisierte Metadaten

    Verschiedene Metadaten, z. B. die Dienststreamingprüfung, wurden aktualisiert, damit Lint-Prüfungen unter Android 9 (API-Ebene 28) funktionieren.

    Warnung, wenn Lint für eine neue Variante ausgeführt wird

    Lint erfasst jetzt, mit welcher Variante und Version eine Referenz aufgezeichnet wird. Lint warnt Sie, wenn Sie es mit einer anderen Variante als der ausführen, mit der die Referenz erstellt wurde.

    Verbesserungen an vorhandenen Lint-Prüfungen

    Android Studio 3.2 enthält viele Verbesserungen für vorhandene Lint-Prüfungen. Beispielsweise werden die Ressourcenzyklusprüfungen jetzt auf zusätzliche Ressourcentypen angewendet und der Übersetzungsdetektor kann fehlende Übersetzungen direkt im Editor finden.

    Problem-IDs leichter auffindbar machen

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

    Weitere Informationen findest du unter Lint-Optionen mit Gradle konfigurieren.

    Datenbindung V2

    Datenbindung V2 ist jetzt standardmäßig aktiviert und mit V1 kompatibel. Wenn Sie also Bibliotheksabhängigkeiten haben, die Sie mit V1 kompiliert haben, können Sie diese für Projekte verwenden, in denen Data Binding V2 verwendet wird. Projekte, die V1 verwenden, können jedoch keine Abhängigkeiten nutzen, 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 Build-Gesamtzeit verkürzt wird. In Android Studio 3.2 ist das Entsugaren mit D8 standardmäßig aktiviert.

    Neuer Code-Shrinker

    R8 ist ein neues Tool zum Verkleinern 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 abzielen, generiert das Plug-in standardmäßig keine APKs für die folgenden ABIs: mips, mips64 und armeabi.

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

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

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

    Verbesserte Editorfunktionen für Build-Dateien in CMake

    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-Skripts bearbeiten können, wie zum Beispiel:

    • Syntaxhervorhebung und Codevervollständigung: Die IDE hebt jetzt die Codevervollständigung für gängige CMake-Befehle hervor und schlägt vor. Alternativ können Sie zu einer Datei wechseln, indem Sie bei gedrückter Strg-Taste (Befehlstaste auf Mac) darauf klicken.
    • Codeumformatierung:Sie können jetzt die Option zur Codeumformatierung von IntelliJ verwenden, um Codestile auf Ihre CMake-Build-Skripts anzuwenden.
    • Sichere Refaktorierung: Die integrierten Refaktorierungstools der IDE prüfen jetzt auch, ob Sie Dateien umbenennen oder löschen, auf die Sie in Ihren CMake-Build-Skripts verweisen.

    In früheren Versionen von Android Studio konnten Sie im Fenster Projekt nur die Headerdateien aufrufen und prüfen, die zu Bibliotheken gehören, die Sie aus einem lokalen Projekt erstellen. Mit diesem Release können Sie jetzt auch Headerdateien aufrufen 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 eingefügt haben, öffnen Sie links in der IDE das Fenster Projekt. Wählen Sie dazu im Hauptmenü Ansicht > Tool-Fenster > Projekt und dann im Drop-down-Menü die Option Android aus. Im Verzeichnis cpp werden alle Header, die sich im Bereich Ihres Anwendungsprojekts befinden, für jede Ihrer lokalen C/C++-Bibliotheksabhängigkeiten unter dem Knoten include organisiert, wie unten dargestellt.

    Native Multidex standardmäßig aktiviert

    In früheren Versionen von Android Studio wurde natives Multidex aktiviert, wenn die Debug-Version einer App auf einem Gerät mit Android API-Level 21 oder höher bereitgestellt wurde. Unabhängig davon, ob du die Bereitstellung auf einem Gerät vornimmst oder ein APK für einen Release erstellst, aktiviert das Android-Plug-in für Gradle natives Multidex 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 die Quelle für AAPT2 (Android Asset Packaging Tool 2) das Maven-Repository von Google.

    Wenn Sie AAPT2 verwenden möchten, muss Ihre build.gradle-Datei eine google()-Abhängigkeit enthalten, 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()
            }
        }
        

    Die neue Version von AAPT2 behebt viele Probleme, einschließlich einer verbesserten Verarbeitung von Nicht-ASCII-Zeichen unter Windows.

    Konfiguration wird bei Bedarf entfernt

    Die Einstellung On demand konfigurieren wurde aus Android Studio entfernt.

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

    ADB-Verbindungsassistent

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

    Um den Assistenten zu starten, wählen Sie Tools > Connection Assistant.

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

    Emulator-Verbesserungen

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

    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 Neuerungen und Änderungen im Emulator finden Sie in den Versionshinweisen für Emulator.

    3.1 (März 2018)

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

    3.1.4 (August 2018)

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

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

    3.1.3 (Juni 2018)

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

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

    3.1.2 (April 2018)

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

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

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

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

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

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

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

    3.1.1 (April 2018)

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

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

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

    • Der Debugger ist beim Debugging eines Layouts mit einem Textfeld abgestürzt, wenn die erweiterte Profilerstellung aktiviert war.
    • Android Studio stürzte ab, nachdem Sie auf Varianten erstellen geklickt haben.
    • AAR-Dateien (Android-Archiv) wurden zweimal extrahiert: einmal während der Gradle-Synchronisierung und einmal während des Gradle-Build-Prozesses.
    • In einigen Vektor-Drawables, die aus SVG-Dateien importiert wurden, fehlten Elemente.
    • Die Warnung zur Einstellung der compile-Abhängigkeitskonfiguration wurde aktualisiert und enthält nun bessere Hinweise zu den implementation- und api-Konfigurationen. Weitere Informationen zur Migration weg von der Konfiguration compile finden Sie in der Dokumentation zu den neuen Abhängigkeitskonfigurationen.

    Programmieren/IDE

    IntelliJ 2017.3.3

    Die zentrale Android Studio-IDE wurde mit Verbesserungen von IntelliJ IDEA bis Version 2017.3.3 aktualisiert. Zu den Verbesserungen gehören eine bessere Analyse des Kontrollflusses für Sammlungen und Strings, eine verbesserte Inferenz mit Null-Zulässigkeit, neue Schnellkorrekturen und vieles mehr.

    Weitere Informationen finden Sie in den JetBrains-Versionshinweisen für IntelliJ IDEA 2017.2 und 2017.3 sowie in den JetBrains-Versionshinweisen für Updates zur Fehlerkorrektur.

    Verbesserungen bei der SQL-Bearbeitung mit Room

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

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

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

    Aktualisierung der Datenbindung

    Dieses Update umfasst mehrere Verbesserungen für die Datenbindung:

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

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

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

      Der neue Compiler bietet unter anderem folgende Vorteile:

      • ViewBinding-Klassen werden vom Android-Plug-in für Gradle vor dem Java-Compiler generiert.
      • Bibliotheken behalten ihre generierten Bindungsklassen beim Kompilieren der Anwendung bei und werden nicht jedes Mal neu generiert. Dies kann die Leistung bei Projekten mit mehreren Modulen erheblich verbessern.

    Compiler und Gradle

    D8 ist der Standard-DEX-Compiler

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

    Dieser neue DEX-Compiler bietet unter anderem folgende Vorteile:

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

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

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

            android.enableD8=true
          

    Weitere Informationen finden Sie unter Neuer DEX-Compiler.

    Inkrementelles Entsugaring

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

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

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

            android.enableIncrementalDesugaring=false
          
    Vereinfachtes Ausgabefenster

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

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

    Batch-Updates und gleichzeitige Indexierung

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

    C++ und LLDB

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

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

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

    • Durch das Hinzufügen von Formatierern („Schönheitsdruckern“) für weitere C++-Datenstrukturen lässt sich die LLDB-Ausgabe leichter lesen.

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

    Hinweis: Das native Debugging mit Android Studio 3.0 oder höher funktioniert nicht unter 32-Bit-Windows. Wenn Sie eine 32-Bit-Windows-Umgebung verwenden und Fehler mit nativem Code beheben müssen, verwenden Sie Android Studio 2.3.

    Kotlin

    Kotlin-Upgrade auf Version 1.2.30

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

    Kotlin-Code wird jetzt mit Lint-Prüfung über die Befehlszeile analysiert

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

    Für jedes Projekt, für das Sie Lint ausführen möchten, muss das Maven-Repository von Google in der übergeordneten Datei build.gradle enthalten sein. Bei Projekten, die in Android Studio 3.0 und höher erstellt wurden, ist das Maven-Repository bereits enthalten.

    Tools zur Leistungssteigerung

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

    Der CPU Profiler enthält jetzt eine Standardkonfiguration zum Aufzeichnen von Stichproben der nativen Threads Ihrer Anwendung. Sie können diese Konfiguration verwenden, indem Sie Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereitstellen und dann im Drop-down-Menü des CPU-Profilers zur Aufzeichnung der Konfigurationen die Option Sampled (Nativ) auswählen. Danach zeichnen und prüfen Sie einen Trace wie gewohnt.

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

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

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

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

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

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

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

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

    Tab „Request“ im Netzwerk-Profiler

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

    Thread-Ansicht im Netzwerk-Profiler

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

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

    Layout Inspector

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

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

    Layout-Editor

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

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

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

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

    Laufen und Instant Run

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

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

    Emulator

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

    Zu den wichtigsten Verbesserungen gehören:

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

    Verbesserte Benutzeroberfläche und Nutzererfahrung

    Weitere Kurzinfos, Tastenkombinationen und hilfreiche Meldungen

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

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

    Menü „Tools“ > „Android“ entfernt

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

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

    Gerätemonitor, verfügbar über die Befehlszeile

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

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

    3.0 (Oktober 2017)

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

    macOS-Nutzer:Wenn du eine ältere Version von Android Studio aktualisierst, wird möglicherweise ein Update-Fehler „Im Installationsbereich wurden einige Konflikte gefunden“ angezeigt. Ignorieren Sie diese Fehlermeldung einfach und klicken Sie auf Abbrechen, um die Installation fortzusetzen.

    3.0.1 (November 2017)

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

    Android-Plug-in für Gradle 3.0.0

    Das neue Android-Plug-in für Gradle enthält eine Reihe von Verbesserungen und neuen Funktionen, verbessert aber in erster Linie die Build-Leistung für Projekte mit einer großen Anzahl von Modulen. Wenn Sie das neue Plug-in mit diesen großen Projekten verwenden, sollte Folgendes auftreten:

    • Kürzere Build-Konfigurationszeiten aufgrund neuer verzögerter Abhängigkeitsauflösungen.
    • Variantensensitive Abhängigkeitsauflösung nur für die Projekte und Varianten, die Sie erstellen.
    • Kürzere inkrementelle Build-Zeiten bei Anwendung einfacher Änderungen an Code oder Ressourcen.

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

    Diese Version enthält außerdem Folgendes:

    • Unterstützung für Android 8.0
    • Unterstützung für die Erstellung separater APKs basierend auf Sprachressourcen.
    • Unterstützung von Java 8-Bibliotheken und Java 8-Sprachfunktionen (ohne Jack-Compiler)
    • Unterstützung für die Android Test Support Library 1.0 (Android Test-Dienstprogramm und Android Test Orchestrator).
    • Verbesserte Build-Geschwindigkeiten von „ndk-build“ und „cmake“.
    • Verbesserte Gradle-Synchronisierungsgeschwindigkeit.
    • AAPT2 ist jetzt standardmäßig aktiviert.
    • Die Verwendung von ndkCompile ist jetzt stärker eingeschränkt. Sie sollten stattdessen entweder zu CMake oder ndk-build migrieren, um nativen Code zu kompilieren, den Sie in Ihr APK verpacken 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.

    Informationen zum Upgrade auf das neue Plug-in finden Sie unter Migration zum Android-Plug-in für Gradle 3.0.0.

    Kotlin-Unterstützung

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

    Sie können Kotlin in Ihr Projekt einbinden, indem Sie eine Java-Datei in Kotlin umwandeln. Klicken Sie dazu auf Code > Java-Datei in eine Kotlin-Datei konvertieren. Alternativ können Sie mit dem Assistenten für ein neues Projekt ein neues Projekt erstellen, das für Kotlin aktiviert ist.

    Lesen Sie zuerst, wie Sie Kotlin einem Projekt hinzufügen.

    Unterstützung der Java 8-Sprachfunktionen

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

    Wenn Sie Ihr Projekt so aktualisieren möchten, dass die neue Toolchain für die Java 8-Sprache unterstützt wird, aktualisieren Sie im Dialogfeld Projektstruktur die Quellkompatibilität und Zielkompatibilität auf 1.8. Klicken Sie dazu auf Datei > Projektstruktur. Weitere Informationen finden Sie unter Sprachfeatures für Java 8 verwenden.

    Android-Profiler

    Der neue Android Profiler ersetzt das Android Monitor-Tool und bietet eine neue Suite von Tools zum Messen der CPU-, Arbeitsspeicher- und Netzwerknutzung Ihrer App in Echtzeit. Sie können ein Sample-basiertes Methoden-Tracing ausführen, um die Codeausführung zu messen, Heap-Dumps zu erfassen, Arbeitsspeicherzuweisungen anzusehen und die Details von vom Netzwerk übertragenen Dateien zu überprüfen.

    Klicken Sie zum Öffnen auf Ansicht > Toolfenster > Android Profiler (oder klicken Sie in der Symbolleiste auf Android Profiler).

    Die Ereigniszeitachse oben im Fenster zeigt Touch-Ereignisse, Tastenbetätigungen und Aktivitätsänderungen. So haben Sie mehr Kontext zum Verständnis anderer Leistungsereignisse in der Zeitachse.

    Hinweis: Die Logcat-Ansicht wurde ebenfalls in ein separates Fenster verschoben (zuvor war sie im Android Monitor, das entfernt wurde).

    Klicken Sie in der Übersichtszeitachse von Android Profiler auf die Zeitachsen CPU, SPEICHER oder NETZWERK, um auf die entsprechenden Profiler-Tools zuzugreifen.

    CPU-Profiler

    Mit CPU Profiler können Sie die CPU-Thread-Nutzung Ihrer Anwendung analysieren. Dazu wird ein Sample oder ein instrumentiertes CPU-Trace ausgelöst. Anschließend können Sie Probleme mit der CPU-Leistung mithilfe einer Vielzahl von Datenansichten und Filtern beheben.

    Weitere Informationen finden Sie in der Anleitung zum CPU-Profiler.

    Speicher-Profiler

    Mit dem Speicher-Profiler können Sie Speicherlecks und Speicherabwanderung erkennen, die zu Ruckeln, Einfrieren und sogar App-Abstürzen führen können. Sie zeigt ein Echtzeitdiagramm der Arbeitsspeichernutzung Ihrer App, ermöglicht Ihnen, einen Heap-Dump zu erfassen, automatische Speicherbereinigungen zu erzwingen und Arbeitsspeicherzuweisungen nachzuverfolgen.

    Weitere Informationen finden Sie in der Anleitung zum Speicher-Profiler.

    Netzwerk-Profiler

    Mit dem Netzwerk-Profiler können Sie die Netzwerkaktivität Ihrer Anwendung überwachen, die Nutzlast jeder Ihrer Netzwerkanfragen prüfen und eine Verknüpfung zu dem Code herstellen, der die Netzwerkanfrage generiert hat.

    Weitere Informationen finden Sie im Leitfaden zum Netzwerk-Profiler.

    APK-Profilerstellung und -Debugging

    In Android Studio kannst du jetzt für jedes APK ein Profil erstellen und Fehler beheben, ohne dass du es über ein Android Studio-Projekt erstellen musst – vorausgesetzt, das APK wurde so erstellt, dass das Debugging ermöglicht wird und du Zugriff auf die Fehlerbehebungssymbole und Quelldateien hast.

    Um zu beginnen, klicken Sie auf dem Willkommensbildschirm von Android Studio auf Profil oder Fehlersuche für APK. Wenn du bereits ein Projekt geöffnet hast, klicke in der Menüleiste auf File > Profile or Debug APK (Datei > APK-Profil oder APK debuggen). Dadurch werden die entpackten APK-Dateien angezeigt, aber der Code wird nicht dekompiliert. Damit Sie Haltepunkte ordnungsgemäß hinzufügen und Stacktraces ansehen können, müssen Sie also Java-Quelldateien und Symbole zum Debuggen von nativem Code anhängen.

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

    Gerätedatei-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. Dadurch wird das in DDMS verfügbare Dateisystemtool ersetzt.

    Klicken Sie zum Öffnen auf Ansicht > Toolfenster > Gerätedatei-Explorer.

    Weitere Informationen finden Sie in der Anleitung zum Gerätedatei-Explorer.

    Unterstützung von Instant Apps

    Durch die neue Unterstützung für Android Instant Apps können Sie Instant Apps in Ihrem Projekt mithilfe von zwei neuen Modultypen erstellen: Instant App-Module und Funktionsmodule. Hierfür müssen Sie das Instant Apps Development SDK installieren.

    Android Studio umfasst auch eine neue Refaktorierungsaktion zum Modularisieren, damit du einem bestehenden Projekt Unterstützung für Instant Apps hinzufügen kannst. Wenn Sie beispielsweise Ihr Projekt refaktorieren möchten, um einige Klassen in einem Instant App-Featuremodul zu platzieren, wählen Sie die Klassen im Fenster Projekt aus und klicken Sie auf Refaktorieren > Modularisieren. Wählen Sie im angezeigten Dialogfeld das Modul aus, in das die Klassen gehen sollen, und klicken Sie auf OK.

    Wenn Sie bereit sind, Ihre Instant App zu testen, 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 Startoptionen für die Ausführungskonfiguration an: Wählen Sie Ausführen > Konfigurationen bearbeiten aus, wählen Sie Ihr Instant App-Modul aus und legen Sie die URL dann unter Startoptionen fest.

    Weitere Informationen findest du unter Android Instant Apps.

    Android Things-Module

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

    Weitere Informationen finden Sie im Hilfeartikel Android Things-Projekt erstellen.

    Assistent für adaptive Symbole

    Image Asset Studio unterstützt jetzt Vektor-Drawables und ermöglicht es Ihnen, adaptive Launcher-Symbole für Android 8.0 zu erstellen und gleichzeitig traditionelle Symbole („Alte“-Symbole) für ältere Geräte zu erstellen.

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

    Hinweis: Du musst compileSdkVersion auf mindestens 26 festlegen, um adaptive Launcher-Symbole verwenden zu können.

    Weitere Informationen finden Sie unter Adaptive Symbole.

    Unterstützung für Ressourcen zu Schriftarten

    Zur Unterstützung der neuen Ressourcen für Schriftarten in Android 8.0 enthält Android Studio eine Auswahl für Schriftressourcen, mit der Sie Schriftarten in Ihrer App bündeln oder Ihr Projekt so konfigurieren können, dass die Schriftarten auf das Gerät heruntergeladen werden (falls verfügbar). Der Layout-Editor kann auch die Schriftarten in Ihrem Layout in der Vorschau ansehen.

    Wenn du herunterladbare Schriftarten ausprobieren möchtest, muss auf deinem Gerät oder Emulator Version 11.2.63 der Google Play-Dienste oder höher ausgeführt werden. Weitere Informationen finden Sie unter Herunterladbare Schriftarten.

    Firebase-App-Indexierungsassistent

    Für den Firebase Assistant wurde eine neue Anleitung zum Testen der App-Indexierung veröffentlicht. Wählen Sie Tools > Firebase aus, um Assistant zu öffnen. Wählen Sie dann App-Indexierung > App-Indexierung testen aus.

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

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

    Der App Links-Assistent wurde mit den folgenden neuen Funktionen aktualisiert:

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

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

    • Erstellen Sie eine Digital Asset Links-Datei mit dem entsprechenden Objekteintrag zur Unterstützung von Google Smart Lock und fügen Sie Ihrer Manifestdatei das entsprechende asset_statements-<meta-data>-Tag hinzu.

    Validator für URL-Intent-Filter

    Android Studio unterstützt jetzt in der Manifestdatei ein spezielles Tag, mit dem du deine Intent-Filter-URLs testen kannst. Das sind dieselben Tags, die der App-Link-Assistent für dich erstellen kann.

    Wenn du eine Test-URL für einen Intent-Filter deklarieren möchtest, füge neben dem entsprechenden <intent-filter>-Element ein <tools:validation>-Element hinzu. Beispiele:

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

    Achte darauf, auch xmlns:tools="http://schemas.android.com/tools" in das <manifest>-Tag einzufügen.

    Wenn eine der Test-URLs die Intent-Filterdefinition nicht erfüllt, wird ein Lint-Fehler angezeigt. Wenn ein solcher Fehler auftritt, können Sie zwar weiterhin Debug-Varianten erstellen, Ihre Release-Builds funktionieren dann aber nicht mehr.

    Layout-Editor

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

    • Neues Symbolleistenlayout und neue Symbole
    • Das Layout in der Komponentenstruktur wurde aktualisiert.
    • Das Einfügen von Ansichten per Drag-and-drop wurde verbessert.
    • Neuer Fehlerbereich unter dem Editor, in dem alle Probleme mit Vorschlägen zur Fehlerbehebung angezeigt werden (falls verfügbar).
    • Verschiedene UI-Verbesserungen für das Erstellen mit ConstraintLayout, darunter:
      • Neue Unterstützung, um Hindernisse zu schaffen.
      • Neue Unterstützung für das Erstellen von Gruppen: Wählen Sie in der Symbolleiste Richtlinien > Gruppe hinzufügen aus. Hierfür ist ConstraintLayout 1.1.0 Beta 2 oder höher 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 Inspector enthält Verbesserungen, mit denen sich Probleme mit App-Layouts einfacher beheben lassen. Dazu gehören das Gruppieren von Eigenschaften in allgemeine Kategorien und neue Suchfunktionen in den Bereichen View Tree und Properties.

    APK-Analysetool

    Du kannst APK Analyzer jetzt mit dem apkanalyzer-Tool über die Befehlszeile verwenden.

    Das APK Analyzer wurde außerdem mit den folgenden Verbesserungen aktualisiert:

    • Bei APKs, die mit ProGuard erstellt wurden, können Sie ProGuard-Zuordnungsdateien laden, die dem DEX-Viewer Funktionen hinzufügen, darunter:
      • Knoten, die fett formatiert sind, um anzugeben, dass die Knoten beim Verkleinern von Code nicht entfernt werden sollten.
      • Eine Schaltfläche zum Anzeigen von Knoten, die beim Verkleinern entfernt wurden.
      • Schaltfläche zum Wiederherstellen der ursprünglichen Namen der Knoten in der Baumansicht, die von ProGuard verschleiert wurden.
    • Die DEX-Viewer zeigt jetzt die geschätzten Größenauswirkungen für jedes Paket, jede Klasse und jede Methode an.
    • Neue Filteroptionen im oberen Bereich zum Ein- und Ausblenden von Feldern und Methoden
    • In der Baumansicht werden Knoten, die nicht in der DEX-Datei definiert sind, kursiv dargestellt.

    Weitere Informationen finden Sie unter Build mit APK Analyzer analysieren.

    Vorschau für D8-DEX-Compiler

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

    Die DEX-Kompilierung wirkt sich direkt auf die Build-Zeit, die .dex-Dateigröße und die Laufzeitleistung Ihrer Anwendung aus. Beim Vergleich des neuen D8-Compilers mit dem aktuellen DX-Compiler wird D8 außerdem schneller kompiliert und gibt kleinere .dex-Dateien bei gleicher oder besserer Laufzeitleistung der Anwendung aus.

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

    android.enableD8=true
        

    Weitere Informationen finden Sie im Blogpost zum D8-Compiler.

    Maven-Repository von Google

    In Android Studio wird jetzt standardmäßig das Maven-Repository von Google verwendet, anstatt Android SDK Manager zu verwenden, um Updates für die Android Support Library, Google Play-Dienste, Firebase und andere Abhängigkeiten zu erhalten. Dadurch können Sie Ihre Bibliotheken einfacher auf dem neuesten Stand halten, insbesondere wenn Sie ein Continuous-Integration-System (CI) 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 Datei build.gradle der obersten Ebene ein:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Weitere Informationen zum Maven-Repository von Google

    Sonstige Änderungen

    • Das native Debugging mit Android Studio unterstützt 32-Bit-Windows nicht mehr. Wir haben uns auf andere Plattformen konzentriert, da nur sehr wenige Entwickler diese Plattform nutzen. Wenn Sie 32-Bit-Windows verwenden und Fehler mit nativem Code beheben möchten, sollten Sie weiterhin Android Studio 2.3 verwenden.
    • Die Basis-IDE wurde auf IntelliJ 2017.1.2 aktualisiert, um eine Reihe neuer Features aus 2016.3 und 2017.1 hinzuzufügen, z. B. die Refaktorierung der Java 8-Sprache, Parameterhinweise, semantische Hervorhebung, ziehbare Haltepunkte, Instant-Ergebnisse in der Suche und vieles mehr.
    • Viele neue Lint-Prüfungen wurden hinzugefügt.
    • Weitere Informationen finden Sie unter Updates zum Android-Emulator.

    2.3 (März 2017)

    Android Studio 2.3.0 ist in erster Linie eine Fehlerkorrektur und Stabilitätsversion, enthält aber auch eine Reihe neuer Funktionen.

    2.3.3 (Juni 2017)

    Dies ist ein kleines Update, um die Unterstützung für Android O (API-Level 26) hinzuzufügen.

    2.3.2 (April 2017)

    Dies ist ein kleineres Update für Android Studio 2.3 mit den folgenden Änderungen:

    • AVD Manager-Updates zur Unterstützung von Google Play in System-Images
    • Fehlerkorrekturen für NDK-Builds bei Verwendung von R14+ des NDK.

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

    2.3.1 (April 2017)

    Dies ist ein kleineres Update für Android Studio 2.3, durch das ein Problem behoben wird, bei dem einige physische Android-Geräte nicht ordnungsgemäß mit Instant Run funktionieren (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 neue Layouteditor mit benutzerdefinierten Tools zur Unterstützung von ConstraintLayout
    • <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

    • IDE-Codebasis von IntelliJ 15 auf IntelliJ 2016.1 aktualisiert
    • Für Instant Run muss jetzt das Plattform-SDK installiert werden, 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 einer Instant Run- und einer Nicht-Instant Run-Sitzung wechselt, bei der für eine serielle Klasse keine serielleVersionUID definiert ist. (Fehler: #209006)
      • Stiländerungen werden bei Instant Run nicht berücksichtigt. (Fehler: #210851)
      • Die Instant Run-Sitzung ist unzuverlässig und verursacht FileNotFoundException. (Fehler: #213083)
      • Änderungen an Drawables werden erst übernommen, wenn eine vollständige Neuerstellung für KitKat durchgeführt wurde. (Fehler: #21530)
      • Ressourcenänderungen werden mit Instant Run nicht widergespiegelt, wenn benutzerdefinierte „sourceSets“ verschachtelte Pfade enthalten. (Fehler: #219145)
      • Hot- und Warm-Swap funktionieren nicht, wenn die geänderte Klasse Annotationen mit Enum-Wert enthält. (Fehler: #209047)
      • Änderungen an Anmerkungsdaten werden bei Instant Run nicht übernommen. (Fehler: #210089)
      • Instant Run erfasst keine Codeänderungen, wenn Sie Änderungen außerhalb der IDE vornehmen. (Fehler: #213205)
      • Die Instant Run-Sitzung ist aufgrund eines abweichenden Sicherheitstokens nicht zuverlässig. (Fehler: #211989
      • Cold Swap schlägt bei Geräten fehl, die Run-as nicht richtig unterstützen. (Fehler: #210875)
      • App-Absturz nach Neustart der Sofortausführung. (Fehler: #219744)
      • ClassNotFoundException wurde beim Wechsel von Instant Run zu Instant Debug beobachtet. (Fehler: #215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you 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 Hauptänderungen in diesem Update unterstützen die Entwicklung mit der Android N-Vorabversion.

    2.1.3 (August 2016)

    Dieses Update erhöht die Kompatibilität mit Gradle 2.14.1. Diese enthält Leistungsverbesserungen, neue Funktionen und ein wichtiges Sicherheitsupdate. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.

    Neue Projekte in Android Studio 2.1.3 verwenden standardmäßig Gradle 2.14.1. Bei vorhandenen Projekten werden Sie von der IDE aufgefordert, ein Upgrade auf Gradle 2.14.1 und das Android-Plug-in für Gradle 2.1.3 durchzuführen. Diese Version ist bei Gradle 2.14.1 und höher erforderlich.

    2.1.2 (Juni 2016)

    Dieses Update umfasst eine Reihe kleiner Änderungen und Fehlerkorrekturen:

    • Updates und Fehlerkorrekturen für Instant Run
    • Verbesserungen der LLDB-Leistung und von Absturzbenachrichtigungen.
    • Eine Regression im Sicherheitsupdate von Android Studio 2.1.1, die zum Fehlschlagen von git rebase führte, wurde behoben.

    2.1.1 (Mai 2016)

    Sicherheits-Release-Update.

    Die Android N-Plattform unterstützt zusätzlich Java 8-Sprachfunktionen, für die ein neuer experimenteller Compiler namens Jack erforderlich ist. Die neueste Version von Jack wird derzeit nur in Android Studio 2.1 unterstützt. Wenn Sie die Sprachfunktionen von Java 8 verwenden möchten, müssen Sie zum Erstellen Ihrer App Android Studio 2.1 verwenden.

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

    Android Studio 2.1 ist zwar jetzt stabil, der Jack-Compiler befindet sich jedoch noch in der Testphase. Du musst ihn mit der Eigenschaft jackOptions in der Datei build.gradle aktivieren.

    Abgesehen von den Änderungen zur Unterstützung von N Preview 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 Emulator verwenden und den Nativen Debugger-Modus auswählen (auf dem Tab Debugger für Ihre Ausführungs-/Fehlerbehebungskonfiguration).

    Für andere Build-Verbesserungen, einschließlich inkrementeller Java-Kompilierung und Dexing-in-Process,aktualisieren Sie Ihr Android-Plug-in für Gradle auf Version 2.1.0.

    2.0 (April 2016)

    Hinweis:Wenn Sie für die Entwicklervorschau N entwickeln, sollten Sie die Vorabversion von Android Studio 2.1 verwenden. Android Studio 2.0 unterstützt nicht alle Funktionen, die für das Targeting auf N Preview erforderlich sind.

    Instant Run:

    • Mit Android Studio werden saubere Builds jetzt schneller als je zuvor bereitgestellt. Außerdem erfolgt das Übertragen inkrementeller Codeänderungen an den Emulator oder ein physisches Gerät fast augenblicklich. Überprüfen Sie Ihre Updates, ohne einen neuen Debug-Build bereitzustellen oder in vielen Fällen, ohne die App neu zu starten.
    • Instant Run unterstützt die Übertragung der folgenden Änderungen an eine laufende Anwendung:
      • Änderungen an der Implementierung einer vorhandenen Instanzmethode oder statischen Methode
      • Änderungen an einer vorhandenen Anwendungsressource
      • Änderungen an Strukturcode, z. B. eine Methodensignatur oder ein statisches Feld (erfordert ein Zielgerät, auf dem API-Level 21 oder höher ausgeführt wird)
    • Weitere Informationen zu Instant Run finden Sie in der Dokumentation.

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

    Neu bei Lint:

    • Prüfung von switch-Anweisungen mit @IntDef-annotierten Ganzzahlen, um sicherzustellen, dass alle Konstanten verarbeitet werden. Um fehlende Anweisungen schnell hinzuzufügen, wählen Sie im Drop-down-Menü für Absichtsaktionen die Option Fehlende @IntDef-Konstanten hinzufügen aus.
    • Flags für falsche Versuche, Versionsnummern mithilfe der Stringinterpolation in die Datei build.gradle einzufügen.
    • Flags für anonyme Klassen, die die Klasse Fragment erweitern.
    • Flags für nativen Code an unsicheren Orten, z. B. in den Ordnern res/ und asset/. Dieses Flag empfiehlt, nativer Code im Ordner libs/ zu speichern, der dann bei der Installation sicher im Ordner data/app-lib/ der Anwendung verpackt wird. AOSP: Nr. 169950
    • Flags für unsichere Aufrufe von Runtime.load()- und System.load()-Aufrufen. AOSP: Nr. 179980
    • Suchen und entfernen Sie nicht verwendete Ressourcen. Wählen Sie dazu in der Menüleiste Refaktorieren > Nicht verwendete Ressourcen entfernen aus. Die Erkennung nicht verwendeter Ressourcen unterstützt jetzt nur Ressourcen, auf die nicht von nicht verwendeten Ressourcen verwiesen wird, Referenzen in Rohdateien wie .html-Bildreferenzen und tools:keep- und tools:discard-Attribute, die vom Gradle-Ressourcen-Shrinker verwendet werden. Dabei werden inaktive Quellsätze (z. B. in anderen Build-Varianten verwendete Ressourcen) und die ordnungsgemäße Verarbeitung statischer Feldimporte berücksichtigt.
    • Prüft, ob implizite API-Referenzen auf allen Plattformen unterstützt werden, auf die minSdkVersion ausgerichtet ist.
    • Meldet eine unzulässige Verwendung von RecyclerView und Parcelable.
    • @IntDef-, @IntRange- und @Size-Prüfungen werden jetzt auch auf int-Arrays und -Varargs geprüft.

    Weitere Verbesserungen:

    • Optimiert für Android Emulator 2.0. Es ist schneller als je zuvor, unterstützt eine größere Anzahl virtueller Geräte und bietet eine drastisch verbesserte Benutzeroberfläche. Weitere Informationen zum neuen Emulator finden Sie in den Versionshinweisen zu SDK-Tools.
    • Verbesserungen am Android Virtual Device Manager:
      • Systemimages werden jetzt auf den folgenden Tabs kategorisiert: Empfohlen, x86 und Sonstige.
      • Unter „Erweiterte Einstellungen“ können Sie die Multi-Core-Unterstützung aktivieren und die Anzahl der Kerne angeben, die der Emulator verwenden kann.
      • Unter „Erweiterte Einstellungen“ kannst du festlegen, wie Grafiken im Emulator gerendert werden. Wähle dazu eine der folgenden Optionen aus:
        • Hardware: Verwende für ein schnelleres Rendering die Grafikkarte deines Computers.
        • Software:Nutzen Sie softwarebasiertes Rendering.
        • Auto:Die beste Option wird vom Emulator ausgewählt. Das ist die Standardeinstellung.
    • Verbesserte AAPT-Paketerstellungszeiten durch Angabe des Bereitstellungsziels vor dem Erstellen der Anwendung. Dadurch kann Android Studio effizient nur die Ressourcen verpacken, die für das angegebene Gerät erforderlich sind.
    • Die Cloud Test Lab-Integration wurde hinzugefügt, um On-Demand-Anwendungstests mit dem Komfort und der Skalierbarkeit eines Cloud-Dienstes zu ermöglichen. Weitere Informationen zur Verwendung von Cloud Test Lab mit Android Studio
    • Eine Vorschau des neuen GPU Debugger wurde hinzugefügt. Bei grafikintensiven Anwendungen können Sie Ihren OpenGL ES-Code jetzt visuell durchgehen, um Ihre App oder Ihr Spiel zu optimieren.
    • Google-App-Indexierungstest hinzugefügt. Ergänze deine Apps um Unterstützung für URLs, App-Indexierung und Suchfunktionen. So kannst du mehr Zugriffe auf deine App erzielen, herausfinden, welche App-Inhalte am häufigsten verwendet werden, und neue Nutzer gewinnen. Du kannst URLs in deiner App direkt in Android Studio testen und validieren. Siehe Unterstützende URLs und App-Indexierung in Android Studio.
    • Upgrades vom neuesten Release von IntelliJ 15, einschließlich verbesserter Codeanalyse und Leistung. Eine vollständige Beschreibung der neuen Funktionen und Verbesserungen finden Sie unter Neuerungen in IntelliJ.
    • Bei der automatischen Vervollständigung des XML-Editors werden jetzt Anführungszeichen hinzugefügt, wenn Attribute vervollständigen. Wenn Sie prüfen möchten, ob diese Option aktiviert ist, öffnen Sie das Dialogfeld Einstellungen oder Einstellungen, gehen Sie zu Editor > Allgemein > Smart Keys und aktivieren Sie das Kästchen neben Anführungszeichen für Attributwert bei Attributabschluss hinzufügen. Problem: 195113
    • Der XML-Editor unterstützt jetzt die Codevervollständigung für Datenbindungsausdrücke.

    Android Studio Version 1.5.1 (Dezember 2015)

    Korrekturen und Verbesserungen:

    • Ein Renderingfehler im Layout-Editor wurde behoben. Problem: 194612
    • Die description-Manifestattribute können jetzt je nach Konfiguration variieren. Problem: 194705
    • Der Kontrast des Darcula-Darstellungsdesigns in Android Studio in Vector Asset Studio wurde verbessert. Problem: 191819
    • In Vector Asset Studio wird die Schaltfläche Hilfe unterstützt.
    • Der Operator % für die Datenbindung wird jetzt unterstützt. Problem: 194045
    • Ein Fall wurde behoben, bei dem der Debugger beim Starten einer App zur Fehlerbehebung eine Verbindung zum falschen Gerät herstellte. Problem: 195167
    • Es wurde eine Nullzeigerausnahme behoben, die beim Versuch, eine Anwendung in bestimmten Szenarien auszuführen, auftreten konnte.

    Android Studio Version 1.5.0 (November 2015)

    Korrekturen und Verbesserungen:

    • Neue Analysemöglichkeiten für den Arbeitsspeichermonitor wurden zu Android Monitor hinzugefügt. Wenn Sie eine von diesem Monitor erfasste HPROF-Datei ansehen, ist die Anzeige jetzt hilfreicher, sodass Sie Probleme wie Speicherlecks schneller finden können. Klicken Sie unten im Hauptfenster auf Android Monitor, um diesen Monitor zu verwenden. Klicken Sie in Android Monitor auf den Tab Arbeitsspeicher. Klicken Sie, während der Monitor ausgeführt wird, auf das Symbol Dump Java Heap und dann im Hauptfenster auf Captures. Doppelklicken Sie auf die Datei, um sie anzuzeigen. Klicken Sie rechts auf Erfassungsanalyse. Der Android Gerätemonitor kann nicht gleichzeitig mit Android Monitor ausgeführt werden.
    • Unterstützung für neue Deeplinks und App-Links hinzugefügt. Der Code-Editor kann automatisch einen Intent-Filter für Deeplinks in der Datei AndroidManifest.xml erstellen. Außerdem kann damit Code generiert werden, der Sie bei der Einbindung der App Detection API in eine Aktivität in einer Java-Datei unterstützt. Mit einer Funktion zum Testen von Deeplinks können Sie prüfen, ob über einen bestimmten Deeplink eine App gestartet werden kann. Auf dem Tab Allgemein des Dialogfelds Konfigurationen ausführen/Fehlerbehebung können Sie Startoptionen für Deeplinks angeben. Sie können App-Indexierungs-API-Aufrufe auch in einer Aktivität mithilfe der Logcat-Anzeige von Android Monitor testen. Das lint-Tool von Android zeigt jetzt Warnungen bei bestimmten Problemen im Zusammenhang mit Deeplinks und der App Logging API an.
    • Es wurde die Möglichkeit hinzugefügt, Kurznamen bei der Codevervollständigung benutzerdefinierter Ansichten im Code-Editor zu verwenden.
    • Unterstützung für weitere VectorDrawable-Elemente in Vector Asset Studio zum Zweck der Abwärtskompatibilität hinzugefügt. Vector Asset Studio kann diese Elemente verwenden, um Vektor-Drawables in PNG-Rasterbilder für Android 4.4 (API-Level 20) und niedriger zu konvertieren.
    • Es wurden neue lint-Prüfungen für Android TV und Android Auto hinzugefügt, um dir in Android Studio sofortiges umsetzbares Feedback sowie verschiedene Schnellkorrekturen zu geben. Bei Android TV können beispielsweise Probleme mit Berechtigungen, nicht unterstützter Hardware, uses-feature-Elementen und fehlenden Bannern gemeldet und eine schnelle Problembehebung angeboten werden. Für Android Auto kann die Funktion die korrekte Verwendung in der Deskriptordatei prüfen, die aus der Datei AndroidManifest.xml referenziert wird, melden, wenn kein Intent-Filter für die Klasse MediaBrowserService vorhanden ist, und bestimmte Probleme mit der Sprachbedienung identifizieren.
    • Neue lint-Prüfungen auf unsichere Übertragungsempfänger, Verwendung der Klassen SSLCertificateSocketFactory und HostnameVerifier sowie Aufrufe von File.setReadable() und File.setWritable() wurden hinzugefügt. Außerdem werden ungültige Manifest-Ressourcensuchen erkannt, insbesondere bei Ressourcen, die je nach Konfiguration variieren.
    • Eine Reihe von Stabilitätsproblemen wurde behoben.

    Android Studio Version 1.4.1 (Oktober 2015)

    Korrekturen und Verbesserungen:

    • Ein Problem beim Caching des Gradle-Modells wurde behoben, das nach dem Neustart der IDE zu einer übermäßigen Gradle-Synchronisierung führen konnte.
    • Ein Deadlock-Problem bei nativem Debugging wurde behoben.
    • Es wurde ein Problem behoben, durch das Nutzer des Versionsverwaltungssystems Subversion 1.9 blockiert wurden.
    • Ein Problem im Dialogfeld Geräteauswahl wurde behoben, bei dem nach dem Verbinden 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) wurden behoben. Problem: 188577
    • Ein Deadlock-Problem im Theme-Editor im Zusammenhang mit der Interaktion mit dem Layout-Editor wurde behoben. Problem: 188070
    • Ein Konflikt beim Aktualisieren und Bearbeiten von Designs im Design-Editor wurde behoben, der dazu führte, dass Attribute nicht korrekt aktualisiert wurden. Problem: 187726
    • Verbesserte Leistung des Design-Editors.
    • Das Problem, dass das Attribut android:required im Manifest ignoriert wurde, wurde behoben. Problem: 187665

    Android Studio Version 1.4.0 (September 2015)

    Korrekturen und Verbesserungen:

    • Das Tool Vector Asset Studio zum Importieren von Vektorgrafiken, z. B. Materialsymbole und SVG-Dateien, wurde hinzugefügt. Klicken Sie zur Verwendung dieses Tools in der Android-Ansicht des Projektfensters mit der rechten Maustaste auf den Ordner res und wählen Sie New > Vector Asset aus.
    • Neue Funktionen, GPU und Netzwerk für Android Monitor hinzugefügt. Wenn Sie diese Monitore verwenden möchten, klicken Sie unten im Hauptfenster auf Android Monitor. Android Geräte-Monitor kann nicht gleichzeitig mit Android Monitor ausgeführt werden.
    • Es wurde eine frühe Vorabversion des neuen Theme-Editors hinzugefügt. Wählen Sie Tools > Android > Design-Editor aus, um diese Funktion zu verwenden.
    • Die Android-Vorlagen für die Design Support Library wurden aktualisiert. Vorlagen unterstützen jetzt die Material Design-Spezifikation sowie die appcompat-Supportbibliothek für Abwärtskompatibilität.

    Android Studio Version 1.3.2 (August 2015)

    Korrekturen und Verbesserungen:

    • Android 6.0 (API-Level 23) wird jetzt unterstützt, einschließlich neuer Symbole und AVD Manager-Unterstützung zum Erstellen von Geräten mit neuen Bildschirmdichten.
    • Es wurde eine Ausnahme behoben, die bei der Prüfung auf Updates auftrat. Problem: 183068
    • Ein Problem wurde behoben, bei dem nicht aufgelöste Ansichtskoordinaten zum Absturz des Layout-Editors führen konnten. Problem: 178690
    • Ein Problem mit Warnungen zu ungültigen Ressourcentypen wurde behoben. Problem: 182433
    • Die Lint-Prüfung, bei der Ressourcen fälschlicherweise als privat gekennzeichnet wurden, wurde behoben. Problem: 183120

    Android Studio Version 1.3.1 (August 2015)

    Korrekturen und Verbesserungen:

    • Die Unterstützung für das Erstellen eines virtuellen Android Wear-Android-Geräts unter Windows wurde korrigiert.
    • Der Projektassistent wurde aktualisiert und verwendet nun den eingegebenen Projektnamen.
    • Zusätzliche Unterstützung für das Speichern des Android SDK in einem schreibgeschützten Verzeichnis.
    • Das Android-Plug-in für Gradle-Version wurde auf 1.3.0 aktualisiert.
    • Probleme beim Starten einer Debug-Sitzung über die ADB-Unix-Shell (Android Debug Bridge) wurden behoben.
    • Die Meldung zur Umbenennung des Java-Pakets wurde korrigiert, sodass der richtige Paketname angezeigt wird.

    Android Studio Version 1.3.0 (Juli 2015)

    Korrekturen und Verbesserungen:

    • Es wurden Optionen zum Aktivieren von Entwicklerdiensten wie Google AdMob und Analytics in deiner App über Android Studio hinzugefügt.
    • Zusätzliche Annotationen hinzugefügt, z. B. @RequiresPermission, @CheckResults und @MainThread.
    • Es wurde die Möglichkeit hinzugefügt, Java-Heap-Dumps zu generieren und Thread-Zuweisungen über den Speichermonitor zu analysieren. Sie können Android-spezifische HPROF-Dateien im Binärformat auch über Android Studio in das HPROF-Standardformat konvertieren.
    • Der SDK-Manager wurde in Android Studio integriert, um den Zugriff auf Pakete und Tools zu vereinfachen und Benachrichtigungen zu Updates bereitzustellen.

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

    • In der Emulatorkonsole wurde der Befehl finger hinzugefügt, um die Fingerabdruck-Authentifizierung zu simulieren.
    • Eine <public>-Ressourcendeklaration wurde hinzugefügt, um Bibliotheksressourcen als öffentliche und private Ressourcen festzulegen.

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

    • Unterstützung für Datenbindung hinzugefügt, um deklarative Layouts zu erstellen, die Ihre Anwendungslogik an Layoutelemente binden.
    • Ein separates Test-APK-Modul wird jetzt unterstützt, um Test-APKs in Android Studio zu erstellen.
    • AVD Manager wurde mit HAXM-Optimierungen und verbesserten Benachrichtigungen aktualisiert.
    • Unterstützung für 64-Bit-ARM- und MIPS-Emulator für QEMU 2.1 hinzugefügt.
    • Die Auflösung von Lint-Warnungen wurde durch Schnellkorrekturen, wie die automatische Generierung der Implementierung von Parcelable, vereinfacht.
    • Unterstützung für Live-Vorlagen zum schnellen Einfügen von Code-Snippets hinzugefügt.

    Android Studio Version 1.2.2(Juni 2015)

    Korrekturen und Verbesserungen:

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

    Android Studio Version 1.2.1 (Mai 2015)

    Korrekturen und Verbesserungen:

    • Kleinere Leistungs- und Funktionsprobleme wurden behoben.

    Android Studio Version 1.2.0 (April 2015)

    Korrekturen und Verbesserungen:

    • Das Android-Laufzeitfenster wurde aktualisiert und enthält nun das Tool Memory Monitor. Außerdem wurde ein Tab für die Überwachung der CPU-Leistung hinzugefügt.
    • Am linken Rand wurde ein Tab Aufnahmen hinzugefügt, um die erfassten Dateien zum Arbeitsspeicher und zur CPU-Leistung anzuzeigen, z. B. CPU-Methoden-Tracking und Arbeitsspeicher-Heap-Snapshots.
    • Erweiterte Unterstützung für Annotationen mit zusätzlichen Metadatenanmerkungen und abgeleiteter Null-Zulässigkeit.
    • Der Übersetzungseditor wurde um zusätzliche Unterstützung für Best Current Practice (BCP) 47 erweitert, bei dem aus drei Buchstaben bestehende Sprach- und Regionscodes verwendet werden.
    • Integrierte Funktionen von IntelliJ 14 und 14.1 zur Verbesserung der Codeanalyse und Leistung:
      • Verbessertes Debugging zum Anzeigen von Inline-Werten für Variablen und verweisende Objekte sowie zur Inline-Auswertung von Lambda- und Operatorausdrücken.
      • Es wurde eine Codestilerkennung für Tabulator- und Einrückungsgrößen hinzugefügt.
      • Es wurden Scratch-Dateien für Codeexperimente und Prototyping ohne Projektdateien hinzugefügt.
      • Das gleichzeitige Einfügen von öffnenden und schließenden Tags in HTML- und XML-Dateien wurde hinzugefügt.
      • Ein integrierter Java-Klassendekompilierer wurde hinzugefügt, damit Sie sich den Inhalt einer Bibliothek ansehen können, für die kein Quellcode verfügbar ist.

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

    • Für Scratches, Projektdateien, Probleme, Produktion und Tests wurden zusätzliche Projektansichten hinzugefügt, um das Projektmanagement und den Zugriff zu verbessern.
    • Das Menü Datei > Einstellungen und die Dialogfelder wurden für verbesserten Zugriff und Verwaltung auf Einstellungen erweitert.
    • HD-Displays für Windows und Linux werden jetzt unterstützt.
    • Zusätzliche Unterstützung für 280 dpi-Ressourcen im Ordner res/drawable-280dpi/.

    Android Studio Version 1.1.0 (Februar 2015)

    Verschiedene Fehlerbehebungen und Verbesserungen:

    • Die Android Wear-Smartwatch-Vorlage wird jetzt unterstützt.
    • Die Erstellung neuer Projekte und Module wurde so geändert, dass Ordner res/mipmap für dichtespezifische Launcher-Symbole enthalten sind. Diese res/mipmap-Ordner ersetzen die res/drawable-Ordner für Launcher-Symbole.
    • Die Launcher-Symbole wurden aktualisiert und an das Aussehen von Material Design angepasst. Außerdem wurde das Launcher-Symbol xxxhdpi hinzugefügt.
    • Lint-Prüfungen auf Regions- und Sprachkombinationen, Launcher-Symbole, Ressourcennamen und andere häufige Codeprobleme wurden hinzugefügt und verbessert.
    • Unterstützung für Best Current Practice (BCP)-Sprach-Tag 47 wurde hinzugefügt.

    Android Studio Version 1.0.1 (Dezember 2014)

    Verschiedene Fehlerbehebungen und Verbesserungen:

    • Das Problem mit der Sperre von AVD Manager- und device.xml-Dateien wurde behoben.
    • Das Emulatorprotokoll wurde auf Windows-Systemen korrigiert.
    • Es wurde ein Problem beim Erstellen von AVDs behoben, bei dem Android Studio und Android SDK auf verschiedenen Laufwerken auf Windows-Systemen installiert waren.
    • Die Standard-Update-Version für neue Downloads wird auf Stabil festgelegt. Wenn Sie die Android Studio-Version 1.0.0 installiert haben und an produktionsreife stabile Versionsupdates interessiert sind, wechseln Sie zu Datei > Einstellungen > Updates, um zur Update-Version Stabil zu wechseln.

    Android Studio Version 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)

    Android Wear-Projekte werden jetzt unterstützt.

    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 (Okt. 2013)

    Android Studio Version 0.2.x (Juli 2013)

    • Bei den neuesten Änderungen der IntelliJ-Codebasis zusammengeführt. Hierzu zählen Korrekturen für Probleme, die von Studio-Nutzern gemeldet wurden, wie etwa Änderungen an den Schriftgrößen und dem Rendering von Schriftarten unter Linux.
    • Aktualisierung des Android Gradle-Plug-ins auf Version 0.5.0.

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

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

      • Das IDE-Modell enthält jetzt die Ausgabedatei auch dann, wenn sie über DSL angepasst wurde. Außerdem wurde in DSL korrigiert, die Ausgabedatei für das Variantenobjekt abzurufen/festzulegen, sodass variant.packageApplication or variant.zipAlign nicht verwendet werden muss.
      • Die Abhängigkeitsauflösung wurde behoben, sodass die Kombination aus (Standardkonfiguration, Build-Typen, Geschmacksrichtungen) zusammen und nicht separat aufgelöst wurde.
      • Die Abhängigkeit für Tests des Bibliotheksprojekts wurde behoben, sodass alle Abhängigkeiten der Bibliothek selbst korrekt einbezogen wurden.
      • Der Fall, dass zwei Abhängigkeiten denselben Blattnamen haben, wurde behoben.
      • Ein Problem wurde behoben, bei dem die Proguard-Regel-Datei nicht auf Flavor-Varianten angewendet werden konnte.

      Alle Versionshinweise zum Gradle-Plug-in sind hier verfügbar: http://tools.android.com/tech-docs/new-build-system.

    • Gradle-Fehler von „aapt“ verweisen nicht mehr auf zusammengeführte Ausgabedateien im „build/“-Ordner, sondern auf die tatsächlichen Speicherorte der Quelle.
    • Parallele Builds. Es ist jetzt möglich, die parallelen Builds von Gradle zu verwenden. Beachten Sie, dass parallele Builds sich in der „Inkubation“ befinden (siehe Gradle-Dokumentation). Diese Funktion ist standardmäßig deaktiviert. Um sie zu aktivieren, wechseln Sie zu Einstellungen > Compiler und klicken Sie das Kästchen Unabhängige Module parallel kompilieren an.
    • Wir arbeiten außerdem an dem neuen Ressourcen-Repository, das für das Layout-Rendering, das Falten von Ressourcen im Editor und mehr verwendet wird:
      • Grundlegende Unterstützung von .aar-Bibliotheksabhängigkeiten (z.B. Verwendung einer Bibliothek ohne lokale Kopie der Quellen). Funktioniert immer noch nicht für die Validierung der XML-Ressourcen und die Navigation in Quelleditoren.
      • Zykluserkennung in Ressourcenreferenzen.
      • In der Schnelldokumentation (F1), in der alle Übersetzungen des Strings unter dem Caret-Zeichen zu sehen sind, werden jetzt auch alle Ressourcen-Overlays aus den verschiedenen Gradle-Varianten und Build-Typen sowie aus Bibliotheken angezeigt. Sie werden in umgekehrter Reihenfolge der Ressourcen-Overlays aufgelistet, wobei die maskierten Versionen des Strings durchgestrichen sind.
      • Fehlerkorrekturen, um die zusammengeführten Ressourcen zu aktualisieren, wenn sich die Modulabhängigkeiten ändern.
      • Fehlerkorrekturen für das XML-Rendering zur korrekten Verarbeitung von Zeichenentitätsdeklarationen sowie XML- und Unicode-Escape-Zeichen.
    • Screenshot-Unterstützung für die Fenster „Layoutvorschau“ und „Layouteditor“ speichern.
    • Fehlerkorrekturen in Vorlagen.
    • Fehlerkorrekturen für Lint.
    • Verschiedene Fehlerbehebungen für Absturzberichte. Vielen Dank und weiterhin Absturzberichte!

    Android Studio Version 0.1.x (Mai 2013)

    • Verschiedene Fehlerkorrekturen, darunter eine Korrektur eines häufigen Windows-Installationsproblems.

    Ältere Versionen des Android-Gradle-Plug-ins

    3.6.0 (Februar 2020)

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

    Neue Funktionen

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

    Bindung ansehen

    Eine Ansichtsbindung bietet Sicherheit bei der Kompilierungszeit, wenn in Ihrem Code auf Ansichten verwiesen wird. Sie können jetzt findViewById() durch die automatisch generierte Bindungsklassenreferenz ersetzen. Fügen Sie der Datei build.gradle jedes Moduls Folgendes hinzu, um mit der Ansichtsbindung zu beginnen:

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

    Weitere Informationen finden Sie in der Dokumentation zur Ansichtsbindung.

    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 eine Komponente für jedes Build-Variantenartefakt in Ihrer App oder Ihrem Bibliotheksmodul. Damit können Sie eine Publikation für ein Maven-Repository anpassen.

    Weitere Informationen findest du auf der Seite zur Verwendung des Maven Publish-Plug-ins.

    Neues Standardtool für die Paketerstellung

    Beim Erstellen der Debug-Version Ihrer App verwendet das Plug-in ein neues Paketerstellungstool namens zipflinger, um Ihr APK zu erstellen. Dieses neue Tool sollte die Build-Geschwindigkeit verbessern. Wenn das neue Paketerstellungstool nicht wie erwartet funktioniert, melde den Fehler. Du kannst zum alten Paketerstellungstool zurückkehren. Füge dazu Folgendes in die Datei gradle.properties ein:

            android.useNewApkCreator=false
          
    Attribution für native Builds

    Sie können jetzt bestimmen, wie lange Clang zum Erstellen und Verknüpfen der einzelnen C-/C++-Dateien in Ihrem Projekt benötigt. Gradle kann ein Chrome-Trace ausgeben, das Zeitstempel für diese Compiler-Ereignisse enthält, damit Sie die für die Erstellung Ihres Projekts erforderliche Zeit besser nachvollziehen können. So geben Sie diese Build-Attributionsdatei aus:

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

      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 Load (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 des nativen Builds werden oben im Viewer angezeigt:

    Nativer Build-Attributions-Trace in Chrome

    Änderungen des Verhaltens

    Wenn Sie diese Version des Plug-ins verwenden, kann es zu folgenden Verhaltensänderungen kommen.

    Native Bibliotheken, die standardmäßig unkomprimiert verpackt sind

    Wenn Sie Ihre Anwendung erstellen, setzt das Plug-in extractNativeLibs jetzt standardmäßig auf "false". Das heißt, Ihre nativen Bibliotheken sind auf der Seite ausgerichtet und unkomprimiert gepackt. Dies führt zwar zu einer größeren Uploadgröße, aber Ihre Nutzer profitieren von folgenden Vorteilen:

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

    Wenn Sie möchten, dass das Android-Gradle-Plug-in stattdessen komprimierte native Bibliotheken verpackt, 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 im Versionshinweis Mit DSL komprimierte native Bibliotheken verpacken.

    NDK-Standardversion

    Wenn Sie mehrere Versionen des NDK herunterladen, wählt das Android-Gradle-Plug-in jetzt eine Standardversion zum Kompilieren Ihrer Quellcodedateien aus. Zuvor wurde vom Plug-in die zuletzt heruntergeladene Version des NDK ausgewählt. Verwenden Sie das Attribut android.ndkVersion in der Datei build.gradle des Moduls, um den vom Plug-in ausgewählten Standard zu überschreiben.

    Vereinfachte Generierung von R-Klassen

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

    • Da der Compiler R-Klassen mit vorgelagerten Modulabhängigkeiten teilt, ist es wichtig, dass jedes Modul in Ihrem Projekt einen eindeutigen Paketnamen verwendet.
    • Die Sichtbarkeit der R-Klasse einer Bibliothek für andere Projektabhängigkeiten wird durch die Konfiguration bestimmt, die verwendet wird, um die Bibliothek als Abhängigkeit einzuschließen. Wenn Bibliothek A beispielsweise Bibliothek B als „api“-Abhängigkeit enthält, haben Bibliothek A und andere Bibliotheken, die von Bibliothek A abhängig sind, 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 Abhängigkeitskonfiguration implementation verwendet. Weitere Informationen finden Sie unter Abhängigkeitskonfigurationen.
    Ressourcen entfernen, die aus der Standardkonfiguration fehlen

    Wenn du bei Bibliotheksmodulen eine Ressource für eine Sprache einfügst, die nicht im Standardsatz von Ressourcen enthalten ist, z. B. hello_world als String-Ressource in /values-es/strings.xml, aber nicht in /values/strings.xml definiert ist, ist diese Ressource beim Kompilieren des Projekts nicht mehr im Android-Gradle-Plug-in enthalten. Diese Verhaltensänderung sollte zu weniger Resource Not Found-Laufzeitausnahmen und zu einer verbesserten Build-Geschwindigkeit führen.

    D8 respektiert jetzt die Aufbewahrungsrichtlinie CLASS für Annotationen

    Beim Kompilieren Ihrer Anwendung berücksichtigt D8 jetzt, wenn Annotationen eine CLASS-Aufbewahrungsrichtlinie anwenden, und diese Annotationen sind zur Laufzeit nicht mehr verfügbar. Dieses Verhalten tritt auch auf, wenn das Ziel-SDK der App auf API-Level 23 gesetzt wird, was bisher während der Laufzeit Zugriff auf diese Annotationen ermöglichte, wenn deine App mit älteren Versionen des Android-Gradle-Plug-ins und D8 kompiliert wurde.

    Sonstige Verhaltensänderungen
    • Bei aaptOptions.noCompress wird die Groß-/Kleinschreibung nicht mehr auf allen Plattformen (sowohl für APK als auch Bundles) berücksichtigt und Pfade, in denen Großbuchstaben verwendet werden, berücksichtigt.
    • Die Datenbindung ist jetzt standardmäßig inkrementell. Weitere Informationen finden Sie unter Problem #110061530.

    • Alle Einheitentests, einschließlich Roboelektrischer Einheitentests, 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-Einheitentests 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, während der parallele Ausführungsmodus in 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

    Android Lint kann bei einigen Projekten aufgrund einer Regression in der Parsing-Infrastruktur viel länger dauern, was die Berechnung abgeleiteter Typen für Lambdas in bestimmten Codekonstrukten verlangsamt.

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

    Fehlende Manifestklasse {:#agp-missing-manifest}

    Wenn deine App im Manifest benutzerdefinierte Berechtigungen definiert, generiert das Android-Gradle-Plug-in normalerweise eine Manifest.java-Klasse, die deine benutzerdefinierten Berechtigungen als Stringkonstanten enthält. Das Plug-in verpackt diese Klasse mit Ihrer App, sodass Sie diese Berechtigungen während der Laufzeit einfacher referenzieren können.

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

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

    • Definieren Sie Ihre eigenen Konstanten, wie unten dargestellt:

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

    3.5.0 (August 2019)

    Das Android-Gradle-Plug-in 3.5.0 ist zusammen mit Android Studio 3.5 eine Hauptversion und das Ergebnis von Project Marble. Dieses Projekt dient der Verbesserung von drei Hauptbereichen der Android-Entwicklertools: Systemzustand, Feature-Optimierung und Fehlerbehebung. Schwerpunkt dieses Updates war die Verbesserung der Projekt-Build-Geschwindigkeit.

    Informationen zu diesen und anderen Project Marble-Updates findest du im Blogpost für Android-Entwickler oder in den Abschnitten unten.

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

    3.5.4 (Juli 2020)

    Dieses kleinere Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und -funktionen für die Paketsichtbarkeit in Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zu 4.0.1.

    3.5.3 (Dezember 2019)

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

    3.5.2 (November 2019)

    Dieses kleine Update unterstützt Android Studio 3.5.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste wichtiger Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Blog „Release Updates“.

    3.5.1 (Oktober 2019)

    Dieses kleine Update unterstützt Android Studio 3.5.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste wichtiger Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Blog „Release Updates“.

    Inkrementelle Anmerkungsverarbeitung

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

    Darüber hinaus unterstützen KAPT 1.3.30 und höher auch inkrementelle Annotationsprozessoren, die Sie aktivieren können, indem Sie kapt.incremental.apt=true in die Datei gradle.properties aufnehmen.

    Cache-fähige Einheitentests

    Wenn Sie Unittests zur Verwendung von Android-Ressourcen, -Assets und -Manifesten aktivieren, indem Sie includeAndroidResources auf true setzen, generiert das Android-Gradle-Plug-in eine Testkonfigurationsdatei mit absoluten Pfaden, wodurch die Neufindbarkeit des Cache im Cache unterbrochen wird. Sie können das Plug-in anweisen, die Testkonfiguration stattdessen mit relativen Pfaden zu generieren. Dadurch kann die Aufgabe AndroidUnitTest vollständig im Cache gespeichert werden. Dazu nehmen Sie Folgendes in die gradle.properties-Datei auf:

          android.testConfig.useRelativePath = true
        

    Bekannte Probleme

    • Wenn Sie das Kotlin-Gradle-Plug-in 1.3.31 oder niedriger 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()'.
                
              

      Um dieses Problem zu beheben, führen Sie ein Upgrade des Plug-ins auf Version 1.3.40 oder höher durch.

    3.4.0 (April 2019)

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

    3.4.3 (Juli 2020)

    Dieses kleinere Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und -funktionen für die Paketsichtbarkeit in Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zu 4.0.1.

    3.4.2 (Juli 2019)

    Dieses kleine Update unterstützt Android Studio 3.4.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste wichtiger Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Blog „Release Updates“.

    3.4.1 (Mai 2019)

    Dieses kleine Update unterstützt Android Studio 3.4.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste wichtiger Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Blog „Release Updates“.

    Neue Funktionen

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

      • lintChecks: Dies ist eine vorhandene Konfiguration, die Sie für Lint-Prüfungen verwenden sollten, die nur ausgeführt werden sollen, wenn Ihr Projekt lokal erstellt wird. Wenn Sie zuvor die Abhängigkeitskonfiguration lintChecks verwendet haben, um Lint-Prüfungen in das veröffentlichte AAE aufzunehmen, müssen Sie diese Abhängigkeiten migrieren, um stattdessen die neue lintPublish-Konfiguration zu verwenden, die unten beschrieben wird.
      • lintPublish: Verwenden Sie diese neue Konfiguration in Bibliotheksprojekten für Lint-Prüfungen, die Sie in das veröffentlichte AAE aufnehmen möchten (siehe unten). Das bedeutet, dass Projekte, die Ihre Bibliothek nutzen, diese Lint-Prüfungen ebenfalls anwenden.

      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 sollten sich beim Erstellen und Signieren von Paketen und Signaturen insgesamt Verbesserungen bei der Build-Geschwindigkeit ergeben. Wenn Sie im Zusammenhang mit diesen Aufgaben einen Leistungsabfall feststellen, melden Sie den Fehler.

    Änderungen des Verhaltens

    • Warnung zur Einstellung des Feature-Plug-ins für Android Instant Apps:Wenn Sie noch immer das com.android.feature-Plug-in zum Erstellen Ihrer Instant App verwenden, wird vom Android Gradle-Plug-in 3.4.0 eine Einstellungswarnung ausgegeben. Damit du deine Instant App auch in zukünftigen Versionen des Plug-ins erstellen kannst, solltest du deine Instant App zum Plug-in für dynamische Funktionen migrieren. Dadurch kannst du sowohl deine installierte App als auch deine Instant App über ein einziges Android App Bundle veröffentlichen.

    • Standardmäßig aktiviert:R8 integriert Entsugarieren, Verkleinern, Verschleieren, Optimieren und Dexieren in einem Schritt, was zu deutlichen Verbesserungen der Build-Leistung führt. R8 wurde im Android-Gradle-Plug-in 3.3.0 eingeführt und ist jetzt standardmäßig für App- und Android-Bibliotheksprojekte mit Plug-in 3.4.0 und höher aktiviert.

    Die folgende Abbildung bietet einen allgemeinen Überblick über den Kompilierungsprozess vor der Einführung von R8.

    Vor R8 war ProGuard ein anderer Schritt zur Kompilierung als Dexing und Entzugaren.

    Mit R8 werden nun Entsugaren, Schrumpfen, Verschleieren, Optimieren und Dexing (D8) in einem Schritt abgeschlossen, wie unten dargestellt.

    Bei R8 werden Entsugaren, Verkleinern, Verschleierung, Optimierung und Dexing in einem einzigen Kompilierungsschritt ausgeführt.

    Beachten Sie, dass R8 so konzipiert ist, dass es mit Ihren vorhandenen ProGuard-Regeln funktioniert. Sie müssen also wahrscheinlich keine Maßnahmen ergreifen, um von R8 zu profitieren. Da es sich um eine andere Technologie als ProGuard handelt, die speziell für Android-Projekte entwickelt wurde, kann eine Verkleinerung und Optimierung dazu führen, dass Code entfernt wird, den ProGuard möglicherweise nicht hat. In diesem unwahrscheinlichen Fall müssen Sie also möglicherweise zusätzliche Regeln hinzufügen, um diesen Code in der Build-Ausgabe beizubehalten.

    Wenn bei der Verwendung von R8 Probleme auftreten, lesen Sie die FAQ zur R8-Kompatibilität, um zu prüfen, ob es eine Lösung für Ihr Problem gibt. Wenn keine Lösung dokumentiert ist, melden Sie einen Fehler. Sie können R8 deaktivieren, indem Sie der Datei gradle.properties 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 Build-Typ useProguard auf false in der Datei build.gradle Ihres App-Moduls festlegen, verwendet das Android-Gradle-Plug-in R8, um den Code Ihrer App für diesen Build-Typ zu verkleinern, unabhängig davon, ob Sie R8 in der gradle.properties-Datei Ihres Projekts deaktivieren.

    • ndkCompile wurde verworfen: Wenn Sie versuchen, Ihre nativen Bibliotheken mit ndkBuild zu kompilieren, tritt jetzt ein Build-Fehler auf. Sie sollten stattdessen entweder CMake oder ndk-build verwenden, um Ihrem Projekt C- und C++-Code hinzuzufügen.

    Bekannte Probleme

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

                android.uniquePackageNames = true
                
              

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

    3.3.0 (Januar 2019)

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

    3.3.3 (Juli 2020)

    Dieses kleinere Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und -funktionen für die Paketsichtbarkeit in Android 11.

    Weitere Informationen finden Sie in den Versionshinweisen zu 4.0.1.

    3.3.2 (März 2019)

    Dieses kleine Update unterstützt Android Studio 3.3.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste wichtiger Fehlerkorrekturen finden Sie im zugehörigen Beitrag im Blog „Release Updates“.

    3.3.1 (Februar 2019)

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

    Neue Funktionen

    • Verbesserte Synchronisierung von Klassenpfaden:Beim Auflösen von Abhängigkeiten von Laufzeit- und Kompilierungszeitklassenpfaden versucht das Android-Gradle-Plug-in, bestimmte nachgelagerte Versionskonflikte für Abhängigkeiten zu beheben, die über mehrere Klassenpfade hinweg auftreten.

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

      Wenn der Laufzeitklassenpfad jedoch Bibliothek A Version 1.0 enthält und die Kompilierung Bibliothek A Version 2.0 enthält, führt das Plug-in kein Downgrade der Abhängigkeit vom Kompilierungsklassenpfad auf Bibliothek A Version 1.0 durch und Sie erhalten eine Fehlermeldung. Weitere Informationen finden Sie unter Konflikte zwischen Klassenpfaden beheben.

    • Verbesserte inkrementelle Java-Kompilierung bei Verwendung von Annotationsprozessoren: Dieses Update verringert die Build-Zeit, da die Unterstützung der inkrementellen Java-Kompilierung bei Verwendung von Annotationsprozessoren verbessert wird.

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

      • Für Projekte mit Kapt (die meisten nur Kotlin-basierten Projekte und Kotlin-Java-Hybridprojekte): Die inkrementelle Java-Kompilierung ist aktiviert, auch wenn Sie Datenbindung oder das Retro-Lambda-Plug-in verwenden. Die Anmerkungsverarbeitung durch die Kapt-Aufgabe erfolgt noch nicht inkrementell.

      • Für Projekte, die nicht Kapt verwenden (nur Java-Projekte): Wenn die von Ihnen verwendeten Annotationsprozessoren die inkrementelle Annotationsverarbeitung unterstützen, ist die inkrementelle Java-Kompilierung standardmäßig aktiviert. Informationen zum Monitoring der inkrementellen Akzeptanz von Annotationsprozessern finden Sie unter Gradle-Problem 5277.

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

        android.enableSeparateAnnotationProcessing=true
                    

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

    • Bessere Informationen zur Fehlerbehebung bei Verwendung einer veralteten API:Wenn das Plug-in erkennt, dass Sie eine nicht mehr unterstützte API verwenden, kann es jetzt detailliertere Informationen liefern, mit denen Sie feststellen können, 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 einfügen:

                android.debug.obsoleteApi=true
              

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

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

    Änderungen des Verhaltens

    • Konfiguration von Lazy Tasks:Im Plug-in wird jetzt die neue Taskerstellungs-API von Gradle verwendet. So wird das Initialisieren und Konfigurieren von Aufgaben, die für den Abschluss des aktuellen Builds nicht erforderlich sind (bzw. Aufgaben, die nicht in der Grafik der Ausführungsaufgaben enthalten sind) erforderlich. Wenn Sie beispielsweise mehrere Build-Varianten haben, z. B. „Release-“ und „Debug“-Build-Varianten, und eine Debug-Version Ihrer App erstellen, werden mit dem Plug-in keine Aufgaben für die Release-Version Ihrer App initialisiert und konfiguriert.

      Der Aufruf bestimmter älterer Methoden in der Variants API, z. B. variant.getJavaCompile(), kann die Aufgabenkonfiguration weiterhin erzwingen. Damit Ihr Build für die Konfiguration von Lazy Tasks 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 sich an die neue Task-creation API von Gradle anpassen.

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

    • Schnellere Generierung von R-Klassen für Bibliotheksprojekte:Bisher hat das Android-Gradle-Plug-in für jede Abhängigkeiten Ihres Projekts eine R.java-Datei generiert und diese R-Klassen dann zusammen mit den anderen Klassen Ihrer App kompiliert. Das Plug-in generiert jetzt direkt eine JAR-Datei, die die kompilierte R-Klasse Ihrer Anwendung enthält, ohne dass zuerst R.java-Zwischenklassen erstellt werden. Durch diese Optimierung kann die Build-Leistung für Projekte, die viele Bibliotheksunterprojekte und Abhängigkeiten enthalten, erheblich verbessert und die Indexierungsgeschwindigkeit in Android Studio verbessert.

    • Beim Erstellen eines Android App Bundles enthalten APKs, die auf Android 6.0 (API-Level 23) oder höher ausgerichtet sind, standardmäßig nicht komprimierte Versionen deiner nativen Bibliotheken. Durch diese Optimierung muss das Gerät keine Kopie der Bibliothek erstellen. Dadurch verringert sich die Größe Ihrer Anwendung auf dem Laufwerk. 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 für einige Plug-ins von Drittanbietern eine Mindestversion.

    • Projektsynchronisierung mit einer Variante: Das Synchronisieren Ihres Projekts mit Ihrer Build-Konfiguration ist ein wichtiger Schritt, damit Android Studio verstehen kann, wie Ihr Projekt strukturiert ist. Dieser Vorgang kann bei großen Projekten jedoch zeitaufwändig sein. Wenn in Ihrem Projekt mehrere Build-Varianten verwendet werden, können Sie die Projektsynchronisierung jetzt optimieren, indem Sie sie auf die aktuell ausgewählte Variante beschränken.

      Sie 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 von der IDE aufgefordert, diese Optimierung beim Synchronisieren Ihres Projekts zu aktivieren. Die Optimierung ist außerdem bei neuen Projekten standardmäßig aktiviert.

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

      Hinweis: Diese Optimierung unterstützt Projekte, die die Sprachen Java und C++ sowie Kotlin enthalten, vollständig. Wenn die Optimierung für Projekte mit Kotlin-Inhalten aktiviert wird, verwendet die Gradle-Synchronisierung intern wieder vollständige Varianten.

    • Automatisches Herunterladen fehlender SDK-Pakete: Diese Funktion wurde erweitert, um NDK zu unterstützen. Weitere Informationen findest du unter Fehlende Pakete mit Gradle automatisch herunterladen.

    Fehlerkorrekturen

    • Das Android-Gradle-Plug-in 3.3.0 behebt die folgenden Probleme:

      • Der Build-Prozess, bei dem android.support.v8.renderscript.RenderScript anstelle der AndroidX-Version aufgerufen wird, obwohl Jetifier aktiviert ist
      • Konflikte aufgrund von androidx-rs.jar, einschließlich statisch gebündelter annotation.AnyRes
      • Wenn du RenderScript verwendest, musst du die Build-Tools-Version nicht mehr manuell in deinen 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 für die SDK-Build-Tools mehr angeben. Das Android-Gradle-Plug-in verwendet jetzt standardmäßig Version 28.0.3.

    Neue Funktionen

    • Unterstützung für die Entwicklung von Android App Bundles:Das App Bundle ist ein neues Uploadformat, das den gesamten kompilierten Code und die Ressourcen Ihrer App enthält. Dabei wird die APK-Erstellung aufgeschoben und im Google Play Store signiert. Du musst nicht mehr mehrere APKs erstellen, signieren und verwalten, und Nutzer erhalten kleinere Downloads, die für ihr Gerät optimiert sind. Weitere Informationen findest du unter Android App Bundles.

    • Unterstützung von verbesserten inkrementellen Build-Geschwindigkeiten bei Verwendung von Annotationsprozessoren: Die AnnotationProcessorOptions-DSL erweitert jetzt CommandLineArgumentProvider, sodass entweder Sie oder der Ersteller des Annotationsprozessors Argumente für den Prozessor mithilfe von inkrementellen Annotationen des Build-Attributtyps annotieren können. Die Verwendung dieser Annotationen verbessert die Korrektheit und Leistung von inkrementellen und im Cache gespeicherten sauberen Builds. Weitere Informationen finden Sie unter Argumente an Annotationsprozessoren übergeben.

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

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

      • android.enableJetifier:Wenn das Android-Plug-in auf true gesetzt ist, migriert es automatisch vorhandene Bibliotheken von Drittanbietern zur Verwendung von AndroidX. Dabei werden die Binärprogramme umgeschrieben. Wenn dieses Flag nicht angegeben ist, wird es vom Plug-in standardmäßig auf false gesetzt. Sie können dieses Flag nur auf true setzen, während android.useAndroidX ebenfalls auf true gesetzt ist. Andernfalls erhalten Sie einen Build-Fehler.

        Weitere Informationen finden Sie in der Übersicht zu AndroidX.

    • Neuer Code-Shrinker, R8: R8 ist ein neues Tool zum Verkleinern 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
              
              android.enableR8 = true
              

    Änderungen des Verhaltens

    • Das Dessugaren mit D8 ist jetzt standardmäßig aktiviert.

    • AAPT2 befindet sich jetzt im Maven-Repository von Google. Für die Verwendung von AAPT2 muss die google()-Abhängigkeit in Ihrer build.gradle-Datei vorhanden sein (siehe unten):

                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-Dateien sind jetzt standardmäßig aktiviert. In früheren Versionen von Android Studio wurde natives Multidex aktiviert, wenn die Debug-Version einer App auf einem Gerät mit Android API-Level 21 oder höher bereitgestellt wurde. Unabhängig davon, ob Sie die Bereitstellung auf einem Gerät vornehmen oder ein APK für einen Release erstellen, aktiviert das Android-Gradle-Plug-in natives Multidex für alle Module, für die minSdkVersion=21 oder höher festgelegt ist.

    • 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).

    • Das Feature-Modul-Plug-in com.android.feature erzwingt jetzt die Verwendung von nur Buchstaben, Ziffern und Unterstrichen bei der Angabe eines Modulnamens. Wenn der Name des Feature-Moduls beispielsweise Bindestriche enthält, wird ein Build-Fehler ausgegeben. Dieses Verhalten entspricht dem des Plug-ins für dynamische Funktionen.

    Fehlerkorrekturen

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

    3.1.0 (März 2018)

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

    • Gradle 4.4 oder höher

      Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.

    • Build Tools 27.0.3 oder höher.

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

    Neuer DEX-Compiler, D8

    Standardmäßig verwendet Android Studio jetzt einen neuen DEX-Compiler namens D8. Bei der DEX-Kompilierung wird der .class-Bytecode in .dex-Bytecode für die Android Runtime (oder Dalvik bei älteren Android-Versionen) umgewandelt. Im Vergleich zum vorherigen Compiler DX kompiliert D8 schneller und gibt kleinere DEX-Dateien aus, bei gleicher oder besserer Laufzeitleistung der Anwendung.

    D8 sollte Ihren täglichen Workflow zur App-Entwicklung nicht verändern. Sollten jedoch Probleme mit dem neuen Compiler auftreten, melden Sie den 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, die Sprachfeatures für Java 8 verwenden, ist das inkrementelle Desugaring standardmäßig aktiviert. Sie können sie deaktivieren, indem Sie in der Datei gradle.properties Ihres Projekts Folgendes angeben:

          android.enableIncrementalDesugaring=false.
        

    Vorschaunutzer: Wenn Sie bereits eine Vorschauversion von D8 verwenden, wird diese jetzt anhand von Bibliotheken kompiliert, die in den SDK-Build-Tools enthalten sind – nicht aus dem JDK. Wenn Sie also auf APIs zugreifen, die zwar im JDK, aber nicht in den Bibliotheken der SDK-Build-Tools vorhanden sind, wird ein Kompilierungsfehler ausgegeben.

    Änderungen des Verhaltens

    • Wenn Sie mehrere APKs erstellen, die jeweils auf eine andere 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.

    • Bei der Übergabe von "auto" an resConfig werden nicht mehr automatisch Stringressourcen für Ihr APK ausgewählt. Wenn Sie "auto" weiterhin verwenden, packt das Plug-in alle Stringressourcen, die Ihre Anwendung und die zugehörigen Abhängigkeiten bereitstellen. Sie sollten stattdessen alle Sprachen angeben, die das Plug-in in Ihr APK verpacken soll.

    • Da lokale Module nicht vom Test-APK Ihrer App abhängig sein können, führt das Hinzufügen von Abhängigkeiten zu Ihren instrumentierten Tests mithilfe der androidTestApi-Konfiguration anstelle von androidTestImplementation dazu, dass Gradle die folgende Warnung ausgibt:

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

    Fehlerkorrekturen

    • Es wurde ein Problem behoben, bei dem Android Studio Abhängigkeiten in zusammengesetzten Builds nicht richtig erkennt.
    • Es wurde ein Problem behoben, bei dem ein Projektsynchronisierungsfehler auftritt, wenn das Android-Plug-in in einem einzelnen Build mehrmals geladen wird, z. B. wenn mehrere Unterprojekte jeweils das Android-Plug-in in ihren Buildscript-Klassenpfad enthalten.

    3.0.0 (Oktober 2017)

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

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

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

    Einige dieser Änderungen beeinträchtigen vorhandene Builds. Sie sollten daher den Aufwand der Migration Ihres Projekts berücksichtigen, bevor Sie das neue Plug-in verwenden.

    Wenn die oben beschriebenen Leistungsverbesserungen nicht auftreten, melden Sie den Fehler und fügen Sie mit dem Gradle Profiler einen Trace Ihres Builds 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 für die Build-Tools mehr angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion. Jetzt können Sie die Eigenschaft android.buildToolsVersion entfernen.

    3.0.1 (November 2017)

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

    Optimierungen

    • Bessere Parallelität für Projekte mit mehreren Modulen durch eine detailgenaue Aufgabengrafik.
    • Wenn Änderungen an einer Abhängigkeit vorgenommen werden, führt Gradle schnellere Builds aus, da Module, die keinen Zugriff auf die API der Abhängigkeit haben, nicht neu kompiliert werden. Sie sollten einschränken, welche Abhängigkeiten ihre APIs auf andere Module übertragen. Verwenden Sie dazu die neuen Abhängigkeitskonfigurationen von Gradle: implementation, api, compileOnly und runtimeOnly.
    • Schnellere inkrementelle Builds durch Dexing pro Klasse. Jede Klasse wird jetzt in separate DEX-Dateien kompiliert und nur die geänderten Klassen werden neu dexiert. Außerdem ist mit verbesserten Build-Geschwindigkeiten für Anwendungen zu rechnen, in denen minSdkVersion auf 20 oder weniger festgelegt wird und Legacy-Multi-DEX verwendet wird.
    • Verbesserte Build-Geschwindigkeiten durch Optimierung bestimmter Aufgaben, um im Cache gespeicherte Ausgaben zu verwenden. Damit Sie von dieser Optimierung profitieren können, müssen Sie zuerst den Gradle-Build-Cache aktivieren.
    • Die inkrementelle Ressourcenverarbeitung mit AAPT2, das jetzt standardmäßig aktiviert ist, wurde verbessert. Wenn bei der Verwendung von AAPT2 Probleme auftreten, melden Sie den Fehler. Sie können AAPT2 auch deaktivieren, indem Sie android.enableAapt2=false in der Datei gradle.properties festlegen und den Gradle-Daemon neu starten. Dazu führen Sie ./gradlew --stop über die Befehlszeile aus.

    Neue Funktionen

    • Variantensensitives Abhängigkeitsmanagement: Wenn eine bestimmte Variante eines Moduls erstellt wird, gleicht das Plug-in jetzt automatisch Varianten der Modulabhängigkeiten der lokalen Bibliothek der Variante des Moduls ab, das Sie erstellen.
    • Enthält ein neues Featuremodul-Plug-in zur Unterstützung von Android Instant Apps und dem Android Instant Apps SDK, das Sie mit dem 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 Features.
    • Integrierte Unterstützung für die Verwendung bestimmter Java 8-Sprachfunktionen und Java 8-Bibliotheken. Jack ist jetzt veraltet und wird nicht mehr benötigt. Deaktivieren Sie zuerst Jack, um die verbesserte Java 8-Unterstützung zu verwenden, die in die Standard-Toolchain integriert ist. Weitere Informationen finden Sie unter Sprachfeatures für Java 8 verwenden.
    • Unterstützung für die Ausführung von Tests mit Android Test Orchestrator wurde hinzugefügt. So können Sie jeden Test Ihrer App mit einem eigenen Aufruf der Instrumentierung ausführen. Da jeder Test in seiner eigenen Instrumentierungsinstanz ausgeführt wird, werden sich keine zwischen den Tests gemeinsamen Status auf der CPU oder im Arbeitsspeicher Ihres Geräts akkumulieren. Selbst wenn ein Test abstürzt, wird nur seine eigene Instrumentierungsinstanz deaktiviert, sodass die anderen Tests weiterhin ausgeführt werden.

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

      Groovig

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • Mit der neuen androidTestUtil-Abhängigkeitskonfiguration können Sie ein anderes Testhilfs-APK installieren, bevor Sie Ihre Instrumentierungstests wie Android Test Orchestrator ausführen:

      Groovig

              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 Einheitentests zu unterstützen, die Android-Ressourcen wie Roboelectric erfordern. Wenn Sie dieses Attribut auf true setzen, führt das Plug-in Ressourcen, Assets und Manifeste zusammen, bevor die Einheitentests ausgeführt werden. 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 zusammengeführten Asset-Verzeichnis.

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

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

      • android_merged_resources: der absolute Pfad zum zusammengeführten Ressourcenverzeichnis, das alle Ressourcen aus dem Modul und alle zugehörigen Abhängigkeiten enthält.

      • android_custom_package: der Paketname der endgültigen R-Klasse. Wird die App-ID dynamisch geändert, stimmt dieser Paketname möglicherweise nicht mit dem Attribut package im Manifest der App überein.

    • Unterstützung für Schriftarten als Ressourcen (neue Funktion in Android 8.0 (API-Level 26)).
    • Unterstützung sprachspezifischer 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:

      Groovig

              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 über 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 verpacken.

      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 Anwendungs- und Bibliotheksmodule können dann mithilfe der lintChecks-Konfiguration von Ihrem Lint-Projekt abhängig sein:

      Groovig

              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"))
              }
              

    Änderungen des Verhaltens

    • Das Android-Plug-in 3.0.0 entfernt bestimmte APIs und Ihr Build funktioniert nicht mehr, wenn Sie sie verwenden. Sie können beispielsweise nicht mehr die Variants API für den Zugriff auf outputFile()-Objekte oder processManifest.manifestOutputFile() verwenden, um die Manifestdatei für jede Variante abzurufen. Weitere Informationen finden Sie unter API-Änderungen.
    • Sie müssen für die Build-Tools keine Version mehr angeben. Deshalb können Sie das Attribut android.buildToolsVersion jetzt entfernen. Standardmäßig verwendet das Plug-in automatisch die mindestens erforderliche Build-Tool-Version für die Version des von Ihnen verwendeten Android-Plug-ins.
    • Sie aktivieren/deaktivieren jetzt die PNG-Bearbeitung im buildTypes-Block, wie unten dargestellt. Die PNG-Bearbeitung ist standardmäßig für alle Builds aktiviert, mit Ausnahme von Debug-Builds, da dies die Build-Zeit für Projekte erhöht, die viele PNG-Dateien enthalten. Um also die Build-Zeiten für andere Build-Typen zu verbessern, sollten Sie entweder die PNG-Bearbeitung deaktivieren oder Ihre Bilder in WebP konvertieren.

      Groovig

            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 Prozessorklassenpfad jetzt Annotationsprozessoren hinzufügen. Verwenden Sie dazu die Abhängigkeitskonfiguration annotationProcessor.
    • Die Verwendung des eingestellten ndkCompile ist jetzt stärker eingeschränkt. Sie sollten stattdessen entweder zu CMake oder ndk-build migrieren, um nativen Code zu kompilieren, den Sie in Ihr APK verpacken möchten. Weitere Informationen findest du unter Von ndkcompile migrieren.

    3.0.0 (Oktober 2017)

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

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

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

    Einige dieser Änderungen beeinträchtigen vorhandene Builds. Sie sollten daher den Aufwand der Migration Ihres Projekts berücksichtigen, bevor Sie das neue Plug-in verwenden.

    Wenn die oben beschriebenen Leistungsverbesserungen nicht auftreten, melden Sie den Fehler und fügen Sie mit dem Gradle Profiler einen Trace Ihres Builds 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 für die Build-Tools mehr angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion. Jetzt können Sie die Eigenschaft android.buildToolsVersion entfernen.

    3.0.1 (November 2017)

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

    Optimierungen

    • Bessere Parallelität für Projekte mit mehreren Modulen durch eine detailgenaue Aufgabengrafik.
    • Wenn Änderungen an einer Abhängigkeit vorgenommen werden, führt Gradle schnellere Builds aus, da Module, die keinen Zugriff auf die API der Abhängigkeit haben, nicht neu kompiliert werden. Sie sollten einschränken, welche Abhängigkeiten ihre APIs auf andere Module übertragen. Verwenden Sie dazu die neuen Abhängigkeitskonfigurationen von Gradle: implementation, api, compileOnly und runtimeOnly.
    • Schnellere inkrementelle Builds durch Dexing pro Klasse. Jede Klasse wird jetzt in separate DEX-Dateien kompiliert und nur die geänderten Klassen werden neu dexiert. Außerdem ist mit verbesserten Build-Geschwindigkeiten für Anwendungen zu rechnen, in denen minSdkVersion auf 20 oder weniger festgelegt wird und Legacy-Multi-DEX verwendet wird.
    • Verbesserte Build-Geschwindigkeiten durch Optimierung bestimmter Aufgaben, um im Cache gespeicherte Ausgaben zu verwenden. Damit Sie von dieser Optimierung profitieren können, müssen Sie zuerst den Gradle-Build-Cache aktivieren.
    • Die inkrementelle Ressourcenverarbeitung mit AAPT2, das jetzt standardmäßig aktiviert ist, wurde verbessert. Wenn bei der Verwendung von AAPT2 Probleme auftreten, melden Sie den Fehler. Sie können AAPT2 auch deaktivieren, indem Sie android.enableAapt2=false in der Datei gradle.properties festlegen und den Gradle-Daemon neu starten. Dazu führen Sie ./gradlew --stop über die Befehlszeile aus.

    Neue Funktionen

    • Variantensensitives Abhängigkeitsmanagement: Wenn eine bestimmte Variante eines Moduls erstellt wird, gleicht das Plug-in jetzt automatisch Varianten der Modulabhängigkeiten der lokalen Bibliothek der Variante des Moduls ab, das Sie erstellen.
    • Enthält ein neues Featuremodul-Plug-in zur Unterstützung von Android Instant Apps und dem Android Instant Apps SDK, das Sie mit dem 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 Features.
    • Integrierte Unterstützung für die Verwendung bestimmter Java 8-Sprachfunktionen und Java 8-Bibliotheken. Jack ist jetzt veraltet und wird nicht mehr benötigt. Deaktivieren Sie zuerst Jack, um die verbesserte Java 8-Unterstützung zu verwenden, die in die Standard-Toolchain integriert ist. Weitere Informationen finden Sie unter Sprachfeatures für Java 8 verwenden.
    • Unterstützung für die Ausführung von Tests mit Android Test Orchestrator wurde hinzugefügt. So können Sie jeden Test Ihrer App mit einem eigenen Aufruf der Instrumentierung ausführen. Da jeder Test in seiner eigenen Instrumentierungsinstanz ausgeführt wird, werden sich keine zwischen den Tests gemeinsamen Status auf der CPU oder im Arbeitsspeicher Ihres Geräts akkumulieren. Selbst wenn ein Test abstürzt, wird nur seine eigene Instrumentierungsinstanz deaktiviert, sodass die anderen Tests weiterhin ausgeführt werden.

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

      Groovig

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • Mit der neuen androidTestUtil-Abhängigkeitskonfiguration können Sie ein anderes Testhilfs-APK installieren, bevor Sie Ihre Instrumentierungstests wie Android Test Orchestrator ausführen:

      Groovig

              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 Einheitentests zu unterstützen, die Android-Ressourcen wie Roboelectric erfordern. Wenn Sie dieses Attribut auf true setzen, führt das Plug-in Ressourcen, Assets und Manifeste zusammen, bevor die Einheitentests ausgeführt werden. 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 zusammengeführten Asset-Verzeichnis.

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

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

      • android_merged_resources: der absolute Pfad zum zusammengeführten Ressourcenverzeichnis, das alle Ressourcen aus dem Modul und alle zugehörigen Abhängigkeiten enthält.

      • android_custom_package: der Paketname der endgültigen R-Klasse. Wird die App-ID dynamisch geändert, stimmt dieser Paketname möglicherweise nicht mit dem Attribut package im Manifest der App überein.

    • Unterstützung für Schriftarten als Ressourcen (neue Funktion in Android 8.0 (API-Level 26)).
    • Unterstützung sprachspezifischer 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:

      Groovig

              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 über 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 verpacken.

      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 Anwendungs- und Bibliotheksmodule können dann mithilfe der lintChecks-Konfiguration von Ihrem Lint-Projekt abhängig sein:

      Groovig

              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"))
              }
              

    Änderungen des Verhaltens

    • Das Android-Plug-in 3.0.0 entfernt bestimmte APIs und Ihr Build funktioniert nicht mehr, wenn Sie sie verwenden. Sie können beispielsweise nicht mehr die Variants API für den Zugriff auf outputFile()-Objekte oder processManifest.manifestOutputFile() verwenden, um die Manifestdatei für jede Variante abzurufen. Weitere Informationen finden Sie unter API-Änderungen.
    • Sie müssen für die Build-Tools keine Version mehr angeben. Deshalb können Sie das Attribut android.buildToolsVersion jetzt entfernen. Standardmäßig verwendet das Plug-in automatisch die mindestens erforderliche Build-Tool-Version für die Version des von Ihnen verwendeten Android-Plug-ins.
    • Sie aktivieren/deaktivieren jetzt die PNG-Bearbeitung im buildTypes-Block, wie unten dargestellt. Die PNG-Bearbeitung ist standardmäßig für alle Builds aktiviert, mit Ausnahme von Debug-Builds, da dies die Build-Zeit für Projekte erhöht, die viele PNG-Dateien enthalten. Um also die Build-Zeiten für andere Build-Typen zu verbessern, sollten Sie entweder die PNG-Bearbeitung deaktivieren oder Ihre Bilder in WebP konvertieren.

      Groovig

            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 Prozessorklassenpfad jetzt Annotationsprozessoren hinzufügen. Verwenden Sie dazu die Abhängigkeitskonfiguration annotationProcessor.
    • Die Verwendung des eingestellten ndkCompile ist jetzt stärker eingeschränkt. Sie sollten stattdessen entweder zu CMake oder ndk-build migrieren, um nativen Code zu kompilieren, den Sie in Ihr APK verpacken möchten. Weitere Informationen findest du unter Von ndkcompile migrieren.

    2.3.0 (Februar 2017)

    2.3.3 (Juni 2017)

    Dies ist ein kleineres Update, das die Kompatibilität mit Android Studio 2.3.3 erhöht.

    2.3.2 (Mai 2017)

    Dies ist ein kleineres Update, das die Kompatibilität mit Android Studio 2.3.2 erhöht.

    2.3.1 (April 2017)

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

    Abhängigkeiten:
    Neu:
    • Verwendet Gradle 3.3, das Leistungsverbesserungen und neue Funktionen bietet. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
    • Cache erstellen: Speichert bestimmte Ausgaben, die vom Android-Plug-in beim Erstellen Ihres Projekts generiert werden (z. B. entpackte AARs und vorkonfigurierte Remote-Abhängigkeiten). Die bereinigten Builds werden bei Verwendung des Cache deutlich schneller erstellt, da das Build-System diese im Cache gespeicherten Dateien bei nachfolgenden Builds einfach wiederverwenden kann, anstatt sie neu zu erstellen. Projekte, die das Android-Plug-in 2.3.0 und höher verwenden, verwenden standardmäßig den Build-Cache. Weitere Informationen finden Sie unter Build-Geschwindigkeit mit Build-Cache verbessern.
    Änderungen:

    2.2.0 (September 2016)

    Abhängigkeiten:
    Neu:
    • Verwendet Gradle 2.14.1, die Leistungsverbesserungen und neue Funktionen enthält und eine Sicherheitslücke behebt, die eine lokale Rechteausweitung bei Verwendung des Gradle-Daemons ermöglicht. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
    • Mit der externalNativeBuild {}-DSL können Sie in Gradle jetzt Verknüpfungen zu Ihren nativen Quellen erstellen 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 unter Ihrem Projekt C- und C++-Code hinzufügen.
    • Wenn Sie einen Build über die Befehlszeile ausführen, versucht Gradle jetzt, alle fehlenden SDK-Komponenten oder Updates, von denen Ihr Projekt abhängig ist, automatisch herunterzuladen. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.
    • Mit einer neuen experimentellen Caching-Funktion kann Gradle die Build-Zeit verkürzen, indem die vorab dexierten Versionen der Bibliotheken vorab dexiert, gespeichert und wiederverwendet werden. Weitere Informationen zur Verwendung dieser experimentellen Funktion finden Sie in der Anleitung zum Erstellen von Cache.
    • Verbessert die Build-Leistung durch die Einführung einer neuen Standardpipeline für die Paketerstellung, die das Komprimierung, das Signieren und das zipaligning in einer Aufgabe übernimmt. Du kannst zu den älteren Pakettools zurückkehren, indem du android.useOldPackaging=true in die gradle.properties-Datei einfügst. Während der Verwendung des neuen Paketerstellungstools ist die Aufgabe zipalignDebug nicht verfügbar. Sie können jedoch selbst eines erstellen, indem Sie die Methode createZipAlignTask(String taskName, File inputFile, File outputFile) aufrufen.
    • Für die APK-Signatur wird jetzt neben der herkömmlichen JAR-Signatur das APK Signature Scheme v2 verwendet. Alle Android-Plattformen akzeptieren die resultierenden APKs. Jede Änderung an diesen APKs nach der Signatur macht ihre V2-Signaturen ungültig und verhindert die Installation auf einem Gerät. Zum Deaktivieren dieses Features fügen Sie der Datei build.gradle auf Modulebene Folgendes hinzu:

      Groovig

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

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • Bei Multidex-Builds können Sie jetzt mithilfe von ProGuard-Regeln festlegen, welche Klassen Gradle in die DEX-Hauptdatei Ihrer App kompilieren soll. Da das Android-System beim Starten der Anwendung zuerst die DEX-Hauptdatei lädt, können Sie bestimmte Klassen beim Start priorisieren, indem Sie sie in die DEX-Hauptdatei kompilieren. Nachdem Sie eine ProGuard-Konfigurationsdatei speziell für Ihre DEX-Hauptdatei 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 bereitstellt und keine Klassen für die DEX-Hauptdatei angibt.
    • Das Flag android:extractNativeLibs wird unterstützt, mit dem sich die Größe Ihrer App bei der Installation auf einem Gerät verringern kann. Wenn du dieses Flag im Element <application> deines App-Manifests auf false setzt, verpackt Gradle unkomprimierte und ausgerichtete Versionen deiner nativen Bibliotheken mit deinem APK. Dadurch wird verhindert, dass PackageManager deine nativen Bibliotheken während der Installation aus dem APK in das Dateisystem des Geräts kopiert. Außerdem werden Deltaaktualisierungen deiner App dadurch kleiner.
    • Du kannst jetzt versionNameSuffix und applicationIdSuffix für Produktaromen angeben. (Problem 59614)
    Änderungen:
    • getDefaultProguardFile gibt jetzt die standardmäßigen ProGuard-Dateien zurück, die vom Android-Plug-in für Gradle bereitgestellt werden, und verwendet nicht mehr die Dateien im Android SDK.
    • Verbesserte Jack-Compilerleistung und verbesserte Funktionen:
      • Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn testCoverageEnabled auf true gesetzt wird.
      • Verbesserte Unterstützung für Prozessoren für Anmerkungen. Annotationsprozessoren in Ihrem Klassenpfad, z. B. compile-Abhängigkeiten, werden automatisch auf den Build angewendet. Sie können auch einen Annotationsprozessor in Ihrem Build angeben und Argumente übergeben. Verwenden Sie dazu das DSL javaCompileOptions.annotationProcessorOptions {} in der Datei build.gradle auf Modulebene:

        Groovig

        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 bei der Kompilierung einen Annotationsprozessor anwenden möchten, ihn jedoch nicht in Ihr APK aufnehmen möchten, verwenden Sie den Abhängigkeitsbereich annotationProcessor:

        Groovig

        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
        }
            
      • Führen Sie folgenden Befehl über die Befehlszeile aus, um eine Liste der Parameter zu erhalten, die Sie festlegen können:

        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. Fügen Sie der Datei gradle.properties Folgendes hinzu, um die Daemon-Heap-Größe anzupassen:
        # This sets the daemon heap size to 1.5GB.
        org.gradle.jvmargs=-Xmx1536M
        

    2.1.0 (April 2016)

    2.1.3 (August 2016)

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

    Abhängigkeiten:
    Neu:
    • Unterstützung für die N-Entwicklervorschau, JDK 8 und Java 8-Sprachfunktionen mithilfe der Jack-Toolchain hinzugefügt. Weitere Informationen finden Sie im Leitfaden für die N-Vorschau.

      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 N Preview entwickeln und die unterstützten Java 8-Sprachfeatures nutzen möchten.

    • Die inkrementelle Java-Kompilierung wird jetzt standardmäßig unterstützt, um die Kompilierungszeit während der Entwicklung zu reduzieren. Dabei werden nur Teile der Quelle neu kompiliert, die sich geändert haben oder neu kompiliert werden müssen. Fügen Sie der Datei build.gradle auf Modulebene folgenden Code hinzu, um dieses Feature zu deaktivieren:

      Groovig

      android {
        ...
        compileOptions {
          incremental false
        }
      }
      

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
      
    • Die Dexierung während des Prozesses wird jetzt unterstützt, sodass der Dexing innerhalb des Build-Prozesses statt in einem separaten externen VM-Prozess ausgeführt wird. Dies beschleunigt nicht nur inkrementelle Builds, sondern auch vollständige Builds. Das Feature 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 Datei build.gradle auf Modulebene einen Wert für javaMaxHeapSize definiert haben, müssen Sie für org.gradle.jvmargs den Wert javaMaxHeapSize + 1.024 MB festlegen. Wenn Sie beispielsweise javaMaxHeapSize auf „2048m“ festgelegt haben, müssen Sie der Datei gradle.properties Ihres Projekts Folgendes hinzufügen:

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

      Um Dexing-in-Process zu deaktivieren, fügen Sie der Datei build.gradle auf Modulebene den folgenden Code hinzu:

      Groovig

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }
      

      Kotlin

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

    2.0.0 (April 2016)

    Abhängigkeiten:
    Neu:
    • Aktiviert Instant Run durch die Unterstützung der Einschleusung von Bytecode und das Senden von Code- und Ressourcenaktualisierungen an eine laufende App im Emulator oder auf einem physischen Gerät.
    • Zusätzliche Unterstützung für inkrementelle Builds, auch wenn die App nicht ausgeführt wird. Vollständige Build-Zeiten werden verkürzt, indem inkrementelle Änderungen über die Android Debug Bridge an das verbundene Gerät übertragen werden.
    • maxProcessCount wurde hinzugefügt, um zu steuern, wie viele Worker-DEX-Prozesse gleichzeitig erstellt werden können. Der folgende Code in der Datei build.gradle auf Modulebene legt die maximale Anzahl gleichzeitiger Prozesse auf 4 fest:

      Groovig

      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:
      

      Groovig

      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, verwendet die APK-Signatur SHA256.
    •   <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:
    • Es wurde ein Problem behoben, das doppelte AAR-Abhängigkeiten sowohl in der Test- als auch in der Haupt-Build-Konfiguration verursachte.

    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 integriert. Um es zu aktivieren, fügen Sie den folgenden Code in jede projektspezifische build.gradle-Datei ein, die das Plug-in verwendet:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • Eine neue Transform API wurde hinzugefügt, damit Plug-ins von Drittanbietern kompilierte .class-Dateien bearbeiten können, bevor sie in .dex-Dateien konvertiert werden. Die Transform API vereinfacht das Einfügen benutzerdefinierter Klassenmanipulationen und bietet mehr Flexibilität im Hinblick auf die Bearbeitung. Um eine Transformation in einen Build einzufügen, erstellen Sie eine neue Klasse, die eine der Transform-Schnittstellen implementiert, und registrieren Sie sie mit android.registerTransform(theTransform) oder android.registerTransform(theTransform, dependencies). Es ist nicht nötig, Aufgaben zu verbinden. Beachten Sie Folgendes zur Transform API:
      • Eine Transformation kann auf eines oder mehrere der folgenden Elemente angewendet werden: das aktuelle Projekt, Unterprojekte und externe Bibliotheken.
      • Eine Transformation muss global registriert sein, wodurch sie auf alle Varianten angewendet werden.
      • Bei der internen Codeverarbeitung über die Java Code Abdeckung Library (JaCoCo), ProGuard und MultiDex wird jetzt die Transform API verwendet. Das Java Android Compiler Kit (Jack) verwendet diese API jedoch nicht: nur der Codepfad javac/dx.
      • Gradle führt die Transformationen in dieser Reihenfolge aus: JaCoCo, Plug-ins von Drittanbietern, ProGuard. Die Ausführungsreihenfolge für Plug-ins von Drittanbietern entspricht der Reihenfolge, in der die Transformationen von den Drittanbieter-Plug-ins hinzugefügt werden. Entwickler von Drittanbieter-Plug-ins können die Ausführungsreihenfolge der Transformationen nicht über eine API steuern.
    • Der Getter dex aus der Klasse ApplicationVariant wurde verworfen. Sie können nicht mehr über die Variant API auf die Aufgabe Dex zugreifen, da dies jetzt über eine Transformation erfolgt. Es gibt derzeit keinen Ersatz für die Steuerung des DEX-Prozesses.
    • Die inkrementelle Unterstützung für Assets wurde behoben.
    • Die MultiDex-Unterstützung wurde durch die Bereitstellung für Testprojekte verbessert. Tests haben jetzt automatisch die Abhängigkeit com.android.support:multidex-instrumentation.
    • Es wurde die Möglichkeit hinzugefügt, einen Gradle-Build ordnungsgemäß auszuführen und die zugrunde liegende Fehlerursache zu melden, wenn der Gradle-Build asynchrone Aufgaben aufruft und im Worker-Prozess ein Fehler auftritt.
    • Unterstützung für die Konfiguration einer bestimmten Binärschnittstelle (Application Binary Interface, ABI) in Varianten, die mehrere ABIs enthalten, wurde hinzugefügt.
    • Eine durch Kommas getrennte Liste von Geräteseriennummern für die Umgebungsvariable ANDROID_SERIAL beim Installieren oder Ausführen von Tests wird jetzt unterstützt.
    • Ein Installationsfehler auf Geräten mit Android 5.0 (API-Level 20) und höher, bei denen der APK-Name ein Leerzeichen enthält, wurde behoben.
    • Verschiedene Probleme im Zusammenhang mit der Fehlerausgabe des Android Asset Packaging Tool (AAPT) wurden behoben.
    • Zusätzliche Unterstützung für die inkrementelle JaCoCo-Instrumentierung für schnellere inkrementelle Builds. Das Android-Plug-in für Gradle ruft jetzt den JaCoCo-Instrumenter direkt auf. Wenn Sie eine neuere Version des JaCoCo-Instrumenters erzwingen möchten, müssen Sie sie als Build-Skript-Abhängigkeit hinzufügen.
    • JaCoCo-Unterstützung wurde korrigiert, sodass Dateien ignoriert werden, die keine Klassen sind.
    • Für die Abwärtskompatibilität werden jetzt auch Vektor-Drawable-Unterstützung für die Erzeugung von PNGs zum Build-Zeitpunkt hinzugefügt. Das Android-Plug-in für Gradle generiert PNGs für jedes Vektor-Drawable, das in einem Ressourcenverzeichnis gefunden wird und in dem im App-Manifest keine API-Version oder ein android:minSdkVersion-Attribut von 20 oder niedriger im <uses-sdk>-Element angegeben ist. Sie können die PNG-Dichte mit der Eigenschaft generatedDensities im Abschnitt defaultConfig oder productFlavor einer build.gradle-Datei festlegen.
    • Die gemeinsame Nutzung der Mockable-android.jar, die vom Plug-in nur einmal generiert und für Einheitentests verwendet wird, wurde hinzugefügt. Mehrere Module, z. B. app und lib, teilen sie jetzt. Löschen Sie $rootDir/build, um es neu zu generieren.
    • Die Verarbeitung von Java-Ressourcen wurde so geändert, dass sie vor den Verschleierungsaufgaben statt während des Packens des APK ausgeführt werden. Durch diese Änderung können die Verschleierungsaufgaben die Java-Ressourcen nach der Paketverschleierung anpassen.
    • Ein Problem bei der Verwendung von JNI-Code (Java Native Interface) im experimentellen Bibliotheks-Plug-in wurde behoben.
    • Es wurde die Möglichkeit hinzugefügt, die Plattformversion getrennt vom android:compileSdkVersion-Attribut im experimentellen Bibliotheks-Plug-in 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, sodass die Ausgabe der vorherigen Aufgabe bei Verwendung eines benutzerdefinierten Dateinamens korrekt verarbeitet wurde.
    • Ein Fehler bei der Renderscript-Paketerstellung mit dem NDK wurde behoben.
    • Die Unterstützung für die Build-Aufgabe createDebugCoverageReport wurde aufrechterhalten.
    • Die Unterstützung für die benutzerdefinierte Verwendung der Eigenschaft archiveBaseName in der Build-Datei build.gradle wurde korrigiert.
    • Die Invalid ResourceType-lint-Warnung, die durch den Lookup von Parametermethoden-Annotationen verursacht wurde, wenn lint außerhalb von Android Studio ausgeführt 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 das Attribut com.android.build.threadPoolSize zur Steuerung der Threadpoolgröße der Android-Aufgabe über die Datei gradle.properties oder die Befehlszeile wurde hinzugefügt. Im folgenden Beispiel wird diese Property auf „4“ festgelegt.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Lege das standardmäßige Build-Verhalten fest, um Dateien vom Typ LICENSE und LICENSE.txt aus APKs auszuschließen. Wenn du diese Dateien in einem APK verwenden möchtest, entferne sie in der Datei build.gradle aus dem Attribut packagingOptions.excludes. Beispiele:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • Die Aufgabe sourceSets wurde hinzugefügt, um den Satz aller verfügbaren Quellsätze zu prüfen.
    • Verbesserte Unterstützung für Unittests zum Erkennen von Quellordnern für Build-Varianten und mehrere Varianten. Wenn Sie beispielsweise eine Anwendung mit den verschiedenen Geschmacksrichtungen flavor1 und flavorA mit dem Build-Typ Debug testen möchten, sind die folgenden Testquellensätze:
      • Test
      • testFlavor1
      • testFlavorA
      • testFlavor1FlavorA
      • testFlavor1FlavorADebug

      Android-Tests haben bereits Quellordner mit mehreren Geschmacksrichtungen erkannt.

    • Verbesserte Unterstützung für Einheitentests:
      • Führen Sie javac für Haupt- und Testquellen aus, auch wenn das Attribut useJack in Ihrer Build-Datei auf true festgelegt ist.
      • Erkennen Sie die Abhängigkeiten für jeden Build-Typ korrekt.
    • Zusätzliche Unterstützung für die Angabe von Instrumentierungstest-Runner-Argumenten über die Befehlszeile. 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. Beispiele:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • Ein Test-APK-Modul wird jetzt als separates Testmodul unterstützt. Dabei werden die Attribute targetProjectPath und targetVariant verwendet, um den APK-Pfad und die Zielvariante festzulegen.

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

    • Eine Validierung der Ressourcennamen vor dem Zusammenführen von Ressourcen wurde hinzugefügt.
    • Gib beim Erstellen eines AAR-Pakets (Android ARchive) für Bibliotheksmodule in den Einstellungen für die Manifestzusammenführung keinen automatischen Platzhalter @{applicationId} 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:
    • Erweiterte Unterstützung zum Ausführen von Einheitentests mit Gradle.
      • Ressourcen im Java-Stil können jetzt in den Klassenpfad aufgenommen werden, wenn Einheitentests direkt über Gradle ausgeführt werden.
      • Unterstützung für Unittest-Abhängigkeiten für Android Archive-Artefakte (AAR) wurde hinzugefügt.
      • Das Attribut unitTestVariants wird jetzt unterstützt, sodass Varianten von Einheitentests mithilfe der Datei build.gradle geändert werden können.
      • Der Codeblock unitTest.all wurde unter testOptions hinzugefügt, um benutzerdefinierte Aufgaben für Einheitentests zu konfigurieren. Der folgende Beispielcode zeigt, wie Konfigurationseinstellungen für Unittests mit dieser neuen Option hinzugefügt werden:
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • Die Verarbeitung von Enums und öffentlichen Instanzfeldern bei der Paketerstellung der Datei mockable-android.jar wurde korrigiert.
      • Die Aufgabenabhängigkeiten des Bibliotheksprojekts wurden behoben, sodass Testklassen nach Änderungen neu kompiliert werden.
    • Das Attribut testProguardFile wurde hinzugefügt, um beim Komprimieren eines Test-APKs ProGuard-Dateien anzuwenden.
    • Dem Codeblock adbOptions wurde die Eigenschaft timeOut hinzugefügt, mit der die maximale Aufzeichnungszeit für die Bildschirmaufzeichnung mit der Android Debug Bridge festgelegt werden kann.
    • Zusätzliche Unterstützung für 280-dpi-Ressourcen.
    • Verbesserte Leistung während 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 einer Test-App, die einen ProGuard-Fehler ausgelöst hat, wurde behoben.
    • Die Comparator-Implementierung wurde korrigiert, die nicht dem JDK Comparator-Vertrag 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 einer mockablen JAR-Datei für Einheitentests.
    • Die Einstellung archivesBaseName in der Datei build.gradle wurde korrigiert.
    • Der nicht behobene Platzhalterfehler in der Manifest-Zusammenführung beim Erstellen einer Bibliothekstestanwendung 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:
    • Geänderte Build-Varianten, sodass nur Varianten, die eine Wear-App verpacken, Wear-spezifische Build-Aufgaben auslösen
    • Geänderte Abhängigkeitsprobleme schlagen zum Zeitpunkt der Build-Erstellung fehl und nicht zum Zeitpunkt der Fehlerbehebung. Auf diese Weise können Sie Diagnoseaufgaben (z. B. Abhängigkeiten) ausführen, um den Konflikt zu beheben.
    • Die Methode android.getBootClasspath() wurde so korrigiert, dass ein Wert zurückgegeben wird.

    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 Einheitentests hinzugefügt
      • Es wurden Einheitentests zur Ausführung auf der lokalen JVM mit einer speziellen Version der android.jar-Datei aktiviert, die mit gängigen Mocking-Frameworks wie Mockito kompatibel ist.
      • Die neuen Testaufgaben testDebug, testRelease und testMyFlavorDebug für die Verwendung von Produktvarianten wurden hinzugefügt.
      • Neue Quellordner hinzugefügt, die als Einheitentests erkannt werden: src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • Der Datei build.gradle wurden neue Konfigurationen hinzugefügt, um reine Testabhängigkeiten zu deklarieren, z. B. testCompile 'junit:junit:4.11', testMyFlavorCompile 'some:library:1.0'.

        Hinweis:Reine Test-Abhängigkeiten sind derzeit nicht mit Jack (Java Android Compiler Kit) kompatibel.

      • Die Option android.testOptions.unitTests.returnDefaultValues wurde hinzugefügt, um das Verhalten der Mockable-Datei „android.jar“ zu steuern.
    • Test in Namen von Testaufgaben durch AndroidTest ersetzt. Die Aufgabe assembleDebugTest ist jetzt beispielsweise die Aufgabe assembleDebugAndroidTest. Bei Unittestaufgaben ist weiterhin UnitTest im Aufgabennamen enthalten, z. B. assembleDebugUnitTest.
    • ProGuard-Konfigurationsdateien wurden so geändert, dass sie nicht mehr für das Test-APK gelten. Wenn die Reduzierung aktiviert ist, verarbeitet ProGuard das Test-APK und wendet nur die Zuordnungsdatei an, die beim Komprimieren des Haupt-APKs generiert wird.
    • Die Abhängigkeitsverwaltung wurde aktualisiert.
      • 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 getesteten Anwendung und der Testanwendung zu vergleichen. Wenn für beide Anwendungen ein Artefakt mit derselben Version gefunden wird, ist es nicht in der Testanwendung enthalten und wird nur mit der getesteten Anwendung verpackt. Wenn für beide Anwendungen ein Artefakt mit einer anderen Version gefunden wird, schlägt der Build fehl.
    • Die Unterstützung für den Ressourcenqualifizierer anyDpi bei der Ressourcenzusammenführung wurde hinzugefügt.
    • Verbesserte Auswertungs- und IDE-Synchronisierungsgeschwindigkeiten 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:
    • Ein Problem mit einem Gradle-Build-Fehler beim Zugriff auf das Modul extractReleaseAnnotations wurde behoben. (Problem 81638)
    • Ein Problem wurde behoben, bei dem Disable die Einstellung --no-optimize an den Bytecode von Dalvik Executable (dex) übergeben hat. (Problem 82662)
    • Probleme mit der Manifestzusammenführung beim Importieren von Bibliotheken mit einer targetSdkVersion kleiner als 16 wurden behoben.
    • Ein Problem mit der Dichte-Reihenfolge bei 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 Plug-in-Version.