Вы действительно можете использовать gradle-retrolamba зависимость сборки gradle, чтобы использовать Java 8 для разработки Android.
Ниже приведено полное руководство, которому я недавно следовал при запуске лямбда-выражений для разработки под Android. Первоначальный источник этого руководства упоминается в конце.
В этом руководстве будет продемонстрирован метод добавления некоторых функций Java 8 в инструменты разработки Android, специально предназначенные для
Eclipse IDE., Однако шаги, которые будут описаны в этом руководстве, также могут быть адаптированы к новой среде разработки восстания Google, Android Studio. Он основан на общедоступной версии популярной среды разработки IntelliJ Idea от JetBrains и недавно был обновлен до своей «бета-версии» компанией Google в начале июля 2014 года, незадолго до написания этого руководства. Eclipse останется выдающейся средой разработки, по крайней мере, на некоторое время, и с учетом того факта, что большинство проектов Android были разработаны с использованием Eclipse, метод добавления новых функций Java 8, таких как лямбда-выражения, в ADT, кажется весьма полезным для разработчиков.
Разработка Android основана на пользовательской реализации Java под названием Apache Harmony Project, которая была прекращена в 2011 году. Наиболее часто используемый синтаксис Java в разработке Android - это Java 6 (v1.6) и Java 7 (v1.7), которые также частично поддерживаются издание KitKat (Android 4.4. +). Поэтому функции Java 8, такие как лямбда-выражения, нельзя использовать непосредственно в разработке приложений для Android без применения некоторых настроек в инструментах разработки. К счастью, эти конструкции в основном представляют собой некоторые улучшения «синтаксического сахара», которые дают разработчикам недостатки таких вещей, как «анонимные классы», и они могут быть переведены в классы Java 6 или Java 7.
Недавний подход для перевода исходного кода Java 8 в более низкие версии Java называется RetroLambda . Эта библиотека заставляет разработчиков запускать код Java 8 с лямбда-выражениями на Java 7 или даже ниже. К сожалению, функции Java 8, отличные от лямбда-выражений, пока не поддерживаются RetroLambda, но концепция лямбда-выражений является самым большим скачком на платформе Java 8, и в любом случае это отличный инструмент для разработчиков Android.
Подробности об этой библиотеке можно найти на странице GitHub:
https://github.com/orfjackal/retrolambda#getting-started
Кроме того, плагин Gradle для RetroLambda, созданный другим разработчиком, позволяет реализовывать сборки на основе Gradle в проектах Java или Android. Тем не менее, разработчик упоминает только об интеграции этого плагина в среду Android Studio. Подробности можно найти на его странице GitHub:
https://github.com/evant/gradle-retrolambda
К этим инфраструктурам в среде разработки на основе Eclipse нельзя подходить напрямую, но это выполнимо и будет продемонстрировано в этом руководстве.
подготовка
В этом руководстве предполагается, что читатель имеет базовые знания об Android-разработке и основан на ADT версии 22.6.2, поскольку в последней версии ADT 23.0.2, по-видимому, имеются проблемы, такие как создание папки макета. Подробности об этой проблеме можно найти по следующей ссылке:
http://code.google.com/p/android/issues/detail?id=72591
Шаги в этом руководстве будут даны для 64-битной машины для разработки под Windows 8.1, но их легко адаптировать к другим платформам. Новая система сборки Gradleбудет использоваться для процессов сборки / очистки, а также будет предоставлена процедура ее установки. Также оба JDK 8и JDK 7должны сосуществовать на машине разработки. Для их установки необходимо выполнить следующие шаги:
- Перейти на страницу предварительного просмотра JDK 8 http://jdk8.java.net
- Скачайте JDK 8u20 и установите его. Установка JRE 8 не требуется, и ее можно пропустить
- Перейдите на страницу последнего стабильного выпуска JDK 7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
- Скачайте JDK 7u65 и установите его. Установка JRE 7 снова не требуется, и ее можно пропустить
- Добавьте домашнюю папку JDK 8 и
binпапку JDK 8 в свою %PATH%переменную
- Создайте новую переменную среды
JAVA_HOMEсо значением пути к домашней папке JDK 8
JAVA8_HOMEСнова создайте новую переменную среды со значением пути к домашней папке JDK 8
- Создайте новую переменную среды
JAVA7_HOMEсо значением пути к домашней папке JDK 7
- Откройте окно терминала и выполните
java -versionкоманду и убедитесь, что Java 8 запущена и работает
- Запустите
javac -versionкоманду в том же окне и убедитесь, что JDK 8 Java-компилятор также запущен и работает
Теперь ADT-22.6.2 необходимо скачать по следующей ссылке:
http://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
- Загрузите ADT и разархивируйте его содержимое в папку, например
D:\adt
- Определите новую переменную среды, вызываемую
ANDROID_HOMEсо значением пути к папке установки ADT, напримерD:\adt\sdk
- Добавьте ваши
Andoid SDK Platform Toolsи Andoid SDK Toolsпапки, например, D:\adt\sdk\toolsи D:\adt\sdk\platform-tools, к вашей %PATH%переменной
- Создайте ярлык для Eclipse IDE, если хотите. Он находится в папке установки ADT, например,
D:\adt\eclipse
- Запустите Eclipse IDE и создайте рабочую область, например
D:\adt\workspace
- Нажмите на
Android SDK Managerкнопку, которая находится на панели инструментов
- Выберите
Android SDK Build tools Rev. 19.1и Android Support Libraryтолько. Отмените выбор всего остального и установите эти два пакета.
Если все пойдет хорошо, ADT будет запущен.
Также рекомендуется установка следующих инструментов:
Поддержка Eclipse Kepler Java 8: она позволяет Eclipse распознавать новые расширения синтаксиса Java 8 и избавляет от назойливости red dotsв редакторе кода Java. Это может быть установлено через Help -> Install New SoftwareEclipse. Введите http://download.eclipse.org/eclipse/updates/4.3-P-builds/ в Work withполе и продолжайте его установку.
Nodeclipse / Enide Gradle: в основном используется для выделения ключевых слов на языке Groovy. Groovy используется как DSL для скриптов сборки Gradle. Этот плагин можно установить через Eclipse Marketplace. Однако Eclipse в ADT-22.6.2 не входит в комплект Eclipse Marketplace Client. Поэтому сначала вам нужно установить Eclipse Marketplace Clientс помощью Install New Softwareинструмента в Eclipse. Введите http //: download.eclipse.org/mpc/kepler/ в Work withполе и продолжайте его установку. После установки Eclipse Marketplace Client, вы можете искать Nodeclipse/Enide Gradleв Eclipse Marketplace Clientи установить его.
Виртуальное устройство Genymotion: отличная замена стандартному, Android Virtual Deviceкоторый поставляется вместе с ADT. AVD раздражающе громоздок и продолжает падать без всякой причины. Genymotion заставляет вас готовить Android VD, используя CyanogenModизображения, которые выполняются Oracle VirtualBox . Его однопользовательская лицензия бесплатна, и ее можно скачать с http://www.genymotion.com . Требуется только логин, и он также может быть интегрирован в Eclipse. Подробности можно найти под:
https://cloud.genymotion.com/page/doc/#collapse8
Ниже приведен скриншот виртуального устройства CyanogenMod на базе Android 4.3,

