2016-03-11 9 views
11

In Android in base a questa pagina Java 8 Languages Features funziona Android solo in api 24 e al di sopra oppure è possibile utilizzare in api inferiore api 24 e se è possibile utilizzare questa funzionalità, che versione più piccola della api a sostegno Android queste caratteristicheJava 8 funziona su Android API 24 e versioni successive Oppure è possibile utilizzare in api inferiori?

+0

A partire dal 2016/09/20 questi sostegno funzionalità di api 15 e al di sopra –

+0

Fino vincolante 2016/09/20 dati Android e Lambda non può lavorare insieme –

risposta

16

Aggiornamento: Inizio con Android Studio 2.4, il compilatore Jack saranno deprecati e Java 8 supporto saranno integrati nella catena di generazione predefinito. Alcune Java 8 funzioni sono disponibili a qualsiasi livello di API, alcuni sono ancora limitati a API> = 24, vedere:

https://developer.android.com/studio/preview/features/java8-support.html

Vecchia risposta:

Il Java 8 features sono disponibili a partire dal livello di API 9 , ma solo se si utilizza Android Studio 2.1 (anteprima) e l'Android SDK N anteprima

http://android-developers.blogspot.de/2016/03/first-preview-of-android-n-developer.html

Improved Java 8 language support - We’re excited to bring Java 8 language features to Android. With Android's Jack compiler, you can now use many popular Java 8 language features, including lambdas and more, on Android versions as far back as Gingerbread. The new features help reduce boilerplate code. For example, lambdas can replace anonymous inner classes when providing event listeners. Some Java 8 language features --like default and static methods, streams, and functional interfaces -- are also now available on N and above. With Jack, we’re looking forward to tracking the Java language more closely while maintaining backward compatibility.

+0

Le caratteristiche legate di ProfessorMLM sono disponibili a partire dal livello API 9 se si utilizza Android Studio 2.1 (anteprima) e Android N Preview SDK. – tknell

+0

Ah, capisco ora. Scusa, con voti positivi. –

+0

Nessun problema, ho aggiornato la risposta per chiarire quali funzionalità sono disponibili in quali circostanze :) – tknell

-3

Per compilare la vostra applicazionecontro la piattaforma Android N è necessario utilizzare JAVA 8.

Source:

To compile your app against the Android N platform, you need to use the Java 8 Developer Kit (JDK 8), and in order to use some tools with Android Studio 2.1, you need to install the Java 8 Runtime Environment (JRE 8).

dovrebbe funzionare con tutti i dispositivi Android (attualmente non si poteva essere in grado di provarlo, dal momento che la minSdk è N e avete bisogno di un ambiente di runtime di Android N per eseguire un'applicazione costruita con api N.

+1

Richiedere il JDK Java 8 non è la stessa cosa che supportare le funzionalità del linguaggio Java 8. Il testo citato potrebbe semplicemente significare che uno degli strumenti di costruzione si basa su una funzionalità di Java 8, ad esempio. – Jules

6

Aggiornamento
la toolchain Jack è deprecated. caratteristiche Java8 stanno venendo alla toolchain standard se si utilizza la versione del plugin di Android 2.4.0-alfa4 (o superiore). Maggiori informazioni here.

Risposta originale Le funzioni di Java 8 sono disponibili su API N e versioni successive, ad eccezione di lambdas. Lambdas viene backportato (usando classi anonime) per tornare a Gingerbread.

The Android N bases its implementation of lambda expressions on anonymous classes. This approach allows them to be backwards compatible and executable on earlier versions of Android.

Per testare questo è necessario l'anteprima di Android Studio 2.1, JDK 8 installato e gli ultimi strumenti di compilazione.

Esempio costruire config:

android { 
    compileSdkVersion 23 
    buildToolsVersion "24.0.0 rc1" 

    defaultConfig { 
     minSdkVersion 23 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 

     jackOptions { 
      enabled true 
     } 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 
}