1

当我阅读 targetSDKVersion 的文档时,我遇到了一个术语,即“兼容性行为”。

一个整数,指定应用程序所针对的 API 级别。如果未设置,则默认值等于提供给 minSdkVersion 的值。此属性通知系统您已针对目标版本进行了测试,并且系统不应启用任何兼容性行为来保持您的应用程序与目标版本的前向兼容性。该应用程序仍然能够在旧版本上运行(低至 minSdkVersion)。

我不明白,这里的兼容性行为是什么。任何例子都可以帮助我清楚地说明这个术语。

4

1 回答 1

1

这意味着,对于 targetSDKVersion 和更高版本的 API,代码将照此运行。对于 minSdk 到 targetSDKVersion-1,系统可以完成向后兼容的转换/行为。

示例:

targetSdkVersion 21 // <= Lollipop 5.x 
minSdkVersion 17 // 4.4 KitKat <= you support this version thanks to some compability behaviors (it's done by the system so you don't have to woory)

如果您的应用程序在 Android 6.0 (Marshmallow) API 23 上运行,由于您支持 API/SDK 21,您的应用程序将在 Android 6.0 上运行而没有任何兼容性行为。

有关 API 行为兼容性的详细信息,请参见此处(第 14 页): http ://static.googleusercontent.com/media/source.android.com/en//compatibility/android-cdd.pdf

基本上这意味着,如果你调用一个函数,无论 API 版本是什么,行为都应该是相同的。特别是当你发布新的 API 时,你通常会扩展、修改、修复代码,这与以前的版本行为不一致。因此,为了防止由于代码更新引起的任何问题,Android 提供了一个兼容性行为层来保证相同的行为。

于 2016-05-09T06:33:44.203 回答