繁体   English   中英

在Android中使用targetSDKVersion有什么影响

[英]What is the effect of using targetSDKVersion in Android

这是Android文档中关于AndroiManifes.xml文件中uses-sdk元素的targetSDKVersion属性的摘要。

使用此属性集,应用程序表示它能够在较旧版本(低至minSdkVersion)上运行,但已经过明确测试,可以使用此处指定的版本。 指定此目标版本允许平台禁用目标版本不需要的兼容性设置(否则可能会打开以保持向前兼容性)或启用较旧应用程序不可用的较新功能。

任何人都可以解释在这种情况下的前向兼容性意味着什么,或者提出可以禁用的“兼容性设置”的例子吗?

这主要用于说明您支持并适应大型OS跳转,例如,您可以设计一个可以运行1.6到3.2的应用程序,而不是说目标版本是11+,它可以工作,但在API版本中11及以上,您将在兼容模式下运行,平板电脑将询问您是否要拉伸或缩放应用以适应屏幕。

如果您将目标版本设置为11,系统将了解您实际上已经做了一些事情来适应该API级别,因此您将不会看到缩放或拉伸的选项,而是只是像它被设计时那样使用它仅限3.0+

较新的Android版本总是添加了可能无法在“兼容模式”中使用的功能。 即在3.0 Android设备上运行针对2.2的设备将运行“向后兼容”功能,但如果目标是3.0和minSdk版本2.2,将允许在2.2+设备上安装(向后兼容性打开),但也运行在没有打开向后兼容性的3.0版本(这就是前向兼容性的含义)。

targetSDKVersion

您正在编译的版本。 如果您尝试使用任何较新的api,您将只会遇到编译器错误,因为编译器不会知道这些api的含义。

的minSdkVersion

您支持的最低sdk版本。 此下方的任何设备都无法从市场上看到或无法安装您的应用。

请注意,如果您使用目标sdk中的api,它们在较低版本中存在, 则会编译,但不会起作用并可能导致您的应用崩溃。 因此,您需要在构建代码时考虑到这一点。

比如做支票就好

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
    ... Use ice cream sandwich apis ...

保证API 14之前的用户不会崩溃。

编辑:

有关从版本到版本的API更改列表,请访问http://developer.android.com/sdk/index.html

例如,刚刚公布的4.0.3版本中的新内容概述: http//developer.android.com/sdk/android-4.0.3.html

该版本的真正细节: http//developer.android.com/sdk/api_diff/15/changes.html

您可以从minSdkVersion定义不同的targetSDKVersion,这实际上意味着您可以使用targetSDKVersion中SDK的功能,同时您具有向后兼容性。

这可能会考虑您的应用程序的任何代码部分(例如将C2DM集成到您的应用程序中,甚至将您的应用程序提供给具有Android 2.1但没有C2DM支持的设备)或清单中(即安装选项为auto,这将被省略为android 2.1)。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM