2016-06-07 18 views
0

scheint, dass Google eine ganze Reihe von interessanten Funktionen in Android N-Plattform, zum Beispiel Java 8 teilweise Unterstützung vorstellen. Ich möchte es für meine erste Android-Anwendung verwenden. Allerdings habe ich eine Frage - wenn meine App mit Android N-Tools mit Java 8 Funktionen implementiert wird, aber mit Einstellungen minimal sdk = 4.1 wird meine Anwendung auf Android 4, 5, 6 funktionieren?Könnte ich mit Android N-Plattform entwickelte Anwendungen auf früheren Versionen von Android OS

+1

"Ich möchte es für meine erste Android-Anwendung verwenden" - das ist keine gute Idee, IMHO. Warten Sie, bis Android N in einigen Monaten in der endgültigen Form (vermutlich "Android 7.0") ausgeliefert wird. – CommonsWare

+0

Ich bin neu bei Android und es ist hauptsächlich zum Lernen. Aber mein persönliches Telefon mit Android 5 muss ich wissen - wird meine App daran arbeiten oder nicht. –

+1

Nicht gerade jetzt. Apps, die mit der N Developer Preview kompiliert wurden, können nur auf N Developer Preview-Geräten ausgeführt werden, es sei denn, Sie führen einige ziemlich unangenehme und komplizierte Schritte aus, um diese Einschränkung zu umgehen. Das ist einer der Gründe, warum ich vorschlage, dass Sie auf Android N warten, bis es in der endgültigen Form ausgeliefert wird. – CommonsWare

Antwort

3

Ja, Ihre App funktioniert mit früheren Versionen von Android, wenn Sie die Support-Bibliotheken verwenden. Diese werden mit neuen Versionen von Android aktualisiert, um die Abwärtskompatibilität zu neuen Funktionen zu gewährleisten. Dies ist eine gängige Praxis.

https://developer.android.com/topic/libraries/support-library/index.html

für Java 8, es klingt wie Sie in selektiv sein müssen, was Sie verwenden.

Aus der Dokumentation: https://developer.android.com/preview/j8-jack.html

Unterstützte Java 8 Sprachfunktionen und APIs Android zur Zeit nicht alle Sprachfunktionen Java 8. Allerdings sind die folgenden Funktionen jetzt verfügbar, wenn App-Targeting der Android-N Vorschau Entwicklung:

Standard und statische Schnittstelle Methoden

Lambda-Ausdrücke (auch auf API-Ebene 23 und niedriger)

wiederholbar Anmerkungen

Methode Referenzen (auch auf API-Ebene 23 und niedriger)

Hinweis: um Test Lambda-Ausdrücke und Methode Verweise auf frühere Versionen von Android, gehen Sie zu Ihrem Build .gradle-Datei und setzen Sie compileSdkVersion und targetSdkVersion auf 23 oder niedriger. Sie müssen die Jack Toolchain weiterhin aktivieren, um diese Java 8-Funktionen zu verwenden.

+3

Die App des OP funktioniert nicht mit früheren Versionen von Android, bis Android N in der endgültigen Form ausgeliefert wird, es sei denn, das OP unternimmt wichtige Schritte. Sobald Sie angeben, dass Sie "N" kompilieren und anvisieren, wird die minSdkVersion Ihrer App auf "N" gesetzt und Ihre App wird nur auf N Developer Preview-Geräten ausgeführt. Darüber hinaus bin ich persönlich ein wenig unklar, welche Teile der Java 8-Unterstützung abwärtskompatibel sein werden oder nicht, und wenig davon wird notwendigerweise von den Android Support-Bibliotheken abgedeckt. – CommonsWare

+0

in diesem Artikel erwähnt, dass Support-Bibliotheken meist verwendet, um fehlende API zu beheben. Aber in meinem Fall wird es die nächste Sprachversion sein. Sind Sie sicher, dass es für diesen Fall geeignet ist? –

+1

klingt wie es eine gemischte Tasche für Java 8 sein wird. Wenn Sie sicherstellen möchten, dass Ihre App rückwärtskompatibel ist, müssen Sie selektiv sein, was Sie verwenden. Sieht so aus, als ob Lambdas und Methodenreferenzen bereits in früheren Versionen verwendet werden können, andere Funktionen jedoch nicht. Hier ist eine bessere Referenz für das, was Sie suchen: https://developer.android.com/preview/j8-jack.html –