Ich dachte, ich würde eine aktualisierte Antwort für diejenigen posten, die nach etwas Aktuellem suchen.
Aktuell unterstützen Android und Android Studio eine Teilmenge von Java 8-Funktionen. Laut der Android-Dokumentation auf ihrer Website sagt Google:
Die Unterstützung von Java 8-Sprachfunktionen erfordert einen neuen Compiler namens Jack. Jack wird nur von Android Studio 2.1 und höher unterstützt. Wenn Sie also Java 8-Sprachfunktionen verwenden möchten, müssen Sie Android Studio 2.1 verwenden, um Ihre App zu erstellen.
Wenn Sie Android Studio bereits installiert haben, stellen Sie sicher, dass Sie auf die neueste Version aktualisieren, indem Sie auf Hilfe > Auf Updates überprüfen klicken (auf einem Mac auf Android Studio > Auf Updates überprüfen). Wenn Sie die IDE noch nicht auf Ihrem Arbeitsplatz installiert haben, laden Sie hier Android Studio herunter.
Unterstützte Java 8-Sprachfunktionen und APIs
Android unterstützt nicht alle Java 8-Sprachfunktionen. Die folgenden Funktionen stehen jedoch zur Verfügung, wenn Apps für Android 7.0 (API-Level 24) entwickelt werden:
- Standard- und statische Schnittstellenmethoden (Lambda-Ausdrücke sind auch auf API-Level 23 und niedriger verfügbar)
- Wiederholbare Annotationen
- Methodenreferenzen (auch auf API-Level 23 und niedriger verfügbar)
- Typ-Annotationen (auch auf API-Level 23 und niedriger verfügbar)
Zusätzlich sind auch die folgenden Java 8-Sprach-APIs verfügbar:
Reflexions- und sprachbezogene APIs:
- java.lang.FunctionalInterface
- java.lang.annotation.Repeatable
- java.lang.reflect.Method.isDefault() und Reflexions-APIs, die mit wiederholbaren Annotationen verbunden sind, wie AnnotatedElement.getAnnotationsByType(Class)
Utility-APIs:
- java.util.function
- java.util.stream
Um die neuen Java 8-Sprachfunktionen zu verwenden, müssen Sie auch das Jack-Toolchain verwenden. Dieser neue Android-Toolchain kompiliert Java-Quellcodes in für Android lesbaren DEX-Bytecode, hat sein eigenes .jack-Bibliotheksformat und bietet die meisten Toolchain-Funktionen als Teil eines einzelnen Tools: Neuverpackung, Verkleinerung, Verschleierung und Multidex.
Hier ist ein Vergleich der beiden Toolchains, die zur Erstellung von Android DEX-Dateien verwendet werden:
Legacy-Javac-Toolchain:
Javac (.java .class) dx (.class .dex)
Neuer Jack-Toolchain:
Jack (.java .jack .dex)