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
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 , mit denen Sie zwischen den Anzeigeoptionen wechseln können:
- Um die geteilte Ansicht zu aktivieren, klicken Sie auf das Symbol Teilen .
- Klicken Sie auf das Symbol Quelle , um die XML-Quellansicht zu aktivieren.
- Klicken Sie auf das Designsymbol , 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.
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:
- Öffnen Sie den Bereich Projekt, indem Sie in der Menüleiste Ansicht > Toolfenster > Projekt auswählen.
- 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.
- Wählen Sie im angezeigten Dialogfeld Ihr Basismodul aus dem Dropdown-Menü aus.
- 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:
- Wählen Sie in der Menüleiste Build > Analyze APK (Erstellen > APK analysieren) aus.
- Gehen Sie im angezeigten Dialogfeld zu der APK, die Sie prüfen möchten, und wählen Sie es aus.
- Klicken Sie auf Öffnen.
- Wählen Sie in APK Analyzer die DEX-Datei aus, die Sie prüfen möchten.
- Laden Sie im DEX-Dateibetrachter die ProGuard-Zuordnungsdatei für das APK, das Sie analysieren.
- 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ültigenFragmentManager
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ültigenFragmentManager
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 einerFragmentTransaction
.
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.
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.
.
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:
- Verwenden Sie in der Kartenansicht das Textfeld, um nach dem ersten Ziel Ihrer Route zu suchen.
- Wählen Sie den Standort aus den Suchergebnissen aus.
- Klicken Sie auf die Schaltfläche Navigation.
- Wählen Sie auf der Karte den Startpunkt Ihrer Route aus.
- Optional: Klicken Sie auf Ziel hinzufügen, um weitere Zwischenstopps für die Route hinzuzufügen.
- Klicken Sie in der Kartenansicht auf Route speichern, um die Route zu speichern.
- 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.
.
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:
-
Öffnen Sie die erweiterten Steuerelemente und dann den Tab Displays (Anzeigen).
-
Wenn Sie eine weitere Anzeige hinzufügen möchten, klicken Sie auf Sekundären Bildschirm hinzufügen.
-
Führen Sie im Drop-down-Menü unter Sekundäre Bildschirme einen der folgenden Schritte aus:
-
Wählen Sie eines der voreingestellten Seitenverhältnisse aus
-
Wählen Sie Benutzerdefiniert aus und legen Sie Höhe, Breite und DPI für die benutzerdefinierte Darstellung fest.
-
Optional: Klicken Sie auf Sekundären Bildschirm hinzufügen, um einen dritten Bildschirm hinzuzufügen.
-
Klicken Sie auf Änderungen anwenden, um die angegebenen Bildschirme dem aktiven virtuellen Gerät hinzuzufügen.
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.
.
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.
- Polestar 2: Erstellen Sie ein AVD, das das Polestar 2-Hauptgerät emuliert.
- Automotive (1024p Querformat): Erstellen Sie einen AVD für generische Android Automotive-Haupteinheiten mit 1024 x 768 Pixeln.
.
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.
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 .
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:
|
|
|
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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:
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
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:
- Wählen Sie im linken Bereich der PSD die Option Abhängigkeiten aus.
- Wählen Sie im Bereich Module ein Modul aus, für das Sie die aufgelösten Abhängigkeiten prüfen möchten.
- Ö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 inVectorDrawable
-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.
Mit R8 werden nun Entsugaren, Schrumpfen, Verschleieren, Optimieren und Dexing (D8) in einem Schritt abgeschlossen, wie unten dargestellt.
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.
Der Navigationseditor unterstützt jetzt alle Argumenttypen
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.
Navigationseditor
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
inargType
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 keineandroidx.*
-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
auftrue
verwendest, musst du jedoch Folgendes in die Dateibuild.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.
Navigationseditor
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 auftrue
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 auffalse
gesetzt.android.enableJetifier
: Wenn dieses Flag auftrue
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 auffalse
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:
- Wählen Sie im Hauptmenü Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten) aus.
- Klicken Sie auf dem Tab Profilerstellung der gewünschten Ausführungskonfiguration auf das Kästchen neben Methoden-Trace beim Start aufzeichnen.
- Wählen Sie eine zu verwendende CPU-Aufzeichnungskonfiguration aus dem Drop-down-Menü aus.
- 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:
- Klicken Sie mit der rechten Maustaste auf die Aufnahme, die Sie aus der CPU-Zeitachse exportieren möchten.
- Wählen Sie im Drop-down-Menü die Option Trace exportieren aus.
- 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.
Zwischen externen Headerdateien wechseln
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 mitkotlin-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 einemVerifyError
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
wurdeProcessCanceledException
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 denimplementation
- undapi
-Konfigurationen. Weitere Informationen zur Migration weg von der Konfigurationcompile
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 KlasseViewDataBinding
enthält jetzt die neue MethodesetLifecycle()
, mit der SieLiveData
-Objekte beobachten können. -
Die Klasse
ObservableField
kann jetzt andereObservable
-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.
Assistant für Android-App-Links
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 >
New > 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<T>)">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&q=target%3D2.3+status%3DReleased&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&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&q=target%3D2.2.3+status%3AReleased+&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&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> > <strong>Signal Strength</strong> controls.
</li>
<li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
> <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 > Project
Structure > SDK Location</strong>. You can switch to use the new bundled
JDK by clicking <strong>File > Project Structure > 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ürminSdkVersion 15
oder höher konfigurieren. Die beste Leistung erzielen Sie, wenn Sie Ihre App fürminSdkVersion 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/
undasset/
. Dieses Flag empfiehlt, nativer Code im Ordnerlibs/
zu speichern, der dann bei der Installation sicher im Ordnerdata/app-lib/
der Anwendung verpackt wird. AOSP: Nr. 169950 - Flags für unsichere Aufrufe von
Runtime.load()
- undSystem.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 undtools:keep
- undtools: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
undParcelable
. @IntDef
-,@IntRange
- und@Size
-Prüfungen werden jetzt auch aufint
-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. Daslint
-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 DateiAndroidManifest.xml
referenziert wird, melden, wenn kein Intent-Filter für die KlasseMediaBrowserService
vorhanden ist, und bestimmte Probleme mit der Sprachbedienung identifizieren. - Neue
lint
-Prüfungen auf unsichere Übertragungsempfänger, Verwendung der KlassenSSLCertificateSocketFactory
undHostnameVerifier
sowie Aufrufe vonFile.setReadable()
undFile.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. Dieseres/mipmap
-Ordner ersetzen dieres/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)
- Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.
Android Studio Version 0.4.6 (März 2014)
- Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.
Android Studio Version 0.4.2 (Januar 2014)
- Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.
Android Studio Version 0.3.2 (Okt. 2013)
- Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.
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.
- 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
- 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:
-
Gradle 5.6.4 Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
-
SDK Build Tools 28.0.3 oder höher.
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.
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:
-
Fügen Sie das Flag
-Pandroid.enableProfileJson=true
hinzu, wenn Sie einen Gradle-Build ausführen. Beispiele:gradlew assembleDebug -Pandroid.enableProfileJson=true
-
Öffnen Sie den Chrome-Browser und geben Sie
chrome://tracing
in die Suchleiste ein. -
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ßtprofile-<var>timestamp</var>.json.gz
.
Die Attributionsdaten des nativen Builds werden oben im Viewer angezeigt:
Ä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:
-
Gradle 5.4.1 Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
-
SDK Build Tools 28.0.3 oder höher.
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:
-
Gradle 5.1.1 oder höher Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
Hinweis: Ab Gradle 5.0 wird die Standardgröße des Gradle-Daemon-Arbeitsspeichers von 1 GB auf 512 MB verringert. Dies kann zu einem Leistungsabfall der Builds führen. Wenn Sie diese Standardeinstellung überschreiben möchten, geben Sie die Größe des Gradle-Daemon-Heaps in der
gradle.properties
-Datei Ihres Projekts an. -
SDK Build Tools 28.0.3 oder höher.
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ängigkeitskonfigurationlintPublish
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ängigkeitskonfigurationlintChecks
verwendet haben, um Lint-Prüfungen in das veröffentlichte AAE aufzunehmen, müssen Sie diese Abhängigkeiten migrieren, um stattdessen die neuelintPublish
-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.
Mit R8 werden nun Entsugaren, Schrumpfen, Verschleieren, Optimieren und Dexing (D8) in einem Schritt abgeschlossen, wie unten dargestellt.
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 mitndkBuild
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:
-
Gradle 4.10.1 oder höher Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
Hinweis: Ab Gradle 5.0 wird die Standardgröße des Gradle-Daemon-Arbeitsspeichers von 1 GB auf 512 MB verringert. Dies kann zu einer Regression der Build-Leistung führen. Wenn Sie diese Standardeinstellung überschreiben möchten, geben Sie die Größe des Gradle-Daemon-Heaps in der Datei
gradle.properties
Ihres Projekts an. -
SDK Build Tools 28.0.3 oder höher.
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 wievariant.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 zuerstR.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ündelterannotation.AnyRes
- Wenn du RenderScript verwendest, musst du die Build-Tools-Version nicht mehr manuell in deinen
build.gradle
-Dateien festlegen
- Der Build-Prozess, bei dem
3.2.0 (September 2018)
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
- Gradle 4.6 oder höher ist Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
- SDK Build Tools 28.0.3 oder höher.
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 jetztCommandLineArgumentProvider
, 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 auftrue
gesetzt:-
android.useAndroidX
: Wenn dieser Wert auftrue
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 auffalse
festgelegt. -
android.enableJetifier
:Wenn das Android-Plug-in auftrue
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 auffalse
gesetzt. Sie können dieses Flag nur auftrue
setzen, währendandroid.useAndroidX
ebenfalls auftrue
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 Ihrerbuild.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
undarmeabi
.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"
anresConfig
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 vonandroidTestImplementation
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
undruntimeOnly
. - 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 Dateigradle.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 SieANDROID_TEST_ORCHESTRATOR
wie unten gezeigt angeben. Standardmäßig ist diese Eigenschaft aufHOST
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 auftrue
setzen, führt das Plug-in Ressourcen, Assets und Manifeste zusammen, bevor die Einheitentests ausgeführt werden. Ihre Tests können danncom/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 Attributpackage
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 derlintChecks
-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 oderprocessManifest.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
undruntimeOnly
. - 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 Dateigradle.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 SieANDROID_TEST_ORCHESTRATOR
wie unten gezeigt angeben. Standardmäßig ist diese Eigenschaft aufHOST
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 auftrue
setzen, führt das Plug-in Ressourcen, Assets und Manifeste zusammen, bevor die Einheitentests ausgeführt werden. Ihre Tests können danncom/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 Attributpackage
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 derlintChecks
-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 oderprocessManifest.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:
-
- Gradle 3.3 oder höher.
- Build Tools 25.0.0 oder höher.
- 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.
- Enthält die Aufgabe
cleanBuildCache
, die den Build-Cache leert. - Wenn Sie die experimentelle Version des Build-Caches verwenden, die in früheren Versionen des Plug-ins enthalten ist, sollten Sie das Plug-in auf die neueste Version aktualisieren.
- Enthält die Aufgabe
- Änderungen:
-
- Unterstützt Änderungen an Instant Run in Android Studio 2.3.
- Die Konfigurationszeiten bei sehr großen Projekten sollten deutlich kürzer sein.
- Probleme beim automatischen Herunterladen der Einschränkungs-Layoutbibliothek behoben.
- Das Plug-in verwendet jetzt die ProGuard-Version 5.3.2.
- Enthält viele Fehlerkorrekturen. Bitte reichen Sie Fehlerberichte ein, wenn Probleme auftreten.
2.2.0 (September 2016)
- Abhängigkeiten:
-
- Gradle 2.14.1 oder höher.
- Build Tools 23.0.2 oder höher.
- 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 diegradle.properties
-Datei einfügst. Während der Verwendung des neuen Paketerstellungstools ist die AufgabezipalignDebug
nicht verfügbar. Sie können jedoch selbst eines erstellen, indem Sie die MethodecreateZipAlignTask(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 vonbuildTypes.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 auffalse
setzt, verpackt Gradle unkomprimierte und ausgerichtete Versionen deiner nativen Bibliotheken mit deinem APK. Dadurch wird verhindert, dassPackageManager
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
undapplicationIdSuffix
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
auftrue
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 DSLjavaCompileOptions.annotationProcessorOptions {}
in der Dateibuild.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
- Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn
- 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:
-
- Gradle 2.10 oder höher.
- Build Tools 23.0.2 oder höher.
- 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
'``none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
Ihres Projekts ein:Wenn Sie in der Datei
'``none org.gradle.jvmargs = -Xmx3072m ```build.gradle
auf Modulebene einen Wert fürjavaMaxHeapSize
definiert haben, müssen Sie fürorg.gradle.jvmargs
den WertjavaMaxHeapSize
+ 1.024 MB festlegen. Wenn Sie beispielsweisejavaMaxHeapSize
auf „2048m“ festgelegt haben, müssen Sie der Dateigradle.properties
Ihres Projekts Folgendes hinzufügen: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 } }
- 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.
2.0.0 (April 2016)
- Abhängigkeiten:
-
- Gradle 2.10 oder höher.
- Build Tools 21.1.1 oder höher.
- 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 Dateibuild.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>
- Wenn
- 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: - 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 derTransform
-Schnittstellen implementiert, und registrieren Sie sie mitandroid.registerTransform(theTransform)
oderandroid.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 KlasseApplicationVariant
wurde verworfen. Sie können nicht mehr über die Variant API auf die AufgabeDex
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 EigenschaftgeneratedDensities
im AbschnittdefaultConfig
oderproductFlavor
einerbuild.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
undlib
, 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 { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- 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
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.
- 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-Dateibuild.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.
-
Unterstützung für das Attribut
com.android.build.threadPoolSize
zur Steuerung der Threadpoolgröße derAndroid
-Aufgabe über die Dateigradle.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
undLICENSE.txt
aus APKs auszuschließen. Wenn du diese Dateien in einem APK verwenden möchtest, entferne sie in der Dateibuild.gradle
aus dem AttributpackagingOptions.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
undflavorA
mit dem Build-TypDebug
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 AttributuseJack
in Ihrer Build-Datei auftrue
festgelegt ist. - Erkennen Sie die Abhängigkeiten für jeden Build-Typ korrekt.
- Führen Sie
- 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
undtargetVariant
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 Dateibuild.gradle
geändert werden können. - Der Codeblock
unitTest.all
wurde untertestOptions
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 EigenschafttimeOut
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.
- Erweiterte Unterstützung zum Ausführen von Einheitentests mit Gradle.
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 Dateibuild.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
undtestMyFlavorDebug
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 durchAndroidTest
ersetzt. Die AufgabeassembleDebugTest
ist jetzt beispielsweise die AufgabeassembleDebugAndroidTest
. Bei Unittestaufgaben ist weiterhinUnitTest
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
undpackage
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.
- Probleme mit den Bereichen
- 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.
- Ein Problem mit einem Gradle-Build-Fehler beim Zugriff auf das Modul
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.