我已经在我的清单android:targetSdkVersion="15"中定义了,我想用一个API level等于17的设备进行测试。
minSdkVersion设置为15。
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="15" /> 我知道它会工作,因为minSdkVersion被设置为比设备的更低的版本,但是我的问题是,每当我更改设备时,我应该更改targetVersion吗?难道targetSdkVersion不总是与我正在测试的设备之一相等吗?
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html?
发布于 2014-04-22 13:11:57
您不应该用每个设备来更改目标版本,而应该使用发布的每个新API级别。
正如您已经发布的网页所述:
随着Android的每一个新版本的发展,一些行为甚至外观可能会发生变化。但是,如果平台的API级别高于应用程序的targetSdkVersion声明的版本,系统可能会启用兼容性行为,以确保应用程序继续按预期的方式工作。
还有几行话:
为了与每个Android版本一起维护您的应用程序,您应该增加此属性的值以匹配最新的API级别,然后在相应的平台版本上彻底测试您的应用程序。
每一个新的API都包含新的特性,但也会抛弃旧的特性;有些甚至可能被完全删除!因此,使用更高API级别运行的设备可能不再支持您在应用程序中使用的相同功能,这迫使它们再次启用兼容性模式,从而能够正常运行应用程序。
简而言之,不,您的targetSdkVersion应该与最高的API一样高。当然,minSdkVersion应该尽可能低,而且您应该尽量避免使用maxSdkVersion,因为这会随着时间的推移降低应用程序的移动性。即使你的minSdkVersion是1,targetSdkVersion是19,新设备也不必启用兼容模式来运行应用程序。
https://stackoverflow.com/questions/23220345
复制相似问题