根据设备定义targetSdkVersion

时间:2014-04-22 12:58:18

标签: android sdk android-sdk-tools

我已在我的清单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

1 个答案:

答案 0 :(得分:2)

您不应该使用每个设备更改目标版本,而是更新已发布的每个新API级别。

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

  

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

还有几行:

  

为了维护您的应用程序以及每个Android版本,您   应该增加此属性的值以匹配最新的API   等级,然后彻底测试你的相应的应用程序   平台版本。

每个新API都包含新功能,但也会弃用旧功能;有些甚至可能完全被删除!因此,运行API级别较高的设备可能不再支持您在应用中使用的相同功能,这会强制他们启用兼容模式,以便再次正常运行应用程序。

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