Его можно рассматривать как полноценное устройство Android, работающее на персональном компьютере на базе x86 или x64. Чтобы использовать сервисы Google, как Google PlayStoreна этом виртуальном устройстве, gappsизображение устройства, которое он использует, должно быть перенесено на устройство. Подходящее gappsизображение для устройства можно загрузить с веб-сайта CyanogenMod:
http://wiki.cyanogenmod.org/w/Google_Apps
Установка Gradle является необязательной, поскольку она также предоставляется самим Android SDK, но настоятельно рекомендуется ее отдельная установка. Установка может быть выполнена, выполнив следующие действия:
Демо-приложение
Будет создано простое приложение для демонстрации использования инструментов, которые были описаны в предыдущем разделе. Вы можете просто следовать приведенным ниже инструкциям, чтобы получить представление об использовании лямбда-выражений в Инструментах разработчика Android:
- Запустите Eclipse IDE и создайте новое приложение для Android, выбрав
File -> New -> Other -> Android -> Android Application Project
- Заполните форму, как показано ниже:

gradle_build.cmd:

gradle_post_build.cmd:

gradle_clean.cmd:

- Отменить выбор
Project -> Build Automaticallyпункта меню
- Щелкните правой кнопкой мыши по проекту и выберите
Properties -> Buildersи отмените выбор всех сборщиков по умолчанию, предоставляемых ADT.
- Нажмите
Newкнопку в том же окне, выберите Programи нажмитеOK
- Откроется окно конфигурации нового сборщика. Заполните его вкладки следующим образом:
Main Вкладка новой конфигурации Builder

