Sie können in der Tat die gradle-retrolambaGradle-Build-Abhängigkeit verwenden, um Java 8 für die Android-Entwicklung zu verwenden.
Unten finden Sie die vollständige Anleitung, die ich kürzlich befolgt habe, um Lambda-Ausdrücke für die Android-Entwicklung auszuführen. Die Originalquelle dieses Handbuchs wird am Ende erwähnt.
In diesem Handbuch wird eine Methode zum Einbringen einiger Java 8- Funktionen in die Android-Entwicklungstools vorgestellt, die speziell auf die Eclipse-IDE abzielt
. Die Schritte, die in diesem Handbuch beschrieben werden, können jedoch auch an die neue Entwicklungsumgebung für Aufstände von Google, Android Studio, angepasst werden. Es basiert auf der Community-Edition der beliebten IntelliJ Idea IDE von JetBrains und wurde kürzlich von Google Anfang Juli 2014 auf die Beta-Version aktualisiert, kurz bevor dieser Leitfaden verfasst wurde. Eclipse wird zumindest für eine Weile die herausragende Entwicklungsumgebung bleiben. Angesichts der Tatsache, dass die meisten Android-Projekte mit Eclipse entwickelt wurden, scheint eine Methode zum Einbringen neuer Java 8-Funktionen wie Lambda-Ausdrücke in ADT für Entwickler recht nützlich zu sein.
Die Android-Entwicklung basiert auf einer benutzerdefinierten Java-Implementierung namens Apache Harmony Project, die bereits 2011 beendet wurde. Die in der Android-Entwicklung am häufigsten verwendete Java-Syntax ist Java 6 (v1.6), und Java 7 (v1.7) wird teilweise auch unterstützt die KitKat Edition (Android 4.4. +). Daher können Java 8-Funktionen wie Lambda-Ausdrücke nicht direkt in der Android-App-Entwicklung verwendet werden, ohne dass einige Änderungen an den Entwicklungstools vorgenommen wurden. Glücklicherweise handelt es sich bei diesen Konstrukten im Grunde genommen um einige Verbesserungen des "syntaktischen Zuckers", die Entwicklern die Mängel von Dingen wie "anonymen Klassen" vermitteln, und sie können in Java 6- oder Java 7-Klassen übersetzt werden.
Ein neuerer Ansatz zur Übersetzung eines Java 8-Quellcodes in niedrigere Java-Versionen heißt RetroLambda . Mit dieser Bibliothek können Entwickler Java 8-Code mit Lambda-Ausdrücken auf Java 7 oder niedriger ausführen. Leider werden andere Java 8-Funktionen als Lambda-Ausdrücke von RetroLambda derzeit nicht unterstützt, aber das Konzept der Lambda-Ausdrücke ist der größte Sprung auf der Java 8-Plattform und ein großartiges Tool für Android-Entwickler.
Details zu dieser Bibliothek finden Sie auf der GitHub-Seite:
https://github.com/orfjackal/retrolambda#getting-started
Ein von einem anderen Entwickler erstelltes Gradle-Plugin für RetroLambda ermöglicht die Implementierung von Gradle-basierten Builds in Java- oder Android-Projekten. Der Entwickler erwähnt jedoch nur die Integration dieses Plugins in die Android Studio-Umgebung. Details finden Sie auf der GitHub-Seite:
https://github.com/evant/gradle-retrolambda
Die Verwendung dieser Infrastrukturen in einer Eclipse-basierten Entwicklungsumgebung kann nicht direkt angegangen werden, ist jedoch machbar und wird in diesem Handbuch demonstriert.
Vorbereitung
In diesem Handbuch wird davon ausgegangen, dass der Leser über grundlegende Kenntnisse der Android-Entwicklung verfügt und auf ADT Version 22.6.2 basiert, da die aktuelle ADT-Version 23.0.2 Probleme mit der Erstellung von Layoutordnern zu haben scheint. Details zu diesem Problem finden Sie unter folgendem Link:
http://code.google.com/p/android/issues/detail?id=72591
Die Schritte in diesem Handbuch werden für einen 64-Bit- Entwicklungscomputer von Windows 8.1 angegeben, können jedoch problemlos an andere Plattformen angepasst werden. Das neue Build-System Gradlewird für Build / Clean-Prozesse verwendet, und das Installationsverfahren wird ebenfalls bereitgestellt. Außerdem müssen beide JDK 8und JDK 7auf der Entwicklungsmaschine koexistieren. Die folgenden Schritte müssen befolgt werden, um sie zu installieren:
- Gehen Sie zur Vorschau-Seite für den frühen Zugriff auf JDK 8 http://jdk8.java.net
- Laden Sie JDK 8u20 herunter und installieren Sie es. Die Installation von JRE 8 ist nicht erforderlich und kann übersprungen werden
- Gehen Sie zur neuesten stabilen Release-Seite von JDK 7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
- Laden Sie JDK 7u65 herunter und installieren Sie es. Die Installation von JRE 7 ist erneut nicht erforderlich und kann übersprungen werden
- Fügen Sie
binIhrer %PATH%Variablen den JDK 8-Basisordner und den JDK 8- Ordner hinzu
- Erstellen Sie eine neue Umgebungsvariable
JAVA_HOMEmit dem Wert des Pfads des JDK 8-Basisordners
- Erstellen Sie erneut eine neue Umgebungsvariable
JAVA8_HOMEmit dem Wert des Pfads des JDK 8-Basisordners
- Erstellen Sie eine neue Umgebungsvariable
JAVA7_HOMEmit dem Wert des Pfads des JDK 7-Basisordners
- Öffnen Sie ein Terminalfenster und führen Sie den
java -versionBefehl aus. Überprüfen Sie, ob Java 8 aktiv ist
- Führen Sie den
javac -versionBefehl im selben Fenster aus und stellen Sie sicher, dass der JDK 8-Java-Compiler ebenfalls aktiv ist
Jetzt muss ADT-22.6.2 über den folgenden Link heruntergeladen werden:
http://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
- Laden Sie ADT herunter und entpacken Sie den Inhalt in einen Ordner, z
D:\adt
- Definieren Sie eine neue Umgebungsvariable
ANDROID_HOMEmit dem Wert des Pfads Ihres ADT-Installationsordners, zD:\adt\sdk
- Fügen Sie Ihre
Andoid SDK Platform Toolsund Andoid SDK ToolsOrdner, z. B. D:\adt\sdk\toolsund D:\adt\sdk\platform-tools, zu Ihrer %PATH%Variablen hinzu
- Erstellen Sie eine Verknüpfung zu Eclipse IDE, wenn Sie möchten. Es befindet sich unter Ihrem ADT-Installationsordner, z
D:\adt\eclipse
- Führen Sie Eclipse IDE aus und erstellen Sie einen Arbeitsbereich, z
D:\adt\workspace
- Klicken Sie auf die
Android SDK ManagerSchaltfläche in der Symbolleiste
- Wählen Sie
Android SDK Build tools Rev. 19.1und Android Support Librarynur. Deaktivieren Sie alles andere und installieren Sie diese beiden Pakete.
Wenn alles gut geht, ist ADT betriebsbereit.
Die Installation der folgenden Tools wird ebenfalls dringend empfohlen:
Java 8-Unterstützung für Eclipse Kepler: Dadurch erkennt Eclipse neue Java 8-Syntaxerweiterungen und macht Ärger red dotsin Ihrem Java-Code-Editor überflüssig. Es kann über Help -> Install New Softwarein Eclipse installiert werden . Geben Sie http://download.eclipse.org/eclipse/updates/4.3-P-builds/ in das Work withFeld ein und fahren Sie mit der Installation fort.
Nodeclipse / Enide Gradle: Wird hauptsächlich zum Hervorheben von Schlüsselwörtern in der Sprache Groovy verwendet. Groovy wird als DSL für Gradle-Build-Skripte verwendet. Dieses Plugin kann über installiert werden Eclipse Marketplace. Eclipse in ADT-22.6.2 wird jedoch nicht mitgeliefert Eclipse Marketplace Client. Daher müssen Sie zuerst installieren müssen Eclipse Marketplace Clientmittels Install New SoftwareWerkzeug in Eclipse. Geben Sie http //: download.eclipse.org/mpc/kepler/ in das Work withFeld ein und fahren Sie mit der Installation fort. Nach der Installation Eclipse Marketplace Clientkönnen Sie Nodeclipse/Enide Gradlein der suchen Eclipse Marketplace Clientund es installieren.
Virtuelles Genymotion-Gerät: Es ist ein großartiger Ersatz für die Standardeinstellung, Android Virtual Devicedie mit ADT geliefert wird . AVD ist ärgerlich umständlich und stürzt ohne Grund weiter ab. Mit Genymotion können Sie Android-VDs mithilfe von CyanogenModBildern vorbereiten , die von Oracle VirtualBox ausgeführt werden . Die Einzelbenutzerlizenz ist kostenlos und kann von http://www.genymotion.com heruntergeladen werden . Es ist nur ein Login erforderlich und es kann auch in Eclipse integriert werden. Details finden Sie unter:
https://cloud.genymotion.com/page/doc/#collapse8
Unten sehen Sie einen Screenshot eines auf Android 4.3 basierenden virtuellen CyanogenMod-Geräts.

