Без какого-либо внешнего инструмента вы можете просто выполнить это на Windows 7 или 8, открыв монитор ресурсов, а также на вкладке CPU или Overview, щелкнув правой кнопкой мыши процесс и выбрав Suspend Process . Монитор ресурсов можно запустить с вкладки «Производительность» диспетчера задач.
Android поддерживает все функции языка Java 7 и подмножество функций языка Java 8, которые различаются по версии платформы.
Чтобы проверить, какие функции java 8 поддерживаются
Использовать функции языка Java 8
Мы решили добавить поддержку функций языка Java 8 непосредственно в текущий набор инструментов javac и dx , и обесценить инструментальную цепочку Джека. В этом новом направлении существующие инструменты и плагины, зависящие от формата файла классов Java, должны продолжать работать. Двигаясь вперед, функции языка Java 8 будут поддерживаться системой Android. Мы собираемся запустить это как часть Android Studio в ближайшие недели, и мы хотели бы поделиться этим решением с вами на ранней стадии.
Будущее поддержки функций Java 8 Language на Android
Пользователи Eclipse:
Для старых разработчиков, которые предпочитают Eclipse , google останавливает поддержку инструментов разработчика Eclipse для Android
, если вы установили Java 8 JDK, а затем попробуйте, если возникнут какие-либо проблемы, попытайтесь установить компилятор как 1.6 в Eclipse из окна меню → Настройки → Java → Компилятор. Java 7 также будет работать:
[/g5]
Java 7 или выше требуется, если вы настроите Android 5.0 и выше.
< / blockquote>установить несколько JDK и попробовать.
Добавьте эту конфигурацию build.gradle и gradc:
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// or
//sourceCompatibility 1.8
//targetCompatibility 1.8
}
}
Да. Мы будем использовать Java 8 в ближайшее время!
Мы решили добавить поддержку функций языка Java 8 непосредственно в текущий набор инструментов javac и dx и осудить инструментальную цепочку Jack. В этом новом направлении существующие инструменты и плагины, зависящие от формата файла классов Java, должны продолжать работать. Двигаясь вперед, функции языка Java 8 будут поддерживаться системой Android. Мы собираемся запустить это как часть Android Studio в ближайшие недели, и мы хотели бы поделиться этим решением с вами на ранней стадии.
https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
Последние новости:
Google объявляет, что с Android N и Android Studio 2.1+ платформа будет поддерживать Java 8. Также была выпущена стабильная версия студии 2.1.
Наконец, мы можем использовать лямбда-выражения. Больше нет фильтра списка в цикле. Horeeey.
Я решил, что я опубликую обновленный ответ для тех, кто смотрит на что-то немного более актуальное.
В настоящее время Android и Android Studio поддерживают подмножество функций Java 8. Согласно документации на Android, расположенной на их веб-сайте , Google говорит:
Для поддержки функций языка Java 8 требуется новый компилятор Jack. Джек поддерживается только на Android Studio 2.1 и выше. Поэтому, если вы хотите использовать возможности Java 8, вам нужно использовать Android Studio 2.1 для сборки вашего приложения.
Если у вас уже установлена Android Studio, убедитесь, что вы обновили ее до последней версии, нажав «Справка»> Проверьте наличие обновлений (на Mac, Android Studio> Проверить наличие обновлений). Если у вас еще нет IDE, установленной на вашей рабочей станции, загрузите Android Studio здесь.
Поддерживаемые Java 8 языковые функции и API
Android не поддерживает все функции языка Java 8. Однако при разработке приложений, ориентированных на Android 7.0 (API level 24), доступны следующие функции:
- Методы по умолчанию и статические интерфейсы Лямбда-выражения (также доступны на уровне API 23 и ниже)
- Повторяющиеся аннотации
- Ссылки на методы (также доступны на уровне API 23 и ниже)
- Тип Аннотации (также доступны на уровне API 23 и ниже)
Кроме того, доступны следующие API-интерфейсы Java 8:
Reflection и связанные с языком API:
- java.lang .FunctionalInterface
- java.lang.annotation.Repeatable
- java.lang.reflect.Method.isDefault () и API-интерфейсы Reflection, связанные с повторяемыми аннотациями, такими как AnnotatedElement.getAnnotationsByType (Class)
Утилиты API:
- java.util.function
- java.util.stream
Чтобы использовать новые функции языка Java 8, вам также необходимо использовать Jack L-цепи . Эта новая инструментальная привязка для Android компилирует исходные языки Java в Android-readable байт-код DEX, имеет свой собственный формат библиотеки .jack и предоставляет большинство функций toolchain как часть одного инструмента: переупаковка, сжатие, обфускация и multidex.
Ниже приведено сравнение двух наборов инструментов, используемых для создания файлов Android DEX:
Legacy javac toolchain: javac (.java → .class) → dx (.class → .dex) New Jack toolchain: Jack (.java → .jack → .dex)
Я написал аналогичный ответ на аналогичный вопрос в Stack Overflow, но вот часть этого ответа.
Новая версия Android Studio (2.1) поддерживает функции Java 8. Вот выдержка из сообщений разработчиков Android-разработчиков Android :
... В выпуске Android Studio 2.1 есть поддержка нового компилятора Jack и поддержка Java 8 .
...
Чтобы использовать возможности языка Java 8 при разработке с помощью N Developer Preview, вам нужно использовать компилятор Jack. Мастер создания проекта [fайл → Новый → Проект] генерирует правильные конфигурации для проектов, нацеленных на N.
До Android Studio 2.1:
Android делает еще не поддерживает Java 1.8 (он поддерживает только до 1,7), поэтому вы не можете использовать функции Java 8, такие как lambdas.
Этот ответ дает более подробную информацию о совместимости Android Studio ; он заявляет:
Если вы хотите использовать lambdas, одну из основных функций Java 8 в Android, вы можете использовать gradle-retrolamba
Если вы хотите узнать больше об использовании
gradle-retrolambda
, , этот ответ дает много подробностей об этом .
"SDK Location"
(это на Mac FWIW) просто говорит "/Users/me/Library/Android/sdk"
Я использую Java8 - как использовать Java8 ?? Благодаря!
– Fattie
3 December 2016 в 19:17
Подкатегория Java 8 теперь поддерживается на Android Studio. Просто сделайте корректировки исходной и целевой совместимости из окна ниже:
Файл -> Структура проекта
Дополнительная информация приведенный в ссылке ниже.
https://developer.android.com/studio/write/java8-support.html
Собственная Java 8 прибывает на Android! Наконец,
удалите плагин Retrolambda и блок retrolambda из файла build.gradle каждого модуля:
Чтобы отключить Jack и переключиться на инструментальную цепочку по умолчанию, просто удалите блок jackOptions из файл build.gradle вашего модуля
blockquote>Чтобы начать использовать поддерживаемые функции языка Java 8, обновите плагин Android до 3.0.0 (или выше)
Начиная с Android Studio 3.0 , Функции языка Java 8 теперь поддерживаются андроидом:
- Лямбда-выражения
- Ссылки на методы
- Аннотации типов (в настоящее время информация о аннотации типа недоступна во время выполнения, но только во время компиляции);
- Повторение аннотаций
- Методы по умолчанию и статические интерфейсы (на уровне API 24 или выше, без поддержки мгновенного запуска tho);
Также из минимального уровня API 24 доступны следующие Java 8 API:
- java.util.stream
- java.util.function
- java.lang.FunctionalInterface
- java.lang.annotation.Repeatable
- java.lang.reflect.AnnotatedElement.getAnnotationsByType (класс)
- java.lang.reflect.Method.isDefault ()
Добавьте эти строки в build.gradle вашего модуля приложения, чтобы проинформировать проект уровня языка:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
Отключить поддержку Java Language Language Features, добавив следующее к вашему Файл gradle.properties:
android.enableDesugar=false
Все готово! Теперь вы можете использовать собственный java8!
UPDATE 2017/11/04 - Android Studio 3.0 теперь имеет встроенную поддержку Java 8. gradle-retrolambda
теперь больше не требуется. См. https://developer.android.com/studio/write/java8-support.html
. Приведенная выше ссылка также содержит инструкции по миграции, если вы используете gradle-retrolambda
. Оригинальный ответ ниже:
Android не поддерживает Java 8. Он поддерживает только до Java 7 (если у вас есть kitkat), и все же он не имеет invokedynamic, а только новый синтаксический сахар.
Если вы хотите использовать lambdas, одну из основных функций Java 8 в Android, вы можете использовать gradle-retrolamba . Это зависимость построения градиента, которая объединяет retrolambda, инструмент, который преобразует байт-код Java 8 обратно в Java 6/7. В принципе, если вы установите компилятор в Android Studio для компиляции байт-кода Java 8, таким образом, позволяя lambdas, он преобразует его обратно в Java 6/7 bytecode, который затем, в свою очередь, преобразуется в байт-код dalvik. Это взломать, если вы хотите попробовать некоторые функции JDK 8 в Android вместо официальной поддержки.
try-with-resources
работает только с Китката.
– Dmitry Zaytsev
21 August 2014 в 11:20
Android Studio 3.0 начала предоставлять встроенную поддержку некоторых функций языка Java 8, которые:
Также начиная с уровня API 24 доступны следующие Java 8 API:
java.util.stream
java.util.function
java.lang.FunctionalInterface
java.lang.annotation.Repeatable
java.lang.reflect.AnnotatedElement.getAnnotationsByType(Class)
java.lang.reflect.Method.isDefault()
Кроме того, поддержка try-with-resources
была расширена для всех Android Уровни API.
В будущем будут добавлены дополнительные возможности Java 8.
Чтобы начать использовать поддерживаемые функции языка Java 8, обновите плагин Android до 3.0.0 -alpha1 (или выше) и добавьте следующее в файл build.gradle вашего модуля:
android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
Подробнее: https://developer.android.com/ студия / запись / java8-support.html
2.4.0-alpha6
). Пожалуйста, проверьте блок цитаты в ответе.
– Idolon
20 April 2017 в 09:56
Android ОФИЦИАЛЬНО поддерживает Java 8 с Android N.
Объявление функций здесь , объявление на языке Java 8:
Улучшено Поддержка языка Java 8 - Мы рады представить на Java функции языка Java 8. С помощью компилятора Jack от LG теперь вы можете использовать многие популярные функции языка Java 8, включая lambdas и более, в версиях Android еще в Gingerbread. Новые функции помогают уменьшить код шаблона. Например, lambdas может заменить анонимные внутренние классы при предоставлении прослушивателей событий. Некоторые функции языка Java 8 - например, стандартные и статические методы, потоки и функциональные интерфейсы - теперь также доступны на N и выше. С Джеком мы с нетерпением ждем дальнейшего отслеживания языка Java, сохраняя обратную совместимость.
Android использует Java, который отделяется от Java 6.
С Android SDK версии 19 вы можете использовать функции Java 7 , выполнив это . Нет полной поддержки Java 8 (пока).
Я задал этот вопрос более 3 лет назад, и, очевидно, ответы менялись с годами. Как уже было сказано выше, как и когда-то назад, ответ стал Да. Я никогда не обновлял принятый ответ, потому что это был правильный ответ в то время. (Я не уверен, что такое политика переполнения стека)
Я просто хотел добавить еще один ответ тем, кто все еще ищет эту тему. По состоянию на 17.05.2010 Google также объявил, что Kotlin также является официальным языком для разработки Android.
Я не нашел официального пресс-релиза, но я смотрел некоторые из них видео Google I / O , где было объявлено. Вот ссылка на запись в блоге post командой Kotlin по объявлению.
Добавив следующие исправления для меня (Android studio 2.3.2):
build.gradle (Project)
buildscript {
repositories {
...
jcenter()
}
dependencies {
...
classpath 'me.tatarka:gradle-retrolambda:3.4.0' // DEPENDENCY
...
}
}
build.gradle (Module: app)
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda' //PLUGIN
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
} // SET JAVA VERSION
...
}
Теперь это возможно
Но вам нужно будет, чтобы ваше устройство было запущено на java 1.8 и разрешено «jackOptions» «запустить его. Джек - это имя нового Android-компилятора, который запускает Java 8
https://developer.android.com/guide/platform/j8-jack.html
добавьте эти строки в build_gradle
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Java 8 кажется запущенным движком java для Android studio 2.0, но он все еще не принимает синтаксис java 8 после того, как я проверил, и теперь вы не можете выбрать компилятор из студии Android. Тем не менее, вы можете использовать плагин scala, если вам нужен механизм функционального программирования в вашем Android-клиенте.
Мы можем использовать Java 8, используя:
classpath 'me.tatarka:gradle-retrolambda:x.x.x' //x.x.x is recent version
apply plugin: 'me.tatarka.retrolambda'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Google только что объявил, что Java 8 будет изначально поддерживаться Android и что инструментальная цепочка Jack будет обесцениваться:
Мы решили добавить поддержку функций языка Java 8 непосредственно в текущий javac и dx набор инструментов, и осудить Jackchain. В этом новом направлении существующие инструменты и плагины, зависящие от формата файла классов Java, должны продолжать работать. Двигаясь вперед, функции языка Java 8 будут поддерживаться системой Android. Мы собираемся запустить это как часть Android Studio в ближайшие недели, и мы хотели бы поделиться этим решением с вами на ранней стадии.
Подробнее здесь: https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
Следуйте этой ссылке для новых обновлений. Использовать функции языка Java 8
Старый ответ
Начиная с версии Android N preview Android поддерживает ограниченные возможности Java 8, см. Функции языка Java 8
Чтобы начать использовать эти функции, вам необходимо загрузить и настроить Android Studio 2.1 и Android N Preview SDK, который включает в себя необходимую инструментальную цепочку Jack и обновленный Android-модуль для Gradle. Если вы еще не установили SDK для предварительного просмотра Android N, см. «Настроить для Android для Android N .
Поддерживаемые Java 8 языковые функции и API
Android в настоящее время не поддерживает все функции языка Java 8. Тем не менее, следующие функции теперь доступны при разработке приложений, ориентированных на Android N Preview:
Способы по умолчанию и статические интерфейсы
Лямбда-выражения (также доступны на уровне API 23 и ниже)
Ссылки на методы (также доступный на уровне API 23 и ниже)
Есть некоторые дополнительные функции Java 8, поддерживаемые Android, вы можете увидеть полную информацию из Java 8 Language Features
Обновить
Примечание: Android N основывает свою реализацию лямбда-выражений на анонимных классах. Этот подход позволяет им быть обратно совместимыми и исполняемыми в более ранних версиях Android. Чтобы проверить лямбда-выражения на более ранних версиях, не забудьте перейти в файл build.gradle и установить для compileSdkVersion и targetSdkVersion значение 23 или ниже.
Обновление 2
Теперь Android Studio 3.0. Библиотеки Java 8 и функции языка Java 8 (без компилятора Jack).