Im Folgenden finden Sie die Versionshinweise zu Android Studio 3.6 und niedriger sowie zum Android Gradle-Plug-in 3.6.0 und niedriger.
Ältere Versionen von Android Studio
3.6 (Februar 2020)
Android Studio 3.6 ist ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.
Außerdem möchten wir uns bei allen Community-Mitgliedern bedanken, die an dieser Version mitgewirkt haben.
3.6.3 (April 2020)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
3.6.2 (März 2020)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
3.6.1 (Februar 2020)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
Design tools
Diese Version von Android Studio enthält Updates für mehrere Designtools, darunter den Layout-Editor und den Ressourcenmanager.
Splitscreen und Zoomen in Design-Editoren
Diese Version enthält die folgenden Updates für die visuellen Design-Editoren:
-
Design-Editoren wie der Layout-Editor und der Navigations-Editor bieten jetzt eine Splitansicht, mit der Sie die Design- und die Codeansicht Ihrer Benutzeroberfläche gleichzeitig sehen können. Oben rechts im Editorfenster befinden sich jetzt drei Schaltflächen , mit denen Sie zwischen den Ansichtsoptionen wechseln können:
- Klicken Sie auf das Symbol Splitscreen , um die geteilte Ansicht zu aktivieren.
- Klicken Sie auf das Symbol Quelle , um die XML-Quelldatenansicht zu aktivieren.
- Klicken Sie auf das Symbol Design , um die Designansicht zu aktivieren.
-
Die Steuerelemente zum Zoomen und Schwenken in Designeditoren wurden in ein schwebendes Steuerfeld rechts unten im Editorfenster verschoben.
Weitere Informationen finden Sie unter UI mit Layout-Editor erstellen.
Tab „Ressourcen für die Farbauswahl“
Damit Sie die Farbressourcenwerte in Ihrer App schnell aktualisieren können, wenn Sie die Farbauswahl in Ihrer XML-Datei oder die Designtools verwenden, werden die Farbressourcenwerte jetzt in der IDE für Sie ausgefüllt.
Resource Manager
Der Resource Manager enthält die folgenden Updates:
- Der Resource Manager unterstützt jetzt die meisten Ressourcentypen.
- Wenn Sie nach einer Ressource suchen, werden im Resource Manager jetzt Ergebnisse aus allen Projektmodulen angezeigt. Bisher wurden bei Suchanfragen nur Ergebnisse aus dem ausgewählten Modul zurückgegeben.
- Über die Filterschaltfläche können Sie sich Ressourcen aus lokal abhängigen Modulen, externen Bibliotheken und dem Android-Framework ansehen. Mit dem Filter können Sie auch Themenattribute anzeigen lassen.
- Sie können Ressourcen jetzt während des Importprozesses umbenennen, indem Sie in das Textfeld über der Ressource klicken.
Weitere Informationen finden Sie unter UI-Ressourcen Ihrer App mit Resource Manager verwalten.
Aktualisierungen des Android-Gradle-Plug-ins
Die neueste Version des Android Gradle-Plug-ins enthält viele Updates, darunter Optimierungen für die Buildgeschwindigkeit, Unterstützung für das Maven-Veröffentlichungs-Plug-in und Unterstützung für View-Binding. Weitere Informationen finden Sie in den vollständigen Versionshinweisen.
Bindung ansehen
Mit der Ansichtsbindung können Sie Code, der mit Ansichten interagiert, einfacher schreiben, indem Sie für jede XML-Layoutdatei eine Bindungsklasse generieren. Diese Klassen enthalten direkte Verweise auf alle Ansichten, die im entsprechenden Layout eine ID haben.
Da die Datenbindung findViewById()
ersetzt, wird das Risiko von Nullzeigerausnahmen aufgrund einer ungültigen Ansichts-ID eliminiert.
Wenn Sie die Ansichtsbindung aktivieren möchten, müssen Sie das Android Gradle-Plug-in 3.6.0 oder höher verwenden und in der build.gradle
-Datei jedes Moduls Folgendes angeben:
Groovy
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
Änderungen übernehmen
Sie können jetzt eine Klasse hinzufügen und diese Codeänderung dann in Ihrer laufenden App bereitstellen. Klicken Sie dazu entweder auf Codeänderungen anwenden oder Änderungen anwenden und Aktivität neu starten.
Weitere Informationen zu den Unterschieden zwischen diesen beiden Aktionen finden Sie unter Änderungen anwenden.
Menüoption für die Unterstützung von Instant Apps überarbeiten
Sie können Ihr Basismodul jetzt jederzeit nach dem Erstellen Ihres App-Projekts sofort aktivieren:
- Öffnen Sie den Bereich Projekt, indem Sie in der Menüleiste Ansicht > Toolfenster > Projekt auswählen.
- Klicken Sie mit der rechten Maustaste auf das Basismodul, das in der Regel den Namen „app“ hat, und wählen Sie Refactor > Enable Instant Apps Support (Umstrukturieren > Unterstützung für Instant Apps aktivieren) aus.
- Wählen Sie im angezeigten Dialogfeld Ihr Basismodul aus dem Drop-down-Menü aus.
- Klicken Sie auf OK.
Hinweis:Die Option zum sofortigen Aktivieren des Basis-App-Moduls im Assistenten Neues Projekt erstellen wurde entfernt.
Weitere Informationen finden Sie unter Übersicht über Google Play Instant.
Bytecode von Klasse und Methode in APK Analyzer deobfuscieren
Wenn Sie DEX-Dateien mit dem APK Analyzer prüfen, können Sie den Bytecode von Klassen und Methoden so deobfuscieren:
- Wählen Sie in der Menüleiste Build > APK analysieren aus.
- Wählen Sie im angezeigten Dialogfeld das APK aus, das Sie prüfen möchten.
- Klicken Sie auf Öffnen.
- Wählen Sie im APK-Analysator die DEX-Datei aus, die Sie prüfen möchten.
- Laden Sie in der DEX-Dateianzeige die ProGuard-Zuordnungsdatei für die zu analysierende APK-Datei.
- Klicken Sie mit der rechten Maustaste auf die Klasse oder Methode, die Sie prüfen möchten, und wählen Sie Bytecode anzeigen aus.
Native Tools
Die folgenden Updates unterstützen die native (C/C++)-Entwicklung in Android Studio.
Kotlin-Unterstützung
Die folgenden NDK-Funktionen in Android Studio, die zuvor in Java unterstützt wurden, werden jetzt auch in Kotlin unterstützt:
-
Sie können von einer JNI-Deklaration zur entsprechenden Implementierungsfunktion in C/C++ wechseln. Bewegen Sie dazu den Mauszeiger in der verwalteten Quellcodedatei auf die C- oder C++-Elementmarkierung in der Nähe der Zeilennummer.
-
Automatisch eine Stub-Implementierungsfunktion für eine JNI-Deklaration erstellen Definieren Sie zuerst die JNI-Deklaration und geben Sie dann „jni“ oder den Methodennamen in die zu aktivierende C/C++-Datei ein.
-
Nicht verwendete native Implementierungsfunktionen werden im Quellcode als Warnung hervorgehoben. JNI-Deklarationen mit fehlenden Implementierungen werden ebenfalls als Fehler hervorgehoben.
-
Wenn Sie eine native Implementierungsfunktion umbenennen (umstrukturieren), werden alle entsprechenden JNI-Deklarationen aktualisiert. Benennen Sie eine JNI-Deklaration um, um die native Implementierungsfunktion zu aktualisieren.
-
Signaturprüfung für implizit gebundene JNI-Implementierungen.
Weitere JNI-Verbesserungen
Der Code-Editor in Android Studio unterstützt jetzt einen reibungsloseren JNI-Entwicklungsablauf, einschließlich verbesserter Typhinweise, automatischer Vervollständigung, Prüfungen und Code-Refaktorisierung.
APK-Neuladen für native Bibliotheken {:#3.6-reload-apk}
Sie müssen kein neues Projekt mehr erstellen, wenn das APK in Ihrem Projekt außerhalb der IDE aktualisiert wird. Android Studio erkennt Änderungen am APK und bietet Ihnen die Möglichkeit, es noch einmal zu importieren.
Nur Kotlin-APK-Quellen anhängen
Es ist jetzt möglich, externe APK-Quellen, die nur Kotlin-Code enthalten, anzuhängen, wenn Sie vorgefertigte APKs profilieren und beheben. Weitere Informationen finden Sie unter Kotlin-/Java-Quellen anhängen.
Leckortung im Speicher-Profiler
Wenn Sie einen Heap-Dump im Memory Profiler analysieren, können Sie jetzt Profiling-Daten filtern, die laut Android Studio auf Speicherlecks für Activity
- und Fragment
-Instanzen in Ihrer App hinweisen könnten.
Die folgenden Datentypen werden im Filter angezeigt:
-
Activity
-Instanzen, die gelöscht wurden, aber weiterhin referenziert werden. -
Fragment
-Instanzen, die keinen gültigenFragmentManager
haben, aber trotzdem referenziert werden.
Nur Kotlin-APK-Quellen anhängen
Es ist jetzt möglich, externe APK-Quellen, die nur Kotlin-Code enthalten, anzuhängen, wenn Sie vorgefertigte APKs profilieren und beheben. Weitere Informationen finden Sie unter Kotlin-/Java-Quellen anhängen.
Leckortung im Speicher-Profiler
Wenn Sie einen Heap-Dump im Memory Profiler analysieren, können Sie jetzt Profiling-Daten filtern, die laut Android Studio auf Speicherlecks für Activity
- und Fragment
-Instanzen in Ihrer App hinweisen könnten.
Die folgenden Datentypen werden im Filter angezeigt:
-
Activity
-Instanzen, die gelöscht wurden, aber weiterhin referenziert werden. -
Fragment
-Instanzen, die keinen gültigenFragmentManager
haben, aber trotzdem referenziert werden.
In bestimmten Situationen, z. B. in den folgenden, kann der Filter zu Falschmeldungen führen:
- Eine
Fragment
wurde erstellt, aber noch nicht verwendet. - Ein
Fragment
wird im Cache gespeichert, aber nicht als Teil einesFragmentTransaction
.
Wenn Sie diese Funktion verwenden möchten, müssen Sie zuerst einen Heap-Dump erfassen oder eine Heap-Dump-Datei in Android Studio importieren. Wenn Sie die Fragmente und Aktivitäten anzeigen möchten, die möglicherweise Speicherlecks verursachen, setzen Sie im Bereich „Heap-Dump“ des Speicherprofils ein Häkchen in das Kästchen Aktivitäts-/Fragmentlecks.
Emulatoren
Mit Android Studio 3.6 können Sie mehrere Updates nutzen, die im Android Emulator 29.2.7 und höher enthalten sind, wie unten beschrieben.
Verbesserte Standortunterstützung
Android Emulator 29.2.7 und höher bietet zusätzliche Unterstützung für die Emulation von GPS-Koordinaten und Routeninformationen. Wenn Sie die erweiterten Steuerelemente für Emulatoren öffnen, sind die Optionen auf dem Tab „Standort“ jetzt auf zwei Tabs verteilt: Einzelne Punkte und Routen.
Einzelne Punkte
Auf dem Tab Einzelne Punkte können Sie über die Google Maps-Webansicht nach POIs suchen, genau wie bei der Verwendung von Google Maps auf einem Smartphone oder in einem Browser. Wenn Sie auf der Karte nach einem Ort suchen oder darauf klicken, können Sie ihn speichern, indem Sie unten auf der Karte „Punkt speichern“ auswählen. Alle Ihre gespeicherten Standorte werden rechts im Fenster Erweiterte Einstellungen aufgeführt.
Wenn Sie den Standort des Emulators auf den von Ihnen auf der Karte ausgewählten Standort festlegen möchten, klicken Sie rechts unten im Fenster Erweiterte Steuerelemente auf die Schaltfläche Standort festlegen.
.
Routen
Ähnlich wie auf dem Tab Einzelne Punkte gibt es auf dem Tab Routen eine Google Maps-Webansicht, mit der Sie eine Route zwischen zwei oder mehr Orten erstellen können. So erstellen und speichern Sie eine Route:
- Verwenden Sie in der Kartenansicht das Textfeld, um nach dem ersten Ziel Ihrer Route zu suchen.
- Wählen Sie den Standort in den Suchergebnissen aus.
- Wählen Sie die Schaltfläche Navigieren aus.
- Wählen Sie auf der Karte den Startpunkt Ihrer Route aus.
- Optional: Klicken Sie auf Ziel hinzufügen, um Ihrer Route weitere Haltestellen 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 simulieren möchten, dass der Emulator der von Ihnen gespeicherten Route folgt, wählen Sie die Route aus der Liste der Gespeicherten Routen aus und klicken Sie rechts unten im Fenster Erweiterte Steuerelemente auf Route abspielen. Klicken Sie auf Route beenden, um die Simulation zu beenden.
.
Wenn der Emulator kontinuierlich die angegebene Route abfahren soll, aktivieren Sie den Schalter neben Wiedergabe wiederholen. Wenn Sie ändern möchten, wie schnell der Emulator der angegebenen Route folgt, wählen Sie eine Option aus dem Drop-down-Menü Wiedergabegeschwindigkeit aus.
Unterstützung für mehrere Displays
Mit dem Android-Emulator können Sie Ihre App jetzt auf mehreren Bildschirmen bereitstellen, die anpassbare Abmessungen unterstützen. So können Sie Apps testen, die Multifenster und Multidisplay unterstützen. Während ein virtuelles Gerät ausgeführt wird, können Sie so bis zu zwei zusätzliche Displays hinzufügen:
-
Öffnen Sie die erweiterten Steuerelemente und gehen Sie zum Tab Bildschirme.
-
Klicken Sie auf Sekundäres Display hinzufügen, um ein weiteres Display hinzuzufügen.
-
Wählen Sie im Drop-down-Menü unter Sekundäre Bildschirme eine der folgenden Optionen aus:
-
Wählen Sie eines der voreingestellten Seitenverhältnisse aus.
-
Wählen Sie Benutzerdefiniert aus und legen Sie die Höhe, Breite und dpi für das benutzerdefinierte Display fest.
-
Optional: Klicken Sie auf Sekundäres Display hinzufügen, um ein drittes Display hinzuzufügen.
-
Klicken Sie auf Änderungen anwenden, um das oder die angegebenen Displays dem laufenden virtuellen Gerät hinzuzufügen.
Neue virtuelle Geräte und Projektvorlagen für Android Automotive OS
Wenn Sie ein neues Projekt mit Android Studio erstellen, können Sie im Assistenten Neues Projekt erstellen auf dem Tab Automotive jetzt drei Vorlagen auswählen: Keine Aktivität, Mediendienst und Messagingdienst. Bei vorhandenen Projekten können Sie die Unterstützung für Android Automotive-Geräte hinzufügen, indem Sie in der Menüleiste Datei > Neu > Neues Modul und dann Automotive-Modul auswählen. Im Assistenten Neues Modul erstellen werden Sie dann durch das Erstellen eines neuen Moduls mit einer der Android Automotive-Projektvorlagen geführt.
.
Außerdem können Sie jetzt ein virtuelles Android-Gerät (AVD) für Android Automotive OS-Geräte erstellen. Wählen Sie dazu im Assistenten Konfiguration virtueller Geräte auf dem Tab Automotive eine der folgenden Optionen aus.
- Polestar 2: Erstellen Sie einen Anzeigenblock, der das Infotainmentsystem von Polestar 2 emuliert.
- Automotive (1024p, Querformat): Erstellen Sie eine AVD für generische Android Automotive-Infotainmentsysteme mit einer Auflösung von 1.024 × 768 Pixeln.
.
Fortsetzbare SDK-Downloads
Wenn Sie SDK-Komponenten und ‑Tools über den SDK Manager herunterladen, können Sie in Android Studio jetzt unterbrochene Downloads fortsetzen (z. B. aufgrund eines Netzwerkproblems), anstatt den Download von vorn zu beginnen. Diese Verbesserung ist besonders hilfreich bei großen Downloads wie dem Android-Emulator oder System-Images, wenn die Internetverbindung unzuverlässig ist.
Wenn im Hintergrund ein SDK-Download ausgeführt wird, können Sie den Download jetzt über die Steuerelemente in der Statusleiste anhalten oder fortsetzen.
Win32 wird eingestellt
Die 32-Bit-Version von Android Studio für Windows wird nach Dezember 2019 nicht mehr aktualisiert und nach Dezember 2020 nicht mehr unterstützt. Sie können Android Studio weiterhin verwenden. Wenn Sie jedoch zusätzliche Updates erhalten möchten, führen Sie ein Upgrade Ihrer Workstation auf eine 64-Bit-Version von Windows durch.
Weitere Informationen finden Sie im Blog zur Einstellung von Windows 32-Bit.
Neue Option zur Optimierung der Gradle-Synchronisierungszeit
In früheren Releases hat Android Studio während der Gradle-Synchronisierung die Liste aller Gradle-Aufgaben abgerufen. Bei großen Projekten kann das Abrufen der Aufgabenliste zu langen Synchronisierungszeiten führen.
Wenn Sie die Leistung der Gradle-Synchronisierung verbessern möchten, gehen Sie zu Datei > Einstellungen > Experimentell und wählen Sie „Gradle-Aufgabenliste nicht während der Gradle-Synchronisierung erstellen“ aus.
Wenn Sie diese Option aktivieren, überspringt Android Studio das Erstellen der Aufgabenliste während der Synchronisierung. Dadurch wird die Gradle-Synchronisierung schneller abgeschlossen und die UI reagiert reaktionsschneller. Wenn die IDE das Erstellen der Aufgabenliste überspringt, sind die Aufgabenlisten im Gradle-Steuerfeld leer und die automatische Vervollständigung von Aufgabennamen in Build-Dateien funktioniert nicht.
Neuer Ort zum Aktivieren und Deaktivieren des Offlinemodus von Gradle
Wenn Sie den Offlinemodus von Gradle aktivieren oder deaktivieren möchten, wählen Sie zuerst in der Menüleiste Ansicht > Toolfenster > Gradle aus. Klicken Sie dann oben im Fenster Gradle auf Offlinemodus aktivieren/deaktivieren .
IntelliJ IDEA 2019.2
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA in der Version 2019.2 aktualisiert.
Weitere Informationen zu den Verbesserungen aus anderen IntelliJ-Versionen, die in Version 2019.2 enthalten sind, finden Sie auf den folgenden Seiten:
Communitybeiträge
Vielen Dank an alle Community-Mitglieder, die uns dabei geholfen haben, Fehler zu finden und Android Studio 3.6 weiter zu verbessern. Wir möchten uns insbesondere bei den folgenden Personen bedanken, die uns Fehler gemeldet haben:
|
|
|
3.5 (August 2019)
Android Studio 3.5 ist eine Hauptversion und ein Ergebnis von Project Marble. Seit der Veröffentlichung von Android Studio 3.3 wurden im Rahmen von Project Marble mehrere Releases veröffentlicht, die sich auf die Verbesserung von drei Hauptbereichen der IDE konzentrieren: Systemintegrität, Funktionsverbesserungen und Behebung von Programmfehlern.
Informationen zu diesen und anderen Updates zu Project Marble finden Sie im Blogpost für Android-Entwickler oder in den folgenden Abschnitten.
Wir möchten uns auch bei allen Community-Mitgliedern bedanken, die an dieser Version mitgewirkt haben.
3.5.3 (Dezember 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.
3.5.2 (November 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
3.5.1 (Oktober 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
Project Marble: Systemzustand
In diesem Abschnitt werden die Änderungen in Android Studio 3.5 beschrieben, die sich auf die Verbesserung des Systemzustands konzentrieren.
Empfohlene Arbeitsspeichereinstellungen
Android Studio benachrichtigt Sie jetzt, wenn die Leistung verbessert werden könnte, indem Sie die maximale RAM-Menge erhöhen, die Ihr Betriebssystem für Android Studio-Prozesse wie die IDE, den Gradle-Daemon und den Kotlin-Daemon zuweisen sollte. Sie können die empfohlenen Einstellungen entweder akzeptieren, indem Sie in der Benachrichtigung auf den Aktionslink klicken, oder sie manuell anpassen. Wählen Sie dazu Datei > Einstellungen (oder Android Studio > Einstellungen unter macOS) aus und gehen Sie dann unter Darstellung und Verhalten > Systemeinstellungen zum Bereich Speichereinstellungen. Weitere Informationen finden Sie unter Maximale Heap-Größe.
Bericht zur Arbeitsspeichernutzung
Arbeitsspeicherprobleme in Android Studio sind manchmal schwer zu reproduzieren und zu melden. Um dieses Problem zu lösen, können Sie in Android Studio einen Bericht zur Speichernutzung erstellen. Klicken Sie dazu in der Menüleiste auf Hilfe > Speichernutzung analysieren. Dabei werden die Daten lokal von der IDE auf personenbezogene Daten geprüft, bevor Sie gefragt werden, ob Sie sie an das Android Studio-Team senden möchten, um die Ursache der Speicherprobleme zu ermitteln. Weitere Informationen finden Sie unter Bericht zur Arbeitsspeichernutzung erstellen.
Windows: Optimierung der Datei-E/A durch Antivirenprogramme
Android Studio prüft jetzt automatisch, ob bestimmte Projektverzeichnisse vom Echtzeit-Antiviren-Scan ausgenommen sind. Wenn Anpassungen zur Verbesserung der Buildleistung vorgenommen werden können, werden Sie von Android Studio benachrichtigt und erhalten eine Anleitung zur Optimierung Ihrer Antivirenkonfiguration. Weitere Informationen finden Sie unter Auswirkungen von Antivirensoftware auf die Build-Geschwindigkeit minimieren.
Project Marble: Funktionelle Optimierung
In diesem Abschnitt werden die Änderungen in Android Studio 3.5 beschrieben, die sich auf die Verbesserung bestehender Funktionen konzentrieren.
Änderungen übernehmen
Mit „Änderungen anwenden“ können Sie Code- und Ressourcenänderungen an die laufende App senden, ohne die App neu starten zu müssen – und in einigen Fällen auch ohne die aktuelle Aktivität neu starten zu müssen. Mit „Änderungen anwenden“ wird ein völlig neuer Ansatz zum Speichern des App-Status implementiert. Anders als bei Instant Run, bei dem der Bytecode Ihres APK neu geschrieben wurde, werden bei „Änderungen anwenden“ Klassen im laufenden Betrieb neu definiert. Dabei wird die Laufzeitinstrumentierung genutzt, die unter Android 8.0 (API-Ebene 26) oder höher unterstützt wird.
Weitere Informationen finden Sie unter Änderungen anwenden.
Ablauf der App-Bereitstellung
Die IDE bietet ein neues Drop-down-Menü, über das Sie schnell auswählen können, auf welchem Gerät Sie Ihre App bereitstellen möchten. Dieses Menü enthält auch eine neue Option, mit der Sie Ihre App auf mehreren Geräten gleichzeitig ausführen können.
Verbesserte Gradle-Synchronisierung und Cache-Erkennung
Die IDE erkennt jetzt besser, wann Gradle den Build-Cache regelmäßig löscht, um den Festplattenverbrauch zu reduzieren. In früheren Versionen führte dieser Zustand dazu, dass die IDE fehlende Abhängigkeiten meldete und die Gradle-Synchronisierung fehlschlug. Jetzt lädt die IDE die Abhängigkeiten einfach nach Bedarf herunter, damit die Gradle-Synchronisierung erfolgreich abgeschlossen werden kann.
Verbesserte Build-Fehlerausgabe
Das Fenster Build bietet jetzt für die folgenden Buildprozesse eine bessere Fehlermeldung, z. B. einen Link zur Datei und Zeile des gemeldeten Fehlers:
- AAPT-Kompilierung und -Verknüpfung
- R8 und ProGuard
- Dexing
- Ressourcenzusammenführung
- XML-Dateien parsen
- Javac-, Kotlinc- und CMake-Kompilierung
Projekt-Upgrades
Verbesserte Updates mit mehr Informationen und Aktionen, die Ihnen beim Aktualisieren der IDE und des Android Gradle-Plug-ins helfen. Beispielsweise enthalten mehr Synchronisierungs- und Buildfehler Aktionen, mit denen Sie Fehler bei der Aktualisierung beheben können.
Denken Sie daran, dass Sie die IDE unabhängig von anderen Komponenten wie dem Android Gradle-Plug-in aktualisieren können. So können Sie die IDE sicher aktualisieren, sobald eine neuere Version verfügbar ist, und andere Komponenten später aktualisieren.
Layout-Editor
Android Studio 3.5 enthält mehrere Verbesserungen bei der Visualisierung, Verwaltung und Interaktion von Layouts.
Wenn Sie mit ConstraintLayout
arbeiten, wird im Bereich Attribute der neue Bereich Einschränkungen mit den Einschränkungen der ausgewählten UI-Komponente angezeigt. Sie können eine Einschränkung entweder auf der Designoberfläche oder in der Liste der Einschränkungen auswählen, um sie in beiden Bereichen hervorzuheben.
Ebenso können Sie eine Einschränkung jetzt löschen, indem Sie sie auswählen und die Taste Delete
drücken. Sie können eine Einschränkung auch löschen, indem Sie die Taste Control
(Command
unter macOS) gedrückt halten und auf den Anker der Einschränkung klicken. Wenn Sie die Taste Control
oder Command
gedrückt halten und den Mauszeiger auf einen Anker bewegen, werden alle zugehörigen Einschränkungen rot, um anzuzeigen, dass Sie sie durch Klicken löschen können.
Wenn eine Ansicht ausgewählt ist, können Sie eine Einschränkung erstellen, indem Sie im Bereich Attribute auf eines der +-Symbole im Abschnitt Einschränkungs-Widget klicken, wie in der folgenden Abbildung dargestellt. Wenn Sie eine neue Einschränkung erstellen, wird sie jetzt im Layout-Editor ausgewählt und hervorgehoben. So erhalten Sie sofort visuelles Feedback zu den gerade hinzugefügten Elementen.
Beim Erstellen einer Einschränkung werden im Layout-Editor jetzt nur die zulässigen Ankerpunkte angezeigt, die Sie einschränken können. Bisher wurden im Layout-Editor alle Ankerpunkte in allen Ansichten hervorgehoben, unabhängig davon, ob sie für die Begrenzung verwendet werden konnten. Außerdem wird das Ziel der Einschränkung jetzt durch ein blaues Overlay hervorgehoben. Diese Markierung ist besonders nützlich, wenn Sie eine Komponente einschränken möchten, die sich mit einer anderen überschneidet.
Neben den oben genannten Updates enthält Android Studio 3.5 auch die folgenden Verbesserungen am Layout-Editor:
- Im Begrenzungs-Widget und im Drop-down-Menü für Standardränder können Sie jetzt Dimensionsressourcen für Ränder verwenden.
- In der Symbolleiste des Layout-Editors wurde die Liste der Geräte aktualisiert, die die Größe der Designoberfläche bestimmen. Außerdem wurde das Anpassen beim Ändern der Größe verbessert und die Ziehpunkte zum Ändern der Größe auf der Designoberfläche sind jetzt immer sichtbar. Beim Ändern der Größe werden neue Overlays mit gängigen Gerätegrößen angezeigt.
- Der Layout-Editor hat ein neues Farbschema, das für mehr Einheitlichkeit sorgt und den Kontrast zwischen Komponenten, Text und Einschränkungen reduziert.
- Im Blueprint-Modus wird jetzt Text für einige Komponenten unterstützt, bei denen er zuvor nicht angezeigt wurde.
Weitere Informationen zu diesen Änderungen finden Sie unter Android Studio Project Marble: Layout Editor.
Datenbindung
Neben der Unterstützung der inkrementellen Anmerkungsverarbeitung für die Datenbindung wurden in der IDE die Funktionen des intelligenten Editors und die Leistung beim Erstellen von Datenbindungsausdrücken in XML verbessert.
Verbesserte Unterstützung für C/C++-Projekte
Android Studio 3.5 enthält mehrere Änderungen, die die Unterstützung für C/C++-Projekte verbessern.
Verbesserungen am Bereich „Build-Varianten“ für die Synchronisierung einzelner Varianten
Sie können jetzt sowohl die aktive Buildvariante als auch das aktive ABI im Bereich Buildvarianten angeben. Diese Funktion vereinfacht die Build-Konfiguration pro Modul und kann auch die Gradle-Synchronisierungsleistung verbessern.
Weitere Informationen finden Sie unter Build-Variante ändern.
Parallele Versionen des NDK
Sie können jetzt mehrere Versionen des NDK parallel verwenden. Diese Funktion bietet Ihnen mehr Flexibilität bei der Konfiguration Ihrer Projekte, z. B. wenn Sie Projekte haben, in denen auf demselben Computer unterschiedliche Versionen des NDK verwendet werden.
Wenn in Ihrem Projekt das Android Gradle-Plug-in 3.5.0 oder höher verwendet wird, können Sie auch die Version des NDK angeben, die jedes Modul in Ihrem Projekt verwenden soll. Mit dieser Funktion können Sie reproduzierbare Builds erstellen und Inkompatibilitäten zwischen NDK-Versionen und dem Android Gradle-Plug-in beheben.
Weitere Informationen finden Sie unter NDK, CMake und LLDB installieren und konfigurieren.
ChromeOS-Support
Android Studio unterstützt jetzt offiziell ChromeOS-Geräte wie das HP Chromebook x360 14, das Acer Chromebook 13/Spin 13 und weitere, die in den Systemanforderungen aufgeführt sind. Laden Sie Android Studio auf Ihr kompatibles ChromeOS-Gerät herunter und folgen Sie der Installationsanleitung.
Hinweis: Android Studio unter ChromeOS unterstützt derzeit nur die Bereitstellung Ihrer App auf einem verbundenen Hardwaregerät. Weitere Informationen finden Sie unter Apps auf einem Hardwaregerät ausführen.
Bedingte Bereitstellung für Funktionsmodule
Mit der bedingten Bereitstellung können Sie bestimmte Gerätekonfigurationsanforderungen festlegen, damit Funktionsmodule während der App-Installation automatisch heruntergeladen werden. Sie können beispielsweise ein Funktionsmodul mit Augmented-Reality-Funktionen (AR) so konfigurieren, dass es bei der App-Installation nur auf Geräten verfügbar ist, die AR unterstützen.
Mit diesem Bereitstellungsmechanismus kann der Download eines Moduls bei der App-Installation basierend auf den folgenden Gerätekonfigurationen gesteuert werden:
- Hardware- und Softwarefunktionen des Geräts, einschließlich OpenGL ES-Version
- Land des Nutzers
- API-Ebene
Wenn ein Gerät nicht allen von Ihnen angegebenen Anforderungen entspricht, wird das Modul nicht bei der App-Installation heruntergeladen. Ihre App kann jedoch später über die Play Core Library anfordern, das Modul bei Bedarf herunterzuladen. Weitere Informationen finden Sie unter Bedingte Zustellung konfigurieren.
IntelliJ IDEA 2019.1
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA aktualisiert. Dazu gehören beispielsweise die 2019.1-Version und die Möglichkeit zur Anpassung des Designs.
Die letzte IntelliJ-Version, die in Android Studio enthalten war, war 2018.3.4. Weitere Informationen zu den Verbesserungen aus anderen IntelliJ-Versionen, die in dieser Version von Android Studio enthalten sind, finden Sie in den folgenden Fehlerbehebungen:
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
Updates für das Android Gradle-Plug-in 3.5.0
Informationen zu den Neuerungen im Android Gradle-Plug-in 3.5.0, z. B. zur verbesserten Unterstützung der inkrementellen Anmerkungsverarbeitung und der cachbaren Unit-Tests, finden Sie in den Versionshinweisen.
Communitybeiträge
Vielen Dank an alle Community-Mitglieder, die uns dabei geholfen haben, Fehler zu finden und Android Studio 3.5 weiter zu verbessern. Wir möchten uns insbesondere bei den folgenden Personen bedanken, die P0- und P1-Fehler gemeldet haben:
|
|
|
3.4 (April 2019)
Android Studio 3.4 ist ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.
3.4.2 (Juli 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
3.4.1 (Mai 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
Bekannte Probleme mit der Version 3.4.0
Das Profiling ist deaktiviert, wenn Sie Ihre App auf einem Gerät mit Android Q Beta bereitstellen.
- Wenn Sie die Data Binding Library verwenden, schlägt
LiveDataListener.onChanged()
möglicherweise mit einer Null-Pointer-Ausnahme fehl. Eine Behebung dieses Problems ist in Android Studio 3.4.1 enthalten und bereits in der neuesten Vorabversion von Android Studio 3.5 verfügbar. (Siehe Problem 122066788)
IntelliJ IDEA 2018.3.4
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA aktualisiert, die in der Version 2018.3.4 enthalten sind.
Updates für das Android-Gradle-Plug-in 3.4.0
Informationen zu den Neuerungen im Android Gradle-Plug-in 3.4.0 finden Sie in den Versionshinweisen.
Dialogfeld „Neue Projektstruktur“
Mit dem neuen Dialogfeld „Projektstruktur“ können Sie Abhängigkeiten einfacher aktualisieren und verschiedene Aspekte Ihres Projekts konfigurieren, z. B. Module, Build-Varianten, Signaturkonfigurationen und Build-Variablen.
Sie können die PSD-Datei öffnen, indem Sie in der Menüleiste Datei > Projektstruktur auswählen. Sie können die PSD-Datei auch öffnen, indem Sie unter Windows und Linux die Taste Ctrl+Shift+Alt+S
oder unter macOS die Taste Command+;
(Semikolon) drücken. Beschreibungen einiger neuer und aktualisierter Abschnitte der PSD finden Sie unten.
Variablen
Im neuen Bereich „Variablen“ der PSD können Sie Buildvariablen erstellen und verwalten, z. B. solche, mit denen Sie Versionsnummern für Abhängigkeiten im gesamten Projekt einheitlich halten.
- Sie können Build-Variablen, die bereits in den Gradle-Build-Scripts Ihres Projekts vorhanden sind, schnell aufrufen und bearbeiten.
- Fügen Sie neue Build-Variablen direkt über die PSD auf Projekt- oder Modulebene hinzu.
Hinweis:Wenn in Ihren vorhandenen Build-Konfigurationsdateien Werte über komplexe Groovy-Scripts zugewiesen werden, können Sie diese Werte möglicherweise nicht über die PSD bearbeiten. Außerdem können Sie mit der PSD keine Build-Dateien bearbeiten, die in Kotlin geschrieben wurden.
Module
Konfigurieren Sie Properties, die auf alle Buildvarianten in einem vorhandenen Modul angewendet werden, oder fügen Sie Ihrem Projekt im Bereich Module neue Module hinzu. Hier können Sie beispielsweise defaultConfig
-Attribute konfigurieren oder Signaturkonfigurationen verwalten.
Abhängigkeiten
So prüfen und visualisieren Sie jede Abhängigkeit im Abhängigkeitsdiagramm Ihres Projekts, die von Gradle während der Projektsynchronisierung aufgelöst wurde:
- Wählen Sie im linken Bereich der PSD Dependencies (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 rechts in der PSD den Bereich Aufgelöste Abhängigkeiten, der unten dargestellt ist.
Sie können auch schnell nach Abhängigkeiten suchen und diese Ihrem Projekt hinzufügen. Wählen Sie dazu zuerst ein Modul im Bereich Dependencies (Abhängigkeiten) der PSD aus, klicken Sie im Bereich Declared Dependencies (Angekündigte Abhängigkeiten) auf die Schaltfläche (+) und wählen Sie den Typ der Abhängigkeit aus, die Sie hinzufügen möchten.
Je nach ausgewählter Abhängigkeit sollte ein Dialogfeld ähnlich dem unten angezeigt werden, in dem Sie die Abhängigkeit dem Modul hinzufügen können.
Build-Varianten
In diesem Abschnitt der PSD erstellen und konfigurieren Sie Buildvarianten und Produktvarianten für jedes Modul in Ihrem Projekt. Sie können unter anderem Manifest-Platzhalter hinzufügen, ProGuard-Dateien hinzufügen und Signaturschlüssel zuweisen.
Vorschläge
Im Abschnitt Vorschläge finden Sie Vorschläge für Aktualisierungen von Projektabhängigkeiten und Build-Variablen.
Neuer Resource Manager
Der Ressourcenmanager ist ein neues Toolfenster zum Importieren, Erstellen, Verwalten und Verwenden von Ressourcen in Ihrer App. Sie können das Toolfenster öffnen, indem Sie in der Menüleiste Ansicht > Toolfenster > Ressourcenmanager auswählen. Mit dem Ressourcenmanager haben Sie folgende Möglichkeiten:
- Ressourcen visualisieren:Sie können sich eine Vorschau von Drawables, Farben und Layouts ansehen, um schnell die benötigten Ressourcen zu finden.
- Bulk-Import:Sie können mehrere Zeichnungs-Assets gleichzeitig importieren, indem Sie sie per Drag-and-drop in das Toolfenster Ressourcenmanager ziehen oder den Assistenten Zeichnungselemente importieren verwenden. Klicken Sie zum Aufrufen des Assistenten links oben im Toolfenster auf das Pluszeichen (+) und wählen Sie dann im Drop-down-Menü Zeichnbare Elemente importieren aus.
-
SVGs in
VectorDrawable
-Objekte konvertieren:Mit dem Assistenten Zeichnbare Elemente importieren können Sie Ihre SVG-Bilder inVectorDrawable
-Objekte konvertieren. - Assets per Drag-and-drop hinzufügen:Im Toolfenster Ressourcenmanager können Sie Drawables per Drag-and-drop sowohl in die Design- als auch in die XML-Ansicht des Layout-Editors ziehen.
- Alternative Versionen ansehen:Sie können jetzt alternative Versionen Ihrer Ressourcen aufrufen, indem Sie im Fenster Tool auf eine Ressource doppelklicken. In dieser Ansicht sehen Sie die verschiedenen Versionen, die Sie erstellt haben, und die eingeschlossenen Einschränkungen.
- Kachel- und Listenansicht:Sie können die Ansicht im Toolfenster ändern, um Ihre Ressourcen in verschiedenen Anordnungen zu visualisieren.
Weitere Informationen finden Sie im Leitfaden zum Verwalten von App-Ressourcen.
Build-IDs beim Profiling und Debuggen von APKs prüfen
Wenn Sie Symboldateien für die gemeinsamen .so
-Bibliotheken in Ihrem APK bereitstellen, prüft Android Studio, ob die Build-ID der bereitgestellten Symboldateien mit der Build-ID der .so
-Bibliotheken im APK übereinstimmt.
Wenn Sie die nativen Bibliotheken in Ihrem APK mit einer Build-ID erstellen, prüft Android Studio, ob die Build-ID in Ihren Symboldateien mit der Build-ID in Ihren nativen Bibliotheken übereinstimmt. Andernfalls werden die Symboldateien abgelehnt. Wenn Sie den Build nicht mit einer Build-ID erstellt haben, kann die Angabe falscher Symboldateien zu Problemen beim Debuggen führen.
R8 standardmäßig aktiviert
R8 integriert Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing in einem Schritt. Das führt zu erheblichen Leistungsverbesserungen beim Erstellen. R8 wurde im Android Gradle-Plug-in 3.3.0 eingeführt und ist jetzt standardmäßig für App- und Android-Bibliotheksprojekte mit dem Plug-in 3.4.0 und höher aktiviert.
Das folgende Bild bietet einen allgemeinen Überblick über den Kompilierungsprozess vor der Einführung von R8.
Mit R8 werden Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing (D8) jetzt in einem Schritt ausgeführt, wie unten dargestellt.
R8 ist für die Verwendung mit Ihren vorhandenen ProGuard-Regeln konzipiert. Sie müssen also wahrscheinlich nichts unternehmen, um von R8 zu profitieren. Da es sich jedoch um eine andere Technologie als ProGuard handelt, die speziell für Android-Projekte entwickelt wurde, kann es beim Schrumpfen und Optimieren dazu kommen, dass Code entfernt wird, der von ProGuard möglicherweise nicht entfernt wurde. In diesem unwahrscheinlichen Fall müssen Sie möglicherweise zusätzliche Regeln hinzufügen, damit dieser Code in der Build-Ausgabe enthalten bleibt.
Wenn bei der Verwendung von R8 Probleme auftreten, lesen Sie die häufig gestellten Fragen zur Kompatibilität mit R8, um zu sehen, ob es eine Lösung für Ihr Problem gibt. Wenn keine Lösung dokumentiert ist, melden Sie bitte einen Fehler.
Sie können R8 deaktivieren, indem Sie der gradle.properties
-Datei Ihres Projekts eine der folgenden Zeilen hinzufügen:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Hinweis:Wenn Sie für einen bestimmten Buildtyp in der Datei build.gradle
Ihres App-Moduls useProguard
auf false
festlegen, verwendet das Android Gradle-Plug-in R8, um den Code Ihrer App für diesen Buildtyp zu verkleinern, unabhängig davon, ob Sie R8 in der Datei gradle.properties
Ihres Projekts deaktivieren.
Navigation Editor unterstützt jetzt alle Argumenttypen
Alle Argumenttypen, die von der Navigationskomponente unterstützt werden, werden jetzt auch im Navigationseditor unterstützt. Weitere Informationen zu unterstützten Typen finden Sie unter Daten zwischen Zielen übergeben.
Verbesserungen am Layout-Editor {:#layout-editor}
Der Bereich Attribute im Layout-Editor wurde zu einer einzigen Seite mit Abschnitten zusammengefasst, die Sie maximieren können, um konfigurierbare Attribute zu sehen. Der Bereich Attribute enthält außerdem die folgenden Änderungen:
- Im neuen Bereich Deklarierte Attribute sind die Attribute aufgeführt, die in der Layoutdatei angegeben sind. Dort können Sie auch schnell neue hinzufügen.
- Der Bereich Attribute enthält jetzt neben jedem Attribut einen Indikator. Dieser ist ausgefüllt, wenn der Wert des Attributs eine Ressourcenreferenz ist, andernfalls leer.
- Attribute mit Fehlern oder Warnungen werden jetzt hervorgehoben. Rote Markierungen weisen auf Fehler hin (z. B. wenn Sie ungültige Layoutwerte verwenden), orangefarbene Markierungen auf Warnungen (z. B. wenn Sie hartcodierte Werte verwenden).
Neue Absichtsaktion zum schnellen Importieren von Abhängigkeiten
Wenn Sie bestimmte Jetpack- und Firebase-Klassen in Ihrem Code verwenden, wird Ihnen mit einer neuen Intent-Aktion vorgeschlagen, Ihrem Projekt die erforderliche Gradle-Bibliotheksabhängigkeit hinzuzufügen, falls Sie dies noch nicht getan haben. Wenn Sie beispielsweise auf die WorkManager
-Klasse verweisen, ohne zuerst die erforderliche android.arch.work:work-runtime
-Abhängigkeit zu importieren, können Sie dies mit einer Intent-Aktion ganz einfach mit nur einem Klick tun, wie unten gezeigt.
Da Jetpack die Supportbibliothek in einzelne Pakete verpackt hat, die sich leichter verwalten und aktualisieren lassen, können Sie mit dieser Absichtsaktion schnell nur die Abhängigkeiten hinzufügen, die Sie für die von Ihnen verwendeten Jetpack-Komponenten benötigen.
3.3 (Januar 2019)
Android Studio 3.3 ist ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.
3.3.2 (März 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release Updates“.
3.3.1 (Februar 2019)
Dieses kleinere Update enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.
IntelliJ IDEA 2018.2.2
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA in der Version 2018.2.2 aktualisiert.
Updates für das Android-Gradle-Plug-in
Informationen zu den Neuerungen im Android Gradle-Plug-in finden Sie in den Versionshinweisen.
Navigationseditor
Mit dem Navigationseditor können Sie die Navigation in Ihrer App mithilfe der Navigationsarchitekturkomponente schnell visualisieren und einbinden.
Weitere Informationen finden Sie unter Navigation mit der Navigationsarchitekturkomponente implementieren.
Nicht verwendete Android Studio-Verzeichnisse löschen
Wenn Sie eine Hauptversion von Android Studio zum ersten Mal ausführen, wird nach Verzeichnissen mit Caches, Einstellungen, Indexen und Protokollen für Versionen von Android Studio gesucht, für die keine entsprechende Installation gefunden werden kann. Im Dialogfeld Nicht verwendete Android Studio-Verzeichnisse löschen werden dann die Speicherorte, die Größe und die letzten Änderungszeiten dieser nicht verwendeten Verzeichnisse angezeigt. Außerdem haben Sie die Möglichkeit, sie zu löschen.
Die folgenden Verzeichnisse werden von Android Studio zum Löschen vorgeschlagen:
- Linux:
~/.AndroidStudio[Preview]X.Y
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
- Windows:
%USER%.AndroidStudio[Preview]X.Y
Verbesserungen bei Lint
Wenn Lint über Gradle aufgerufen wird, ist es deutlich schneller. Bei größeren Projekten kann Lint bis zu viermal schneller ausgeführt werden.
Assistent zum Erstellen eines neuen Projekts
Der Assistent Neues Projekt erstellen hat ein neues Design und enthält Updates, die die Erstellung neuer Android Studio-Projekte optimieren.
Weitere Informationen finden Sie unter Projekt erstellen.
Profiler-Updates
Android Studio 3.3 enthält Updates für mehrere der einzelnen Profiler.
Bessere Leistung
Basierend auf dem Feedback der Nutzer wurde die Renderingleistung bei der Verwendung der Profiler erheblich verbessert. Bitte geben Sie uns weiterhin Feedback, insbesondere wenn weiterhin Leistungsprobleme auftreten.
Optionen zum Speichern der Speicherzuweisung im Profiler
Um die App-Leistung beim Profiling zu verbessern, werden im Speicher-Profiler jetzt standardmäßig Speicherzuweisungen regelmäßig abgetastet. Sie können dieses Verhalten bei Tests auf Geräten mit Android 8.0 (API-Level 26) oder höher über das Drop-down-Menü Zuweisungs-Tracking ändern.
Im Drop-down-Menü Zuweisungs-Tracking können Sie einen der folgenden Modi auswählen:
-
Vollständig:Hier werden alle Objektspeicherzuweisungen erfasst. Wenn Ihre App viele Objekte zuweist, können beim Profiling erhebliche Leistungsprobleme auftreten.
-
Gemustert:Es wird eine regelmäßige Stichprobe der Objektspeicherzuweisungen erfasst. Dies ist das Standardverhalten und hat weniger Auswirkungen auf die App-Leistung während des Profilings. Bei Apps, die innerhalb kurzer Zeit viele Objekte zuweisen, können Leistungsprobleme auftreten.
-
Aus:Die Arbeitsspeicherzuweisung wird deaktiviert. Wenn dieser Modus nicht bereits ausgewählt ist, wird er während einer CPU-Aufzeichnung automatisch aktiviert und nach Abschluss der Aufzeichnung wieder auf die vorherige Einstellung zurückgesetzt. Sie können dieses Verhalten im Dialogfeld zur Konfiguration der CPU-Aufzeichnung ändern.
Das Tracking wirkt sich sowohl auf Java-Objekte als auch auf JNI-Referenzen aus.
Daten zum Frame-Rendering prüfen
Im CPU-Profiler können Sie jetzt prüfen, wie lange es dauert, bis Ihre Java-Anwendung jeden Frame im Haupt-UI-Thread und im Render-Thread gerendert hat. Diese Daten können hilfreich sein, wenn Sie Engpässe untersuchen, die zu Rucklern in der Benutzeroberfläche und zu niedrigen Frameraten führen. Beispielsweise werden alle Frames, für die mehr als die 16 ms erforderlich sind, die für eine flüssige Framerate erforderlich sind, rot angezeigt.
Wenn Sie Daten zum Frame-Rendering sehen möchten, erstellen Sie einen Trace mit einer Konfiguration, mit der Sie Systemaufrufe erfassen können. Nach der Aufzeichnung finden Sie Informationen zu den einzelnen Frames entlang der Zeitachse der Aufzeichnung im Abschnitt FRAMES, wie unten dargestellt.
Weitere Informationen zum Untersuchen und Beheben von Problemen mit der Framerate findest du unter Langsames Rendern.
Fragmente in der Ereigniszeitachse
In der Ereigniszeitachse wird jetzt angezeigt, wann Fragmente angehängt und getrennt werden. Wenn Sie den Mauszeiger auf ein Fragment bewegen, wird in einer Kurzinfo der Status des Fragments angezeigt.
Formatierten Text für Verbindungsnutzlasten im Netzwerkprofiler ansehen
Bisher wurde im Netzwerk-Profiler nur Rohtext aus Verbindungsnutzlasten angezeigt. In Android Studio 3.3 werden bestimmte Texttypen jetzt standardmäßig formatiert, darunter JSON, XML und HTML. Klicken Sie auf den Tabs Antwort und Anfrage auf den Link Geparst ansehen, um formatierten Text anzuzeigen, und auf den Link Quellcode ansehen, um den Rohtext anzuzeigen.
Weitere Informationen finden Sie unter Netzwerkverkehr mit dem Netzwerk-Profiler prüfen.
Automatischer Download von SDK-Komponenten
Wenn Ihr Projekt eine SDK-Komponente von den SDK-Plattformen, NDK oder CMake benötigt, versucht Gradle jetzt, die erforderlichen Pakete automatisch herunterzuladen, sofern Sie zuvor alle zugehörigen Lizenzvereinbarungen über den SDK-Manager akzeptiert haben.
Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.
Unterstützung für Clang-Tidy
Android Studio unterstützt jetzt die statische Codeanalyse mit Clang-Tidy für Projekte mit nativem Code. Wenn Sie die Unterstützung für Clang-Tidy aktivieren möchten, aktualisieren Sie Ihr NDK auf Version r18 oder höher.
Sie können die Prüfungen dann aktivieren oder wieder aktivieren, indem Sie das Dialogfeld Einstellungen oder Vorgaben öffnen und zu Editor > Prüfungen > C/C++ > Allgemein > Clang-Tidy gehen. Wenn Sie diese Prüfung im Dialogfeld Einstellungen oder Voreinstellungen auswählen, sehen Sie im rechten Bereich unter Option eine Liste der aktivierten und deaktivierten Clang-Tidy-Prüfungen. Wenn Sie zusätzliche Prüfungen aktivieren möchten, fügen Sie sie der Liste hinzu und klicken Sie auf Übernehmen.
Wenn Sie Clang-Tidy mit zusätzlichen Optionen konfigurieren möchten, klicken Sie auf Clang-Tidy-Prüfoptionen konfigurieren und fügen Sie sie im sich öffnenden Dialogfeld hinzu.
Optionen für die C++-Anpassung wurden entfernt
Die folgenden Optionen wurden aus dem Dialogfeld C++-Unterstützung anpassen entfernt:
- Unterstützung für Ausnahmen (-fexceptions)
- Unterstützung von Informationen zum Laufzeittyp (-ftti)
Die entsprechenden Verhaltensweisen sind für alle Projekte aktiviert, die über Android Studio erstellt wurden.
CMake-Version 3.10.2
CMake Version 3.10.2 ist jetzt im SDK Manager enthalten. Hinweis: Gradle verwendet standardmäßig weiterhin Version 3.6.0.
Wenn Sie eine CMake-Version für Gradle angeben möchten, fügen Sie der Datei build.gradle
Ihres Moduls Folgendes hinzu:
android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}
Weitere Informationen zum Konfigurieren von CMake in build.gradle
finden Sie unter Gradle manuell konfigurieren.
Neue „+“-Syntax zum Angeben der Mindestversionen von CMake
Wenn Sie in der build.gradle
-Datei Ihres Hauptmoduls eine CMake-Version angeben, können Sie jetzt ein „+“ anhängen, um das Verhalten des CMake-Befehls cmake_minimum_required()
nachzuahmen.
Achtung:Die Verwendung der Syntax „+“ mit anderen Build-Abhängigkeiten wird nicht empfohlen, da dynamische Abhängigkeiten zu unerwarteten Versionsaktualisierungen und Schwierigkeiten bei der Behebung von Versionsunterschieden führen können.
Android App Bundles unterstützen jetzt Instant Apps
Mit Android Studio können Sie jetzt Android App-Bundles mit vollständiger Unterstützung für Google Play Instant erstellen. Mit anderen Worten: Sie können jetzt sowohl installierbare Apps als auch Instant-Apps aus einem einzigen Android Studio-Projekt erstellen und bereitstellen und sie in einem einzigen Android App Bundle einschließen.
Wenn Sie ein neues Android Studio-Projekt über das Dialogfeld Neues Projekt erstellen erstellen, setzen Sie ein Häkchen neben Projekt konfigurieren > Dieses Projekt unterstützt Instant-Apps. Android Studio erstellt dann wie gewohnt ein neues App-Projekt, fügt aber die folgenden Properties in Ihr Manifest ein, um dem Basismodul Ihrer App Unterstützung für Instant Apps hinzuzufügen:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
Sie können dann ein Modul mit einer Instant-fähigen Funktion erstellen. Wählen Sie dazu in der Menüleiste Datei > Neu > Neues Modul und dann im Dialogfeld Neues Modul erstellen die Option Instant Dynamic Feature Module aus. Beachten Sie, dass durch das Erstellen dieses Moduls auch das Basismodul Ihrer App sofort aktiviert wird.
Wenn Sie Ihre App als Instant-App auf einem lokalen Gerät bereitstellen möchten, bearbeiten Sie die Ausführungskonfiguration und setzen Sie ein Häkchen neben Allgemein > Als Instant-App bereitstellen.
Synchronisierung von Projekten mit einer Variante
Das Synchronisieren Ihres Projekts mit Ihrer Build-Konfiguration ist ein wichtiger Schritt, damit Android Studio die Struktur Ihres Projekts erkennen kann. Bei großen Projekten kann dieser Vorgang jedoch zeitaufwendig sein. Wenn Sie in Ihrem Projekt mehrere Buildvarianten verwenden, können Sie Projektsynchronisierungen jetzt optimieren, indem Sie sie auf die aktuell ausgewählte Variante beschränken.
Sie müssen Android Studio 3.3 oder höher mit dem Android Gradle-Plug-in 3.3.0 oder höher verwenden, um diese Optimierung zu aktivieren. Wenn Sie diese Anforderungen erfüllen, werden Sie in der IDE aufgefordert, diese Optimierung zu aktivieren, wenn Sie Ihr Projekt synchronisieren. Die Optimierung ist auch bei neuen Projekten standardmäßig aktiviert.
Wenn Sie diese Optimierung manuell aktivieren möchten, klicken Sie auf Datei > Einstellungen > Experimentell > Gradle (Android Studio > Einstellungen > Experimentell > Gradle auf einem Mac) und setzen Sie ein Häkchen in das Kästchen Nur die aktive Variante synchronisieren.
Hinweis:Diese Optimierung wird derzeit nur für Projekte unterstützt, die nur die Programmiersprache Java enthalten. Wenn die IDE beispielsweise Kotlin- oder C++-Code in Ihrem Projekt erkennt, wird diese Optimierung nicht automatisch aktiviert und Sie sollten sie auch nicht manuell aktivieren.
Weitere Informationen finden Sie unter Synchronisierung von Projekten mit einer Variante aktivieren.
Schnell Feedback geben
Wenn Sie die Freigabe von Nutzungsstatistiken zur Verbesserung von Android Studio aktiviert haben, werden in der Statusleiste unten im IDE-Fenster zwei neue Symbole angezeigt:
Klicken Sie einfach auf das Symbol, das Ihre aktuelle Erfahrung mit der IDE am besten beschreibt. In diesem Fall sendet die IDE Nutzungsstatistiken, anhand derer das Android Studio-Team Ihre Meinung besser nachvollziehen kann. In einigen Fällen, z. B. wenn Sie eine negative Erfahrung mit der IDE angeben, haben Sie die Möglichkeit, zusätzliches Feedback zu geben.
Wenn Sie die Freigabe von Nutzungsstatistiken noch nicht aktiviert haben, können Sie dies tun, indem Sie das Dialogfeld Einstellungen (Preferences auf einem Mac) öffnen, zu Darstellung und Verhalten > Systemeinstellungen > Datenfreigabe gehen und die Option Nutzungsstatistiken an Google senden aktivieren.
3.2 (September 2018)
Android Studio 3.2 ist eine Hauptversion mit einer Vielzahl neuer Funktionen und Verbesserungen.
3.2.1 (Oktober 2018)
Dieses Update auf Android Studio 3.2 enthält die folgenden Änderungen und Fehlerkorrekturen:
- Die mitgelieferte Kotlin-Version ist jetzt 1.2.71.
- Die Standardversion der Build-Tools ist jetzt 28.0.3.
- In der Navigationsbibliothek wurden Argumenttypen von
type
inargType
umbenannt. - Die folgenden Fehler wurden behoben:
- Bei Verwendung der Data Binding-Bibliothek führten Variablennamen mit Unterstrichen zu Kompilierungsfehlern.
- CMake führte dazu, dass IntelliSense und andere CLion-Funktionen fehlgeschlagen sind.
- Das Hinzufügen von
SliceProvider
führte in Projekten, in denen keineandroidx.*
-Bibliotheken verwendet wurden, zu Kompilierungsfehlern. - Einige Kotlin-Einheitstests wurden nicht ausgeführt.
- Ein Problem mit der Datenbindung führte zu einem
PsiInvalidElementAccessException
. <merge>
-Elemente führten manchmal zum Absturz des Layout-Editors.
Bekannte Probleme mit der Version 3.2.0
Hinweis:Diese Probleme wurden in Android Studio 3.2.1 behoben.
Wir empfehlen dringend, Kotlin-Version 1.2.70 nicht zu verwenden.
In Kotlin-Version 1.2.61 wurde ein Fehler behoben, der zu einem Absturz von Android Studio führen kann. Dieser Fehler wurde in Kotlin 1.2.70 nicht behoben.
In Kotlin-Versionen 1.2.71 und höher ist diese Korrektur jedoch enthalten.
-
Normalerweise müssen Sie die Version der Build-Tools nicht angeben. Wenn Sie jedoch das Android Gradle-Plug-in 3.2.0 verwenden und
renderscriptSupportModeEnabled
auftrue
festgelegt ist, müssen Sie in derbuild.gradle
-Datei jedes Moduls Folgendes angeben:android.buildToolsVersion "28.0.3"
Neuigkeiten zu Assistant
Ein neuer Assistent informiert Sie über die neuesten Änderungen in Android Studio.
Der Assistent wird geöffnet, wenn Sie Android Studio nach einer Neuinstallation oder einem Update starten und er erkennt, dass neue Informationen angezeigt werden können. Sie können den Assistant auch über Hilfe > Neuigkeiten in Android Studio öffnen.
Android Jetpack
Android Jetpack beschleunigt die Android-Entwicklung mit Komponenten, Tools und Anleitungen, die sich wiederholende Aufgaben ersparen und es Ihnen ermöglichen, schneller und einfacher hochwertige, testbare Apps zu erstellen. Android Studio enthält die folgenden Updates zur Unterstützung von Jetpack. Weitere Informationen finden Sie in der Jetpack-Dokumentation.
Navigationseditor
Der neue Navigationseditor ist in die Navigationskomponenten von Android Jetpack eingebunden und bietet eine grafische Ansicht zum Erstellen der Navigationsstruktur Ihrer App. Der Navigationseditor vereinfacht das Design und die Implementierung der Navigation zwischen In-App-Zielen.
In Android Studio 3.2 ist der Navigationseditor eine experimentelle Funktion. Wenn Sie den Navigationseditor aktivieren möchten, klicken Sie auf Datei > Einstellungen (Android Studio > Einstellungen auf dem Mac), wählen Sie im linken Bereich die Kategorie Experimentell aus, klicken Sie das Kästchen neben Navigationseditor aktivieren an und starten Sie Android Studio neu.
Weitere Informationen finden Sie in der Dokumentation zum Navigationseditor.
Migration zu AndroidX
Im Rahmen von Jetpack migrieren wir die Android-Unterstützungsbibliotheken zu einer neuen Android-Erweiterungsbibliothek mit dem Namespace androidx
. Weitere Informationen finden Sie in der AndroidX-Übersicht.
Android Studio 3.2 unterstützt Sie dabei mit einer neuen Migrationsfunktion.
Wenn Sie ein vorhandenes Projekt zu AndroidX migrieren möchten, wählen Sie Umstrukturieren > Zu AndroidX migrieren aus. Wenn Sie Maven-Abhängigkeiten haben, die nicht in den AndroidX-Namespace migriert wurden, werden diese Projektabhängigkeiten vom Android Studio-Buildsystem ebenfalls automatisch konvertiert.
Das Android Gradle-Plug-in bietet die folgenden globalen Flags, die Sie in Ihrer gradle.properties
-Datei festlegen können:
android.useAndroidX
: Wenn dieses Flag auftrue
festgelegt ist, möchten Sie ab sofort AndroidX verwenden. Wenn das Flag nicht vorhanden ist, verhält sich Android Studio so, als wäre es auffalse
festgelegt.android.enableJetifier
: Wenn dieses Flag auftrue
festgelegt ist, wird damit angegeben, dass Sie Tool-Support (über das Android Gradle-Plug-in) benötigen, um vorhandene Drittanbieterbibliotheken automatisch so zu konvertieren, als wären sie für AndroidX geschrieben. Wenn das Flag nicht vorhanden ist, verhält sich Android Studio so, als wäre es auffalse
festgelegt.
Beide Flags sind auf true
gesetzt, wenn Sie den Befehl Zu AndroidX migrieren verwenden.
Wenn Sie sofort mit der Verwendung von AndroidX-Bibliotheken beginnen und vorhandene Drittanbieterbibliotheken nicht konvertieren müssen, können Sie das Flag android.useAndroidX
auf true
und das Flag android.enableJetifier
auf false
festlegen.
Android App Bundle
Android App Bundle ist ein neues Uploadformat, das den gesamten kompilierten Code und alle Ressourcen Ihrer App enthält. Die APK-Generierung und -Signatur werden jedoch an den Google Play Store weitergeleitet.
Das neue App-Auslieferungsmodell von Google Play verwendet dann Ihr App-Bundle, um optimierte APKs für die Gerätekonfiguration jedes Nutzers zu generieren und bereitzustellen. So lädt jeder Nutzer nur den Code und die Ressourcen herunter, die er zum Ausführen Ihrer App benötigt. Sie müssen nicht mehr mehrere APKs erstellen, signieren und verwalten. Nutzer erhalten kleinere, optimiertere Downloads.
Außerdem können Sie Ihrem App-Projekt Funktionsmodule hinzufügen und sie in Ihr App-Bundle aufnehmen. Ihre Nutzer können dann die Funktionen Ihrer App bei Bedarf herunterladen und installieren.
Wenn Sie ein Bundle erstellen möchten, wählen Sie Build > Build Bundle(s) / APK(s) > Build Bundle(s) aus.
Weitere Informationen, einschließlich einer Anleitung zum Erstellen und Analysieren eines Android App-Bundles, finden Sie unter Android App-Bundle.
Beispieldaten im Layout-Editor
Viele Android-Layouts enthalten Laufzeitdaten, die es schwierig machen können, das Erscheinungsbild eines Layouts in der Designphase der App-Entwicklung zu visualisieren. Sie können jetzt ganz einfach eine Vorschau Ihrer Ansicht im Layout-Editor mit Beispieldaten aufrufen. Wenn Sie eine Ansicht hinzufügen, wird im Designfenster unter der Ansicht die Schaltfläche angezeigt. Klicken Sie auf diese Schaltfläche, um die Ansichtsattribute in der Designzeit festzulegen. Sie können aus einer Vielzahl von Vorlagen für Beispieldaten wählen und die Anzahl der Beispielelemente angeben, mit denen die Ansicht gefüllt werden soll.
Wenn Sie Beispieldaten verwenden möchten, fügen Sie einem neuen Layout ein RecyclerView
hinzu, klicken Sie unter der Ansicht auf die Schaltfläche für Designzeitattribute und wählen Sie eine Auswahl aus dem Karussell mit Vorlagen für Beispieldaten aus.
Slices
Slices bieten eine neue Möglichkeit, Teile der Funktionen Ihrer App in andere Benutzeroberflächen auf Android-Geräten einzubetten. So können Sie beispielsweise App-Funktionen und -Inhalte in den Vorschlägen der Google Suche präsentieren.
Android Studio 3.2 enthält eine integrierte Vorlage, mit der Sie Ihre App mit den neuen Slice Provider APIs erweitern können. Außerdem gibt es neue Lint-Prüfungen, mit denen Sie sicherstellen können, dass Sie beim Erstellen der Slices Best Practices einhalten.
Klicken Sie zum Einstieg mit der rechten Maustaste auf einen Projektordner und wählen Sie Neu > Sonstiges > Slice-Anbieter aus.
Weitere Informationen, unter anderem zum Testen von Interaktionen mit Snippets, finden Sie im Einstiegsleitfaden für Snippets.
Kotlin 1.2.61
Android Studio 3.2 enthält Kotlin 1.2.61 und das neue Android SDK lässt sich besser in Kotlin integrieren. Weitere Informationen finden Sie im Blog für Android-Entwickler.
IntelliJ IDEA 2018.1.6
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA bis zur Version 2018.1.6 aktualisiert.
Android-Profiler
In Android Studio 3.2 stehen die folgenden neuen Funktionen des Android-Profilers zur Verfügung.
Sitzungen
Sie können jetzt Profiler-Daten als Sitzungen speichern, um sie später noch einmal aufzurufen und zu prüfen. Der Profiler speichert Ihre Sitzungsdaten, bis Sie die IDE neu starten.
Wenn Sie einen Methoden-Trace oder einen Heap-Dump aufzeichnen, fügt die IDE diese Daten (zusammen mit den Netzwerkaktivitäten Ihrer App) als separaten Eintrag zur aktuellen Sitzung hinzu. Sie können dann ganz einfach zwischen den Aufzeichnungen wechseln, um Daten zu vergleichen.
System Tracing
Wählen Sie im CPU-Profiler die neue Konfiguration System-Trace aus, um die CPU- und Threadaktivität des Geräts zu prüfen. Diese Trace-Konfiguration basiert auf systrace
und eignet sich zur Untersuchung von Problemen auf Systemebene, z. B. Ruckler in der Benutzeroberfläche.
Wenn Sie diese Trace-Konfiguration verwenden, können Sie wichtige Coderoutinen in der Zeitachse des Profilers visuell markieren, indem Sie Ihren C/C++-Code mit der nativen Tracing API oder Ihren Java-Code mit der Klasse Trace
instrumentieren.
JNI-Referenzen im Speicher-Profiler prüfen
Wenn Sie Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereitstellen, können Sie jetzt mit dem Speicher-Profiler die Speicherzuweisungen für den JNI-Code Ihrer App prüfen.
Wählen Sie während der Ausführung Ihrer App einen Teil der Zeitachse aus, den Sie untersuchen möchten, und dann im Drop-down-Menü über der Klassenliste JNI-Heap aus (siehe Abbildung unten). Sie können dann wie gewohnt Objekte im Heap prüfen und auf dem Tab Allocation Call Stack (Aufrufstack für die Zuweisung) auf Objekte doppelklicken, um zu sehen, wo die JNI-Referenzen in Ihrem Code zugewiesen und freigegeben werden.
Speicher-Heap-Dumpdateien importieren, exportieren und prüfen
Sie können jetzt .hprof
-Speicher-Heap-Dumpdateien importieren, exportieren und prüfen, die mit dem Speicher-Profiler erstellt wurden.
Importieren Sie die Datei .hprof
, indem Sie im Bereich Sitzungen des Profilers auf Neue Profiler-Sitzung starten
und dann auf Aus Datei laden klicken. Sie können die Daten dann wie bei jedem anderen Heap-Dump im Speicher-Profiler prüfen.
Wenn Sie Heap-Dump-Daten zur späteren Auswertung speichern möchten, verwenden Sie die Schaltfläche Heap-Dump exportieren rechts neben dem Eintrag Heap-Dump im Bereich Sitzungen. Speichern Sie die Datei im Dialogfeld Als mit der Dateiendung .hprof
.
CPU-Aktivität beim Starten der App aufzeichnen
So können Sie die CPU-Aktivität beim Starten Ihrer App erfassen:
- Wählen Sie im Hauptmenü Ausführen > Konfigurationen bearbeiten aus.
- Setzen Sie in der gewünschten Ausführungskonfiguration auf dem Tab Profiling ein Häkchen neben Methoden-Trace beim Starten aufzeichnen.
- Wählen Sie im Drop-down-Menü eine CPU-Aufzeichnungskonfiguration aus.
- Wählen Sie Ausführen > Profil aus, um Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereitzustellen.
CPU-Traces exportieren
Nachdem Sie die CPU-Aktivität mit dem CPU-Profiler aufgezeichnet haben, können Sie die Daten als .trace
-Datei exportieren, um sie für andere freizugeben oder später zu prüfen.
So exportieren Sie einen Trace, nachdem Sie die CPU-Aktivität aufgezeichnet haben:
- Klicken Sie auf der CPU-Zeitachse mit der rechten Maustaste auf die Aufnahme, die Sie exportieren möchten.
- Wählen Sie im Drop-down-Menü die Option Trace exportieren aus.
- Wählen Sie den Speicherort der Datei aus und klicken Sie auf Speichern.
CPU-Tracedateien importieren und prüfen
Sie können jetzt .trace
-Dateien importieren und prüfen, die mit der Debug API oder dem CPU-Profiler erstellt wurden. Derzeit können keine System-Trace-Aufzeichnungen importiert werden.
Importieren Sie die Ablaufverfolgungsdatei, indem Sie im Bereich Sitzungen des Profilers auf Neue Profiler-Sitzung starten und dann auf Aus Datei laden klicken. Sie können die Daten dann wie gewohnt im CPU-Profiler prüfen, mit den folgenden Ausnahmen:
- Die CPU-Aktivität wird nicht auf der CPU-Zeitachse dargestellt.
- Die Zeitachse der Threadaktivität gibt nur an, wo für jeden Thread Ablaufdaten verfügbar sind, nicht die tatsächlichen Threadstatus (z. B. „Ausführen“, „Warten“ oder „Ruhemodus“).
CPU-Aktivitäten mit der Debug API aufzeichnen
Sie können jetzt die Aufzeichnung der CPU-Aktivitäten im CPU-Profiler starten und beenden, indem Sie Ihre App mit der Debug API instrumentieren. Nachdem Sie Ihre App auf einem Gerät bereitgestellt haben, beginnt der Profiler automatisch mit der Aufzeichnung der CPU-Aktivität, wenn Ihre App startMethodTracing(String tracePath)
aufruft. Die Aufzeichnung wird beendet, wenn Ihre App stopMethodTracing()
aufruft. Während der CPU-Profiler die CPU-Aktivitäten aufzeichnet, die mit dieser API ausgelöst werden, wird Debug API als ausgewählte CPU-Aufzeichnungskonfiguration angezeigt.
Energy Profiler
Der Energieprofiler zeigt eine Visualisierung des geschätzten Energieverbrauchs Ihrer App sowie Systemereignisse, die sich auf den Energieverbrauch auswirken, z. B. Wakelocks, Wecker und Jobs.
Der Energiesparprofil wird als neue Zeile unten im Fenster Profiler angezeigt, wenn Sie Ihre App auf einem verbundenen Gerät oder Android-Emulator mit Android 8.0 (API 26) oder höher ausführen.
Klicken Sie auf die Zeile Energie, um die Ansicht des Energieprofils zu maximieren. Bewegen Sie den Mauszeiger auf einen Balken in der Zeitachse, um eine Aufschlüsselung der Energienutzung nach CPU-, Netzwerk- und Standortressourcen (GPS) sowie relevante Systemereignisse zu sehen.
Systemereignisse, die sich auf den Energieverbrauch auswirken, werden in der Zeitachse System unter der Zeitachse Energie angezeigt. Details zu Systemereignissen im angegebenen Zeitraum werden im Ereignisbereich angezeigt, wenn Sie auf der Zeitachse Energie einen Zeitraum auswählen.
Wenn Sie den Aufrufstack und andere Details für ein Systemereignis wie ein Wakelock sehen möchten, wählen Sie es im Ereignisbereich aus. Wenn Sie den Code aufrufen möchten, der für ein Systemereignis verantwortlich ist, klicken Sie doppelt auf den Eintrag im Aufrufstack.
Lint-Prüfung
Android Studio 3.2 enthält viele neue und verbesserte Funktionen für die Lint-Prüfung.
Mit den neuen Lint-Prüfungen können Sie häufige Codeprobleme finden und identifizieren, von Warnungen zu potenziellen Usability-Problemen bis hin zu Fehlern mit hoher Priorität im Hinblick auf potenzielle Sicherheitslücken.
Lint-Prüfungen für die Java/Kotlin-Interoperabilität
Damit Ihr Java-Code gut mit Ihrem Kotlin-Code interagieren kann, werden mit neuen Lint-Prüfungen die Best Practices erzwungen, die im Kotlin Interop Guide beschrieben sind. Beispiele für diese Prüfungen sind die Suche nach Anmerkungen zur Ignorierbarkeit, die Verwendung von Kotlin-Schlüsselwörtern und das Platzieren von Lambda-Parametern an letzter Stelle.
Wenn Sie diese Prüfungen aktivieren möchten, klicken Sie auf Datei > Einstellungen (Android Studio > Einstellungen auf dem Mac), um das Dialogfeld Einstellungen zu öffnen. Gehen Sie dann zu Editor > Prüfungen > Android > Lint > Interoperability > Kotlin Interoperability und wählen Sie die Regeln aus, die Sie aktivieren möchten.
Wenn Sie diese Prüfungen für Builds über die Befehlszeile aktivieren möchten, fügen Sie der Datei build.gradle
Folgendes hinzu:
android {
lintOptions {
check 'Interoperability'
}
}
Lint-Prüfungen für Slices
Mit den neuen Lint-Prüfungen für Slices können Sie dafür sorgen, dass Sie Slices korrekt erstellen. So werden Sie beispielsweise durch Lint-Prüfungen gewarnt, wenn Sie einem Snippet keine primäre Aktion zugewiesen haben.
Neues Gradle-Ziel
Mit der neuen Gradle-Aufgabe lintFix
können Sie alle sicheren Korrekturen, die von der Lint-Prüfung vorgeschlagen wurden, direkt auf den Quellcode anwenden. Ein Beispiel für eine Lint-Prüfung, bei der eine sichere Korrektur vorgeschlagen wird, ist SyntheticAccessor
.
Metadatenaktualisierungen
Verschiedene Metadaten, z. B. die Prüfung für die Dienstübertragung, wurden für Lint-Prüfungen aktualisiert, damit sie mit Android 9 (API-Ebene 28) funktionieren.
Warnung beim Ausführen von lint auf einer neuen Variante
Lint zeichnet jetzt auf, mit welcher Variante und Version eine Baseline erfasst wird. Außerdem werden Sie gewarnt, wenn Sie Lint auf einer anderen Variante ausführen als der, mit der die Baseline erstellt wurde.
Verbesserungen an vorhandenen Lint-Prüfungen
Android Studio 3.2 enthält viele Verbesserungen an den vorhandenen Lint-Prüfungen. So gelten die Ressourcenzyklusprüfungen jetzt beispielsweise für weitere Ressourcentypen und der Übersetzungsdetektor kann fehlende Übersetzungen im Editor direkt finden.
Bessere Sichtbarkeit von Problem-IDs
Problem-IDs werden jetzt an mehr Stellen angezeigt, z. B. im Fenster Prüfergebnisse. So können Sie die Informationen, die Sie zum Aktivieren oder Deaktivieren bestimmter Prüfungen benötigen, leichter über lintOptions
in build.gradle
finden.
Weitere Informationen finden Sie unter Lint-Optionen mit Gradle konfigurieren.
Datenbindung V2
Data Binding V2 ist jetzt standardmäßig aktiviert und mit V1 kompatibel. Das bedeutet, dass Sie Bibliotheksabhängigkeiten, die Sie mit Version 1 kompiliert haben, in Projekten mit Datenbindung V2 verwenden können. Projekte, die V1 verwenden, können jedoch keine Abhängigkeiten verwenden, die mit V2 kompiliert wurden.
D8-Entzuckerung
In Android Studio 3.1 haben wir den Desugaring-Schritt als experimentelle Funktion in das D8-Tool integriert, wodurch die Gesamtbauzeit verkürzt wird. In Android Studio 3.2 ist die Entsaccharisierung mit D8 standardmäßig aktiviert.
Neuer Code-Optimierungstool
R8 ist ein neues Tool zum Minimieren und Verschleieren von Code, das ProGuard ersetzt. Sie können die Vorabversion von R8 verwenden, indem Sie Folgendes in die gradle.properties
-Datei Ihres Projekts einfügen:
android.enableR8 = true
Standard-ABIs für Multi-APKs geändert
Wenn Sie mehrere APKs erstellen, die jeweils auf ein anderes ABI ausgerichtet sind, generiert das Plug-in standardmäßig keine APKs mehr für die folgenden ABIs: mips
, mips64
und armeabi
.
Wenn Sie APKs erstellen möchten, die auf diese ABIs ausgerichtet sind, müssen Sie NDK r16b oder niedriger verwenden und die ABIs in der Datei build.gradle
angeben, wie unten gezeigt:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Hinweis:Diese Verhaltensänderung ist auch in Android Studio 3.1 RC1 und höher enthalten.
Verbesserte Editorfunktionen für CMake-Builddateien
Wenn Sie CMake verwenden, um Ihrem Projekt C- und C++-Code hinzuzufügen, bietet Android Studio jetzt verbesserte Editorfunktionen, mit denen Sie Ihre CMake-Build-Scripts bearbeiten können, z. B.:
- Syntaxhervorhebung und Codevervollständigung:In der IDE werden jetzt gängige CMake-Befehle hervorgehoben und Vorschläge zur Codevervollständigung gemacht. Sie können auch eine Datei aufrufen, indem Sie darauf klicken und dabei die Strg-Taste gedrückt halten (Befehlstaste auf dem Mac).
- Code neu formatieren:Mit der Option zum Neuformatieren von Code in IntelliJ können Sie jetzt Codestile auf Ihre CMake-Buildscripts anwenden.
- Sicheres Refactoring:Die integrierten Refactoring-Tools der IDE prüfen jetzt auch, ob Sie Dateien umbenennen oder löschen, auf die Sie in Ihren CMake-Build-Scripts verweisen.
Externe Headerdateien aufrufen
In früheren Versionen von Android Studio konnten Sie im Fenster Projekt nur die Headerdateien aufrufen und prüfen, die zu Bibliotheken gehören, die Sie aus einem lokalen Projekt erstellen. Mit dieser Version können Sie jetzt auch Headerdateien ansehen und prüfen, die in externen C/C++-Bibliotheksabhängigkeiten enthalten sind, die Sie in Ihr App-Projekt importieren.
Wenn Sie bereits C/C++-Code und ‑Bibliotheken in Ihr Projekt aufgenommen haben, öffnen Sie das Fenster Projekt auf der linken Seite der IDE. Wählen Sie dazu im Hauptmenü Ansicht > Toolfenster > Projekt und dann im Drop-down-Menü Android aus. Im Verzeichnis cpp sind alle Header, die zum Geltungsbereich Ihres App-Projekts gehören, für jede Ihrer lokalen C/C++-Bibliotheksabhängigkeiten unter dem Knoten include organisiert, wie unten dargestellt.
Nativer Multidex standardmäßig aktiviert
In früheren Versionen von Android Studio wurde native Multidex aktiviert, wenn die Debugversion einer App auf einem Gerät mit Android API-Level 21 oder höher bereitgestellt wurde. Unabhängig davon, ob Sie eine Bereitstellung auf einem Gerät vornehmen oder ein APK für die Veröffentlichung erstellen, aktiviert das Android-Plug-in für Gradle jetzt native Multidex-Unterstützung für alle Module, für die minSdkVersion=21
oder höher festgelegt ist.
AAPT2 in das Maven-Repository von Google verschoben
Ab Android Studio 3.2 ist das Maven-Repository von Google die Quelle für AAPT2 (Android Asset Packaging Tool 2).
Wenn Sie AAPT2 verwenden möchten, muss in Ihrer build.gradle
-Datei eine google()
-Abhängigkeit vorhanden sein, wie hier gezeigt:
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
Mit der neuen Version von AAPT2 wurden viele Probleme behoben, darunter eine verbesserte Verarbeitung von Nicht-ASCII-Zeichen unter Windows.
Entfernung der Konfiguration auf Anfrage
Die Einstellung On-Demand-Konfiguration wurde aus Android Studio entfernt.
Android Studio übergibt das Argument --configure-on-demand
nicht mehr an Gradle.
ADB-Verbindungsassistent
Der neue ADB-Verbindungsassistent enthält eine detaillierte Anleitung zum Einrichten und Verwenden eines Geräts über die Android Debug Bridge (ADB)-Verbindung.
Wählen Sie Tools > Verbindungsassistent aus, um den Assistenten zu starten.
Der ADB-Verbindungsassistent bietet auf mehreren Seiten im Bereich Assistant eine Anleitung, Kontextsteuerelemente und eine Liste der verbundenen Geräte.
Emulator-Verbesserungen
Sie können jetzt jederzeit Snapshots eines AVD (Android Virtual Device) im Android-Emulator speichern und laden. So können Sie ein emuliertes Gerät schnell und einfach zu einem bekannten Status für Tests zurückversetzen. Wenn Sie eine AVD mit dem AVD Manager bearbeiten, können Sie angeben, welcher AVD-Snapshot beim Starten der AVD geladen werden soll.
Die Steuerelemente zum Speichern, Laden und Verwalten von AVD-Snapshots befinden sich jetzt im Fenster Erweiterte Steuerelemente des Emulators auf dem Tab Snapshots.
Weitere Informationen finden Sie unter Snapshots.
Weitere Informationen zu den Neuerungen und Änderungen am Emulator finden Sie in den Versionshinweisen zum Emulator.
3.1 (März 2018)
Android Studio 3.1.0 ist ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.
3.1.4 (August 2018)
Dieses Update auf Android Studio 3.1 enthält die folgenden Änderungen und Fehlerkorrekturen:
- Die im Lieferumfang enthaltene Kotlin-Version ist jetzt 1.2.50.
-
Neue Projekte werden mit
kotlin-stdlib-jdk* artifacts
und nicht mitkotlin-stdlib-jre*
-Artefakten erstellt, die eingestellt werden. - Das R8-Parsen von ProGuard-Regeln wurde verbessert.
- Die folgenden Fehler wurden behoben:
-
Der Versuch, die Kotlin-Hauptklasse auszuführen, ist mit dem Fehler
"Error: Could not find or load main class..."
fehlgeschlagen. - R8 ist bei bestimmten Optimierungen in eine Endlosschleife geraten.
- Wenn Sie im Fenster Ausführen den Befehl Fehlgeschlagene Tests wiederholen verwenden, wurde manchmal fälschlicherweise die Meldung „Keine Tests gefunden“ angezeigt.
-
D8 hat
invoke-virtual
-Instanzen nicht richtig verarbeitet, was zu einem Absturz mit einerVerifyError
geführt hat:invoke-super/virtual can't be used on private method
-
Der Datenbindungscompiler war auf eine alte Version von
com.android.tools:annotations
angewiesen. Der Compiler verwendet jetzt, sofern verfügbar, Anmerkungen zu Tools aus dem Basisprojekt. - Android Studio stürzte bei der Verwendung von Profilern während Fragmentübergängen ab.
- Der Debugger stürzte beim Debuggen eines Layouts mit einem Textfeld ab.
- D8 konnte einige ZIP-Dateien mit Sonderzeichen nicht lesen.
3.1.3 (Juni 2018)
Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:
- Aufgrund von Speicherlecks ist Android Studio nach der Verwendung des Layout-Editors langsam geworden und reagiert nicht mehr. Dieses Update enthält Korrekturen für die meisten dieser Probleme. Wir werden bald ein weiteres Update veröffentlichen, um weitere Speicherlecks zu beheben.
- Einige mit D8 erstellte Anwendungen stürzten auf einigen Verizon Ellipsis-Tablets ab.
-
Die Installation von mit D8 erstellten Apps schlägt auf Geräten mit Android 5.0 oder 5.1 (API-Level 21 oder 22) mit dem Fehler
INSTALL_FAILED_DEXOPT
fehl. - Einige Anwendungen, die die OkHttp-Bibliothek verwenden und mit D8 erstellt wurden, stürzten auf Geräten mit Android 4.4 (API-Level 19) ab.
-
Android Studio konnte manchmal nicht gestartet werden. Dabei wurde während der Kursinitialisierung für
com.intellij.psi.jsp.JspElementType
die MeldungProcessCanceledException
angezeigt.
3.1.2 (April 2018)
Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:
- In einigen Fällen blieb Android Studio beim Beenden endlos hängen.
-
Builds, die mit Quellsätzen konfiguriert wurden, schlugen mit der folgenden Meldung fehl, wenn Instant Run aktiviert war:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Wenn Instant Run aktiviert war, schlugen Builds neuer Kotlin-Projekte fehl, wenn sie durch den Befehl Ausführen ausgelöst wurden.
-
Beim Bearbeiten der
build.gradle
-Datei gab es manchmal eine merkliche Verzögerung zwischen dem Eintippen eines Zeichens und dem Erscheinen des Zeichens auf dem Bildschirm. -
Bei einigen Projekten mit einer großen Anzahl von Modulen oder externen Abhängigkeiten sind beim Dezimieren Buildfehler mit der folgenden Fehlermeldung aufgetreten:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- Bei der Berechnung der D8-Haupt-DEX-Liste wurden einige reflektive Aufrufe nicht berücksichtigt.
Dieses Update enthält auch Änderungen, durch die das Ausführen von Lint-Prüfungen über Gradle in einigen Fällen viel schneller wird.
3.1.1 (April 2018)
Dieses Update auf Android Studio 3.1 enthält Fehlerkorrekturen für die folgenden Probleme:
-
In einigen Fällen wurde die Gradle-kompatible Make-Aufgabe beim ersten Öffnen eines in Android Studio 3.0 erstellten Projekts in Android Studio 3.1 aus dem Bereich Vor dem Start in Ausführungs-/Debug-Konfigurationen entfernt. Das führte dazu, dass Projekte nicht erstellt wurden, wenn auf die Schaltfläche Ausführen oder Fehler beheben geklickt wurde. Dies wiederum führte zu Fehlern wie der Bereitstellung falscher APKs und Abstürzen bei der Verwendung von Instant Run.
Um dieses Problem zu beheben, wird in Android Studio 3.1.1 die Gradle-kompatible Make-Aufgabe der Ausführungskonfiguration für Projekte hinzugefügt, bei denen dieser Eintrag fehlt. Diese Änderung erfolgt nach der ersten Gradle-Synchronisierung, wenn das Projekt geladen wird.
- Der Debugger stürzte beim Debuggen eines Layouts mit einem Textfeld ab, wenn das erweiterte Profiling aktiviert war.
- Android Studio ist eingefroren, nachdem Sie auf Build-Varianten geklickt haben.
- AAR-Dateien (Android-Archive) wurden zweimal extrahiert, einmal während des Gradle-Synchronisierungsvorgangs und einmal während des Gradle-Build-Prozesses.
- Bei einigen aus SVG-Dateien importierten Vektorgrafiken fehlten Elemente.
-
Die Warnung zur Einstellung der
compile
-Abhängigkeitskonfiguration wurde aktualisiert und enthält jetzt eine bessere Anleitung für dieimplementation
- undapi
-Konfigurationen. Weitere Informationen zur Migration von dercompile
-Konfiguration finden Sie in der Dokumentation zu den neuen Abhängigkeitskonfigurationen.
Programmieren/IDE
IntelliJ 2017.3.3
Die Android Studio-IDE wurde mit Verbesserungen aus IntelliJ IDEA der Version 2017.3.3 aktualisiert. Zu den Verbesserungen gehören eine bessere Analyse der Kontrollflusssteuerung für Sammlungen und Strings, eine verbesserte Nullbarkeitsableitung, neue Schnellkorrekturen und vieles mehr.
Weitere Informationen finden Sie in den JetBrains-Releasenotes für IntelliJ IDEA-Versionen 2017.2 und 2017.3 sowie in den JetBrains-Releasenotes für Updates mit Fehlerkorrekturen.
Verbesserungen beim Bearbeiten von SQL-Abfragen mit Room
Wenn Sie die Room-Datenbankbibliothek verwenden, können Sie von mehreren Verbesserungen bei der SQL-Bearbeitung profitieren:
- Die Codevervollständigung in einem
Query
versteht SQL-Tabellen (Entitäten), Spalten, Abfrageparameter, Aliasse, Joins, Unterabfragen und WITH-Klauseln. - Die SQL-Syntaxhervorhebung funktioniert jetzt.
- Sie können in SQL mit der rechten Maustaste auf einen Tabellennamen klicken und ihn umbenennen. Dadurch wird auch der entsprechende Java- oder Kotlin-Code neu geschrieben, einschließlich beispielsweise des Rückgabetyps der Abfrage. Das Umbenennen funktioniert auch in die andere Richtung. Wenn Sie also eine Java-Klasse oder ein Java-Feld umbenennen, wird der entsprechende SQL-Code neu geschrieben.
- SQL-Nutzungen werden angezeigt, wenn Sie Nutzungen suchen verwenden (Rechtsklick und Auswahl von Nutzungen suchen aus dem Kontextmenü).
- Wenn Sie die Deklaration einer SQL-Entität in Java- oder Kotlin-Code aufrufen möchten, halten Sie die Strg-Taste (Befehlstaste auf dem Mac) gedrückt und klicken Sie auf die Entität.
Informationen zur Verwendung von SQL mit Room finden Sie unter Daten mit Room in einer lokalen Datenbank speichern.
Änderungen an der Datenbindung
Dieses Update enthält mehrere Verbesserungen für die Datenbindung:
-
Sie können jetzt ein
LiveData
-Objekt als beobachtbares Feld in Datenbindungsausdrücken verwenden. Die KlasseViewDataBinding
enthält jetzt eine neuesetLifecycle()
-Methode, 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 ansehen. Weitere Informationen zu diesem neuen Compiler und eine Anleitung zum Aktivieren finden Sie unter Data Binding Compiler V2.
Zu den Vorteilen des neuen Compilers gehören:
-
ViewBinding
-Klassen werden vom Android-Plug-in für Gradle vor dem Java-Compiler generiert. - Die generierten Bindungsklassen von Bibliotheken bleiben beim Kompilieren der App erhalten, anstatt jedes Mal neu generiert zu werden. Dies kann die Leistung bei Projekten mit mehreren Modulen erheblich verbessern.
-
Compiler und Gradle
D8 ist der Standard-DEX-Compiler
Der D8-Compiler wird jetzt standardmäßig zum Generieren von DEX-Bytecode verwendet.
Dieser neue DEX-Compiler bietet mehrere Vorteile, darunter:
- Schnellere Deindexierung
- Niedrigere Arbeitsspeichernutzung
- Verbesserte Codegenerierung (bessere Registerzuweisung, intelligentere Stringtabellen)
- Verbesserte Fehlerbehebung beim Durchlaufen von Code
Sie müssen keine Änderungen an Ihrem Code oder Ihrem Entwicklungsablauf vornehmen, um diese Vorteile zu nutzen, es sei denn, Sie haben den D8-Compiler zuvor manuell deaktiviert.
Wenn Sie in gradle.properties
für android.enableD8
den Wert false
festgelegt haben, löschen Sie dieses Flag oder legen Sie es auf true
fest:
android.enableD8=true
Weitere Informationen finden Sie unter Neuer DEX-Compiler.
Inkrementelle Desugaring
Bei Projekten, die Java 8-Sprachfunktionen verwenden, ist die inkrementelle Desugaring standardmäßig aktiviert. Dadurch können die Buildzeiten verbessert werden.
Beim Entfernen von Syntaktikzucker wird Syntaktikzucker in eine Form umgewandelt, die der Compiler effizienter verarbeiten kann.
Sie können die inkrementelle Desugaring deaktivieren, indem Sie Folgendes in der Datei gradle.properties
Ihres Projekts angeben:
android.enableIncrementalDesugaring=false
Fenster für die vereinfachte Ausgabe
Die Gradle Console wurde durch das Fenster Build ersetzt, das die Tabs Sync und Build enthält.
Weitere Informationen zur Verwendung des neuen, vereinfachten Fensters Build finden Sie unter Build-Prozess überwachen.
Gleichzeitige Ausführung von Batch-Updates und Indexierung
Die Gradle-Synchronisierung und die IDE-Indexierung sind jetzt viel effizienter, sodass weniger Zeit für viele redundante Indexierungsvorgänge verschwendet wird.
C++ und LLDB
Wir haben viele Qualitäts- und Leistungsverbesserungen in den Phasen Codieren, Synchronisieren, Erstellen und Entfernen von Fehlern der C++-Entwicklung vorgenommen. Zu den Verbesserungen gehören:
-
Wenn Sie mit großen C++-Projekten arbeiten, sollten Sie eine deutliche Verkürzung der Zeit für das Erstellen von Symbolen feststellen. Außerdem wird die Synchronisierungszeit bei großen Projekten deutlich verkürzt.
-
Die Leistung beim Erstellen und Synchronisieren mit CMake wurde durch eine aggressivere Wiederverwendung von im Cache gespeicherten Ergebnissen verbessert.
-
Durch die Hinzufügung von Formatierungstools („Pretty Printer“) für weitere C++-Datenstrukturen ist die LLDB-Ausgabe leichter lesbar.
-
LLDB funktioniert jetzt nur noch mit Android 4.1 (API-Ebene 16) und höher.
Hinweis:Das native Debuggen mit Android Studio 3.0 oder höher funktioniert nicht unter 32-Bit-Windows. Wenn Sie 32-Bit-Windows verwenden und nativen Code debuggen möchten, verwenden Sie Android Studio 2.3.
Kotlin
Kotlin auf Version 1.2.30 aktualisiert
Android Studio 3.1 enthält Kotlin-Version 1.2.30.
Kotlin-Code wird jetzt mit der Befehlszeilen-Lint-Prüfung analysiert
Wenn Sie Lint über die Befehlszeile ausführen, werden jetzt auch Ihre Kotlin-Klassen analysiert.
Für jedes Projekt, für das Sie lint ausführen möchten, muss das Maven-Repository von Google in der Datei build.gradle
auf oberster Ebene enthalten sein. Das Maven-Repository ist bereits für Projekte enthalten, die in Android Studio 3.0 und höher erstellt wurden.
Tools zur Leistungssteigerung
Beispiel für native C++-Prozesse mit dem CPU-Profiler
Der CPU-Profiler enthält jetzt eine Standardkonfiguration zum Aufzeichnen von Stichproben von Traces der nativen Threads Ihrer App. Sie können diese Konfiguration verwenden, indem Sie Ihre App auf einem Gerät mit Android 8.0 (API-Level 26) oder höher bereitstellen und dann im Drop-down-Menü für die Aufzeichnungskonfigurationen des CPU-Profilers Gemustert (nativ) auswählen. Anschließend können Sie wie gewohnt einen Trace aufzeichnen und prüfen.
Sie können Standardeinstellungen wie das Stichprobenintervall ändern, indem Sie eine Aufnahmekonfiguration erstellen.
Wenn Sie wieder zum Erfassen Ihrer Java-Threads zurückkehren möchten, wählen Sie entweder die Konfiguration Beispiel (Java) oder Instrumentiert (Java) aus.
CPU-Traces, Arbeitsspeicherzuweisungsergebnisse und Heap-Dumps filtern
Der CPU-Profiler und der Speicher-Profiler enthalten eine Suchfunktion, mit der Sie Ergebnisse aus der Aufzeichnung eines Methoden-Traces, von Speicherzuweisungen oder von einem Heap-Dump filtern können.
Klicken Sie zum Suchen rechts oben im Bereich auf Filter , geben Sie Ihre Suchanfrage ein und drücken Sie die Eingabetaste.
Tipp:Sie können das Suchfeld auch mit der Tastenkombination Strg + F (Befehlstaste + F auf einem Mac) öffnen.
Auf dem Tab Feuerdiagramm des CPU-Profilers werden Aufrufstacks, die Methoden mit Bezug zu Ihrer Suchanfrage enthalten, hervorgehoben und auf die linke Seite des Diagramms verschoben.
Weitere Informationen zum Filtern nach Methode, Klasse oder Paketnamen finden Sie unter Methoden-Traces erfassen und prüfen.
Tab „Anfrage“ im Netzwerk-Profiler
Der Netzwerk-Profiler enthält jetzt den Tab Anfrage mit Details zu Netzwerkanfragen im ausgewählten Zeitraum. In früheren Versionen gab der Netzwerk-Profiler nur Informationen zu Netzwerkantworten an.
Threadansicht im Netzwerk-Profiler
Nachdem Sie im Netzwerk-Profiler einen Teil der Zeitachse ausgewählt haben, können Sie einen der folgenden Tabs auswählen, um weitere Details zu den Netzwerkaktivitäten in diesem Zeitraum aufzurufen:
- Verbindungsansicht: Enthält dieselben Informationen wie frühere Versionen von Android Studio. Hier werden Dateien aufgeführt, die während des ausgewählten Zeitabschnitts in allen CPU-Threads Ihrer App gesendet oder empfangen wurden. Sie können Größe, Typ, Status und Übertragungsdauer jeder Anfrage prüfen.
- Threadansicht: Zeigt die Netzwerkaktivität der einzelnen CPU-Threads Ihrer App an. In dieser Ansicht können Sie prüfen, welche Threads Ihrer App für jede Netzwerkanfrage verantwortlich sind.
Layout Inspector
Der Layout-Inspektor wurde um neue Funktionen erweitert, darunter einige, die zuvor vom eingestellten Hierarchy Viewer und den Pixel Perfect-Tools angeboten wurden:
- Zoomschaltflächen und Tastenkombinationen zum Navigieren und Prüfen von Layouts
- Raster-Overlay für Referenz
- Möglichkeit, ein Referenzbild zu laden und als Overlay zu verwenden (nützlich, um Ihr Layout mit einem UI-Mockup zu vergleichen)
- Vorschau des untergeordneten Knotens rendern, um eine Ansicht in einem komplexen Layout zu isolieren
Layout-Editor
Die Palette im Layout-Editor wurde erheblich verbessert:
- Neuorganisation der Kategorien für Ansichten und Layouts
- Neue Kategorie Gängig für Ansichten und Layouts, der Sie mit dem Befehl Favoriten Elemente hinzufügen können.
- Verbesserte Suche nach Ansichten und Layouts.
- Neue Befehle zum Öffnen der Dokumentation für eine bestimmte Ansicht oder ein bestimmtes Layoutelement.
Mit dem neuen Befehl Ansicht konvertieren im Komponentenbaum oder im Design-Editor können Sie eine Ansicht oder ein Layout in eine andere Art von Ansicht oder Layout umwandeln.
Mit den neuen Schaltflächen „Verbindung erstellen“ im Ansichtsinspektor oben im Fenster Attribute können Sie jetzt ganz einfach Einschränkungen für Elemente in der Nähe der ausgewählten Ansicht erstellen.
Ausführen und Instant Run
Das Verhalten der Option Gleiche Auswahl für zukünftige Einführungen verwenden im Dialogfeld Bereitstellungsziel auswählen wurde einheitlicher. Wenn die Option Gleiche Auswahl verwenden aktiviert ist, wird das Dialogfeld Bereitstellungsziel auswählen nur beim ersten Mal geöffnet, wenn Sie den Befehl Ausführen verwenden, bis das ausgewählte Gerät nicht mehr verbunden ist.
Wenn Sie Ihre App auf ein Gerät mit Android 8.0 (API-Level 26) oder höher ausrichten, können mit Instant Run Änderungen an Ressourcen bereitgestellt werden, ohne dass die Anwendung neu gestartet werden muss. Das ist möglich, weil die Ressourcen in einem Split-APK enthalten sind.
Emulator
Informationen zu den Neuerungen und Änderungen am Emulator seit Android Studio 3.0 finden Sie in den Versionshinweisen für den Android-Emulator von Version 27.0.2 bis Version 27.1.12.
Zu den wichtigsten Verbesserungen gehören:
- Schnellstart-Snapshots zum Speichern des Emulatorstatus und für einen schnelleren Start. Mit dem Befehl Jetzt speichern können Sie einen benutzerdefinierten Startstatus speichern.
- Emulatorbildschirm ohne Fenster
- Systemabbilder für Android 8.0 (API-Level 26), Android 8.1 (API-Level 27) und die Android P-Entwicklervorschau
Verbesserungen an der Benutzeroberfläche und der Nutzerfreundlichkeit
Mehr Kurzinfos, Tastenkombinationen und hilfreiche Meldungen
Wir haben an vielen Stellen in Android Studio Kurzinfos und hilfreiche Overlays mit Nachrichten hinzugefügt.
Wenn Sie die Tastenkombinationen für viele Befehle sehen möchten, halten Sie den Mauszeiger einfach auf eine Schaltfläche, bis die Kurzinfo erscheint.
Das Menü „Tools“ > „Android“ wurde entfernt
Das Menü Tools > Android wurde entfernt. Befehle, die sich zuvor in diesem Menü befanden, wurden verschoben.
- Viele Befehle wurden direkt unter das Menü Tools verschoben.
- Der Befehl Projekt mit Gradle-Dateien synchronisieren wurde in das Menü Datei verschoben.
- Der Befehl Device Monitor wurde entfernt, wie unten beschrieben.
Device Monitor über die Befehlszeile verfügbar
In Android Studio 3.1 spielt der Gerätemonitor eine geringere Rolle als zuvor. In vielen Fällen werden die Funktionen des Gerätemonitors jetzt von neuen und verbesserten Tools bereitgestellt.
Eine Anleitung zum Aufrufen des Gerätemonitors über die Befehlszeile und Details zu den über den Gerätemonitor verfügbaren Tools finden Sie in der Dokumentation zum Gerätemonitor.
3.0 (Oktober 2017)
Android Studio 3.0.0 ist ein wichtiger Release mit einer Vielzahl neuer Funktionen und Verbesserungen.
macOS-Nutzer:Wenn Sie eine ältere Version von Android Studio aktualisieren, wird möglicherweise das Updatefehlerdialogfeld „Im Installationsbereich wurden einige Konflikte gefunden“ angezeigt. Ignorieren Sie diesen Fehler einfach und klicken Sie auf Abbrechen, um die Installation fortzusetzen.
3.0.1 (November 2017)
Dieses Update für Android Studio 3.0 enthält allgemeine Fehlerkorrekturen und Leistungsverbesserungen.
Android-Plug-in für Gradle 3.0.0
Das neue Android-Plug-in für Gradle bietet eine Vielzahl von Verbesserungen und neuen Funktionen, vor allem aber eine bessere Build-Leistung für Projekte mit einer großen Anzahl von Modulen. Wenn Sie das neue Plug-in mit diesen großen Projekten verwenden, sollten Sie Folgendes feststellen:
- Kürzere Buildkonfigurationszeiten dank der neuen verzögerten Abhängigkeitsauflösung.
- Variantenspezifische Abhängigkeitsauflösung nur für die Projekte und Varianten, die Sie erstellen.
- Schnellere inkrementelle Buildzeiten beim Anwenden einfacher Änderungen an Code oder Ressourcen.
Hinweis: Diese Verbesserungen erforderten erhebliche Änderungen, die einige Verhaltensweisen, DSLs und APIs des Plug-ins beeinträchtigen. Für das Upgrade auf Version 3.0.0 sind möglicherweise Änderungen an Ihren Build-Dateien und Gradle-Plug-ins erforderlich.
Diese Version enthält außerdem Folgendes:
- Unterstützung für Android 8.0
- Unterstützung für das Erstellen separater APKs basierend auf Sprachressourcen
- Unterstützung für Java 8-Bibliotheken und Java 8-Sprachfunktionen (ohne Jack-Compiler).
- Unterstützung für Android Test Support Library 1.0 (Android Test Utility und Android Test Orchestrator)
- Verbesserte Build-Geschwindigkeiten von ndk-build und cmake.
- Die Geschwindigkeit der Gradle-Synchronisierung wurde verbessert.
- AAPT2 ist jetzt standardmäßig aktiviert.
- Die Verwendung von
ndkCompile
ist jetzt eingeschränkter. Sie sollten stattdessen entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK einbinden möchten. Weitere Informationen finden Sie unter Von ndkcompile migrieren.
Weitere Informationen zu den Änderungen finden Sie in den Versionshinweisen zum Android-Plug-in für Gradle.
Wenn Sie bereit sind, auf das neue Plug-in umzustellen, lesen Sie den Hilfeartikel Zum Android-Plug-in für Gradle 3.0.0 migrieren.
Kotlin-Unterstützung
Wie bei der Google I/O 2017 angekündigt, wird die Programmiersprache Kotlin jetzt offiziell auf Android unterstützt. Mit diesem Release unterstützt Android Studio die Kotlin-Programmiersprache für die Android-Entwicklung.
Sie können Kotlin in Ihr Projekt einbinden, indem Sie eine Java-Datei in Kotlin konvertieren (Code > Java-Datei in Kotlin-Datei konvertieren) oder über den Assistenten „Neues Projekt“ ein neues Kotlin-kompatibles Projekt erstellen.
Weitere Informationen zum Hinzufügen von Kotlin zu Ihrem Projekt
Unterstützung für Java 8-Sprachfunktionen
Sie können jetzt bestimmte Java 8-Sprachfunktionen verwenden und Bibliotheken nutzen, die mit Java 8 erstellt wurden. Jack ist nicht mehr erforderlich. Sie sollten zuerst Jack deaktivieren, um die verbesserte Java 8-Unterstützung zu verwenden, die in der Standard-Toolchain enthalten ist.
Wenn Sie Ihr Projekt für die neue Java 8-Sprach-Toolchain aktualisieren möchten, ändern Sie im Dialogfeld Projektstruktur (Datei > Projektstruktur) die Quellkompatibilität und die Zielkompatibilität in „1.8“. Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.
Android-Profiler
Der neue Android Profiler ersetzt das Android Monitor-Tool und bietet eine neue Suite von Tools, mit denen Sie die CPU-, Arbeitsspeicher- und Netzwerknutzung Ihrer App in Echtzeit messen können. Sie können ein probebasiertes Methoden-Tracing durchführen, um die Ausführung Ihres Codes zu messen, Heap-Dumps zu erfassen, sich die Speicherzuordnungen anzusehen und die Details der über das Netzwerk übertragenen Dateien zu prüfen.
Klicken Sie auf Ansicht > Toolfenster > Android-Profiler oder auf Android-Profiler in der Symbolleiste, um das Tool zu öffnen.
In der Ereigniszeitleiste oben im Fenster werden Touch-Ereignisse, Tastendrücke und Aktivitätsänderungen angezeigt, damit Sie andere Leistungsereignisse in der Zeitleiste besser nachvollziehen können.
Hinweis: Die Ansicht Logcat wurde ebenfalls in ein separates Fenster verschoben. Sie befand sich zuvor im Android-Monitor, der entfernt wurde.
Klicken Sie in der Übersichtszeitachse des Android-Profilers auf die Zeitachsen CPU, ARBEITSSPEICHER oder Netzwerk, um auf die entsprechenden Profiler-Tools zuzugreifen.
CPU-Profiler
Mit dem CPU-Profiler können Sie die CPU-Thread-Nutzung Ihrer App analysieren, indem Sie einen Beispiel- oder instrumentierten CPU-Trace auslösen. Anschließend können Sie mithilfe verschiedener Datenansichten und Filter Probleme mit der CPU-Leistung beheben.
Weitere Informationen finden Sie im Leitfaden zum CPU-Profiler.
Speicher-Profiler
Mit dem Memory Profiler können Sie Speicherlecks und Speicherschwankungen erkennen, die zu Rucklern, Einfrieren und sogar zu App-Abstürzen führen können. Er zeigt ein Echtzeitdiagramm der Arbeitsspeichernutzung Ihrer App, ermöglicht das Erfassen eines Heap-Dumps, erzwingt das Garbage Collection und überwacht die Speicherzuweisungen.
Weitere Informationen finden Sie im Leitfaden zum Arbeitsspeicher-Profiler.
Network Profiler
Mit dem Netzwerk-Profiler können Sie die Netzwerkaktivitäten Ihrer App im Blick behalten, die Nutzlast jeder Netzwerkanfrage prüfen und eine Verknüpfung zum Code herstellen, der die Netzwerkanfrage generiert hat.
Weitere Informationen finden Sie im Leitfaden für Network Profiler.
APK-Profiling und ‑Fehlerbehebung
Mit Android Studio können Sie jetzt beliebige APKs profilieren und debuggen, ohne sie aus einem Android Studio-Projekt erstellen zu müssen. Voraussetzung ist, dass das APK so erstellt wurde, dass die Fehlerbehebung aktiviert ist, und dass Sie Zugriff auf die Debugsymbole und Quelldateien haben.
Klicken Sie zum Einstieg auf dem Begrüßungsbildschirm von Android Studio auf APK profilern oder debuggen. Wenn Sie bereits ein Projekt geöffnet haben, klicken Sie in der Menüleiste auf Datei > APK profilieren oder debuggen. Dadurch werden die entpackten APK-Dateien angezeigt, der Code wird jedoch nicht dekompiliert. Wenn Sie also Breakpoints richtig hinzufügen und Stack-Traces ansehen möchten, müssen Sie Java-Quelldateien und native Debugsymbole anhängen.
Weitere Informationen finden Sie unter Profil für vorgefertigte APKs erstellen und Fehler beheben.
Geräte-Datei-Explorer
Mit dem neuen Gerätedatei-Explorer können Sie das Dateisystem Ihres verbundenen Geräts prüfen und Dateien zwischen dem Gerät und Ihrem Computer übertragen. Es ersetzt das Dateisystem-Tool in DDMS.
Klicken Sie auf Ansicht > Toolfenster > Device File Explorer, um es zu öffnen.
Weitere Informationen finden Sie im Leitfaden zum Gerätedatei-Explorer.
Support für Instant Apps
Mit der neuen Unterstützung für Android Instant Apps können Sie Instant Apps in Ihrem Projekt mit zwei neuen Modultypen erstellen: Instant App-Module und Funktionsmodule. Dazu müssen Sie das Instant Apps Development SDK installieren.
Android Studio enthält außerdem eine neue Refaktorierungsaktion zum Modularisieren, mit der Sie einem vorhandenen Projekt die Unterstützung für Instant Apps hinzufügen können. Wenn Sie Ihr Projekt beispielsweise umstrukturieren möchten, um einige Klassen in einem Instant App-Funktionsmodul zu platzieren, wählen Sie die Klassen im Fenster Projekt aus und klicken Sie auf Umstrukturieren > Modularisieren. Wählen Sie im angezeigten Dialogfeld das Modul aus, in das die Kurse verschoben werden sollen, und klicken Sie auf OK.
Wenn Sie Ihre Instant App testen möchten, können Sie Ihr Instant App-Modul auf einem verbundenen Gerät erstellen und ausführen. Geben Sie dazu die URL der Instant App in den Ausführungsoptionen der Ausführungskonfiguration an: Wählen Sie Ausführen > Konfigurationen bearbeiten aus, wählen Sie Ihr Instant App-Modul aus und legen Sie dann die URL unter Ausführungsoptionen fest.
Weitere Informationen finden Sie unter Android Instant Apps.
Android Things-Module
Neue Android Things-Vorlagen in den Assistenten „Neues Projekt“ und „Neues Modul“, die Ihnen den Einstieg in die Entwicklung für Android-basierte IoT-Geräte erleichtern.
Weitere Informationen finden Sie unter Android Things-Projekt erstellen.
Assistent für adaptive Symbole
Image Asset Studio unterstützt jetzt Vektorgrafiken und ermöglicht das Erstellen von adaptiven Launcher-Symbolen für Android 8.0 und gleichzeitig von traditionellen Symbolen („Legacy“-Symbolen) für ältere Geräte.
Klicken Sie zuerst mit der rechten Maustaste auf den Ordner res in Ihrem Projekt und dann auf Neu > Bild-Asset. Wählen Sie im Fenster Asset Studio als Symboltyp Launcher-Symbole (Adaptiv und Legacy) aus.
Hinweis: Sie müssen compileSdkVersion
auf 26 oder höher festlegen, um adaptive Launcher-Symbole zu verwenden.
Weitere Informationen finden Sie unter Adaptive Symbole.
Unterstützung für Schriftressourcen
Zur Unterstützung der neuen Schriftressourcen in Android 8.0 enthält Android Studio eine Auswahl für Schriftressourcen, mit der Sie Schriftarten in Ihre App einbinden oder Ihr Projekt so konfigurieren können, dass die Schriftarten (falls verfügbar) auf das Gerät heruntergeladen werden. Im Layout-Editor können Sie sich auch eine Vorschau der Schriftarten in Ihrem Layout ansehen.
Wenn Sie herunterladbare Schriftarten ausprobieren möchten, muss auf Ihrem Gerät oder Emulator Google Play-Dienste Version 11.2.63 oder höher installiert sein. Weitere Informationen finden Sie unter Herunterladbare Schriftarten.
Firebase App Indexing Assistant
Der Firebase Assistant wurde um eine neue Anleitung zum Testen der App-Indexierung ergänzt. Wählen Sie Tools > Firebase aus, um den Assistant zu öffnen. Wählen Sie dann App-Indexierung > App-Indexierung testen aus.
Die Anleitung enthält neue Schaltflächen, mit denen Sie die Indexierung Ihrer öffentlichen und privaten Inhalte testen können:
- Klicken Sie in Schritt 2 auf Suchergebnisse in der Vorschau ansehen, um zu prüfen, ob Ihre URLs in den Google-Suchergebnissen angezeigt werden.
- Klicken Sie in Schritt 3 auf Auf Fehler prüfen, um zu überprüfen, ob die indexierbaren Objekte in Ihrer App dem Index für persönliche Inhalte hinzugefügt wurden.
Android App Links Assistant
Der App-Link-Assistent wurde um die folgenden neuen Funktionen erweitert:
-
Fügen Sie für jede URL-Zuordnung URL-Tests hinzu, um sicherzustellen, dass Ihre Intent-Filter mit echten URLs umgehen.
Sie können diese URL-Tests auch manuell mit dem unten beschriebenen
<tools:validation>
-Tag definieren. -
Erstellen Sie eine Digital Asset Links-Datei mit dem entsprechenden Objekteintrag, um Google Smart Lock zu unterstützen, und fügen Sie Ihrer Manifestdatei das entsprechende
asset_statements
<meta-data>
-Tag hinzu.
URL-Intent-Filter-Validator
Android Studio unterstützt jetzt ein spezielles Tag in der Manifestdatei, mit dem Sie Ihre Intent-Filter-URLs testen können. Das sind dieselben Tags, die der App Links Assistant für Sie erstellen kann.
Wenn Sie eine Test-URL für einen Intent-Filter deklarieren möchten, fügen Sie neben dem entsprechenden <intent-filter>
-Element ein <tools:validation>
-Element hinzu. Beispiel:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
Achten Sie darauf, dass auch xmlns:tools="http://schemas.android.com/tools"
im <manifest>
-Tag enthalten ist.
Wenn eine der Test-URLs die Definition des Intent-Filters nicht besteht, wird ein Lint-Fehler angezeigt. Bei einem solchen Fehler können Sie zwar weiterhin Debugvarianten erstellen, Ihre Release-Builds funktionieren aber nicht.
Layout-Editor
Der Layout-Editor wurde mit einer Reihe von Verbesserungen aktualisiert, darunter:
- Neues Symbolleisten-Layout und neue Symbole
- Das Layout in der Komponentenstruktur wurde aktualisiert.
- Verbesserte Drag-and-drop-Funktion zum Einfügen von Ansichten
- Neues Fehlerfeld unter dem Editor, in dem alle Probleme mit Vorschlägen zur Behebung (falls verfügbar) angezeigt werden.
- Verschiedene Verbesserungen an der Benutzeroberfläche für die Erstellung mit
ConstraintLayout
, darunter:- Neue Unterstützung für Hindernisse
- Neue Unterstützung für das Erstellen von Gruppen: Wählen Sie in der Symbolleiste Richtlinien > Gruppe hinzufügen aus. ConstraintLayout 1.1.0 Beta 2 oder höher ist erforderlich.
- Neue Benutzeroberfläche zum Erstellen von Ketten: Wählen Sie mehrere Ansichten aus, klicken Sie mit der rechten Maustaste und wählen Sie Kette aus.
Layout Inspector
Der Layout-Inspektor enthält Verbesserungen, die das Beheben von Problemen mit App-Layouts erleichtern. Dazu gehören die Gruppierung von Eigenschaften in gängige Kategorien und neue Suchfunktionen im Ansichtsbaum und im Bereich Eigenschaften.
APK Analyzer
Sie können den APK-Analysator jetzt über die Befehlszeile mit dem Tool apkanalyzer
verwenden.
Der APK Analyzer wurde außerdem um die folgenden Verbesserungen ergänzt:
- Für mit ProGuard erstellte APKs können Sie ProGuard-Zuordnungsdateien laden, die dem DEX-Betrachter zusätzliche Funktionen hinzufügen, darunter:
- Fett formatierte Knoten, die angeben, dass die Knoten beim Schrumpfen des Codes nicht entfernt werden sollen.
- Eine Schaltfläche, mit der Knoten angezeigt werden, die während des Schrumpfens entfernt wurden.
- Eine Schaltfläche, mit der die ursprünglichen Namen der Knoten in der Baumansicht wiederhergestellt werden, die von ProGuard verschleiert wurden.
- Der DEX-Viewer zeigt jetzt die geschätzte Größe jedes Pakets, jeder Klasse und jeder Methode an.
- Oben gibt es neue Filteroptionen, mit denen Felder und Methoden ein- und ausgeblendet werden können.
- In der Strukturansicht werden Knoten, die Verweise sind, die nicht in der DEX-Datei definiert sind, kursiv dargestellt.
Weitere Informationen finden Sie unter Build mit APK Analyzer analysieren.
Vorabversion des D8-DEX-Compilers
Android Studio 3.0 enthält einen optionalen neuen DEX-Compiler namens D8. Er wird den DX-Compiler irgendwann ersetzen, Sie können die Verwendung des neuen D8-Compilers aber schon jetzt aktivieren.
Die DEX-Kompilierung wirkt sich direkt auf die Buildzeit, die Größe der .dex
-Datei und die Laufzeitleistung Ihrer App aus. Im Vergleich zum aktuellen DX-Compiler ist D8 schneller und generiert kleinere .dex
-Dateien bei gleicher oder besserer Laufzeitleistung.
Um dies zu testen, legen Sie in der Datei gradle.properties
Ihres Projekts Folgendes fest:
android.enableD8=true
Weitere Informationen finden Sie im Blogpost zum D8-Compiler.
Maven-Repository von Google
Android Studio verwendet jetzt standardmäßig das Maven-Repository von Google, anstatt Updates für die Android-Supportbibliothek, Google Play-Dienste, Firebase und andere Abhängigkeiten über den Android SDK Manager abzurufen. So lassen sich Ihre Bibliotheken leichter auf dem neuesten Stand halten, insbesondere wenn Sie ein CI-System (Continuous Integration) verwenden.
Alle neuen Projekte enthalten jetzt standardmäßig das Google Maven-Repository. Wenn Sie ein vorhandenes Projekt aktualisieren möchten, fügen Sie google()
in den Block repositories
der obersten build.gradle
-Datei ein:
allprojects {
repositories {
google()
}
}
Weitere Informationen zum Maven-Repository von Google
Sonstige Änderungen
- Das native Debugging mit Android Studio wird unter 32-Bit-Windows nicht mehr unterstützt. Wir konzentrieren uns auf andere Plattformen, da diese Plattform nur von sehr wenigen Entwicklern genutzt wird. Wenn Sie 32-Bit-Windows verwenden und nativen Code debuggen möchten, sollten Sie weiterhin Android Studio 2.3 verwenden.
- Die zugrunde liegende IDE wurde auf IntelliJ 2017.1.2 umgestellt. Diese Version bietet eine Reihe neuer Funktionen aus 2016.3 und 2017.1, z. B. Java 8-Refactoring, Parameterhinweise, semantische Hervorhebung, verschiebbare Haltepunkte, sofortige Ergebnisse bei der Suche und vieles mehr.
- Viele neue Lint-Prüfungen wurden hinzugefügt.
- Weitere Informationen finden Sie in den aktuellen Updates für den Android-Emulator.
2.3 (März 2017)
Android Studio 2.3.0 enthält hauptsächlich Fehlerkorrekturen und Stabilitätsverbesserungen, aber auch einige neue Funktionen.
2.3.3 (Juni 2017)
Dieses Update ist geringfügig und dient der Unterstützung von Android O (API-Level 26).
2.3.2 (April 2017)
Dieses Update auf Android Studio 2.3 enthält die folgenden Änderungen:
- Der AVD Manager wird aktualisiert, um Google Play in Systemabbildern zu unterstützen.
- Fehlerkorrekturen für NDK-Builds bei Verwendung von R14 oder höher des NDK.
Weitere Informationen finden Sie in den entsprechenden Updates für den Android-Emulator 26.0.3.
2.3.1 (April 2017)
Dieses kleine Update für Android Studio 2.3 behebt ein Problem, bei dem einige physische Android-Geräte nicht richtig mit Instant Run funktionierten (siehe Problem #235879).
<h3 class="hide-from-toc">
New
</h3>
<div class="video-wrapper-left">
<iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
</iframe>
</div>
<ul>
<li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
WebP format. WebP is an image file format from Google that provides lossy
compression (like JPEG) as well as transparency (like PNG) but can provide
better compression than either JPEG or PNG. For more information, see
<a href="/studio/write/convert-webp.html">Convert images to WebP in Android
Studio</a>.
</li>
<li>The new <a href="/studio/write/app-link-indexing.html">App Links
Assistant</a> simplifies the process of adding Android App Links to your app
into a step-by-step wizard. Android App Links are HTTP URLs that bring users
directly to specific content in your Android app.
</li>
<li>The Layout Editor now includes support for two new ConstraintLayout
features:
<ul>
<li>Define a view size based on an aspect ratio.
</li>
<li>Create packed, spread, and weighted linear groups with constraint
chains.
</li>
</ul>
For more information, see <a href=
"/training/constraint-layout/index.html">Build a Responsive UI with
ConstraintLayout</a>.
</li>
<li>The Layout Editor also now lets you create a list of <a href=
"/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
you don't have to click <b>View all attributes</b> to access the attributes
you use most.
</li>
<li>When adding a material icon using the Vector Import Dialog (<b>File >
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 brandneue Layout-Editor mit Tools, die speziell für ConstraintLayout entwickelt wurden.
<li>New <strong><a href=
"http://tools.android.com/tech-docs/layout-inspector">Layout
Inspector</a></strong> lets you examine snapshots of your layout hierarchy
while your app is running on the emulator or a device.
</li>
<li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
window to help you integrate Firebase services into your app.
</li>
<li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
Analyzer</a></strong> tool so you can inspect the contents of your packaged
app.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/test-recorder">Espresso Test
Recorder</a></strong> tool (currently in beta) to help you create UI tests by
recording your own interactions.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
(currently experimental) to speed up build performance.
</li>
<li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
Compile and build new or existing native code into libraries packaged into
your APK, and debug using lldb. For new projects, Android Studio uses CMake
by default, but also supports ndk-build for existing projects. To learn how
to include native code in your Android application, read <a href=
"/studio/projects/add-native-code.html">Add C and C++ Code to Your
Project</a>. To learn how to debug native code with lldb, see <a href=
"/studio/debug/index.html#debug-native">Debug Native Code</a>.
</li>
<li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
Browser</a></strong> so you can easily look up Google Android sample code
from within Android Studio to jump start app development.
</li>
<li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
manifest file merges with your app dependencies across project build
variants.
</li>
<li>The <strong>Run</strong> window now contains log messages for the current
running app. Note that you can configure the <a href=
"/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
<strong>Run</strong> window.
</li>
<li>New <strong><a href="/studio/run/emulator.html">Android
Emulator</a></strong> features:
<ul>
<li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
<strong>Cellular</strong> > <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
- Die IDE-Codebasis wurde von IntelliJ 15 auf IntelliJ 2016.1 aktualisiert.
- Für Instant Run muss jetzt das Plattform-SDK installiert sein, das dem API-Level des Zielgeräts entspricht.
- Instant Run wird automatisch deaktiviert, wenn der Nutzer die App unter einem Arbeitsprofil oder als sekundärer Nutzer ausführt.
- Viele Zuverlässigkeitsprobleme bei Instant Run wurden behoben, bei denen Änderungen nicht bereitgestellt wurden oder die App abstürzte:
- Einige App-Assets wurden nicht in Ihrer laufenden App bereitgestellt. ( Fehler: #213454)
- Die App stürzt ab, wenn der Nutzer zwischen Instant Run- und nicht Instant Run-Sitzungen wechselt und für eine serialisierbare Klasse kein serialVersionUID definiert ist. (Fehler: #209006)
- Stiländerungen werden bei Instant Run nicht berücksichtigt. (Fehler: #210851)
- Die Instant Run-Sitzung ist unzuverlässig und führt zu einer FileNotFoundException. (Fehler: #213083)
- Änderungen an drawables werden für KitKat erst nach einem vollständigen Neuaufbau übernommen. (Fehler: #21530)
- Ressourcenänderungen werden bei Instant Run nicht berücksichtigt, wenn benutzerdefinierte SourceSets verschachtelte Pfade enthalten. (Fehler: #219145)
- Hot- und Warm-Swap funktionieren nicht, wenn die geänderte Klasse eine Anmerkung mit einem Enum-Wert enthält. (Fehler: #209047)
- Änderungen an Anmerkungsdaten werden bei Instant Run nicht berücksichtigt. (Fehler: #210089)
- Codeänderungen, die Sie außerhalb der IDE vornehmen, werden von Instant Run nicht erkannt. (Fehler: #213205)
- Die Instant Run-Sitzung ist aufgrund eines nicht übereinstimmenden Sicherheitstokens nicht zuverlässig. (Fehler: #211989
- Der Kaltstart schlägt bei Geräten fehl, die „run-as“ nicht ordnungsgemäß unterstützen. (Fehler: #210875)
- App stürzt nach Neustart des Instant Run-Dienstes ab. (Fehler: #219744)
- Beim Wechsel von Instant Run zu Instant Debug wird die ClassNotFoundException angezeigt. (Fehler: #215805)
<li>Improved performance for <strong>Gradle sync</strong> within the IDE,
especially for large projects.
</li>
<li>Improved build times for both full and incremental builds with new app
packaging code.
</li>
<li>Improved <strong>Jack compiler performance and features</strong>,
including support for annotation processors and dexing in process. To learn
more, read the <a href=
"/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
2.2.0 release notes</a>.
</li>
<li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
</li>
<li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
command-line options now report which ports and serial number the emulator
instance is using, and warn if there are any issues with the values you
provided.
</li>
<li>Improved the <strong><a href=
"/studio/write/create-java-class.html">Create New Class dialog</a></strong>
and the corresponding file templates. <strong>Note:</strong> If you've
previously customized the <strong>AnnotationType</strong>,
<strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
<strong>Singleton</strong> file templates, you need to modify your templates
to comply with the new templates or you won’t be able to use the new fields
in the <strong>Create New Class</strong> dialog.
</li>
<li>Improved the <strong><a href=
"/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
user interface and added support for Adobe Photoshop Document (PSD) files.
</li>
<li>Improved the <strong><a href=
"/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
interface.
</li>
<li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
</li>
<li>Fixed memory leaks and reduced overall memory usage in Android Studio.
</li>
<li>Added a <strong>Background</strong> button in the <strong><a href=
"/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
get back to work and install your packages in the background.
</li>
<li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
features</a></strong>, including support for screen readers and keyboard
navigation.
</li>
<li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
Java 8 language usage and more cross-file analysis.
</li>
<li>Several toolbar icons have changed.
</li>
2.1 (April 2016)
Die wichtigsten Änderungen in diesem Update bieten Unterstützung für die Entwicklung mit der Android N-Vorabversion.
2.1.3 (August 2016)
Dieses Update bietet Kompatibilität mit Gradle 2.14.1, einschließlich Leistungsverbesserungen, neuer Funktionen und einer wichtigen Sicherheitskorrektur. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
In Android Studio 2.1.3 wird für neue Projekte standardmäßig Gradle 2.14.1 verwendet. Bei vorhandenen Projekten werden Sie von der IDE aufgefordert, auf Gradle 2.14.1 und das Android-Plug-in für Gradle 2.1.3 zu aktualisieren. Letzteres ist für die Verwendung von Gradle 2.14.1 und höher erforderlich.
2.1.2 (Juni 2016)
Dieses Update enthält eine Reihe kleiner Änderungen und Fehlerkorrekturen:
- Aktualisierungen und Fehlerkorrekturen für Instant Run
- Verbesserungen bei der LLDB-Leistung und Absturzbenachrichtigungen.
- Behebung einer Regression im Sicherheitsupdate von Android Studio 2.1.1, die zu einem Fehler bei
git rebase
geführt hat.
2.1.1 (Mai 2016)
Sicherheitsaktualisierung
Die Android N-Plattform unterstützt Java 8-Sprachfunktionen, für die ein neuer experimenteller Compiler namens Jack erforderlich ist. Die aktuelle Version von Jack wird derzeit nur in Android Studio 2.1 unterstützt. Wenn Sie also Java 8-Sprachfunktionen verwenden möchten, müssen Sie Android Studio 2.1 zum Erstellen Ihrer App verwenden.
Hinweis:Instant Run wird deaktiviert, wenn Sie den Jack-Compiler aktivieren, da sie derzeit nicht kompatibel sind.
Obwohl Android Studio 2.1 jetzt stabil ist, ist der Jack-Compiler noch experimentell und muss mit dem Attribut jackOptions
in der Datei build.gradle
aktiviert werden.
Neben den Änderungen zur Unterstützung der N-Vorabversion enthält Android Studio 2.1 kleinere Fehlerkorrekturen und die folgenden Verbesserungen:
- Der Java-kompatible C++-Debugger ist jetzt standardmäßig aktiviert, wenn Sie ein N-Gerät oder einen Emulator verwenden und den Debuggermodus Native (auf dem Tab Debugger für Ihre Ausführungs-/Debug-Konfiguration) auswählen.
Wenn Sie weitere Build-Optimierungen wie die inkrementelle Java-Kompilierung und die Deaktivierung von Java-Code während des Build-Prozesses nutzen möchten, aktualisieren Sie Ihr Android-Plug-in für Gradle auf Version 2.1.0.
2.0 (April 2016)
Hinweis:Wenn Sie für die N-Entwicklervorschau entwickeln, sollten Sie Android Studio 2.1-Vorabversion verwenden. Android Studio 2.0 unterstützt nicht alle Funktionen, die für die Ausrichtung auf die N-Vorabversion erforderlich sind.
Instant Run:
- In Android Studio werden jetzt schneller als zuvor saubere Builds bereitgestellt. Außerdem werden inkrementelle Codeänderungen jetzt fast sofort an den Emulator oder ein physisches Gerät gesendet. Sie können Ihre Updates prüfen, ohne einen neuen Debug-Build neu bereitzustellen oder in vielen Fällen die App neu zu starten.
- Instant Run unterstützt das Übertragen der folgenden Änderungen auf eine laufende App:
- Änderungen an der Implementierung einer vorhandenen Instanzmethode oder statischen Methode
- Änderungen an einer vorhandenen App-Ressource
- Änderungen am Strukturcode, z. B. an einer Methodensignatur oder einem statischen Feld (erfordert ein Zielgerät mit API-Level 21 oder höher)
- Weitere Informationen zu Instant Run finden Sie in der Dokumentation.
Hinweis:Instant Run wird nur unterstützt, wenn Sie die Debug-Buildvariante bereitstellen, das Android-Plug-in für Gradle Version 2.0.0 oder höher verwenden und die
build.gradle
-Datei Ihrer App auf Modulebene fürminSdkVersion 15
oder höher konfigurieren. Für eine optimale Leistung sollten Sie Ihre App fürminSdkVersion 21
oder höher konfigurieren.
Neue Funktionen in Lint:
- Prüfung von
switch
-Anweisungen mit@IntDef
-annotierten Ganzzahlen, um sicherzustellen, dass alle Konstanten verarbeitet werden. Wenn Sie schnell fehlende Anweisungen hinzufügen möchten, wählen Sie im Drop-down-Menü für die Absichtsaktion Fehlende @IntDef-Konstanten hinzufügen aus. - Flags für fehlerhafte Versuche, Versionsnummern mithilfe von String-Interpolation in die
build.gradle
-Datei einzufügen. - Flags für anonyme Klassen, die die Klasse
Fragment
erweitern. - Flags für nativen Code an unsicheren Speicherorten, z. B. in den Ordnern
res/
undasset/
. Dieses Flag empfiehlt, nativen Code im Ordnerlibs/
zu speichern, der dann bei der Installation sicher im Ordnerdata/app-lib/
der Anwendung verpackt wird. AOSP: #169950 - Markiert unsichere Aufrufe von
Runtime.load()
- undSystem.load()
-Aufrufen. AOSP: #179980 - Sie können nicht verwendete Ressourcen finden und entfernen, indem Sie in der Menüleiste Umstrukturieren > Nicht verwendete Ressourcen entfernen auswählen. Die Erkennung nicht verwendeter Ressourcen unterstützt jetzt Ressourcen, auf die nur von nicht verwendeten Ressourcen verwiesen wird, Verweise in Rohdateien wie
.html
-Bildverweise sowietools:keep
- undtools:discard
-Attribute, die vom Gradle-Ressourcen-Schrumpfer verwendet werden. Außerdem werden inaktive Quellsätze (z. B. Ressourcen, die in anderen Build-Varianten verwendet werden) berücksichtigt und statische Feldimporte werden ordnungsgemäß verarbeitet. - Prüft, ob implizite API-Referenzen auf allen Plattformen unterstützt werden, auf die
minSdkVersion
ausgerichtet ist. - Meldet die falsche Verwendung von
RecyclerView
undParcelable
. - Bei den Prüfungen
@IntDef
,@IntRange
und@Size
werden jetzt auchint
-Arrays und vararg-Argumente geprüft.
Weitere Verbesserungen:
- Optimiert für Android Emulator 2.0, der schneller als je zuvor ist, eine größere Auswahl an virtuellen Geräten unterstützt und eine drastisch verbesserte Benutzeroberfläche bietet. Weitere Informationen zum neuen Emulator finden Sie in den Versionshinweisen zu SDK-Tools.
- Verbesserungen am Android Virtual Device Manager:
- System-Images sind jetzt auf den folgenden Tabs kategorisiert: Empfohlen, x86 und Sonstige.
- Unter „Erweiterte Einstellungen“ können Sie die Unterstützung für mehrere Kerne aktivieren und die Anzahl der Kerne angeben, die der Emulator verwenden kann.
- Unter „Erweiterte Einstellungen“ können Sie festlegen, wie Grafiken im Emulator gerendert werden. Wählen Sie dazu eine der folgenden Optionen aus:
- Hardware:Sie können die Grafikkarte Ihres Computers für ein schnelleres Rendering verwenden.
- Software:Softwarebasiertes Rendering verwenden.
- Automatisch:Der Emulator entscheidet, welche Option am besten geeignet ist. Dies ist die Standardeinstellung.
- Verbesserte AAPT-Verpackungszeiten durch Angabe des Bereitstellungsziels vor dem Erstellen der App. So kann Android Studio nur die für das angegebene Gerät erforderlichen Ressourcen effizient verpacken.
- Cloud Test Lab-Integration hinzugefügt, um On-Demand-App-Tests mit der Benutzerfreundlichkeit und Skalierbarkeit eines Cloud-Dienstes bereitzustellen. Weitere Informationen zur Verwendung des Cloud-Testlabs mit Android Studio
- Vorschau des neuen GPU-Debuggers hinzugefügt. Bei grafikintensiven Anwendungen können Sie Ihren OpenGL ES-Code jetzt visuell durchgehen, um Ihre App oder Ihr Spiel zu optimieren.
- Test für die Google App-Indexierung hinzugefügt. Binden Sie URLs, die App-Indexierung und Suchfunktionen in Ihre Apps ein, um mehr Zugriffe auf Ihre App zu erzielen, herauszufinden, welche App-Inhalte am häufigsten verwendet werden, und neue Nutzer zu gewinnen. URLs in Ihrer App in Android Studio testen und validieren Weitere Informationen finden Sie unter URLs und App-Indexierung in Android Studio unterstützen.
- Upgrades von der neuesten IntelliJ 15-Version, einschließlich verbesserter Codeanalyse und Leistung. Eine vollständige Beschreibung der neuen Funktionen und Verbesserungen finden Sie unter Das ist neu in IntelliJ.
- Bei der automatischen Vervollständigung von Attributen werden im XML-Editor jetzt Anführungszeichen hinzugefügt. Wenn Sie prüfen möchten, ob diese Option aktiviert ist, öffnen Sie das Dialogfeld Einstellungen oder Benutzereinstellungen, gehen Sie zu Bearbeitung > Allgemein > Smart-Schlüssel und setzen Sie ein Häkchen neben Anführungszeichen für Attributwert beim Ausfüllen des Attributs hinzufügen. Problem: 195113
- Der XML-Editor unterstützt jetzt die Codevervollständigung für Ausdrücke zur Datenbindung.
Android Studio 1.5.1 (Dezember 2015)
Korrekturen und Verbesserungen:
- Ein Problem mit dem Rendern im Layout-Editor wurde behoben. Problem: 194612
- Es ist jetzt möglich,
description
-Manifestattribute je nach Konfiguration zu variieren. Problem: 194705 - Der Kontrast des Darcula-Designs von Android Studio wurde in Vector Asset Studio verbessert. Problem: 191819
- In Vector Asset Studio wurde die Schaltfläche Hilfe hinzugefügt.
- Der Operator
%
für die Datenbindung wird jetzt unterstützt. Problem: 194045 - Ein Fall wurde behoben, in dem beim Starten einer App zum Debuggen eine Verbindung zum falschen Gerät hergestellt wurde. Problem: 195167
- Eine Nullzeiger-Ausnahme wurde behoben, die beim Ausführen einer App in bestimmten Szenarien auftreten konnte.
Android Studio 1.5.0 (November 2015)
Korrekturen und Verbesserungen:
- Dem Android-Monitor wurden neue Analysefunktionen für den Arbeitsspeicher hinzugefügt. Wenn Sie eine HPROF-Datei aufrufen, die mit diesem Monitor erfasst wurde, ist die Anzeige jetzt hilfreicher, sodass Sie Probleme wie Speicherlecks schneller finden können. Wenn Sie diesen Monitor verwenden möchten, klicken Sie unten im Hauptfenster auf Android-Monitor. Klicken Sie im Android-Monitor auf den Tab Arbeitsspeicher. Klicken Sie während der Ausführung des Monitors auf das Symbol Java-Heap-Dump, dann im Hauptfenster auf Captures und doppelt auf die Datei, um sie aufzurufen. Klicken Sie rechts auf Analyse erfassen. Der Android Device Monitor kann nicht gleichzeitig mit dem Android Monitor ausgeführt werden.
- Unterstützung für Deeplinks und App-Links hinzugefügt. Im Code-Editor kann automatisch ein Intent-Filter für Deeplinks in der
AndroidManifest.xml
-Datei erstellt werden. Außerdem kann er Code generieren, mit dem Sie die App Indexing API in einer Aktivität in einer Java-Datei einbinden können. Mit einer Deeplink-Testfunktion können Sie prüfen, ob ein bestimmter Deeplink eine App starten kann. Auf dem Tab Allgemein des Dialogfelds Konfigurationen ausführen/debuggen können Sie Optionen für das Starten von Deeplinks angeben. Sie können App Indexing API-Aufrufe auch in einer Aktivität mithilfe des logcat-Displays des Android-Monitors testen. Das Android-lint
-Tool enthält jetzt Warnungen für bestimmte Probleme im Zusammenhang mit Deeplinks und der App Indexing API. - Es ist jetzt möglich, kurze Namen zu verwenden, wenn benutzerdefinierte Ansichten im Code-Editor automatisch fertiggestellt werden.
- In Vector Asset Studio wurde die Unterstützung für weitere
VectorDrawable
-Elemente hinzugefügt, um die Abwärtskompatibilität zu verbessern. Mit diesen Elementen können Sie in Vector Asset Studio Vektor-Drawables in PNG-Rasterbilder konvertieren, die mit Android 4.4 (API-Level 20) und niedriger verwendet werden können. - Es wurden neue
lint
-Prüfungen für Android TV und Android Auto hinzugefügt, um Ihnen sofort umsetzbares Feedback in Android Studio zu geben. Außerdem wurden mehrere Fehlerkorrekturen vorgenommen. So können beispielsweise Probleme mit Berechtigungen, nicht unterstützter Hardware, demuses-feature
-Element und fehlenden Bannern für Android TV gemeldet und schnell behoben werden. Bei Android Auto kann damit die korrekte Verwendung in der Deskriptordatei überprüft werden, auf die in IhrerAndroidManifest.xml
-Datei verwiesen wird. Außerdem wird gemeldet, wenn kein Intent-Filter für dieMediaBrowserService
-Klasse vorhanden ist, und bestimmte Probleme mit Sprachaktionen werden erkannt. - Es wurden neue
lint
-Prüfungen für unsichere Broadcastempfänger, die Verwendung der KlassenSSLCertificateSocketFactory
undHostnameVerifier
sowieFile.setReadable()
- undFile.setWritable()
-Aufrufe hinzugefügt. Außerdem werden ungültige Manifestressourcen-Suchanfragen erkannt, insbesondere bei Ressourcen, die je nach Konfiguration variieren. - Es wurden einige Stabilitätsprobleme behoben.
Android Studio Version 1.4.1 (Oktober 2015)
Korrekturen und Verbesserungen:
- Ein Problem beim Gradle-Modell-Caching wurde behoben, das beim Neustarten der IDE zu einer übermäßigen Gradle-Synchronisierung führen konnte.
- Ein Deadlock-Problem beim nativen Debuggen wurde behoben.
- Ein Problem wurde behoben, bei dem Nutzer des Versionskontrollsystems Subversion 1.9 blockiert wurden.
- Ein Problem im Dialogfeld Geräteauswahl wurde behoben, bei dem nach der Verbindung eines nicht autorisierten Geräts der Emulator nicht mehr ausgewählt werden konnte. Problem: 189658
- Fehler bei der Meldung von Übersetzungsfehlern für Sprachen mit einem Regions-Qualifier und einer Übersetzung in der Region (aber nicht in der Basissprache) behoben. Problem: 188577
- Ein Deadlock-Problem im Design-Editor im Zusammenhang mit der Interaktion mit dem Layout-Editor wurde behoben. Problem: 188070
- Ein Konflikt beim Aktualisieren und Bearbeiten im Design-Editor wurde behoben, der dazu führte, dass Attribute nicht richtig aktualisiert wurden. Problem: 187726
- Verbesserte Leistung des Designeditors.
- Ein Problem wurde behoben, durch das das Attribut
android:required
im Manifest ignoriert wurde. Problem: 187665
Android Studio 1.4.0 (September 2015)
Korrekturen und Verbesserungen:
- Das Tool Vector Asset Studio zum Importieren von Vektorgrafiken wie Materialsymbolen und SVG-Dateien wurde hinzugefügt. Wenn Sie dieses Tool verwenden möchten, klicken Sie im Projektfenster in der Android-Ansicht mit der rechten Maustaste auf den Ordner res und wählen Sie Neu > Vektor-Asset aus.
- Neue Funktionen für die Android-Überwachung hinzugefügt: GPU und Netzwerk. Wenn Sie diese Monitore verwenden möchten, klicken Sie unten im Hauptfenster auf Android-Monitor. Der Android Device Monitor kann nicht gleichzeitig mit dem Android Monitor ausgeführt werden.
- Eine frühe Vorschau des neuen Themen-Editors wurde hinzugefügt. Wenn Sie diese Funktion verwenden möchten, wählen Sie Tools > Android > Design-Editor aus.
- Die Android-Vorlagen für die Design Support Library wurden aktualisiert. Die Vorlagen unterstützen jetzt die Material Design-Spezifikation sowie die
appcompat
-Supportbibliothek für die Abwärtskompatibilität.
Android Studio 1.3.2 (August 2015)
Korrekturen und Verbesserungen:
- Unterstützung für Android 6.0 (API-Level 23) hinzugefügt, einschließlich neuer Symbole und AVD Manager-Unterstützung für die Erstellung von Geräten mit neuen Bildschirmdichten.
- Eine Ausnahme, die bei der Überprüfung von Updates aufgetreten ist, wurde behoben. Problem: 183068
- Ein Problem wurde behoben, durch das nicht aufgelöste Ansichtskoordinaten zum Absturz des Layout-Editors führen konnten. Problem: 178690
- Problem mit Warnungen zu ungültigen Ressourcentypen behoben Problem: 182433
- Die Lint-Prüfung wurde korrigiert, da sie Ressourcen fälschlicherweise als privat gekennzeichnet hat. Problem: 183120
Android Studio 1.3.1 (August 2015)
Korrekturen und Verbesserungen:
- Die Unterstützung für das Erstellen eines Android Wear-AVD (Android Virtual Device) unter Windows wurde behoben.
- Der Projektassistent wurde aktualisiert, damit der eingegebene Projektname verwendet wird.
- Es wurde Unterstützung hinzugefügt, damit das Android SDK in einem schreibgeschützten Verzeichnis gespeichert werden kann.
- Das Android-Plug-in für Gradle wurde auf Version 1.3.0 aktualisiert.
- Probleme beim Starten einer Debug-Sitzung über die Android Debug Bridge (adb)-Unix-Shell wurden behoben.
- Die Meldung zum Umbenennen von Java-Paketen wurde korrigiert, sodass der richtige Paketname angezeigt wird.
Android Studio Version 1.3.0 (Juli 2015)
Korrekturen und Verbesserungen:
- Es wurden Optionen hinzugefügt, mit denen Sie Entwicklerdienste wie Google AdMob und Analytics in Ihrer App direkt in Android Studio aktivieren können.
- Es wurden zusätzliche Hinweise hinzugefügt, z. B.
@RequiresPermission
,@CheckResults
und@MainThread
. - Es wurde die Möglichkeit hinzugefügt, Java-Heap-Dumps zu generieren und Threadzuweisungen über den Speichermonitor zu analysieren. Sie können auch Android-spezifische HPROF-Binärformatdateien in Android Studio in das Standard-HPROF-Format konvertieren.
- Der SDK-Manager wurde in Android Studio integriert, um den Zugriff auf Pakete und Tools zu vereinfachen und Benachrichtigungen zu Updates zu erhalten.
Hinweis:Der eigenständige SDK-Manager ist weiterhin über die Befehlszeile verfügbar, wird aber nur für die Installation eigenständiger SDKs empfohlen.
- Der Befehl
finger
wurde in der Emulatorkonsole hinzugefügt, um die Fingerabdruckauthentifizierung zu simulieren. - Es wurde eine
<public>
-Ressourcendeklaration hinzugefügt, um Bibliotheksressourcen als öffentliche und private Ressourcen zu kennzeichnen.Hinweis:Es ist das Android-Plug-in für Gradle in Version 1.3 oder höher erforderlich.
- Unterstützung für Datenbindungen hinzugefügt, um deklarative Layouts zu erstellen, die die Anwendungslogik an Layoutelemente binden.
- Unterstützung für ein separates Test-APK-Modul zum Erstellen von Test-APKs in Android Studio hinzugefügt.
- Der AVD Manager wurde mit HAXM-Optimierungen und verbesserten Benachrichtigungen aktualisiert.
- Unterstützung für 64-Bit-ARM- und MIPS-Emulatoren für QEMU 2.1 hinzugefügt.
- Die Behebung von Lint-Warnungen wurde durch das Hinzufügen von Schnellkorrekturen vereinfacht, z. B. die automatische Generierung der Parcelable-Implementierung.
- Unterstützung für Live-Vorlagen zum schnellen Einfügen von Code-Snippets hinzugefügt.
Android Studio 1.2.2(Juni 2015)
Korrekturen und Verbesserungen:
- Probleme beim Erstellen, die den Abschluss von Builds verhindert haben, wurden behoben.
Android Studio 1.2.1 (Mai 2015)
Korrekturen und Verbesserungen:
- Kleinere Leistungs- und Funktionsprobleme wurden behoben.
Android Studio 1.2.0 (April 2015)
Korrekturen und Verbesserungen:
- Das Android-Laufzeitfenster wurde um das Tool Memory Monitor und einen Tab für die CPU-Leistungsüberwachung erweitert.
- Im linken Rand wurde der Tab Aufzeichnungen hinzugefügt, auf dem die erfassten Arbeitsspeicher- und CPU-Leistungsdatendateien angezeigt werden, z. B. CPU-Methoden-Tracking und Arbeitsspeicher-Heap-Snapshots.
- Die Unterstützung von Anmerkungen wurde um zusätzliche Metadatenanmerkungen und abgeleitete Nullbarkeit erweitert.
- Der Übersetzungseditor wurde um zusätzliche Unterstützung für BCP 47 (Best Current Practice) erweitert, bei dem dreistellige Sprach- und Regionscodes verwendet werden.
- Integrierte IntelliJ 14- und 14.1-Funktionen für eine verbesserte Codeanalyse und Leistung:
-
- Verbessertes Debugging, um Inline-Werte für Variablen und verweisende Objekte anzuzeigen sowie Inline-Bewertungen von Lambda- und Operatorausdrücken durchzuführen.
- Codestilerkennung für Tabulator- und Einzuggrößen hinzugefügt
- Es wurden Scratch-Dateien für Codeexperimente und Prototyping ohne Projektdateien hinzugefügt.
- Es ist jetzt möglich, öffnende und schließende Tags gleichzeitig in HTML- und XML-Dateien einzufügen.
- Es wurde ein integrierter Java-Klassen-Decompiler hinzugefügt, mit dem Sie sich den Inhalt einer Bibliothek ansehen können, für die der Quellcode nicht verfügbar ist.
Eine vollständige Beschreibung der neuen Funktionen und Verbesserungen finden Sie unter Das ist neu in IntelliJ.
- Es wurden zusätzliche Projektansichten für Skizzen, Projektdateien, Probleme, Produktion und Tests hinzugefügt, um die Projektverwaltung und den Zugriff zu verbessern.
- Das Menü Datei > Einstellungen und die Dialogfelder wurden optimiert, um den Zugriff auf und die Verwaltung der Einstellungen zu verbessern.
- Unterstützung für hochauflösende Displays für Windows und Linux hinzugefügt.
- Unterstützung für Ressourcen mit 280 dpi im Ordner
res/drawable-280dpi/
hinzugefügt.
Android Studio 1.1.0 (Februar 2015)
Verschiedene Fehlerkorrekturen und Verbesserungen:
- Unterstützung für die Android Wear-Smartwatch-Vorlage hinzugefügt.
- Die Erstellung neuer Projekte und Module wurde geändert, um Ordner
res/mipmap
für dichtespezifische Launcher-Symbole einzubinden. Dieseres/mipmap
-Ordner ersetzen die Ordnerres/drawable
für Launcher-Symbole. - Die Launcher-Symbole wurden im Material Design-Look aktualisiert und es wurde ein
xxxhdpi
-Launcher-Symbol hinzugefügt. - Es wurden Lint-Prüfungen für Kombinationen aus Region und Sprache, Launcher-Symbole, Ressourcennamen und andere häufige Codeprobleme hinzugefügt und verbessert.
- Unterstützung für das BCP-47-Sprachtag (Best Current Practice) hinzugefügt.
Android Studio Version 1.0.1 (Dezember 2014)
Verschiedene Fehlerkorrekturen und Verbesserungen:
- Problem mit der Sperrung der Dateien „AVD Manager“ und device.xml behoben
- Das Emulatorprotokoll wurde auf Windows-Systemen korrigiert.
- Das Problem beim Erstellen von AVDs mit Android Studio und Android SDK auf verschiedenen Laufwerken auf Windows-Systemen wurde behoben.
- Der Standard-Update-Channel für neue Downloads wird auf Stable festgelegt. Wenn Sie die Version 1.0.0 von Android Studio installiert haben und stabile, produktionsreife Versionsupdates erhalten möchten, wechseln Sie unter Datei > Einstellungen > Updates zum Update-Kanal Stable.
Android Studio 1.0 (Dezember 2014)
Erste Version von Android Studio.
Android Studio Version 0.8.14 (Oktober 2014)
Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.
Android Studio Version 0.8.6 (August 2014)
Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.
Android Studio Version 0.8.0 (Juni 2014)
Unterstützung für Android Wear-Projekte hinzugefügt.
Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.
Android Studio Version 0.5.2 (Mai 2014)
- 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 (Oktober 2013)
- Eine vollständige Liste der Änderungen finden Sie unter tools.android.com.
Android Studio 0.2.x (Juli 2013)
- Die neuesten Änderungen an der IntelliJ-Codebasis wurden zusammengeführt. Enthält Fehlerkorrekturen für von Studio-Nutzern gemeldete Probleme, z. B. Anpassungen an der Schriftgröße und dem Schriftrendering unter Linux.
- Das Android-Gradle-Plug-in wurde auf Version 0.5.0 aktualisiert.
Achtung:Diese neue Version ist nicht abwärtskompatibel. Wenn Sie ein Projekt öffnen, in dem eine ältere Version des Plug-ins verwendet wird, wird in Studio die Fehlermeldung Gradle-Projekt „<project_name>“ konnte nicht aktualisiert werden angezeigt.
Das aktualisierte Gradle-Plug-in enthält die folgenden Änderungen:
- Das IDE-Modell wurde so angepasst, dass es die Ausgabedatei enthält, auch wenn sie über die DSL angepasst wurde. Außerdem wurde die DSL korrigiert, um die Ausgabedatei für das Variantenobjekt abzurufen/festzulegen, sodass
variant.packageApplication or variant.zipAlign
nicht mehr verwendet werden muss. - Die Abhängigkeitsauflösung wurde so korrigiert, dass die Kombination aus Standardkonfiguration, Buildtypen und Varianten zusammen und nicht separat aufgelöst wird.
- Die Abhängigkeit für Tests des Bibliotheksprojekts wurde korrigiert, damit alle Abhängigkeiten der Bibliothek selbst korrekt berücksichtigt werden.
- Es wurde ein Fall behoben, bei dem zwei Abhängigkeiten denselben Blattnamen haben.
- Das Problem, dass die Proguard-Regelndatei nicht auf Flavors angewendet werden konnte, wurde behoben.
Alle Versionshinweise für das Gradle-Plug-in finden Sie hier: http://tools.android.com/tech-docs/new-build-system.
- Das IDE-Modell wurde so angepasst, dass es die Ausgabedatei enthält, auch wenn sie über die DSL angepasst wurde. Außerdem wurde die DSL korrigiert, um die Ausgabedatei für das Variantenobjekt abzurufen/festzulegen, sodass
- Gradle-Fehler von aapt verweisen nicht mehr auf zusammengeführte Ausgabedateien im Ordner „build/“, sondern auf die tatsächlichen Quellspeicherorte.
- Parallele Builds Es ist jetzt möglich, die parallelen Builds von Gradle zu verwenden. Parallele Builds befinden sich in der Entwicklungsphase (siehe Gradle-Dokumentation). Diese Funktion ist standardmäßig deaktiviert. Wenn Sie diese Funktion aktivieren möchten, klicken Sie auf Einstellungen > Compiler und setzen Sie ein Häkchen in das Kästchen Unabhängige Module parallel kompilieren.
- Weitere Arbeiten am neuen Ressourcen-Repository, das für das Layout-Rendering verwendet wird, sowie zum Zusammenklappen von Ressourcen im Editor:
- Grundlegende Unterstützung für Abhängigkeiten von .aar-Bibliotheken (z. B. Verwendung einer Bibliothek ohne lokale Kopie der Quellen) Die XML-Validierung und Navigation in Ressourcen in Quelleditoren funktioniert weiterhin nicht.
- Zykluserkennung in Ressourcenreferenzen
- Die Schnelldokumentation (F1), mit der alle Übersetzungen des Strings unter dem Caret angezeigt werden können, zeigt jetzt auch alle Ressourcen-Overlays aus den verschiedenen Gradle-Varianten und Build-Typen sowie aus Bibliotheken an. Sie werden in umgekehrter Reihenfolge des Ressourcen-Overlays aufgeführt. Die Versionen des Strings, die ausgeblendet sind, sind durchgestrichen.
- Fehlerkorrekturen beim Aktualisieren der zusammengeführten Ressourcen, wenn sich die Modulabhängigkeiten ändern.
- Korrekturen beim XML-Rendering, um Zeichenentitätsdeklarationen und XML- und Unicode-Escapes ordnungsgemäß zu verarbeiten.
- Unterstützung für das Speichern von Screenshots für die Layoutvorschau und den Layout-Editor
- Fehlerkorrekturen für Vorlagen
- Fehlerkorrekturen für Lint.
- Verschiedene Fehler bei Absturzberichten wurden behoben. Vielen Dank und bitte melden Sie weiterhin Absturzberichte.
Android Studio Version 0.1.x (Mai 2013)
- Verschiedene Fehlerkorrekturen, einschließlich einer Korrektur für ein häufiges Problem bei der Windows-Installation.
Ältere Releases des Android-Gradle-Plug-ins
3.6.0 (Februar 2020)
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
-
Gradle 5.6.4 Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
-
SDK Build Tools 28.0.3 oder höher
Dieses Minor-Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit unter Android 11.
Weitere Informationen finden Sie in den Versionshinweisen zur Version 4.0.1.
Neue Funktionen
Diese Version des Android Gradle-Plug-ins enthält die folgenden neuen Funktionen.
Bindung ansehen
Die View-Bindung bietet Sicherheit bei der Kompilierung, wenn in Ihrem Code auf Ansichten verwiesen wird. Sie können findViewById()
jetzt durch die automatisch generierte Bindungsklassenreferenz ersetzen. Wenn Sie die Ansichtsbindung verwenden möchten, fügen Sie der build.gradle
-Datei jedes Moduls Folgendes hinzu:
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
Weitere Informationen finden Sie in der Dokumentation zur Bindung.
Unterstützung für das Maven Publish-Plug-in
Das Android Gradle-Plug-in unterstützt das Maven Publish Gradle-Plug-in, mit dem Sie Build-Artefakte in einem Apache Maven-Repository veröffentlichen können. Das Android Gradle-Plug-in erstellt für jedes Buildvarianten-Artefakt in Ihrem App- oder Bibliotheksmodul eine Komponente, mit der Sie eine Veröffentlichung für ein Maven-Repository anpassen können.
Weitere Informationen finden Sie auf der Seite Maven Publish-Plug-in verwenden.
Neues Standard-Paketierungstool
Beim Erstellen der Debugversion Ihrer App verwendet das Plug-in ein neues Verpackungstool namens zipflinger, um Ihr APK zu erstellen. Dieses neue Tool sollte die Buildgeschwindigkeit verbessern. Wenn das neue Tool zum Verpacken nicht wie erwartet funktioniert, melden Sie bitte einen Fehler. Sie können zum alten Verpackungstool zurückkehren, indem Sie Folgendes in Ihre gradle.properties
-Datei einfügen:
android.useNewApkCreator=false
Attribution für native Builds
Sie können jetzt die Zeitspanne ermitteln, die Clang für das Erstellen und Verknüpfen jeder C/C++-Datei in Ihrem Projekt benötigt. Gradle kann einen Chrome-Trace mit Zeitstempeln für diese Compilerereignisse ausgeben, damit Sie die für den Build Ihres Projekts erforderliche Zeit besser nachvollziehen können. So geben Sie diese Datei mit den Attributionsdaten für den Build aus:
-
Fügen Sie das Flag
-Pandroid.enableProfileJson=true
hinzu, wenn Sie einen Gradle-Build ausführen. Beispiel: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 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 für native Anzeigen werden oben im Viewer angezeigt:
Geändertes Verhalten
Bei Verwendung dieser Version des Plug-ins können die folgenden Verhaltensänderungen auftreten.
Native Bibliotheken, die standardmäßig unkomprimiert verpackt sind
Wenn Sie Ihre App erstellen, wird extractNativeLibs
jetzt standardmäßig vom Plug-in auf "false"
gesetzt. Das bedeutet, dass Ihre nativen Bibliotheken seitenausgerichtet und unkomprimiert verpackt sind. Das führt zwar zu einer größeren Uploadgröße, Ihre Nutzer profitieren aber von folgenden Vorteilen:
- Kleinere App-Installationsgröße, da die Plattform direkt über das installierte APK auf die nativen Bibliotheken zugreifen kann, ohne eine Kopie der Bibliotheken zu erstellen.
- Kleinere Downloadgröße, da die Komprimierung im Play Store in der Regel besser ist, wenn Sie unkomprimierte native Bibliotheken in Ihr APK oder Android App-Bundle aufnehmen.
Wenn das Android Gradle-Plug-in stattdessen komprimierte native Bibliotheken verpacken soll, fügen Sie Folgendes in das Manifest Ihrer App ein:
<application
android:extractNativeLibs="true"
... >
</application>
Hinweis:Das Manifestattribut extractNativeLibs
wurde durch die DSL-Option useLegacyPackaging
ersetzt. Weitere Informationen finden Sie in der Anmerkung zur Version.
Standard-NDK-Version
Wenn Sie mehrere Versionen des NDK herunterladen, wählt das Android Gradle-Plug-in jetzt eine Standardversion für die Kompilierung Ihrer Quellcodedateien aus.
Bisher wurde vom Plug-in die zuletzt heruntergeladene Version des NDK ausgewählt.
Verwenden Sie das Attribut android.ndkVersion
in der build.gradle
-Datei des Moduls, um die vom Plug-in ausgewählte Standardeinstellung zu überschreiben.
Vereinfachte R-Klassenerstellung
Das Android Gradle-Plug-in vereinfacht den Compile-Classpath, indem für jedes Bibliotheksmodul in Ihrem Projekt nur eine R-Klasse generiert und diese R-Klassen für andere Modulabhängigkeiten freigegeben werden. Diese Optimierung sollte zu schnelleren Builds führen. Beachten Sie dabei Folgendes:
- Da der Compiler R-Klassen mit Upstream-Modulabhängigkeiten teilt, ist es wichtig, dass jedes Modul in Ihrem Projekt einen eindeutigen Paketnamen verwendet.
- Die Sichtbarkeit der R-Klasse einer Bibliothek für andere Projektabhängigkeiten wird durch die Konfiguration bestimmt, mit der die Bibliothek als Abhängigkeit eingeschlossen wurde. Wenn Bibliothek A beispielsweise Bibliothek B als „api“-Abhängigkeit enthält, haben Bibliothek A und andere Bibliotheken, die von Bibliothek A abhängen, Zugriff auf die R-Klasse von Bibliothek B. Andere Bibliotheken haben jedoch möglicherweise keinen Zugriff auf die R-Klasse von Bibliothek B. Wenn Bibliothek A die
implementation
-Abhängigkeitskonfiguration verwendet. Weitere Informationen finden Sie unter Abhängigkeitskonfigurationen.
Ressourcen entfernen, die in der Standardkonfiguration fehlen
Wenn Sie für Bibliotheksmodule eine Ressource für eine Sprache angeben, die nicht in den Standardressourcen enthalten ist, wird diese Ressource beim Kompilieren Ihres Projekts nicht mehr vom Android Gradle-Plug-in berücksichtigt. Das ist beispielsweise der Fall, wenn Sie hello_world
als Stringressource in /values-es/strings.xml
angeben, sie aber nicht in /values/strings.xml
definieren. Diese Verhaltensänderung sollte zu weniger Resource Not Found
-Laufzeitausnahmen und einer verbesserten Buildgeschwindigkeit führen.
D8 berücksichtigt jetzt die CLASS-Aufbewahrungsrichtlinie für Anmerkungen
Beim Kompilieren Ihrer App berücksichtigt D8 jetzt, wenn Anmerkungen eine CLASS-Aufbewahrungsrichtlinie anwenden. Diese Anmerkungen sind dann zur Laufzeit nicht mehr verfügbar. Dieses Verhalten tritt auch auf, wenn Sie das Ziel-SDK der App auf API-Level 23 festlegen. Bei älteren Versionen des Android Gradle-Plug-ins und von D8 war es zuvor möglich, während der Laufzeit auf diese Anmerkungen zuzugreifen, wenn die App kompiliert wurde.
Weitere Verhaltensänderungen
-
aaptOptions.noCompress
ist auf allen Plattformen (sowohl für APKs als auch für Bundles) nicht mehr groß- und kleinschreibungsempfindlich und berücksichtigt Pfade mit Großbuchstaben. -
Die Datenbindung ist jetzt standardmäßig inkrementell. Weitere Informationen finden Sie unter Problem 110061530.
-
Alle Unittests, einschließlich Roboelectric-Unittests, können jetzt vollständig im Cache gespeichert werden. Weitere Informationen finden Sie unter Problem 115873047.
Fehlerkorrekturen
Diese Version des Android Gradle-Plug-ins enthält die folgenden Fehlerkorrekturen:
- Robolectric-Unit-Tests werden jetzt in Bibliotheksmodulen unterstützt, die Datenbindung verwenden. Weitere Informationen finden Sie unter Problem 126775542.
- Sie können jetzt
connectedAndroidTest
-Aufgaben in mehreren Modulen ausführen, wenn der parallele Ausführungsmodus von Gradle aktiviert ist.
Bekannte Probleme
In diesem Abschnitt werden bekannte Probleme im Android Gradle-Plug-in 3.6.0 beschrieben.
Langsame Leistung der Android Lint-Aufgabe
Bei einigen Projekten kann die Ausführung von Android Lint aufgrund einer Regression der Parseinfrastruktur viel länger dauern. Dies führt zu einer langsameren Berechnung der abgeleiteten Typen für Lambdas in bestimmten Codekonstrukten.
Das Problem wird als Fehler in IDEA gemeldet und wird in Android Gradle Plugin 4.0 behoben.
Fehlende Manifest-Klasse {:#agp-missing-manifest}
Wenn Ihre App benutzerdefinierte Berechtigungen in ihrem Manifest definiert, generiert das Android Gradle-Plug-in normalerweise eine Manifest.java
-Klasse, die Ihre benutzerdefinierten Berechtigungen als Stringkonstanten enthält. Das Plug-in verpackt diese Klasse mit Ihrer App, damit Sie diese Berechtigungen bei der Laufzeit leichter referenzieren können.
Das Generieren der Manifestklasse funktioniert im Android Gradle-Plug-in 3.6.0 nicht.
Wenn Sie Ihre App mit dieser Version des Plug-ins erstellen und sie auf die Manifestklasse verweist, wird möglicherweise eine ClassNotFoundException
-Ausnahme angezeigt. Führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
-
Geben Sie Ihre benutzerdefinierten Berechtigungen mit ihrem vollständig qualifizierten Namen an. Beispiel:
"com.example.myapp.permission.DEADLY_ACTIVITY"
. -
Definieren Sie Ihre eigenen Konstanten, wie unten gezeigt:
public final class CustomPermissions { public static final class permission { public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY"; } }
3.5.0 (August 2019)
Das Android Gradle-Plug-in 3.5.0 ist zusammen mit Android Studio 3.5 ein wichtiger Release und ein Ergebnis von Project Marble. Bei diesem Projekt liegt der Schwerpunkt auf der Verbesserung von drei Hauptbereichen der Android-Entwicklertools: Systemintegrität, Funktionsoptimierung und Behebung von Programmfehlern. Ein besonderer Schwerpunkt dieses Updates war die Verbesserung der Build-Geschwindigkeit von Projekten.
Informationen zu diesen und anderen Updates für Project Marble finden Sie im Blogpost für Android-Entwickler oder in den folgenden Abschnitten.
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
-
Gradle 5.4.1. Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
-
SDK Build Tools 28.0.3 oder höher
Dieses Minor-Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit unter Android 11.
Weitere Informationen finden Sie in den Versionshinweisen zur Version 4.0.1.
3.5.3 (Dezember 2019)
Dieses Minor-Update unterstützt Android Studio 3.5.3 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.
3.5.2 (November 2019)
Dieses Minor-Update unterstützt Android Studio 3.5.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.
3.5.1 (Oktober 2019)
Dieses Minor-Update unterstützt Android Studio 3.5.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.
Inkrementelle Anmerkungsverarbeitung
Der Data Binding-Anmerkungs-Prozessor unterstützt die inkrementelle Anmerkungsverarbeitung, wenn Sie in der Datei gradle.properties
die Option android.databinding.incremental=true
festlegen. Diese Optimierung führt zu einer verbesserten Leistung bei inkrementellen Builds. Eine vollständige Liste der optimierten Annotierungs-Prozessoren finden Sie in der Tabelle der inkrementellen Annotierungs-Prozessoren.
Außerdem unterstützen KAPT 1.3.30 und höher auch inkrementelle Anmerkungs-Prozessoren. Sie können diese aktivieren, indem Sie kapt.incremental.apt=true
in die Datei gradle.properties
einfügen.
Cachefähige Unittests
Wenn Sie die Verwendung von Android-Ressourcen, -Assets und -Manifesten für Unit-Tests aktivieren, indem Sie includeAndroidResources
auf true
festlegen, generiert das Android Gradle-Plug-in eine Testkonfigurationsdatei mit absoluten Pfaden, wodurch die Cache-Neuverlagerung nicht mehr möglich ist. Sie können das Plug-in anweisen, die Testkonfiguration stattdessen mit relativen Pfaden zu generieren, wodurch die AndroidUnitTest
-Aufgabe vollständig im Cache gespeichert werden kann. Fügen Sie dazu Folgendes in die gradle.properties
-Datei ein:
android.testConfig.useRelativePath = true
Bekannte Probleme
-
Wenn Sie das Kotlin Gradle-Plug-in 1.3.31 oder älter verwenden, wird beim Erstellen oder Synchronisieren Ihres Projekts möglicherweise die folgende Warnung angezeigt:
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
Aktualisieren Sie das Plug-in auf Version 1.3.40 oder höher, um dieses Problem zu beheben.
3.4.0 (April 2019)
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
-
Gradle 5.1.1 oder höher Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
Hinweis: Bei Verwendung von Gradle 5.0 und höher wird die Standardgröße des Gradle-Daemon-Speicher-Heaps von 1 GB auf 512 MB reduziert. Dies kann zu einer Verschlechterung der Buildleistung führen. Wenn Sie diese Standardeinstellung überschreiben möchten, geben Sie die Heap-Größe des Gradle-Daemons in der
gradle.properties
-Datei Ihres Projekts an. -
SDK Build Tools 28.0.3 oder höher
Dieses Minor-Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit unter Android 11.
Weitere Informationen finden Sie in den Versionshinweisen zur Version 4.0.1.
3.4.2 (Juli 2019)
Dieses Minor-Update unterstützt Android Studio 3.4.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.
3.4.1 (Mai 2019)
Dieses Minor-Update unterstützt Android Studio 3.4.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.
Neue Funktionen
-
Neue Konfigurationen für Lint-Prüfungsabhängigkeiten:Das Verhalten von
lintChecks
hat sich geändert und es wurde eine neue Abhängigkeitskonfiguration namenslintPublish
eingeführt, mit der Sie besser steuern können, welche Lint-Prüfungen in Ihren Android-Bibliotheken verpackt werden.-
lintChecks
: Dies ist eine vorhandene Konfiguration, die Sie für Lint-Prüfungen verwenden sollten, die nur beim lokalen Erstellen Ihres Projekts ausgeführt werden sollen. Wenn Sie zuvor dielintChecks
-Abhängigkeitskonfiguration verwendet haben, um Lint-Prüfungen in die veröffentlichte AAR aufzunehmen, müssen Sie diese Abhängigkeiten migrieren, um stattdessen die unten beschriebene neuelintPublish
-Konfiguration zu verwenden. -
lintPublish
: Verwenden Sie diese neue Konfiguration in Bibliotheksprojekten für Lint-Prüfungen, die in die veröffentlichte AAR aufgenommen werden sollen, wie unten dargestellt. Das bedeutet, dass diese Lint-Prüfungen auch auf Projekte angewendet werden, die Ihre Bibliothek verwenden.
Im folgenden Codebeispiel werden beide Abhängigkeitskonfigurationen in einem lokalen Android-Bibliotheksprojekt verwendet.
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
-
Im Allgemeinen sollte die Buildgeschwindigkeit bei den Aufgaben zum Verpacken und Signieren insgesamt verbessert werden. Wenn Sie eine Leistungsverschlechterung im Zusammenhang mit diesen Aufgaben feststellen, melden Sie bitte einen Fehler.
-
Geändertes Verhalten
-
Warnung zur Einstellung des Android Instant Apps-Funktions-Plug-ins:Wenn Sie zum Erstellen Ihrer Instant App weiterhin das
com.android.feature
-Plug-in verwenden, erhalten Sie mit dem Android Gradle-Plug-in 3.4.0 eine Warnung zur Einstellung. Damit Sie Ihre Instant-App auch in zukünftigen Versionen des Plug-ins erstellen können, sollten Sie sie auf das Plug-in für dynamische Funktionen umstellen. So können Sie sowohl Ihre installierbare App als auch Ihre Instant-App über ein einziges Android App Bundle veröffentlichen. -
R8 standardmäßig aktiviert:R8 integriert Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing in einem Schritt. Das führt zu erheblichen Verbesserungen der Build-Leistung. R8 wurde im Android Gradle-Plug-in 3.3.0 eingeführt und ist jetzt standardmäßig für App- und Android-Bibliotheksprojekte mit dem Plug-in 3.4.0 und höher aktiviert.
Das folgende Bild bietet einen allgemeinen Überblick über den Kompilierungsprozess vor der Einführung von R8.
Mit R8 werden Desugaring, Schrumpfen, Verschleierung, Optimierung und Dexing (D8) jetzt in einem Schritt ausgeführt, wie unten dargestellt.
R8 ist für die Verwendung mit Ihren vorhandenen ProGuard-Regeln konzipiert. Sie müssen also wahrscheinlich nichts unternehmen, um von R8 zu profitieren. Da es sich jedoch um eine andere Technologie als ProGuard handelt, die speziell für Android-Projekte entwickelt wurde, kann das Schrumpfen und Optimieren dazu führen, dass Code entfernt wird, der von ProGuard möglicherweise nicht entfernt wurde. In diesem unwahrscheinlichen Fall müssen Sie möglicherweise zusätzliche Regeln hinzufügen, damit dieser Code in der Build-Ausgabe enthalten bleibt.
Wenn bei der Verwendung von R8 Probleme auftreten, lesen Sie die häufig gestellten Fragen zur Kompatibilität von R8, um zu sehen, ob es eine Lösung für Ihr Problem gibt. Wenn keine Lösung dokumentiert ist, melden Sie bitte einen Fehler.
Sie können R8 deaktivieren, indem Sie der gradle.properties
-Datei Ihres Projekts eine der folgenden Zeilen hinzufügen:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Hinweis:Wenn Sie für einen bestimmten Buildtyp in der Datei build.gradle
Ihres App-Moduls useProguard
auf false
festlegen, verwendet das Android Gradle-Plug-in R8, um den Code Ihrer App für diesen Buildtyp zu komprimieren, unabhängig davon, ob Sie R8 in der Datei gradle.properties
Ihres Projekts deaktivieren.
-
ndkCompile
wird eingestellt:Wenn Sie versuchen, Ihre nativen Bibliotheken mitndkBuild
zu kompilieren, erhalten Sie jetzt einen Buildfehler. Verwenden Sie stattdessen CMake oder ndk-build, um Ihrem Projekt C- und C++-Code hinzuzufügen.
Bekannte Probleme
-
Die korrekte Verwendung eindeutiger Paketnamen wird derzeit nicht erzwungen, wird aber in späteren Versionen des Plug-ins strenger. Mit der Android-Gradle-Plug-in-Version 3.4.0 können Sie prüfen, ob Ihr Projekt zulässige Paketnamen deklariert. Fügen Sie dazu der Datei
gradle.properties
die folgende Zeile hinzu.android.uniquePackageNames = true
Weitere Informationen zum Festlegen eines Paketnamens über das Android Gradle-Plug-in finden Sie unter Anwendungs-ID festlegen.
3.3.0 (Januar 2019)
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
-
Gradle 4.10.1 oder höher Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
Hinweis: Bei Verwendung von Gradle 5.0 und höher wird die Standardgröße des Gradle-Daemon-Speicher-Hoops von 1 GB auf 512 MB reduziert. Dies kann zu einer Verschlechterung der Buildleistung führen. Wenn Sie diese Standardeinstellung überschreiben möchten, geben Sie die Gradle-Daemon-Heap-Größe in der
gradle.properties
-Datei Ihres Projekts an. -
SDK Build Tools 28.0.3 oder höher
Dieses Minor-Update unterstützt die Kompatibilität mit neuen Standardeinstellungen und Funktionen für die Paketsichtbarkeit unter Android 11.
Weitere Informationen finden Sie in den Versionshinweisen zur Version 4.0.1.
3.3.2 (März 2019)
Dieses Minor-Update unterstützt Android Studio 3.3.2 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen. Eine Liste der wichtigsten Fehlerkorrekturen finden Sie im entsprechenden Beitrag im Blog „Release-Updates“.
3.3.1 (Februar 2019)
Dieses Minor-Update unterstützt Android Studio 3.3.1 und enthält verschiedene Fehlerkorrekturen und Leistungsverbesserungen.
Neue Funktionen
-
Verbesserte Classpath-Synchronisierung:Beim Auflösen von Abhängigkeiten in Ihren Laufzeit- und Kompilierungszeit-Classpaths versucht das Android Gradle-Plug-in, bestimmte Downstream-Versionskonflikte für Abhängigkeiten zu beheben, die in mehreren Classpaths auftreten.
Wenn der Laufzeit-Classpath beispielsweise Bibliothek A Version 2.0 und der Compile-Classpath Bibliothek A Version 1.0 enthält, aktualisiert das Plug-in die Abhängigkeit im Compile-Classpath automatisch auf Bibliothek A Version 2.0, um Fehler zu vermeiden.
Wenn der Laufzeit-Classpath jedoch Bibliothek A Version 1.0 und der Compile-Classpath Bibliothek A Version 2.0 enthält, wird die Abhängigkeit im Compile-Classpath nicht auf Bibliothek A Version 1.0 herabgestuft. In diesem Fall wird ein Fehler ausgegeben. Weitere Informationen finden Sie unter Konflikte zwischen Klassenpfaden beheben.
-
Verbesserte inkrementelle Java-Kompilierung bei Verwendung von Anmerkungs-Prozessoren: Durch dieses Update wird die Buildzeit verkürzt, da die Unterstützung für die inkrementelle Java-Kompilierung bei Verwendung von Anmerkungs-Prozessoren verbessert wurde.
Hinweis: Diese Funktion ist mit Gradle 4.10.1 und höher kompatibel, mit Ausnahme von Gradle 5.1 aufgrund von Gradle-Problem 8194.
-
Für Projekte mit Kapt (die meisten reinen Kotlin-Projekte und Kotlin-Java-Hybridprojekte): Die inkrementelle Java-Kompilierung ist aktiviert, auch wenn Sie Data Binding oder das Retro-Lambda-Plug-in verwenden. Die Anmerkungsverarbeitung durch die Kapt-Aufgabe ist noch nicht inkrementell.
-
Für Projekte ohne Kapt (nur Java-Projekte): Wenn alle von Ihnen verwendeten Anmerkungs-Prozessoren die inkrementelle Anmerkungsverarbeitung unterstützen, ist die inkrementelle Java-Kompilierung standardmäßig aktiviert. Informationen zur Einführung des schrittweisen Annotationseintrags finden Sie unter Gradle-Problem 5277.
Wenn jedoch mindestens einer der Anmerkungs-Prozessoren keine inkrementellen Builds unterstützt, wird die inkrementelle Java-Kompilierung nicht aktiviert. Stattdessen können Sie das folgende Flag in die
gradle.properties
-Datei einfügen:android.enableSeparateAnnotationProcessing=true
Wenn Sie dieses Flag angeben, führt das Android Gradle-Plug-in die Anmerkungs-Prozessoren in einer separaten Aufgabe aus und ermöglicht die inkrementelle Ausführung der Java-Kompilierungsaufgabe.
-
-
Verbesserte Informationen zur Fehlerbehebung bei Verwendung einer veralteten API:Wenn das Plug-in erkennt, dass Sie eine nicht mehr unterstützte API verwenden, können Sie jetzt detailliertere Informationen erhalten, um zu ermitteln, wo diese API verwendet wird. Damit Sie die zusätzlichen Informationen sehen können, müssen Sie Folgendes in die Datei
gradle.properties
Ihres Projekts aufnehmen:android.debug.obsoleteApi=true
Sie können das Flag auch über die Befehlszeile aktivieren, indem Sie
-Pandroid.debug.obsoleteApi=true
übergeben. -
Sie können Instrumentierungstests für Feature-Module über die Befehlszeile ausführen.
Geändertes Verhalten
-
Lazy-Task-Konfiguration:Das Plug-in verwendet jetzt die neue API zum Erstellen von Aufgaben in Gradle, um Aufgaben zu vermeiden, die nicht zum Abschluss des aktuellen Builds erforderlich sind (oder Aufgaben, die nicht im Ausführungsaufgabengraphen enthalten sind). Wenn Sie beispielsweise mehrere Buildvarianten wie „Release“ und „Debug“ haben und die „Debug“-Version Ihrer App erstellen, wird durch das Plug-in verhindert, dass Aufgaben für die „Release“-Version Ihrer App initialisiert und konfiguriert werden.
Wenn Sie bestimmte ältere Methoden in der Variants API aufrufen, z. B.
variant.getJavaCompile()
, wird die Aufgabenkonfiguration möglicherweise trotzdem erzwungen. Damit Ihr Build für die Lazy-Task-Konfiguration optimiert ist, rufen Sie neue Methoden auf, die stattdessen ein TaskProvider-Objekt wievariant.getJavaCompileProvider()
zurückgeben.Wenn Sie benutzerdefinierte Build-Aufgaben ausführen, erfahren Sie hier, wie Sie die neue API zum Erstellen von Aufgaben in Gradle anpassen.
-
Wenn Sie für einen bestimmten Buildtyp
useProguard false
festlegen, verwendet das Plug-in jetzt R8 anstelle von ProGuard, um den Code und die Ressourcen Ihrer App zu verkleinern und zu verschleieren. Weitere Informationen zu R8 finden Sie in diesem Blogpost im Android Developers Blog. -
Schnellere Generierung von R-Klassen für Bibliotheksprojekte:Bisher generierte das Android Gradle-Plug-in für jede Abhängigkeit Ihres Projekts eine
R.java
-Datei und kompilierte diese R-Klassen dann zusammen mit den anderen Klassen Ihrer App. Das Plug-in generiert jetzt direkt eine JAR-Datei mit der kompilierten R-Klasse Ihrer App, ohne zuerst ZwischenR.java
-Klassen zu erstellen. Diese Optimierung kann die Build-Leistung für Projekte mit vielen Bibliotheks-Unterprojekten und Abhängigkeiten erheblich verbessern und die Indexierungsgeschwindigkeit in Android Studio erhöhen. -
Wenn Sie ein Android App Bundle erstellen, enthalten die daraus generierten APKs, die auf Android 6.0 (API-Level 23) oder höher ausgerichtet sind, jetzt standardmäßig unkomprimierte Versionen Ihrer nativen Bibliotheken. Durch diese Optimierung muss das Gerät keine Kopie der Bibliothek erstellen, wodurch die Größe der App auf dem Laufwerk reduziert wird. Wenn Sie diese Optimierung lieber deaktivieren möchten, fügen Sie der Datei
gradle.properties
Folgendes hinzu:android.bundle.enableUncompressedNativeLibs = false
-
Das Plug-in erzwingt Mindestversionen einiger Drittanbieter-Plug-ins.
-
Synchronisierung eines Projekts mit einer einzelnen Variante: Die Synchronisierung Ihres Projekts mit Ihrer Build-Konfiguration ist ein wichtiger Schritt, damit Android Studio die Struktur Ihres Projekts erkennen kann. Bei großen Projekten kann dieser Vorgang jedoch zeitaufwendig sein. Wenn Sie in Ihrem Projekt mehrere Buildvarianten verwenden, können Sie Projektsynchronisierungen jetzt optimieren, indem Sie sie auf die aktuell ausgewählte Variante beschränken.
Sie müssen Android Studio 3.3 oder höher mit dem Android Gradle-Plug-in 3.3.0 oder höher verwenden, um diese Optimierung zu aktivieren. Wenn Sie diese Anforderungen erfüllen, werden Sie in der IDE aufgefordert, diese Optimierung zu aktivieren, wenn Sie Ihr Projekt synchronisieren. Die Optimierung ist auch bei neuen Projekten standardmäßig aktiviert.
Wenn Sie diese Optimierung manuell aktivieren möchten, klicken Sie auf Datei > Einstellungen > Experimentell > Gradle (Android Studio > Einstellungen > Experimentell > Gradle auf einem Mac) und setzen Sie ein Häkchen in das Kästchen Nur die aktive Variante synchronisieren.
Hinweis: Diese Optimierung unterstützt Projekte, die Java- und C++-Code enthalten, vollständig. Kotlin wird teilweise unterstützt. Wenn Sie die Optimierung für Projekte mit Kotlin-Inhalten aktivieren, verwendet die Gradle-Synchronisierung intern die vollständigen Varianten.
-
Automatischer Download fehlender SDK-Pakete: Diese Funktion wurde um die Unterstützung des NDK erweitert. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.
Fehlerkorrekturen
-
Mit dem Android Gradle-Plug-in 3.3.0 werden die folgenden Probleme behoben:
- Der Build-Prozess ruft
android.support.v8.renderscript.RenderScript
anstelle der AndroidX-Version auf, obwohl Jetifier aktiviert ist - Konflikte aufgrund von
androidx-rs.jar
, einschließlich statisch eingebundenerannotation.AnyRes
- Wenn Sie RenderScript verwenden, müssen Sie die Version der Build-Tools nicht mehr manuell in Ihren
build.gradle
-Dateien festlegen.
- Der Build-Prozess ruft
3.2.0 (September 2018)
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
- Gradle 4.6 oder höher 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 mehr für die SDK-Build-Tools angeben. Das Android Gradle-Plug-in verwendet jetzt standardmäßig Version 28.0.3.
Neue Funktionen
-
Unterstützung für die Erstellung von Android App Bundles:Das App-Bundle ist ein neues Uploadformat, das den gesamten kompilierten Code und alle Ressourcen Ihrer App enthält. Die APK-Generierung und -Signatur werden dagegen an den Google Play Store weitergeleitet. Sie müssen nicht mehr mehrere APKs erstellen, signieren und verwalten. Nutzer erhalten kleinere Downloads, die für ihr Gerät optimiert sind. Weitere Informationen finden Sie unter Android App Bundles.
-
Unterstützung für eine verbesserte Geschwindigkeit bei der inkrementellen Erstellung bei Verwendung von Anmerkungs-Prozessoren: Das
AnnotationProcessorOptions
-DSL erweitert jetztCommandLineArgumentProvider
. So können Sie oder der Ersteller des Anmerkungs-Prozessors Argumente für den Prozessor mit Anmerkungen zum Property-Typ für die inkrementelle Erstellung annotieren. Mithilfe dieser Anmerkungen lassen sich die Korrektheit und Leistung von inkrementellen und im Cache gespeicherten sauberen Builds verbessern. Weitere Informationen finden Sie unter Argumente an Anmerkungs-Prozessoren übergeben. -
Migrationstool für AndroidX:Wenn Sie das Android Gradle-Plug-in 3.2.0 mit Android 3.2 oder höher verwenden, können Sie die lokalen und Maven-Abhängigkeiten Ihres Projekts migrieren, um die neuen AndroidX-Bibliotheken zu verwenden. Wählen Sie dazu in der Menüleiste Umstrukturieren > Zu AndroidX migrieren aus. Außerdem werden mit diesem Migrationstool die folgenden Flags in der Datei
gradle.properties
auftrue
gesetzt:-
android.useAndroidX
:Wenn dieser Parameter auftrue
festgelegt ist, verwendet das Android-Plug-in die entsprechende AndroidX-Bibliothek anstelle einer Supportbibliothek. Wenn dieses Flag nicht angegeben ist, wird es vom Plug-in standardmäßig auffalse
gesetzt. -
android.enableJetifier
:Wenn diese Option auftrue
festgelegt ist, migriert das Android-Plug-in vorhandene Bibliotheken von Drittanbietern automatisch zur Verwendung von AndroidX, indem die Binärdateien neu geschrieben werden. Wenn dieses Flag nicht angegeben ist, wird es vom Plug-in standardmäßig auffalse
gesetzt. Sie können dieses Flag nur dann auftrue
setzen, wenn auchandroid.useAndroidX
auftrue
gesetzt ist. Andernfalls wird ein Buildfehler ausgegeben.Weitere Informationen finden Sie in der AndroidX-Übersicht.
-
-
Neues Tool zur Codekomprimierung: R8: R8 ist ein neues Tool zur Codekomprimierung und Verschleierung, das ProGuard ersetzt. Sie können die Vorabversion von R8 verwenden, indem Sie Folgendes in die
gradle.properties
-Datei Ihres Projekts einfügen:android.enableR8 = true
android.enableR8 = true
Geändertes Verhalten
-
Die Entsaccharisierung mit D8 ist jetzt standardmäßig aktiviert.
-
AAPT2 ist jetzt im Maven-Repository von Google verfügbar. Wenn Sie AAPT2 verwenden möchten, muss die
google()
-Abhängigkeit in Ihrerbuild.gradle
-Datei vorhanden sein, wie unten dargestellt:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
Native Multidex-Unterstützung ist jetzt standardmäßig aktiviert. In früheren Versionen von Android Studio wurde native Multidex-Unterstützung aktiviert, wenn die Debugversion einer App auf einem Gerät mit Android API-Level 21 oder höher bereitgestellt wurde. Unabhängig davon, ob Sie eine Bereitstellung auf einem Gerät vornehmen oder ein APK für die Veröffentlichung erstellen, aktiviert das Android Gradle-Plug-in jetzt native Multidex-Unterstützung für alle Module, die
minSdkVersion=21
oder höher festlegen. -
Das Plug-in erzwingt jetzt eine Mindestversion des Protobuf-Plug-ins (0.8.6), des Kotlin-Plug-ins (1.2.50) und des Crashlytics-Plug-ins (1.25.4).
-
Beim Plug-in für das Funktionsmodul
com.android.feature
dürfen beim Angeben eines Modulnamens jetzt nur noch Buchstaben, Ziffern und Unterstriche verwendet werden. Wenn der Name des Feature-Moduls beispielsweise Bindestriche enthält, wird ein Buildfehler ausgegeben. Dieses Verhalten entspricht dem des Plug-ins für dynamische Funktionen.
Fehlerkorrekturen
- JavaCompile kann jetzt in Projekten mit Datenbindung im Cache gespeichert werden. (Problem 69243050)
- Bessere Kompilierungsvermeidung für Bibliotheksmodule mit Datenbindung. (Problem 77539932)
- Sie können configure-on-demand jetzt wieder aktivieren, wenn Sie es in früheren Versionen aufgrund unvorhersehbarer Buildfehler deaktiviert haben. (Problem 77910727)
3.1.0 (März 2018)
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
-
Gradle 4.4 oder höher
Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
-
Build Tools 27.0.3 oder höher
Sie müssen für die Build-Tools nicht mehr über die Property
android.buildToolsVersion
eine Version angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion.
Neuer DEX-Compiler, D8
Android Studio verwendet jetzt standardmäßig einen neuen DEX-Compiler namens D8. Bei der DEX-Kompilierung wird .class
-Bytecode in .dex
-Bytecode für die Android Runtime (oder Dalvik für ältere Android-Versionen) umgewandelt. Im Vergleich zum vorherigen Compiler, DX, kompiliert D8 schneller und gibt kleinere DEX-Dateien aus. Dabei ist die Leistung der App-Laufzeit gleich oder besser.
D8 sollte Ihren täglichen Workflow für die App-Entwicklung nicht ändern. Sollten jedoch Probleme mit dem neuen Compiler auftreten, melden Sie bitte einen Fehler. Sie können D8 vorübergehend deaktivieren und DX verwenden, indem Sie Folgendes in die gradle.properties
-Datei Ihres Projekts einfügen:
android.enableD8=false
Bei Projekten, in denen Java 8-Sprachfunktionen verwendet werden, ist die inkrementelle Desugaring standardmäßig aktiviert. Sie können sie deaktivieren, indem Sie Folgendes in der gradle.properties
-Datei Ihres Projekts angeben:
android.enableIncrementalDesugaring=false.
Vorabversionsnutzer:Wenn Sie bereits eine Vorabversion von D8 verwenden, wird sie jetzt mit Bibliotheken kompiliert, die in den SDK-Build-Tools enthalten sind, nicht mit dem JDK. Wenn Sie also auf APIs zugreifen, die im JDK, aber nicht in den Bibliotheken der SDK-Build-Tools vorhanden sind, erhalten Sie einen Kompilierungsfehler.
Geändertes Verhalten
-
Wenn Sie mehrere APKs erstellen, die jeweils auf ein anderes ABI ausgerichtet sind, werden standardmäßig keine APKs mehr für die folgenden ABIs generiert:
mips
,mips64
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.
-
Wenn Sie
"auto"
anresConfig
übergeben, werden nicht mehr automatisch Stringressourcen ausgewählt, die in Ihr APK verpackt werden. Wenn Sie"auto"
weiterhin verwenden, werden alle Stringressourcen, die von Ihrer App und ihren Abhängigkeiten bereitgestellt werden, vom Plug-in verpackt. Sie sollten stattdessen jede Sprache angeben, die das Plug-in in Ihre APK-Datei einbinden soll. -
Da lokale Module nicht vom Test-APK Ihrer App abhängen können, wird von Gradle die folgende Warnung ausgegeben, wenn Sie Ihren instrumentierten Tests Abhängigkeiten mit der Konfiguration
androidTestApi
anstelle vonandroidTestImplementation
hinzufügen:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das Android Studio Abhängigkeiten in zusammengesetzten Builds nicht richtig erkannte.
- Es wurde ein Problem behoben, bei dem ein Projektsynchronisierungsfehler auftritt, wenn das Android-Plug-in mehrmals in einem einzigen Build geladen wird. Das kann beispielsweise passieren, wenn mehrere Unterprojekte das Android-Plug-in in ihrem Build-Script-Classpath enthalten.
3.0.0 (Oktober 2017)
Das Android-Gradle-Plug-in 3.0.0 enthält eine Vielzahl von Änderungen, die Leistungsprobleme bei großen Projekten beheben sollen.
Bei einem Beispiel-Skelettprojekt mit etwa 130 Modulen und einer großen Anzahl externer Abhängigkeiten (aber ohne Code oder Ressourcen) können Sie beispielsweise Leistungsverbesserungen wie die folgenden erzielen:
Android-Plug-in-Version + Gradle-Version | Android-Plug-in 2.2.0 + Gradle 2.14.1 | Android-Plug-in 2.3.0 und Gradle 3.3 | Android-Plug-in 3.0.0 und Gradle 4.1 |
---|---|---|---|
Konfiguration (z.B. Ausführung von ./gradlew --help ) |
~ 2 Min. | ~9 s | ~ 2,5 s |
Java-Änderung mit einer Zeile (Implementierungsänderung) | ~ 2 Min. 15 Sek. | ~29 s | ~6,4 s |
Einige dieser Änderungen führen dazu, dass vorhandene Builds nicht mehr funktionieren. Sie sollten also den Aufwand für die Migration Ihres Projekts berücksichtigen, bevor Sie das neue Plug-in verwenden.
Wenn Sie die oben beschriebenen Leistungsverbesserungen nicht feststellen, erstellen Sie bitte einen Fehlerbericht und fügen Sie einen Build-Trace mit dem Gradle-Profiler hinzu.
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
- Gradle 4.1 oder höher Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
-
Build Tools 26.0.2 oder höher Mit diesem Update müssen Sie keine Version mehr für die Build-Tools angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion.
Sie können die Property
android.buildToolsVersion
jetzt entfernen.
3.0.1 (November 2017)
Dieses kleine Update unterstützt Android Studio 3.0.1 und enthält allgemeine Fehlerkorrekturen und Leistungsverbesserungen.
Optimierungen
- Bessere Parallelität bei Projekten mit mehreren Modulen durch einen detaillierten Aufgabengraphen.
- Wenn Sie Änderungen an einer Abhängigkeit vornehmen, führt Gradle schnellere Builds aus, da Module, die keinen Zugriff auf die API dieser Abhängigkeit haben, nicht neu kompiliert werden.
Sie sollten einschränken, welche Abhängigkeiten ihre APIs an andere Module weitergeben. Verwenden Sie dazu die neuen Abhängigkeitskonfigurationen von Gradle:
implementation
,api
,compileOnly
undruntimeOnly
. - Schnellere inkrementelle Buildgeschwindigkeit durch Dezimierung pro Klasse. Jede Klasse wird jetzt in separate DEX-Dateien kompiliert und nur die Klassen, die geändert werden, werden neu dexiert. Außerdem sollten Sie eine verbesserte Buildgeschwindigkeit für Apps erwarten, bei denen
minSdkVersion
auf 20 oder niedriger festgelegt ist und Legacy Multi-Dex verwendet wird. - Die Build-Geschwindigkeit wurde durch die Optimierung bestimmter Aufgaben für die Verwendung von zwischengespeicherten Ausgaben verbessert. Damit Sie von dieser Optimierung profitieren können, müssen Sie zuerst den Gradle-Build-Cache aktivieren.
- Die inkrementelle Ressourcenverarbeitung wurde mit AAPT2 verbessert, das jetzt standardmäßig aktiviert ist. Wenn bei der Verwendung von AAPT2 Probleme auftreten, melden Sie bitte einen Fehler. Sie können AAPT2 auch deaktivieren, indem Sie in Ihrer
gradle.properties
-Dateiandroid.enableAapt2=false
festlegen und den Gradle-Daemon neu starten, indem Sie./gradlew --stop
über die Befehlszeile ausführen.
Neue Funktionen
- Variantenspezifische Abhängigkeitsverwaltung Beim Erstellen einer bestimmten Variante eines Moduls gleicht das Plug-in jetzt automatisch die Varianten der Abhängigkeiten von lokalen Bibliotheksmodulen mit der Variante des Moduls ab, das Sie erstellen.
- Enthält ein neues Feature-Modul-Plug-in zur Unterstützung von Android Instant Apps und dem Android Instant Apps SDK (das Sie über den SDK-Manager herunterladen können). Weitere Informationen zum Erstellen von Feature-Modulen mit dem neuen Plug-in finden Sie unter Struktur einer Instant-App mit mehreren Funktionen.
- Integrierte Unterstützung für die Verwendung bestimmter Java 8-Sprachfunktionen und Java 8-Bibliotheken. Jack wurde eingestellt und ist nicht mehr erforderlich. Sie sollten Jack zuerst deaktivieren, um die verbesserte Java 8-Unterstützung zu verwenden, die in der Standard-Toolchain enthalten ist. Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.
-
Unterstützung für die Ausführung von Tests mit Android Test Orchestrator hinzugefügt. Damit können Sie die Tests Ihrer App in einer eigenen Aufrufinstanz der Instrumentierung ausführen. Da jeder Test in einer eigenen Instrumentierungsinstanz ausgeführt wird, wird der gemeinsame Status zwischen den Tests nicht auf der CPU oder im Arbeitsspeicher des Geräts angesammelt. Selbst wenn ein Test abstürzt, wird nur die entsprechende Instanz der Instrumentierung beendet. Die anderen Tests werden also weiterhin ausgeführt.
- Es wurde
testOptions.execution
hinzugefügt, um festzulegen, ob die Testorchestration auf dem Gerät verwendet werden soll. Wenn Sie Android Test Orchestrator verwenden möchten, müssen SieANDROID_TEST_ORCHESTRATOR
angeben, wie unten gezeigt. Standardmäßig ist diese Eigenschaft aufHOST
festgelegt. Dadurch wird die On-Device-Orchestrierung deaktiviert. Dies ist die Standardmethode zum Ausführen von Tests.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Es wurde
-
Mit der neuen
androidTestUtil
-Abhängigkeitskonfiguration können Sie vor dem Ausführen Ihrer Instrumentierungstests ein weiteres Test-Hilfs-APK installieren, z. B. Android Test Orchestrator:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
testOptions.unitTests.includeAndroidResources
wurde hinzugefügt, um Unit-Tests zu unterstützen, für die Android-Ressourcen erforderlich sind, z. B. Roboelectric. Wenn Sie diese Eigenschaft auftrue
festlegen, führt das Plug-in vor dem Ausführen der Unit-Tests eine Zusammenführung von Ressourcen, Assets und Manifesten durch. Ihre Tests können danncom/android/tools/test_config.properties
im Klassenpfad auf die folgenden Schlüssel prüfen:-
android_merged_assets
: der absolute Pfad zum Verzeichnis mit den zusammengeführten Assets.Hinweis:Bei Bibliotheksmodulen enthalten die zusammengeführten Assets nicht die Assets der Abhängigkeiten (siehe Problem #65550419).
-
android_merged_manifest
: der absolute Pfad zur zusammengeführten Manifestdatei. -
android_merged_resources
: Der absolute Pfad zum Verzeichnis mit den zusammengeführten Ressourcen, das alle Ressourcen aus dem Modul und alle zugehörigen Abhängigkeiten enthält. -
android_custom_package
: Paketname der endgültigen R-Klasse. Wenn Sie die Anwendungs-ID dynamisch ändern, stimmt dieser Paketname möglicherweise nicht mit dempackage
-Attribut im Manifest der App überein.
-
- Unterstützung für Schriftarten als Ressourcen (eine neue Funktion, die in Android 8.0 (API-Level 26) eingeführt wurde)
- Unterstützung für sprachspezifische APKs mit dem Android Instant Apps SDK 1.1 und höher
-
Sie können jetzt das Ausgabeverzeichnis für Ihr externes natives Build-Projekt ändern, wie unten dargestellt:
Groovy
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- Sie können jetzt CMake 3.7 oder höher verwenden, um native Projekte in Android Studio zu erstellen.
-
Mit der neuen
lintChecks
-Abhängigkeitskonfiguration können Sie eine JAR-Datei erstellen, die benutzerdefinierte Lint-Regeln definiert, und sie in Ihre AAR- und APK-Projekte einbinden.Ihre benutzerdefinierten Lint-Regeln müssen zu einem separaten Projekt gehören, das eine einzelne JAR-Datei ausgibt und nur
compileOnly
-Abhängigkeiten enthält. Andere App- und Bibliotheksmodule können dann von Ihrem Lint-Projekt mit derlintChecks
-Konfiguration abhängen:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Geändertes Verhalten
- Mit dem Android-Plug-in 3.0.0 werden bestimmte APIs entfernt. Wenn Sie diese verwenden, funktioniert Ihr Build nicht mehr. Sie können beispielsweise nicht mehr die Variants API verwenden, um auf
outputFile()
-Objekte zuzugreifen, oderprocessManifest.manifestOutputFile()
, um die Manifestdatei für jede Variante abzurufen. Weitere Informationen finden Sie unter API-Änderungen. - Sie müssen keine Version mehr für die Build-Tools angeben. Sie können die Property
android.buildToolsVersion
also entfernen. Standardmäßig verwendet das Plug-in automatisch die Mindestversion der Build-Tools für die Version des Android-Plug-ins, die Sie verwenden. - Sie aktivieren oder deaktivieren die PNG-Komprimierung jetzt im Block
buildTypes
, wie unten dargestellt. Die PNG-Komprimierung ist standardmäßig für alle Builds aktiviert, mit Ausnahme von Debug-Builds, da sich die Buildzeit für Projekte mit vielen PNG-Dateien dadurch verlängert. Wenn Sie die Buildzeiten für andere Buildtypen verbessern möchten, sollten Sie entweder die PNG-Komprimierung deaktivieren oder Ihre Bilder in WebP konvertieren.Groovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- Das Android-Plug-in erstellt jetzt automatisch ausführbare Ziele, die Sie in Ihren externen CMake-Projekten konfigurieren.
- Sie müssen dem Prozessor-Classpath jetzt mithilfe der
annotationProcessor
-Abhängigkeitskonfiguration Anmerkungs-Prozessoren hinzufügen. - Die Verwendung des eingestellten
ndkCompile
ist jetzt stärker eingeschränkt. Sie sollten stattdessen entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK einbinden möchten. Weitere Informationen finden Sie unter Von ndkcompile migrieren.
3.0.0 (Oktober 2017)
Das Android-Gradle-Plug-in 3.0.0 enthält eine Vielzahl von Änderungen, die Leistungsprobleme bei großen Projekten beheben sollen.
Bei einem Beispiel-Skelettprojekt mit etwa 130 Modulen und einer großen Anzahl externer Abhängigkeiten (aber ohne Code oder Ressourcen) können Sie beispielsweise Leistungsverbesserungen wie die folgenden erzielen:
Android-Plug-in-Version + Gradle-Version | Android-Plug-in 2.2.0 + Gradle 2.14.1 | Android-Plug-in 2.3.0 und Gradle 3.3 | Android-Plug-in 3.0.0 und Gradle 4.1 |
---|---|---|---|
Konfiguration (z.B. Ausführung von ./gradlew --help ) |
~ 2 Min. | ~9 s | ~ 2,5 s |
Java-Änderung mit einer Zeile (Implementierungsänderung) | ~ 2 Min. 15 Sek. | ~29 s | ~6,4 s |
Einige dieser Änderungen führen dazu, dass vorhandene Builds nicht mehr funktionieren. Sie sollten also den Aufwand für die Migration Ihres Projekts berücksichtigen, bevor Sie das neue Plug-in verwenden.
Wenn Sie die oben beschriebenen Leistungsverbesserungen nicht feststellen, erstellen Sie bitte einen Fehlerbericht und fügen Sie einen Build-Trace mit dem Gradle-Profiler hinzu.
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
- Gradle 4.1 oder höher Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
-
Build Tools 26.0.2 oder höher Mit diesem Update müssen Sie keine Version mehr für die Build-Tools angeben. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion.
Sie können die Property
android.buildToolsVersion
jetzt entfernen.
3.0.1 (November 2017)
Dieses kleine Update unterstützt Android Studio 3.0.1 und enthält allgemeine Fehlerkorrekturen und Leistungsverbesserungen.
Optimierungen
- Bessere Parallelität bei Projekten mit mehreren Modulen durch einen detaillierten Aufgabengraphen.
- Wenn Sie Änderungen an einer Abhängigkeit vornehmen, führt Gradle schnellere Builds aus, da Module, die keinen Zugriff auf die API dieser Abhängigkeit haben, nicht neu kompiliert werden.
Sie sollten einschränken, welche Abhängigkeiten ihre APIs an andere Module weitergeben. Verwenden Sie dazu die neuen Abhängigkeitskonfigurationen von Gradle:
implementation
,api
,compileOnly
undruntimeOnly
. - Schnellere inkrementelle Buildgeschwindigkeit durch Dezimierung pro Klasse. Jede Klasse wird jetzt in separate DEX-Dateien kompiliert und nur die Klassen, die geändert werden, werden neu dexiert. Außerdem sollten Sie eine verbesserte Buildgeschwindigkeit für Apps erwarten, bei denen
minSdkVersion
auf 20 oder niedriger festgelegt ist und Legacy Multi-Dex verwendet wird. - Die Build-Geschwindigkeit wurde durch die Optimierung bestimmter Aufgaben für die Verwendung von zwischengespeicherten Ausgaben verbessert. Damit Sie von dieser Optimierung profitieren können, müssen Sie zuerst den Gradle-Build-Cache aktivieren.
- Die inkrementelle Ressourcenverarbeitung wurde mit AAPT2 verbessert, das jetzt standardmäßig aktiviert ist. Wenn bei der Verwendung von AAPT2 Probleme auftreten, melden Sie bitte einen Fehler. Sie können AAPT2 auch deaktivieren, indem Sie in Ihrer
gradle.properties
-Dateiandroid.enableAapt2=false
festlegen und den Gradle-Daemon neu starten, indem Sie./gradlew --stop
über die Befehlszeile ausführen.
Neue Funktionen
- Variantenspezifische Abhängigkeitsverwaltung Beim Erstellen einer bestimmten Variante eines Moduls gleicht das Plug-in jetzt automatisch die Varianten der Abhängigkeiten von lokalen Bibliotheksmodulen mit der Variante des Moduls ab, das Sie erstellen.
- Enthält ein neues Feature-Modul-Plug-in zur Unterstützung von Android Instant Apps und dem Android Instant Apps SDK (das Sie über den SDK-Manager herunterladen können). Weitere Informationen zum Erstellen von Feature-Modulen mit dem neuen Plug-in finden Sie unter Struktur einer Instant-App mit mehreren Funktionen.
- Integrierte Unterstützung für die Verwendung bestimmter Java 8-Sprachfunktionen und Java 8-Bibliotheken. Jack wurde eingestellt und ist nicht mehr erforderlich. Sie sollten Jack zuerst deaktivieren, um die verbesserte Java 8-Unterstützung zu verwenden, die in der Standard-Toolchain enthalten ist. Weitere Informationen finden Sie unter Java 8-Sprachfunktionen verwenden.
-
Unterstützung für die Ausführung von Tests mit Android Test Orchestrator hinzugefügt. Damit können Sie die Tests Ihrer App in einer eigenen Aufrufinstanz der Instrumentierung ausführen. Da jeder Test in einer eigenen Instrumentierungsinstanz ausgeführt wird, wird der gemeinsame Status zwischen den Tests nicht auf der CPU oder im Arbeitsspeicher des Geräts angesammelt. Selbst wenn ein Test abstürzt, wird nur die entsprechende Instanz der Instrumentierung beendet. Die anderen Tests werden also weiterhin ausgeführt.
- Es wurde
testOptions.execution
hinzugefügt, um festzulegen, ob die Testorchestration auf dem Gerät verwendet werden soll. Wenn Sie Android Test Orchestrator verwenden möchten, müssen SieANDROID_TEST_ORCHESTRATOR
angeben, wie unten gezeigt. Standardmäßig ist diese Eigenschaft aufHOST
festgelegt. Dadurch wird die On-Device-Orchestrierung deaktiviert. Dies ist die Standardmethode zum Ausführen von Tests.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Es wurde
-
Mit der neuen
androidTestUtil
-Abhängigkeitskonfiguration können Sie vor dem Ausführen Ihrer Instrumentierungstests ein weiteres Test-Hilfs-APK installieren, z. B. Android Test Orchestrator:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
testOptions.unitTests.includeAndroidResources
wurde hinzugefügt, um Unit-Tests zu unterstützen, für die Android-Ressourcen erforderlich sind, z. B. Roboelectric. Wenn Sie diese Eigenschaft auftrue
festlegen, führt das Plug-in vor dem Ausführen der Unit-Tests eine Zusammenführung von Ressourcen, Assets und Manifesten durch. Ihre Tests können danncom/android/tools/test_config.properties
im Klassenpfad auf die folgenden Schlüssel prüfen:-
android_merged_assets
: der absolute Pfad zum Verzeichnis mit den zusammengeführten Assets.Hinweis:Bei Bibliotheksmodulen enthalten die zusammengeführten Assets nicht die Assets der Abhängigkeiten (siehe Problem #65550419).
-
android_merged_manifest
: der absolute Pfad zur zusammengeführten Manifestdatei. -
android_merged_resources
: Der absolute Pfad zum Verzeichnis mit den zusammengeführten Ressourcen, das alle Ressourcen aus dem Modul und alle zugehörigen Abhängigkeiten enthält. -
android_custom_package
: Paketname der endgültigen R-Klasse. Wenn Sie die Anwendungs-ID dynamisch ändern, stimmt dieser Paketname möglicherweise nicht mit dempackage
-Attribut im Manifest der App überein.
-
- Unterstützung für Schriftarten als Ressourcen (eine neue Funktion, die in Android 8.0 (API-Level 26) eingeführt wurde)
- Unterstützung für sprachspezifische APKs mit dem Android Instant Apps SDK 1.1 und höher
-
Sie können jetzt das Ausgabeverzeichnis für Ihr externes natives Build-Projekt ändern, wie unten dargestellt:
Groovy
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- Sie können jetzt CMake 3.7 oder höher verwenden, um native Projekte in Android Studio zu erstellen.
-
Mit der neuen
lintChecks
-Abhängigkeitskonfiguration können Sie eine JAR-Datei erstellen, die benutzerdefinierte Lint-Regeln definiert, und sie in Ihre AAR- und APK-Projekte einbinden.Ihre benutzerdefinierten Lint-Regeln müssen zu einem separaten Projekt gehören, das eine einzelne JAR-Datei ausgibt und nur
compileOnly
-Abhängigkeiten enthält. Andere App- und Bibliotheksmodule können dann von Ihrem Lint-Projekt mit derlintChecks
-Konfiguration abhängen:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Geändertes Verhalten
- Mit dem Android-Plug-in 3.0.0 werden bestimmte APIs entfernt. Wenn Sie diese verwenden, funktioniert Ihr Build nicht mehr. Sie können beispielsweise nicht mehr die Variants API verwenden, um auf
outputFile()
-Objekte zuzugreifen, oderprocessManifest.manifestOutputFile()
, um die Manifestdatei für jede Variante abzurufen. Weitere Informationen finden Sie unter API-Änderungen. - Sie müssen keine Version mehr für die Build-Tools angeben. Sie können die Property
android.buildToolsVersion
also entfernen. Standardmäßig verwendet das Plug-in automatisch die Mindestversion der Build-Tools für die Version des Android-Plug-ins, die Sie verwenden. - Sie aktivieren oder deaktivieren die PNG-Komprimierung jetzt im Block
buildTypes
, wie unten dargestellt. Die PNG-Komprimierung ist standardmäßig für alle Builds aktiviert, mit Ausnahme von Debug-Builds, da sich die Buildzeit für Projekte mit vielen PNG-Dateien dadurch verlängert. Wenn Sie die Buildzeiten für andere Buildtypen verbessern möchten, sollten Sie entweder die PNG-Komprimierung deaktivieren oder Ihre Bilder in WebP konvertieren.Groovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- Das Android-Plug-in erstellt jetzt automatisch ausführbare Ziele, die Sie in Ihren externen CMake-Projekten konfigurieren.
- Sie müssen dem Prozessor-Classpath jetzt mithilfe der
annotationProcessor
-Abhängigkeitskonfiguration Anmerkungs-Prozessoren hinzufügen. - Die Verwendung des eingestellten
ndkCompile
ist jetzt stärker eingeschränkt. Sie sollten stattdessen entweder CMake oder ndk-build verwenden, um nativen Code zu kompilieren, den Sie in Ihr APK einbinden möchten. Weitere Informationen finden Sie unter Von ndkcompile migrieren.
2.3.0 (Februar 2017)
2.3.3 (Juni 2017)
Dieses kleine Update bietet Kompatibilität mit Android Studio 2.3.3.
2.3.2 (Mai 2017)
Dieses kleine Update bietet Kompatibilität mit Android Studio 2.3.2.
2.3.1 (April 2017)
Dieses kleine Update des Android-Plug-ins 2.3.0 behebt ein Problem, bei dem einige physische Android-Geräte nicht richtig mit Instant Run funktionierten (siehe Problem 235879).
- Abhängigkeiten:
-
- Gradle 3.3 oder höher
- Build Tools 25.0.0 oder höher
- Neu:
-
- Verwendet Gradle 3.3 mit Leistungsverbesserungen und neuen Funktionen. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
- Build-Cache: Hier werden bestimmte Ausgaben gespeichert, die das Android-Plug-in beim Erstellen Ihres Projekts generiert, z. B. nicht verpackte AARs und vordekompilierte Remote-Abhängigkeiten. Ihre sauberen Builds sind mit dem Cache viel schneller, da das Build-System diese im Cache gespeicherten Dateien bei nachfolgenden Builds einfach wiederverwenden kann, anstatt sie neu zu erstellen. Bei Projekten, die das Android-Plug-in 2.3.0 oder höher verwenden, wird standardmäßig der Build-Cache verwendet. Weitere Informationen finden Sie unter Build-Geschwindigkeit mit dem Build-Cache verbessern.
- Enthält eine
cleanBuildCache
-Aufgabe, mit der der Build-Cache gelöscht wird. - Wenn Sie die experimentelle Version des Build-Caches verwenden (in früheren Versionen des Plug-ins enthalten), sollten Sie Ihr Plug-in auf die neueste Version aktualisieren.
- Enthält eine
- Änderungen:
-
- Unterstützt Änderungen an Instant Run, die in Android Studio 2.3 enthalten sind.
- Die Konfigurationszeiten für sehr große Projekte sollten deutlich kürzer sein.
- Probleme mit dem automatischen Herunterladen der Bibliothek für das Layout mit Einschränkungen wurden behoben.
- Für das Plug-in wird jetzt ProGuard-Version 5.3.2 verwendet.
- Enthält viele Fehlerkorrekturen für gemeldete Fehler. Bitte melden Sie weiterhin Fehlerberichte, 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, das Leistungsverbesserungen und neue Funktionen enthält. Außerdem wird eine Sicherheitslücke geschlossen, die eine lokale Berechtigungseskalierung bei Verwendung des Gradle-Daemons ermöglicht. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
- Mit der
externalNativeBuild {}
-DSL können Sie in Gradle jetzt Verknüpfungen zu Ihren nativen Quellen herstellen und native Bibliotheken mit CMake oder ndk-build kompilieren. Nachdem Sie Ihre nativen Bibliotheken erstellt haben, verpackt Gradle sie in Ihr APK. Weitere Informationen zur Verwendung von CMake und ndk-build mit Gradle finden Sie im Hilfeartikel C- und C++-Code in Ihr Projekt einfügen. - Wenn Sie einen Build über die Befehlszeile ausführen, versucht Gradle jetzt, alle fehlenden SDK-Komponenten oder Updates automatisch herunterzuladen, von denen Ihr Projekt abhängt. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.
- Mit einer neuen experimentellen Caching-Funktion kann Gradle die Build-Zeiten beschleunigen, indem die dex-optimierten Versionen Ihrer Bibliotheken vorab dex-optimiert, gespeichert und wiederverwendet werden. Weitere Informationen zur Verwendung dieser experimentellen Funktion finden Sie im Leitfaden Cache erstellen.
- Die Build-Leistung wurde durch die Einführung einer neuen Standard-Packerpipeline verbessert, die Zippen, Signieren und Zipaligning in einer einzigen Aufgabe verarbeitet. Sie können zu den älteren Tools zur Paketierung zurückkehren, indem Sie Ihrer
gradle.properties
-Dateiandroid.useOldPackaging=true
hinzufügen. Wenn Sie das neue Tool zur Paketierung verwenden, ist die AufgabezipalignDebug
nicht verfügbar. Sie können jedoch eine selbst erstellen, indem Sie die MethodecreateZipAlignTask(String taskName, File inputFile, File outputFile)
aufrufen. - Für die APK-Signatur wird jetzt zusätzlich zur traditionellen JAR-Signatur das APK-Signaturschema v2 verwendet. Die resultierenden APKs werden von allen Android-Plattformen akzeptiert. Jede Änderung an diesen APKs nach der Signatur macht ihre V2-Signaturen ungültig und verhindert die Installation auf einem Gerät. Wenn Sie diese Funktion deaktivieren möchten, fügen Sie der Datei
build.gradle
auf Modulebene Folgendes hinzu:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Bei Multidex-Builds können Sie jetzt ProGuard-Regeln verwenden, um festzulegen, welche Klassen Gradle in die main-DEX-Datei Ihrer App kompilieren soll. Da das Android-System beim Starten Ihrer App zuerst die Haupt-DEX-Datei lädt, können Sie bestimmte Klassen beim Start priorisieren, indem Sie sie in die Haupt-DEX-Datei kompilieren. Nachdem Sie eine ProGuard-Konfigurationsdatei speziell für Ihre Haupt-DEX-Datei erstellt haben, übergeben Sie den Pfad der Konfigurationsdatei mit
buildTypes.multiDexKeepProguard
an Gradle. Die Verwendung dieser DSL unterscheidet sich von der Verwendung vonbuildTypes.proguardFiles
, das allgemeine ProGuard-Regeln für Ihre App enthält und keine Klassen für die Haupt-DEX-Datei angibt. - Unterstützung für das Flag
android:extractNativeLibs
hinzugefügt, mit dem die Größe Ihrer App bei der Installation auf einem Gerät reduziert werden kann. Wenn Sie dieses Flag im Element<application>
Ihres App-Manifests auffalse
festlegen, verpackt Gradle unkomprimierte und ausgerichtete Versionen Ihrer nativen Bibliotheken mit Ihrem APK. Dadurch wird verhindert, dassPackageManager
Ihre nativen Bibliotheken während der Installation aus dem APK in das Dateisystem des Geräts kopiert. Außerdem werden Delta-Updates Ihrer App dadurch kleiner. - Sie können jetzt
versionNameSuffix
undapplicationIdSuffix
für Produktvarianten angeben. (Problem 59614)
- Änderungen:
-
-
getDefaultProguardFile
gibt jetzt die Standard-ProGuard-Dateien zurück, die vom Android-Plug-in für Gradle bereitgestellt werden, und verwendet nicht mehr die im Android SDK enthaltenen Dateien. - Verbesserte Leistung und Funktionen des Jack-Compilers:
- Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn
testCoverageEnabled
auftrue
gesetzt wird. - Verbesserte Unterstützung für Anmerkungs-Prozessoren. Anmerkungs-Prozessoren in Ihrem Klassenpfad, z. B.
compile
-Abhängigkeiten, werden automatisch auf Ihren Build angewendet. Sie können auch einen Anmerkungs-Prozessor in Ihrem Build angeben und Argumente übergeben, indem Sie diejavaCompileOptions.annotationProcessorOptions {}
-DSL in Ihrerbuild.gradle
-Datei auf Modulebene verwenden:Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
Wenn Sie einen Anmerkungs-Prozessor zur Kompilierungszeit anwenden, ihn aber nicht in Ihr APK aufnehmen möchten, verwenden Sie den
annotationProcessor
-Abhängigkeitsbereich:Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
Eine Liste der Parameter, die Sie festlegen können, erhalten Sie über die Befehlszeile mit dem folgenden Befehl:
java -jar /build-tools/jack.jar --help-properties
- 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. Wenn Sie die Größe des Daemon-Haufens anpassen möchten, fügen Sie der Datei
gradle.properties
Folgendes hinzu:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
2.1.0 (April 2016)
2.1.3 (August 2016)
Für dieses Update ist Gradle 2.14.1 oder höher erforderlich. Gradle 2.14.1 enthält Leistungsverbesserungen, neue Funktionen und einen wichtigen Sicherheitsfix. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
- Abhängigkeiten:
-
- Gradle 2.10 oder höher
- Build Tools 23.0.2 oder höher
- Neu:
-
- Unterstützung für die N Developer Preview, JDK 8 und Java 8-Sprachfunktionen mit der Jack-Toolchain hinzugefügt. Weitere Informationen finden Sie im Leitfaden für die N-Vorabversion.
Hinweis:Instant Run funktioniert derzeit nicht mit Jack und wird bei Verwendung der neuen Toolchain deaktiviert. Sie müssen Jack nur verwenden, wenn Sie für die N-Vorabversion entwickeln und die unterstützten Java 8-Sprachfunktionen verwenden möchten.
- Standardunterstützung für die inkrementelle Java-Kompilierung hinzugefügt, um die Kompilierungszeit während der Entwicklung zu verkürzen. Dazu werden nur die Teile der Quelle neu kompiliert, die sich geändert haben oder neu kompiliert werden müssen. Wenn Sie diese Funktion deaktivieren möchten, fügen Sie der Datei
build.gradle
auf Modulebene den folgenden Code hinzu:Groovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
Unterstützung für das Dexing-in-Process wurde hinzugefügt, bei dem das Dexing im Buildprozess und nicht in separaten externen VM-Prozessen ausgeführt wird. Dadurch werden nicht nur inkrementelle Builds, sondern auch vollständige Builds beschleunigt. Die Funktion ist standardmäßig für Projekte aktiviert, bei denen die maximale Heap-Größe des Gradle-Daemons auf mindestens 2.048 MB festgelegt wurde. Fügen Sie dazu Folgendes in die Datei
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
Ihres Projekts ein:Wenn Sie in der
```none org.gradle.jvmargs = -Xmx3072m ```build.gradle
-Datei auf Modulebene einen Wert fürjavaMaxHeapSize
definiert haben, müssen Sieorg.gradle.jvmargs
auf den Wert vonjavaMaxHeapSize
+ 1.024 MB festlegen. Wenn SiejavaMaxHeapSize
beispielsweise auf „2048 m“ festgelegt haben, müssen Sie dergradle.properties
-Datei Ihres Projekts Folgendes hinzufügen:Wenn Sie das DeXing während des Betriebs deaktivieren möchten, fügen Sie der Datei
build.gradle
auf Modulebene den folgenden Code hinzu:Groovy
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- Unterstützung für die N Developer Preview, JDK 8 und Java 8-Sprachfunktionen mit der Jack-Toolchain hinzugefügt. Weitere Informationen finden Sie im Leitfaden für die N-Vorabversion.
2.0.0 (April 2016)
- Abhängigkeiten:
-
- Gradle 2.10 oder höher
- Build Tools 21.1.1 oder höher
- Neu:
-
- Ermöglicht Instant Run durch Unterstützung der Bytecode-Injektion und das Pushen von Code- und Ressourcenupdates an eine laufende App auf dem Emulator oder einem physischen Gerät.
- Unterstützung für inkrementelle Builds hinzugefügt, auch wenn die App nicht ausgeführt wird. Die Buildzeit wird verbessert, indem inkrementelle Änderungen über die Android Debug Bridge an das verbundene Gerät gesendet werden.
- Es wurde
maxProcessCount
hinzugefügt, um zu steuern, wie viele Worker-DEX-Prozesse gleichzeitig gestartet werden können. Im folgenden Code in der Dateibuild.gradle
auf Modulebene wird die maximale Anzahl gleichzeitiger Prozesse auf 4 festgelegt:Groovy
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
Kotlin
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
</li> <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing of dependencies, which are not supported with Proguard. This improves the build speed of your debug build variant. Because the experimental shrinker does not support optimization and obfuscation, you should enable Proguard for your release builds. To enable the experimental shrinker for your debug builds, add the following to your module-level <code>build.gradle</code> file:
Groovy
android { ... buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true // this is a default setting } } }
Kotlin
android { ... buildTypes { getByName("debug") { minifyEnabled = true useProguard = false } getByName("release") { minifyEnabled = true useProguard = true // this is a default setting } } }
</li> <li>Added logging support and improved performance for the resource shrinker. The resource shrinker now logs all of its operations into a <code>resources.txt</code> file located in the same folder as the Proguard log files. </li> </ul>
- Geändertes Verhalten:
-
- Wenn
minSdkVersion
auf 18 oder höher gesetzt ist, wird für die APK-Signatur SHA256 verwendet.
<li>DSA and ECDSA keys can now sign APK packages. <p class="note"> <strong>Note:</strong> The <a href= "/training/articles/keystore.html">Android keystore</a> provider no longer supports <a href= "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore"> DSA keys on Android 6.0</a> (API level 23) and higher. </p> </li> </ul>
- Wenn
- Behobene Probleme:
-
- Ein Problem wurde behoben, das zu doppelten AAR-Abhängigkeiten sowohl in der Test- als auch in der Haupt-Build-Konfiguration führte.
Android-Plug-in für Gradle, Version 1.5.0 (November 2015)
- Abhängigkeiten:
-
- Gradle 2.2.1 oder höher
- Build Tools 21.1.1 oder höher
- Allgemeine Hinweise:
-
- Das Data Binding-Plug-in wurde in das Android-Plug-in für Gradle eingebunden. Fügen Sie dazu jeder projektspezifischen
build.gradle
-Datei, in der das Plug-in verwendet wird, den folgenden Code hinzu: - Neue Transform API hinzugefügt, mit der Drittanbieter-Plug-ins kompilierte
.class
-Dateien bearbeiten können, bevor sie in.dex
-Dateien umgewandelt werden. Die Transform API vereinfacht das Einfügen benutzerdefinierter Klassenmanipulationen und bietet mehr Flexibilität bei den Optionen, die Sie manipulieren können. Wenn Sie eine Transformation in einen Build einfügen möchten, erstellen Sie eine neue Klasse, die eine derTransform
-Schnittstellen implementiert, und registrieren Sie sie beiandroid.registerTransform(theTransform)
oderandroid.registerTransform(theTransform, dependencies)
. Es ist nicht erforderlich, Aufgaben miteinander zu verknüpfen. Beachten Sie Folgendes bei der Transform API: - Eine Transformation kann auf eines oder mehrere der folgenden Elemente angewendet werden: das aktuelle Projekt, Unterprojekte und externe Bibliotheken.
- Eine Transformation muss global registriert werden, damit sie auf alle Varianten angewendet wird.
- Die interne Codeverarbeitung über die Java Code Coverage Library (JaCoCo), ProGuard und MultiDex verwendet jetzt die Transform API. Das Java Android Compiler Kit (Jack) verwendet diese API jedoch nicht. Lediglich der
javac/dx
-Codepfad tut dies. - Gradle führt die Transformationen in der folgenden Reihenfolge aus: JaCoCo, Drittanbieter-Plug-ins, ProGuard. Die Ausführungsreihenfolge für Drittanbieter-Plug-ins entspricht der Reihenfolge, in der die Transformationen durch die Drittanbieter-Plug-ins hinzugefügt werden. Die Entwickler von Drittanbieter-Plug-ins können die Ausführungsreihenfolge der Transformationen nicht über eine API steuern.
- Der
dex
-Getter wurde aus der KlasseApplicationVariant
eingestellt. Sie können nicht mehr über die Variant API auf die AufgabeDex
zugreifen, da sie jetzt über eine Transformation ausgeführt wird. Derzeit gibt es keinen Ersatz für die Steuerung des dex-Prozesses. - Die inkrementelle Unterstützung für Assets wurde behoben.
- Die MultiDex-Unterstützung wurde verbessert, indem sie für Testprojekte verfügbar gemacht wurde. Tests haben jetzt automatisch die
com.android.support:multidex-instrumentation
-Abhängigkeit. - Es ist jetzt möglich, einen Gradle-Build korrekt fehlschlagen zu lassen und die zugrunde liegende Fehlerursache zu melden, wenn der Gradle-Build asynchrone Aufgaben aufruft und es im Worker-Prozess zu einem Fehler kommt.
- Unterstützung für die Konfiguration einer bestimmten Binärschnittstelle (Application Binary Interface, ABI) in Varianten hinzugefügt, die mehrere ABIs enthalten.
- Unterstützung für eine kommagetrennte Liste von Geräteseriennummern für die Umgebungsvariable
ANDROID_SERIAL
beim Installieren oder Ausführen von Tests hinzugefügt. - Ein Installationsfehler auf Geräten mit Android 5.0 (API-Level 20) und höher wurde behoben, wenn der APK-Name einen Leerraum enthält.
- Verschiedene Probleme im Zusammenhang mit der Fehlerausgabe des Android Asset Packaging Tools (AAPT) wurden behoben.
- Unterstützung für die inkrementelle Instrumentierung mit JaCoCo für schnellere inkrementelle Builds. Das Android-Plug-in für Gradle ruft jetzt den JaCoCo-Instrumentierer direkt auf. Wenn Sie eine neuere Version des JaCoCo-Instrumentierungstools erzwingen möchten, müssen Sie es als Build-Script-Abhängigkeit hinzufügen.
- Die JaCoCo-Unterstützung wurde so angepasst, dass Dateien, die keine Klassen sind, ignoriert werden.
- Unterstützung für vektorbasierte Grafiken zum Generieren von PNGs zur Laufzeit hinzugefügt, um die Abwärtskompatibilität zu verbessern.
Das Android-Plug-in für Gradle generiert PNGs für jedes Vektor-Zeichnen, das in einem Ressourcenverzeichnis gefunden wird, in dem keine API-Version angegeben ist oder für das im
<uses-sdk>
-Element im App-Manifest einandroid:minSdkVersion
-Attribut mit dem Wert 20 oder niedriger angegeben ist. Sie können PNG-Dichten mithilfe dergeneratedDensities
-Eigenschaft in den AbschnittendefaultConfig
oderproductFlavor
einerbuild.gradle
-Datei festlegen. - Es wurde die Freigabe der mockbaren
android.jar
hinzugefügt, die das Plug-in nur einmal generiert und für Unit-Tests verwendet. Mehrere Module, z. B.app
undlib
, teilen sich jetzt die ID. Löschen Sie$rootDir/build
, um sie neu zu generieren. - Die Verarbeitung von Java-Ressourcen erfolgt jetzt vor den Verschleierungsaufgaben und nicht mehr während des Paketierens des APK. Durch diese Änderung haben die Obfuscation-Aufgaben die Möglichkeit, die Java-Ressourcen nach der Obfuscation der Pakete anzupassen.
- Ein Problem mit der Verwendung von Java Native Interface (JNI)-Code im experimentellen Bibliotheks-Plug-in wurde behoben.
- Es wurde die Möglichkeit hinzugefügt, die Plattformversion im Plug-in für die experimentelle Bibliothek unabhängig vom
android:compileSdkVersion
-Attribut festzulegen.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- Das Data Binding-Plug-in wurde in das Android-Plug-in für Gradle eingebunden. Fügen Sie dazu jeder projektspezifischen
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, damit die Ausgabe der vorherigen Aufgabe bei Verwendung eines benutzerdefinierten Dateinamens korrekt verarbeitet wird.
- Korrigiertes Renderscript-Paket mit dem NDK
- Unterstützung für die
createDebugCoverageReport
-Build-Aufgabe beibehalten - Unterstützung für die benutzerdefinierte Verwendung des Attributs
archiveBaseName
in derbuild.gradle
-Build-Datei behoben - Die
Invalid ResourceType
-lint-Warnung, die durch den Suchvorgang nach Anmerkungen für Parametermethoden beim Ausführen von lint außerhalb von Android Studio verursacht wurde, wurde behoben.
Android-Plug-in für Gradle, Version 1.3.0 (Juli 2015)
Abhängigkeiten:- Gradle 2.2.1 oder höher
- Build Tools 21.1.1 oder höher
-
Unterstützung für die Property
com.android.build.threadPoolSize
hinzugefügt, um die Größe desAndroid
-Aufgaben-Thread-Pools über diegradle.properties
-Datei oder die Befehlszeile zu steuern. Im folgenden Beispiel wird diese Eigenschaft auf 4 festgelegt.-Pcom.android.build.threadPoolSize=4
- Legen Sie das Standard-Build-Verhalten so fest, dass
LICENSE
- undLICENSE.txt
-Dateien aus APKs ausgeschlossen werden. Wenn Sie diese Dateien in ein APK aufnehmen möchten, entfernen Sie sie aus der EigenschaftpackagingOptions.excludes
in der Dateibuild.gradle
. Beispiel:android { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- Die Aufgabe
sourceSets
wurde hinzugefügt, um alle verfügbaren Quellsätze zu prüfen. - Verbesserte Unterstützung für Unit-Tests, um Quellordner für mehrere Varianten und
Buildvarianten zu erkennen. Wenn Sie beispielsweise eine App mit mehreren Varianten (
flavor1
undflavorA
) mit dem BuildtypDebug
testen möchten, sind die Testquellensätze:- Test
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
Bei Android-Tests wurden bereits Quellordner mit mehreren Varianten erkannt.
- Verbesserte Unterstützung für Unit-Tests:
- Führen Sie
javac
auf Haupt- und Testquellen aus, auch wenn das AttributuseJack
in Ihrer Build-Datei auftrue
festgelegt ist. - Abhängigkeiten für jeden Buildtyp korrekt erkennen
- Führen Sie
- Unterstützung für die Angabe von Instrumentierungs-Test-Runner-Argumenten über die Befehlszeile hinzugefügt.
Beispiel:
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
Unterstützung für beliebige zusätzliche AAPT-Parameter (Android Asset Packaging Tool) in der Datei
build.gradle
hinzugefügt. Beispiel:android { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- Unterstützung für ein
APK-Testmodul als separates Testmodul hinzugefügt. Mit den Eigenschaften
targetProjectPath
undtargetVariant
können der APK-Pfad und die Zielvariante festgelegt werden.Hinweis: Ein Test-APK-Modul unterstützt keine Produktvarianten und kann nur auf eine einzelne Variante ausgerichtet werden. Außerdem wird Jacoco noch nicht unterstützt.
- Es wurde eine Validierung des Ressourcennamens vor dem Zusammenführen von Ressourcen hinzugefügt.
- Geben Sie beim Erstellen eines AAR-Pakets (Android ARchive) für Bibliotheksmodule keinen automatischen Platzhalter für
@{applicationId}
in den Einstellungen für die Manifest-Dateizusammenführung an. Verwenden Sie stattdessen einen anderen Platzhalter wie@{libApplicationId}
und geben Sie einen Wert dafür an, wenn Sie Anwendungs-IDs in die Archivbibliothek aufnehmen möchten.
Android-Plug-in für Gradle, Version 1.2.0 (April 2015)
- Abhängigkeiten:
-
- Gradle 2.2.1 oder höher
- Build Tools 21.1.1 oder höher
- Allgemeine Hinweise:
-
- Verbesserte Unterstützung für das Ausführen von Unit-Tests mit Gradle.
- Es wird jetzt unterstützt, Java-Ressourcen in den Klassenpfad aufzunehmen, wenn Unit-Tests direkt über Gradle ausgeführt werden.
- Unterstützung für Abhängigkeiten von Unit-Tests für Android-Archiv-Artefakte (AAR) hinzugefügt.
- Unterstützung für das Attribut
unitTestVariants
hinzugefügt, damit Varianten von Unit-Tests über die Dateibuild.gradle
manipuliert werden können. - Der Codeblock
unitTest.all
wurde untertestOptions
hinzugefügt, um benutzerdefinierte Aufgaben für den Unit-Test zu konfigurieren. Im folgenden Codebeispiel wird gezeigt, wie Sie mit dieser neuen Option Konfigurationseinstellungen für Unit-Tests hinzufügen:android { testOptions { unitTest.all { jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option. } } }
android { testOptions { unitTest.all { jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option. } } }
- Die Verarbeitung von Enumerationen und öffentlichen Instanzfeldern beim Verpacken der
mockable-android.jar
-Datei wurde korrigiert. - Die Abhängigkeiten zwischen den Aufgaben des Bibliotheksprojekts wurden korrigiert, damit Testklassen nach Änderungen neu kompiliert werden.
- Das Attribut
testProguardFile
wurde hinzugefügt, um ProGuard-Dateien beim Minimieren eines Test-APKs anzuwenden. - Dem Codeblock
adbOptions
wurde das AttributtimeOut
hinzugefügt, um die maximale Aufnahmezeit für die Bildschirmaufzeichnung mit Android Debug Bridge festzulegen. - Unterstützung für Ressourcen mit 280 dpi hinzugefügt.
- Verbesserte Leistung bei der Projektbewertung.
- Verbesserte Unterstützung für das Ausführen von Unit-Tests 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 in einer Test-App, die einen ProGuard-Fehler ausgelöst hat, wurde behoben.
- Die Implementierung des Vergleichers wurde korrigiert, da sie nicht dem JDK-Vergleichsvertrag entsprach und einen JDK 7-Fehler verursachte.
Android-Plug-in für Gradle, Version 1.1.2 (Februar 2015)
- Abhängigkeiten:
-
- Gradle 2.2.1 oder höher
- Build Tools 21.1.1 oder höher
- Allgemeine Hinweise:
-
- Normalisierter Pfad beim Erstellen eines mockbaren JAR-Archivs für Unit-Tests.
- Die
archivesBaseName
-Einstellung in der Dateibuild.gradle
wurde korrigiert. - Der nicht behobene Fehler beim Zusammenführen von Manifesten beim Erstellen einer Bibliothek-Testanwendung wurde behoben.
Android-Plug-in für Gradle, Version 1.1.1 (Februar 2015)
- Abhängigkeiten:
-
- Gradle 2.2.1 oder höher
- Build Tools 21.1.1 oder höher
- Allgemeine Hinweise:
-
- Die Buildvarianten wurden so geändert, dass nur Varianten, die eine Wear-App enthalten, Wear-spezifische Buildaufgaben auslösen.
- Abhängigkeitsbezogene Probleme werden jetzt bei der Buildzeit statt bei der Debugzeit fehlschlagen. So können Sie Diagnoseaufgaben wie „Abhängigkeiten“ ausführen, um den Konflikt zu beheben.
- Die
android.getBootClasspath()
-Methode gibt jetzt einen Wert zurück.
Android-Plug-in für Gradle, Version 1.1.0 (Februar 2015)
- Abhängigkeiten:
-
- Gradle 2.2.1 oder höher
- Build Tools 21.1.1 oder höher
- Allgemeine Hinweise:
-
- Unterstützung für neue Unit-Tests hinzugefügt
- Es können jetzt Unittests auf der lokalen JVM mit einer speziellen Version der
android.jar
-Datei ausgeführt werden, die mit gängigen Mocking-Frameworks wie Mockito kompatibel ist. - Neue Testaufgaben
testDebug
,testRelease
undtestMyFlavorDebug
für die Verwendung von Produktvarianten hinzugefügt - Es wurden neue Quellordner hinzugefügt, die als Unit-Tests erkannt werden:
src/test/java/
,src/testDebug/java/
undsrc/testMyFlavor/java/
. - In der Datei
build.gradle
wurden neue Konfigurationen zum Deklarieren von reinen Testabhängigkeiten hinzugefügt, z. B.testCompile 'junit:junit:4.11'
undtestMyFlavorCompile 'some:library:1.0'
.Hinweis:Nur für Tests vorgesehene Abhängigkeiten sind derzeit nicht mit Jack (Java Android Compiler Kit) kompatibel.
- Die Option
android.testOptions.unitTests.returnDefaultValues
wurde hinzugefügt, um das Verhalten der mockbaren android.jar zu steuern. Test
in den Namen von Testaufgaben durchAndroidTest
ersetzt. Beispiel: Die AufgabeassembleDebugTest
ist jetzt die AufgabeassembleDebugAndroidTest
. Aufgaben für Unit-Tests enthalten weiterhinUnitTest
im Aufgabennamen, z. B.assembleDebugUnitTest
.- Die ProGuard-Konfigurationsdateien wurden so geändert, dass sie nicht mehr auf das Test-APK angewendet werden. Wenn die Minimierung aktiviert ist, verarbeitet ProGuard das Test-APK und wendet nur die Zuordnungsdatei an, die beim Minimieren des Haupt-APKs generiert wird.
- Aktualisierte Abhängigkeitsverwaltung
- Probleme mit den Bereichen
provided
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 zu testenden App und der Test-App zu vergleichen. Wenn für beide Apps ein Artefakt mit derselben Version gefunden wird, wird es nicht in der Test-App enthalten, sondern nur in der zu testenden App verpackt. Wenn für beide Apps ein Artefakt mit einer anderen Version gefunden wird, schlägt der Build fehl.
- Probleme mit den Bereichen
- Unterstützung für den
anyDpi
-Ressourcenqualifizierer beim Zusammenführen von Ressourcen hinzugefügt. - Verbesserte Bewertungs- und IDE-Synchronisierungsgeschwindigkeit für Projekte mit einer großen Anzahl von Android-Modulen.
Android-Plug-in für Gradle, Version 1.0.1 (Januar 2015)
- Abhängigkeiten:
-
-
Gradle 2.2.1 bis 2.3.x
Hinweis:Diese Version des Android-Plug-ins für Gradle ist nicht mit Gradle 2.4 und höher kompatibel.
- Build Tools 21.1.1 oder höher
-
- Allgemeine Hinweise:
-
- Das Problem mit dem Gradle-Buildfehler beim Zugriff auf das
extractReleaseAnnotations
-Modul wurde behoben. (Problem 81638) - Problem behoben, bei dem
Disable
die Einstellung--no-optimize
an den Dalvik-Ausführcode (dex) weitergab. (Problem 82662) - Probleme beim Zusammenführen von Manifesten beim Importieren von Bibliotheken mit einer
targetSdkVersion
unter 16 wurden behoben. - Das Problem mit der Dichtesortierung bei der Verwendung von Android Studio mit JDK 8 wurde behoben.
- Das Problem mit dem Gradle-Buildfehler beim Zugriff auf das
Android-Plug-in für Gradle, Version 1.0.0 (Dezember 2014)
- Abhängigkeiten:
-
-
Gradle 2.2.1 bis 2.3.x
Hinweis:Diese Version des Android-Plug-ins für Gradle ist nicht mit Gradle 2.4 und höher kompatibel.
- Build Tools 21.1.1 oder höher
-
- Allgemeine Hinweise:
-
- Erste Version des Plug-ins.