Es kann als vollwertiges Android-Gerät betrachtet werden, das auf einem x86- oder x64-basierten PC ausgeführt wird. Um Google-Dienste wie Google PlayStoreauf diesem virtuellen Gerät nutzen zu können, muss ein gappsBild für die verwendete Android-Version auf das Gerät geflasht werden. Ein geeignetes gappsImage für das Gerät kann von der CyanogenMod-Website heruntergeladen werden:
http://wiki.cyanogenmod.org/w/Google_Apps
Die Gradle-Installation ist optional, da sie auch vom Android SDK selbst bereitgestellt wird. Eine separate Installation wird jedoch dringend empfohlen. Die Installation kann folgendermaßen erfolgen:
Demo App
Es wird eine einfache App erstellt, um die Verwendung der im vorherigen Abschnitt beschriebenen Tools zu demonstrieren. Sie können einfach die folgenden Schritte ausführen, um einen Einblick in die Verwendung von Lambda-Ausdrücken in den Android Developer Tools zu erhalten:
- Führen Sie Eclipse IDE aus und erstellen Sie eine neue Android-App, indem Sie auswählen
File -> New -> Other -> Android -> Android Application Project
- Füllen Sie das folgende Formular aus:

gradle_build.cmd:

gradle_post_build.cmd:

