Отношение между Android: minSdkVersion, Android: targetSdkVersion и «цель»

Итак, я немного растерялся, подумал, что понял значениеandroid:minSdkVersion, android:targetSdkVersion а такжеtarget в свойствах проекта.

Прямо сейчас я получил эти наборы:

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

А также:

    target=android-15

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

Когда я пытаюсь запустить это приложение на устройстве с установленной Android 2.3.3, я вижу красный крестик на названии устройства, но, тем не менее, приложение работает на нем нормально.

Что мне не хватает? Если я строю против 15, как он работает на Android-7? Эта путаница возникла после того, как я интегрировал AdMob в свое приложение, в котором говорится, что для него требуется минимальный уровень SDK 13.

Ответы на вопрос(3)

13 & Quot; Указывает на то, что это приложение было создано с сохранением SDK 13 в качестве цели, чтобы использовать его возможности в полной мере

Android: minSdkVersion = & Quot; 7 & Quot; указывает, что он работает на SDK 7 и выше, но некоторые из его функций могут быть сокращены, если некоторые функции недоступны в более низком SDK. т.е. (меньше чем SDK 13)

 Code Poet24 мая 2012 г., 21:29
Ага. Всегда одно и то же.
 Code Poet24 мая 2012 г., 20:29
Я предполагаю, что мое замешательство связано с тем фактом, что на снимке экрана выше изображен красный крест на устройстве 2.3.3. Я думаю, что он пытается сказать мне, что приложение не будет работать на этом устройстве, и все же оно работает.
 24 мая 2012 г., 20:33
Вы пробовали перезапустить свое затмение и эмулятор ... оба. ?

android:minSdkVersion="7" означает, что вы не можете запускать это приложение на устройствах под2.1(API-7). android:targetSdkVersion="13" приложение построено для этого API. цель сборки будет установлена в 13, а методы и материалы, доступные до 13, будут работать.

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

Решение Вопроса

android:minSdkVersion helps Google Play filter apps for the user based on their device. For instance, with minSdkVersion="7", someone browsing with a device that only supports 6 won't see your app on Google Play, and thus won't download it, find it doesn't work, and leave a bad review :)

android:targetSdkVersion is a signal to the device about which version of the API your app was tested against. New behaviors are often available by default with new versions of the platform, for applications that target at least that version of the platform. For instance, by setting your targetSdkVersion to 11 or higher, you get an overflow menu in the ActionBar (for Honeycomb and up devices) instead of the "legacy menu button of shame".

project.properties target is a signal to your local build system regarding which version of the platform you should be compiling your code against. Generally it's best to just set this to whatever you have set for the targetSdkVersion.

What am I missing? If I'm building against 15, how is it running on android-7?

Android поддерживает обратную совместимость именно по этой причине. Когда вы используете API, которые были добавлены в версии 15 платформы, очевидно, что они не будут присутствовать на устройстве, работающем на более старом устройстве.

Тем не менее, возможно (и рекомендуется) разрабатывать ваше приложение таким образом, чтобы использовать преимущества функций, добавленных на новых платформах, но при этом «изящно ухудшаться». так что ваше приложение продолжает работать на старых. Только урок по Android для этой темы, который называетсяПоддержка разных версий платформы.

Ваш ответ на вопрос