Android 根据设备定义targetSdkVersion

Android 根据设备定义targetSdkVersion,android,sdk,android-sdk-tools,Android,Sdk,Android Sdk Tools,我已经在清单中定义了android:targetSdkVersion=“15”,我想用API级别等于17的设备进行测试 minSdkVersion设置为15 <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15" /> 我知道它会工作,因为minSdkVersion设置为低于设备的版本,但我的问题是,我是否应该在每次更改设备时更改targetVersion?targe

我已经在清单中定义了android:targetSdkVersion=“15”,我想用
API级别等于
17
的设备进行测试

minSdkVersion
设置为15

<uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="15" /> 

我知道它会工作,因为minSdkVersion设置为低于设备的版本,但我的问题是,我是否应该在每次更改设备时更改targetVersion?
targetSdkVersion
不应该总是等于我正在测试的设备的版本吗,正如参考资料中所说的那样


您不应该更改每台设备的目标版本,而应该更改发布的每一个新API级别

正如您已发布的网页所述:

随着安卓系统随着每个新版本的发展,一些行为甚至 外表可能会改变。但是,如果平台的API级别为 高于应用程序的targetSdkVersion声明的版本 系统可能会启用兼容性行为,以确保您的应用程序 继续以您期望的方式工作

还有几行:

要在每个Android版本中维护应用程序,您需要 应增加此属性的值以匹配最新的API 级别,然后在相应的 平台版本

每一个新的API都包含新的特性,但也会弃用旧的特性;有些甚至可能被完全移除!因此,使用更高API级别运行的设备可能不再支持应用程序中使用的相同功能,这迫使它们启用兼容模式,以便再次能够正确运行应用程序

简言之,不,您的
targetSdkVersion
应该与最高API一样高。
minSdkVersion
当然应该尽可能低,并且您应该尽量避免使用
maxSdkVersion
,因为这样会随着时间的推移降低应用程序的移动性。
即使您的
minSdkVersion
为1,而
targetSdkVersion
为19,新设备也不必启用兼容模式来运行应用程序。

当您向公众发布应用程序时,目标版本和最小SDK版本都存在,它们不会根据设备动态变化。某些代码函数取决于您选择的版本。简言之,不需要更改目标SDK。