2012-05-24 7 views
13

Also, ich bin ein wenig verwirrt, ich dachte, ich verstehe die Bedeutung von android:minSdkVersion, und target in Projekteigenschaften.Beziehung zwischen Android: MinSdkVersion, Android: TargetSdkVersion und "Ziel"

Im Moment habe ich diese Reihe zu:

android:minSdkVersion="7" 
    android:targetSdkVersion="13" 

Und:

target=android-15 

in project->properties->Android->Project Build Target.

Wenn ich versuche, diese Anwendung auf einem Gerät mit Android 2.3.3 zu installieren, sehe ich ein rotes Kreuz gegen den Gerätenamen, aber die Anwendung läuft trotzdem gut.

Was bin ich? Wenn ich gegen 15 baue, wie läuft es auf Android-7? Diese Verwirrung wurde nach der Integration von AdMob in meine App angezeigt, die besagt, dass mindestens SDK-Stufe 13 erforderlich ist.

Antwort

22

zu einer nach dem anderen zu beschreiben:

  • android: minSdkVersion hilft Google-Filter-Anwendungen für die auf ihrem Gerät basierten Benutzer spielen. Mit minSdkVersion = "7" kann jemand, der mit einem Gerät surft, das nur 6 unterstützt, Ihre App bei Google Play nicht sehen und wird sie daher nicht herunterladen, finden, dass es nicht funktioniert, und eine schlechte Bewertung hinterlassen:)

  • android: targetSdkVersion ist ein Signal an das Gerät, über welche Version der API Ihre App getestet wurde. Bei neuen Versionen der Plattform sind häufig neue Verhaltensweisen für Anwendungen verfügbar, die auf mindestens dieser Version der Plattform abzielen. Wenn Sie beispielsweise Ihre targetSdkVersion auf 11 oder höher setzen, erhalten Sie ein Überlaufmenü in der ActionBar (für Honeycomb- und up-Geräte) anstelle des "alten Menü-Buttons of shame".

  • project.properties Ziel ist ein Signal an Ihr lokales Build-System, in Bezug auf welche Version der Plattform Sie Ihren Code gegen kompilieren sollten. Im Allgemeinen ist es am besten, dies auf das zu setzen, was Sie für die targetSdkVersion festgelegt haben.

Was bin ich? Wenn ich gegen 15 baue, wie läuft es auf android-7?

Android hält die Abwärtskompatibilität genau aus diesem Grund aufrecht. Wenn Sie APIs verwenden, die in Version 15 der Plattform hinzugefügt wurden, sind sie offensichtlich nicht auf einem Gerät vorhanden, auf dem ein älteres Gerät ausgeführt wird. Es ist jedoch möglich (und erwünscht), Ihre Anwendung so zu entwickeln, dass Sie die Funktionen nutzen können, die auf neuen Plattformen hinzugefügt wurden, aber "sich so verschlechtern", dass Ihre Anwendung weiterhin auf älteren Anwendungen ausgeführt wird. Zu diesem Thema gibt es eine Android-Trainingsstunde mit dem Namen Supporting Different Platform Versions.

1

android: targetSdkVersion = "13" an, dass diese Anwendung Build wurde durch das SDK 13 als Ziel zu halten, seine Funktion zu Potential

android zu verwenden: minSdkVersion = "7" an, dass es auf SDK 7 und höher funktioniert, aber einige seiner Funktionen können reduziert werden, wenn bestimmte Funktionen in niedrigerem SDK nicht verfügbar sind. dh (weniger als sdk 13)

+0

Ich vermute meine Verwirrung ergibt sich aus der Tatsache, dass in dem Screenshot oben ist ein rotes Kreuz gegen das Gerät 2.3.3. Ich würde denken, dass es versucht, mir zu sagen, dass die App auf diesem Gerät nicht ausgeführt wird, und doch tut es. –

+0

haben Sie versucht, Ihre Eclipse und Emulator neu zu starten ... beide von ihnen. ? –

+0

Yup. Immer gleich. –

Verwandte Themen