在Android中设置构建目标和最小SDK版本

11

在创建一个Android项目时,如果我说我的Android项目的构建目标是2.2(API级别为8),并且在Min SDK版本的文本框中,我输入了一些与构建目标的API级别不同的值(比8更小或更大),那么会发生什么?

构建是否会按照指定的构建目标进行,但开发的应用程序与更小的Android版本兼容(如果我指定的API级别< 8)。还是只有较高的Android版本(如果我指定的API级别> 8),才能兼容开发的应用程序。

请问有人可以解释一下吗?


4
可能与Android Min SDK版本与Target SDK版本重复。 - Mr_and_Mrs_D
4个回答

13

好的,你的意思是Eclipse项目创建中的“Build Target”类似于targetSDKVersion吗?如果是的话,那么上面提到的链接才能解释我的答案。 - Adithya
在Eclipse中,构建目标映射到目标SDK版本。也就是说,如果您想要使用Froyo中的功能,则需要将构建目标设置为2.2或更高版本。Eclipse将会将正确的API库链接到您的项目中。 - Justin Shield
但是在我的manifest.xml文件中,我看不到指定的目标SDK版本!它只有最小SDK版本。Eclipse仅在构建应用程序时使用目标SDK版本吗?还是用于其他目的? - Adithya
Eclipse使用Target SDK来链接和构建适当的Android JAR文件到项目中。清单文件中的最小SDK版本也会影响构建的结果,而targetSDK不是一个清单设置。 - Justin Shield
所以,它有点像我们在构建目标中指定了Android 2.2(API级别8),但没有使用API级别8引入的任何特殊功能,因为我们还提供了最小SDK版本为4。我猜得对吗?因为如果我们说最小SDK版本= 4,我们需要开发一个支持Android设备(API级别4)即Android 1.6的应用程序。我猜得对吗? - Adithya
这应该被转换为注释,因为它只是重定向到现有的SO线程! - Paresh Mayani

4

假设您将清单API级别设置为4,则该应用程序将在任何提供的api 4设备上运行。但是,如果您的代码中有任何后级别4 api方法,则项目将构建到API级别8,因此应用程序将崩溃。


0
你只能把最低SDK版本设置为小于目标版本,这意味着你的应用程序可以支持到该最低SDK版本,但是你需要确保你的应用程序能够在最低SDK版本支持的设备上运行,因为构建目标版本可能会使用适用于特定版本的新API,而这些API可能在最低SDK版本中不可用。

所以,如果我们将最小SDK版本设置为4,那么它就变成了像我们拥有Android 2.2(API级别8)一样,但是如果我们不使用可用的API特殊功能,则不会使用任何特殊功能。我猜得对吗?因为如果我们说最小SDK版本= 4,我们需要开发一个支持具有(API级别4)即Android 1.6的手机的应用程序。也就是说,我们不会使用提供的API级别8(Android 2.2)的任何特殊API功能。我猜得对吗? - Adithya

0

好的,如果你使用特定的 SDK(例如 Android 2.2)开发应用程序,并且你的 minSDKversion < 8,则该应用程序会错误地声明可以安装在低于 Android 2.2 的设备上。在这种情况下,如果应用程序恰好安装在 Android 2.1 上,并且你正在使用仅在 Android 2.2 平台上独有而不在 Android 2.1 上可用的 API,则您的应用程序将在该设备上崩溃。如果你的 minsdkversion > 8,则应用程序将无法安装在具有 Android SDK 2.2 或更低版本的设备上。


1
好的,你的意思是在Eclipse项目创建中的"Build Target"类似于targetSDKVersion? - Adithya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接