13

所以,我有点困惑,我以为我理解android:minSdkVersion,android:targetSdkVersiontarget项目属性中的含义。

现在我把这些设置为:

    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。

4

3 回答 3

22

一次描述一个:

  • android:minSdkVersion 帮助 Google Play 根据用户的设备过滤应用程序。例如,使用 minSdkVersion="7" 时,使用仅支持 6 的设备浏览的人不会在 Google Play 上看到您的应用,因此不会下载它,发现它不起作用,并留下差评: )

  • android:targetSdkVersion 是向设备发出的信号,告知您的应用针对哪个 API 版本进行了测试。对于至少针对该平台版本的应用程序,新行为通常在默认情况下可用于新版本的平台。例如,通过将 targetSdkVersion 设置为 11 或更高,您会在 ActionBar 中获得一个溢出菜单(对于 Honeycomb 及以上设备),而不是“羞耻的传统菜单按钮”。

  • project.properties 目标是向本地构建系统发出的信号,告知您应该针对哪个版本的平台编译代码。通常,最好将其设置为您为 targetSdkVersion 设置的任何内容。

我错过了什么?如果我针对 15 构建,它如何在 android-7 上运行?

出于这个原因,Android 保持向后兼容性。当您使用在平台版本 15 中添加的 API 时,显然它们不会出现在运行旧设备的设备上。

However, it's possible (and encouraged) to design your application in such a way as to take advantage of features added on new platforms, but "degrade gracefully" such that your application continues to run on older ones. There's an Android Training lesson on just this topic, called Supporting Different Platform Versions.

于 2012-05-24T18:20:34.807 回答
1

android:minSdkVersion="7"表示您无法在2.1(API-7). android:targetSdkVersion="13"该应用程序是针对此 API 构建的。构建目标将设置为 13,并且在 13 之前可用的方法和内容将起作用。

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

于 2012-05-24T18:13:38.397 回答
1

android:targetSdkVersion="13" 表示此应用程序已通过将 sdk 13 作为目标构建,以充分利用其功能

android:minSdkVersion="7" 表示它可以在sdk 7 及更高版本上工作,但是如果某些功能在较低的sdk 中不可用,它的某些功能可以被剥离。即(小于 sdk 13)

于 2012-05-24T18:18:33.217 回答