2010-07-25 6 views
5

Meine App erfordert, dass auf Geräten mindestens Android 2.0 ausgeführt wird. Wäre es für mich sinnvoller, mein Projekt mit dem 2.0 SDK zu kompilieren oder macht es mehr Sinn, mein Projekt immer mit dem neuesten SDK zu kompilieren, auch wenn es weit über 2.0 hinausgeht ...?Sollte ich meine Android-Apps gegen das neueste SDK kompilieren?

Das Problem mit der Kompilierung gegen 2.1 wäre zum Beispiel, dass ich nicht weiß, ob ein Android 2.0-Gerät sogar eine mit 2.1 kompilierte App ausführen würde ...?

+0

Ich denke, das Gerät, auf dem es ausgeführt werden kann, basiert auf dem, was Sie im Manifest deklarieren, in SDK-Ebene, nein? – Sephy

+0

Ich denke, das ist, wo die Verwirrung begann - Meine MinSDKVersion ist auf 5 (Android 2.0) eingestellt, aber ich kompiliere mit SDK Version 7 (2.1) und dies verursacht Kompilierungswarnungen, die den Unterschied hinweisen. Ich versuche herauszufinden, welche Maßnahmen gegebenenfalls ergriffen werden. –

Antwort

3

Sie können target a later SDK version mit verwenden, während Ihre App weiterhin auf früheren Versionen ausgeführt werden kann (da Apps basierend auf android:minSdkVersion herausgefiltert werden). Wenn Sie APIs verwenden, die nicht unterstützt werden, wird Ihre App geschlossen. Daher müssen Sie in der Dokumentation für alle Funktionen auf die API level annotations achten und Ihre App auf einem Emulator testen, der die SDK-Mindestversion verwendet.

Der Blog des Android-Entwicklers enthält jedoch some good advice zum Schreiben von Anwendungen, die frühere SDK-Versionen unterstützen - natürlich zu einem Preis für zusätzliche Arbeit. Ob es sich lohnt, hängt natürlich davon ab, wen Sie erreichen möchten.

+0

Kühl. Ich setze meine targetSdkVersion auf das SDK, mit dem ich kompiliere. Und ich werde minSdk auf 5 setzen. Wie für die Compiler-Warnung werde ich es ignorieren. Vielen Dank. –

+0

Fügen Sie einfach einen Test (vorzugsweise einen automatisierten Unit-Test) mit einem älteren Emulator hinzu, und Sie sollten in Ordnung sein! –

Verwandte Themen