Android 项目构建目标

3

我有一个现有的应用程序,最低android:minSdkVersion为Android 2.1。我注意到我的应用程序在平板电脑Android(3.0+)上运行缓慢,因此我想启用在Android 3.0中添加的硬件加速。

我困惑的是,在Eclipse下的项目属性-> Android中,我最初选择了Android 2.2(API 8),但为了使新的硬件加速功能正常工作,我需要选择Android 3.0(API 11)。我的问题是将项目构建目标切换到Android 3.0会有什么风险?一般来说,我是否应该使用最新的项目构建目标发布编译后的应用程序?其他人都在做什么?您是否总是使用最新的API发布应用程序?

我尝试搜索了很多,但只找到关于android:minSdkVersion和android:targetSdkVersion的讨论,没有关于实际构建中使用的Android API的任何内容。

感谢您的帮助。

1个回答

5

我认为你还没有阅读文档。

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

android:minSdkVersion

这是一个整数,指定应用程序运行所需的最低API级别。如果系统的API级别低于此属性中指定的值,则Android系统将阻止用户安装应用程序。您应该始终声明此属性。

android:targetSdkVersion

这是一个整数,指定应用程序针对的API级别。通过设置此属性,应用程序表示它能够在旧版本上运行(最低支持minSdkVersion),但已经明确测试过与此处指定的版本兼容。指定此目标版本允许平台禁用不需要针对目标版本启用的兼容性设置(否则可能会打开以保持向前兼容性)或启用较旧的应用程序无法使用的新功能。这并不意味着您可以为平台的不同版本编写不同的功能 - 它只是告知平台您已针对目标版本进行了测试,平台不应执行任何额外的工作以保持与目标版本的向前兼容性。

android:maxSdkVersion

一个整数,表示应用程序设计运行的最大 API Level。 在 Android 1.5、1.6、2.0 和 2.0.1 中,在安装应用程序和系统更新后重新验证应用程序时,系统会检查此属性的值。在任一情况下,如果应用程序的 android:maxSdkVersion 属性低于系统本身使用的 API Level,则系统将不允许安装该应用程序。在系统更新后重新验证的情况下,这将有效地从设备中删除您的应用程序。
未来版本的 Android(超过 Android 2.0.1)将不再在安装或重新验证期间检查或强制执行 android:maxSdkVersion 属性。然而,当向用户呈现可供下载的应用程序时,Android Market 将继续使用该属性作为过滤器。

所以,如果我的targetSdkVersion是11,而我的minSdkVersion是8,那么我不能使用任何仅在11之后可用的API,以确保它可以在运行sdk版本8的设备上工作,对吗? - Sudarshan Bhat
1
如果您想使用API 11的某些功能,则必须将targetSdkVersion设置为>= 11。此外,如果您想在较低版本上支持相同的应用程序,例如您想在API8及更高版本上支持它,则应将minSdkVersion设置为8。现在,您的应用程序正在API 8、9、10和11上运行,但该功能仅在API 11上可用,因此在运行时,您将需要检查设备的API级别,如果支持该功能,则使用该功能,否则不要使用或创建替代方案。 - Dharmendra
谢谢您的回答。虽然这样做感觉很“jugaadu”,但我不确定这是否是最好的方法。 - Sudarshan Bhat
1
那么在Eclipse中你可以选择的“项目构建目标”实际上是什么?为什么它可能与“android:targetSdkVersion”不同? - davids
1
@davids 您可以参考这个论坛来解决您的问题。 - Dharmendra

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