| 

.NET C# Java Javascript Exception

4
Programmierung mit Reflection macht nicht wirklich Spass, daher empfiehlt Google, jeweils
gegen das neueste API zu programmieren, dabei jedoch auch ältere APIs zu unterstützen. Doch, das ist einfacher gesagt als getan. Wie gewährleiste ich Abwärtskompatibilität zu den vorhergehenden API Levels?
News:
26.01.2012
chris5126 21 2
1 Antwort
0
Ich würde wie folgt vorgehen:
1. Feststellen, welches API Level ich mindestens unterstützen möchte ( Beispielsweise Android 2.2, API Level 8)
2. Diese Version in meinem Project als Build Target angeben.

Dadurch kann ich nur auf die Funktionen zugreifen, die diese API unterstützt (ist zumindest unter Eclipse so).
Und dadurch habe ich auch die gewünschte Abwärtskompatibilität erreicht, weil Google sagt, dass neuere API Level alle Funktionen der älteren unterstützen.

Eine andere Möglichkeit würde mir nicht einfallen.

edit:
Bis auf diese, um den Punkt "gegen die neueste API" gerecht zu werden:
1.Als Build Target die neueste API einstellen.
2.Entwickeln und fertigstellen
3.Als Build Target eine ältere API fürs selbe Projekt einstellen und schauen, ob sich das Projekt trotzdem noch fehlerfrei kompilieren lässt.
4.Build Target wieder auf die aktuellste, dafür die "Min SDK Version" in den Einstellungen anpassen, auf die Version, die du unterstützen möchtest.

Aber Achtung:
Wenn du Build Target und Min SDK Version unterschiedlich hast ( Beispiel Build Target: Adnroid 2.2, Min SDK: Android 1.6), wird dir Eclipse dein Projekt fehlerfrei kompilieren, selbst wenn du Funktionen nutzt, die es unter 1.6 nicht gab.
Erst während der Ausführung des Programms würde dein Programm unter Android 1.6 beim Zugriff auf diese Funktion abstürzen.
27.01.2012
SpellItRight 180 1 6
1
Kann ich im Code eigentlich eine "Weiche" einbauen? (If API-Level > 8 then 1 else 0 end)
mrmee 27.01.2012
Integer.valueOf(android.os.Build.VERSION.SDK);

Sollte möglich sein, kann es gerade leider nicht testen.
SpellItRight 27.01.2012
1
Schon deprecated ;)
Dann eben android.os.Build.SDK_INT

http://developer.android.com/reference/android/os/Build.VERSION.html
SpellItRight 27.01.2012
Danke, werd ich mal versuchen.
mrmee 27.01.2012

Stelle deine Mobile-Frage jetzt!