gradle_clean.cmd:

- Deaktivieren Sie die
Project -> Build AutomaticallyMenüoption
- Klicken Sie mit der rechten Maustaste auf das Projekt und wählen
Properties -> BuildersSie alle von ADT bereitgestellten Standard-Builder aus und deaktivieren Sie sie
- Klicken Sie auf die
NewSchaltfläche im selben Fenster und wählen Sie Programund klicken SieOK
- Das neue Builder-Konfigurationsfenster wird angezeigt. Füllen Sie die Registerkarten wie folgt aus:
Main Registerkarte der neuen Builder-Konfiguration

Refresh Registerkarte der neuen Builder-Konfiguration

Environment Registerkarte der neuen Builder-Konfiguration

Build Options Registerkarte der neuen Builder-Konfiguration

- Erstellen Sie den zweiten Builder mit dem Namen
Gradle_Post_Build, der gradle_post_build.cmdals Programm verwendet wird. Alle anderen Einstellungen dieses Builders müssen mit denen des zuvor erstellten Builders identisch sein. Dieser Builder ist dafür verantwortlich, die durch den Build-Prozess erstellten Artefakte in den binOrdner zu kopieren .
- Erstellen Sie den dritten Builder mit dem Namen
Gradle_Cleaner, der gradle_clean.cmdals Programm verwendet wird. Nur die Run the builderEinstellung auf der letzten Registerkarte muss als festgelegt werden During a Clean. Alle anderen Einstellungen dieses Builders müssen mit denen des ersten Builders identisch sein. Dieser Builder ist für die Reinigung der durch den Build-Prozess erstellten Artefakte verantwortlich, wie der Name schon sagt.
Neue Erbauer des HelloLambdaProjekts

- Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie
Export
- Wählen Sie
Android -> Generate Gradle Build Filesund klicken SieNext
- Wählen Sie das Projekt im nächsten Fenster aus und klicken Sie auf
Finish
- Gehen Sie zum Stammordner Ihres Projekts und löschen Sie die Dateien
gradlewund gradlew.bat. Löschen Sie auch den gradleOrdner
- Wechseln Sie zurück zu Eclipse und wählen Sie die
Project -> CleanMenüoption. Füllen Sie das folgende Formular aus:
Clean Project Fenster

- Klicken Sie
OKund warten Sie, bis der Reinigungsvorgang abgeschlossen ist
- Fügen Sie das unten angegebene Java-Code-Snippet direkt nach dem Aufruf hinzu, um
setContentViewin Ihrer MainActivityKlasse zu funktionieren :

- Ändern Sie den Anfang der
build.gradleDatei bis sourceCompatibilityzum folgenden Abschnitt:

- Klicken Sie mit der rechten Maustaste auf das Projekt, wählen Sie die
Properties -> Java CompilerOption aus und setzen Sie alle Konformitätsstufen auf Java 8. Dadurch erkennt Eclipse neue Java 8-Konstrukte wie Lambda-Ausdrücke.
- Klicken Sie
Noin das Benachrichtigungsfenster
- Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie
Build project. Eclipse beginnt mit der Erstellung des Projekts.
Erstellungsprozess


Eclipse kann nun Dateien erkennen R.javaund buildConfig.javaanzeigen und zeigt keine red dotsFehler an, die sich auf die Ressourcendateien des Projekts beziehen.
- Erstellen Sie eine neue
Run Configurationfür Ihre Android-Zielplattform, indem Sie mit der rechten Maustaste auf das Projekt klicken und dann auswählen Run As -> Run Configurations. Diese Demo-Anwendung sieht beispielsweise wie folgt aus: Genymotion VD:
HelloLambda-Anwendung

Sie können im LogCatFenster feststellen, dass das Code-Snippet mit einem einfachen Lambda-Ausdruck ordnungsgemäß funktioniert

Quelle: Verwenden von Java 8 Lambda Expressions in Android Developer Tools