Могу ли я «использовать» Java 8 с Android Development сейчас?

В настоящее время у меня установлен Java 7 JDK. На какое-то время это было так. Однако недавно мой преподаватель поручил классу удалить Java JDK 7 и установить Java JDK 8 вместо того, чтобы работать над домашним заданием и т. Д.

Я использую Java JDK 7 для написания и развертывания приложений Android без каких-либо проблем, поэтому мне интересно, можно ли сейчас обновить JDK 8? Я предполагаю, что мне не понадобятся какие-либо конкретные методы или функции Java 8 в моей разработке Android. Так что, если я останусь в стороне от этого, будет ли затронута моя Android-разработка?

С другой стороны, я не смог найти официальную документацию, в которой указано, является ли Java JDK 8 безопасным или нет или как сделать его безопасным. В любом случае, мне скоро придется перейти на Java 8 …

Если вы используете Java 7 для развертывания приложений для Android, то наверняка до сих пор вы не использовали какие-либо функции Java 8, поэтому я не понимаю, как это важно.

Следуйте инструкциям своего инструктора, и когда вы выполняете задание для школы, просто выберите либо JDK, либо уровень языка в структуре проекта.

CTRL + ALT + S , выберите « Project

Вы можете по умолчанию использовать Java 8 SDK, но ограничьте его возможностями Java 7 для своих приложений Android. Или вы можете просто настроить свои домашние проекты на Java 8 SDK.

Выйдя на конечность, предполагая, что Android Studio включает основные настройки Intellij.

В Google I / O 2016 они объявили, что Android теперь поддерживает некоторые функции Java 8, но не все функции.

Особенности

  • Методы по умолчанию и статические интерфейсы
  • Лямбда-выражения (также доступны на уровне API 23 и ниже)
  • Повторяющиеся аннотации
  • Ссылки на методы (также доступны на уровне API 23 и ниже)
  • Типовые аннотации (также доступны на уровне API 23 и ниже)

Кроме того, доступны следующие API-интерфейсы Java 8:

  • Отражения и связанные с языком API
    • java.lang.FunctionalInterface
    • java.lang.annotation.Repeatable
    • java.lang.reflect.Method.isDefault()
    • И Reflection API, связанные с повторяемыми аннотациями, такими как AnnotatedElement.getAnnotationsByType(Class)
  • Полезные API
    • java.util.function
    • java.util.stream

Все, что вам нужно сделать, это использовать новый компилятор jack, для этого вам нужно просто добавить это в свой файл build.gradle (Module: app) :

 android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } 

Рекомендации:

Это безопасно, если вы не используете функции java 8.

Хотя вы можете быть заинтересованы в java 8 с ретро-альбомом и коллекциямиQuery. https://github.com/event/gradle-retrolambda и https://bitbucket.org/mart_bogdan/collectionsquery/src

Это позволит вам написать свой код примерно так:

 mButton.setOnClickListener( v-> doClickEvent()); mView.postDelayed( () -> someMethodToRun() , 1000); Queryable.from(listOfObject).forEachR(r -> doProcess(r)); 

В отличие от неуклюжих

 mButton.setOnClickListener( new View.OnClickListener(){ @Override public void onClick(View v) { doClickEvent(); } }); 

Для использования java 8 с retrolambda просто добавьте в файл gradle.

 apply plugin: 'com.android.application' apply plugin: 'me.tatarka.retrolambda' android { // : // Snips the rest of configuration. // : compileOptions { encoding "UTF-8" sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.innahema:collections-query:0.2.9' } 

И в файле проекта gradle.build добавьте следующее …

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' classpath 'me.tatarka:gradle-retrolambda:3.2.3' classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2' //fix lint issue // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } 

Наверное, вы должны просто попробовать. Примечание: вы можете легко запускать JDK 7 и JDK 8 бок о бок. Я не знаю об Android Studio, но в Eclipse вы можете настроить путь сборки.

Несмотря на это: используете ли вы специальные функции Java 8 для своей домашней работы? Если вы не используете lambdas или JavaFX 8, я не думаю, что вам понадобится JDK 8. Звучит скорее как ваш профессор просто хочет использовать последнюю версию Java (судя по вашему первому предложению).