2013-02-18 12 views
11

Einfache Frage: In Eclipse versucht "New Android Projekt" Befehl immer letzten verfügbaren SDK verwendet. Ist es immer eine gute Idee?Muss ich immer die letzte targetSdkVersion verwenden?

UPDATE:

Ich versuche zu erklären. Jetzt in Eclipse, "Neues Projekt" erzeugt ein Manifest mit:

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

Also, Ziel zur letzten Android (Jelly Bean, 4.2.x), aber es kann auch auf Froyo (2.2) läuft. Für mich ist das in Ordnung. Was könnte ich mit dieser Wahl falsch machen?

UPDATE

Ist es in Ordnung, wenn ich gesetzt android: minSdkVersion = "8" + Android: targetSdkVersion = "17" und das Build-Ziel auf 2,2 meiner app sicher sein werden ältere Geräte laufen auf (kein NoSuchMethodError-Ausnahme)?

+0

Es hängt davon ab, auf welche Geräte Sie zielen möchten – vodich

+0

Ich habe meine Frage bearbeitet –

+1

Lesen Sie diese Beschreibung auf, was "Ziel sdk Version" bedeutet: http://developer.android.com/guide/topics/manifest/uses-sdk -element.html Dafür folgt, dass Sie Ihre App auf dieser SDK-Version getestet und verifiziert hat, funktioniert es in Ordnung. So Gerät muss nicht älteres SDK für Sie emulieren. – tuxSlayer

Antwort

10

Was könnte ich mit dieser Wahl falsch machen?

Es ist nichts falsch mit dieser Wahl, weshalb die Build-Tools Standard ist.

Wenn Sie targetSdkVersion einstellen, werden Sie in bestimmte Verhaltensweisen versetzt, die Sie möglicherweise nicht mit einem älteren targetSdkVersion erhalten. Sie können sehen, was Sie bekommen, indem Sie the documentation for Build.VERSION_CODES lesen.

+0

Zuvor war targetSdk 8, und jetzt (mit 17) bekomme ich NetworkOnMainThreadException Ausnahme. Das Ändern des Ziels hat mir geholfen, diese "schlechten" Linien zu entdecken. –

+0

Ist es in Ordnung, wenn ich android: minSdkVersion = "8" android: targetSdkVersion = "17" und das Build-Ziel auf 2.2, um sicher zu sein, dass meine App auf älteren Geräten laufen wird? –

+1

@Seraphim: Ich würde diesen Ansatz nicht empfehlen.Lint wird Ihnen sagen, wenn es Klassen und Methoden gibt, die Ihre "minSdkVersion" überschreiten. Bei ~ 40% der Android-Geräte mit Android 3.0+ sollten Sie Funktionen, die neuer als Android 2.2 sind, nur bedingt verwenden (z. B. über 'Build.VERSION.SDK_INT'). In diesen Fällen sollten Sie Ihr Build-Ziel als die Android-Version festlegen, die alle Klassen und Methoden enthält, die Sie verwenden möchten. – CommonsWare

4

Wenn Sie Anwendungen für eine ältere Version entwickeln möchten, ist es keine gute Idee. Sie können immer überprüfen, was die most used version ist und Ihre Anwendung gegen diese Version machen. In einigen Fällen ist es erforderlich, die neueste Version zu verwenden, da einige Funktionen in einer älteren Version noch nicht implementiert sind.

+0

Ich habe meine Frage bearbeitet. –

Verwandte Themen