Refresh Вкладка новой конфигурации Builder

Environment Вкладка новой конфигурации Builder

Build Options Вкладка новой конфигурации Builder

- Создайте второй сборщик с именем,
Gradle_Post_Buildкоторый использует в gradle_post_build.cmdкачестве своей программы. Все остальные настройки этого компоновщика должны точно совпадать с ранее созданным компоновщиком. Этот сборщик будет отвечать за копирование артефактов, созданных процессом сборки, в binпапку.
- Создайте третий сборщик с именем,
Gradle_Cleanerкоторый использует в gradle_clean.cmdкачестве своей программы. Только Run the builderнастройка на последней вкладке должна быть установлена как During a Clean. Все остальные настройки этого компоновщика должны быть точно такими же, как и у первого компоновщика. Этот строитель будет отвечать за очистку артефактов, созданных в процессе сборки, как следует из названия.
Новые строители HelloLambdaпроекта

- Щелкните правой кнопкой мыши по проекту и выберите
Export
- Выберите
Android -> Generate Gradle Build Filesи нажмитеNext
- Выберите проект в следующем окне и нажмите
Finish
- Перейдите в корневую папку вашего проекта и удалите файлы
gradlewи gradlew.bat. Также удалите gradleпапку
- Вернитесь к Eclipse и выберите пункт
Project -> Cleanменю. Заполните форму, которая отображается следующим образом:
Clean Project Окно

- Нажмите
OKи дождитесь завершения процесса очистки
- Добавьте приведенный ниже фрагмент кода Java сразу после вызова
setContentViewфункции в вашем MainActivityклассе:

- Измените начало
build.gradleфайла до sourceCompatibilityраздела следующим образом:

- Щелкните правой кнопкой мыши по проекту, выберите
Properties -> Java Compilerопцию и установите все уровни соответствия Java 8. Это позволит Eclipse распознавать новые конструкции Java 8, такие как лямбда-выражения.
- Нажмите
Noв окне уведомлений
- Щелкните правой кнопкой мыши по проекту и выберите
Build project. Затмение начнет строить проект.
Процесс сборки


Eclipse теперь сможет распознавать R.javaи buildConfig.javaфайлы, и не будет отображать какие-либо red dotsошибки, связанные с файлами ресурсов проекта.
- Создайте новую
Run Configurationдля целевой платформы Android, щелкнув правой кнопкой мыши по проекту и выбрав Run As -> Run Configurations. Например, это демонстрационное приложение выглядит как показано ниже на Genymotion VD:
Приложение HelloLambda

В LogCatокне вы можете заметить, что фрагмент кода с простым лямбда-выражением работает правильно

Источник: Использование лямбда-выражений Java 8 в инструментах разработчика Android