Android库应该定义targetSdkVersion吗?

时间:2016-02-17 19:06:30

标签: android android-library

我理解为什么库定义minSdkVersion很有用,但是定义了targetSdkVersion的库是否会添加任何值?

我不确定具有比主项目更低和更高的targetSdkVersions的库是否会出现任何问题。如果主要项目定义它们,它们会被忽略吗?或者,采取较低/较高的一个? Android应用可以在不同的targetSdkVersion上以不同的方式工作(例如,Marshmallow运行时权限)。

2 个答案:

答案 0 :(得分:2)

有关targetSDKVersion的文档:

  

指定应用程序所针对的API级别的整数。如果未设置,则默认值等于给予minSdkVersion的值。   此属性会通知系统您已针对目标版本进行了测试,系统不应启用任何兼容性行为来维持应用程序与目标版本的向前兼容性。该应用程序仍然可以在旧版本上运行(直到minSdkVersion)。

Android库targetSdkVersion将告诉主机应用程序您的库应该如何处理此事。清单合并具有关于合并targetSdkVersion的具体规则:

enter image description here

  

元素中的属性始终使用优先级较高的清单中的值,但以下情况除外:

     
      
  • 当优先级较低的清单具有minSdkVersion值时   更高,除非您应用overrideLibrary合并,否则会发生错误   规则。
  •   
  • 当优先级较低的清单具有targetSdkVersion值时   更低,合并工具使用来自更高优先级的值   manifest,但它还添加了必要的任何系统权限   确保导入的库继续正常运行   (适用于较高Android版本增加的情况   许可限制)。有关此行为的更多信息,   请参阅有关隐式系统权限的部分。
  •   

答案 1 :(得分:1)

Android网页@ uses-sdk表示targetSdkVersion

  

指定应用程序运行的API级别。

关于您的问题,该库指定targetSdkVersion来声明在其中测试它的Android API。如果Android设备上的实际API较高,则Android提供向前兼容性。您可以在该网页上搜索文本“向前兼容性”以获取详细信息。

希望这能解答您的所有问题。玩得开心......