为什么buildToolsVersion属于build.gradle?

时间:2016-10-21 10:12:07

标签: android android-gradle

为什么buildToolsVersion属于build.gradle,好像它是项目的某些属性而不是构建系统的属性?似乎很少在build.gradle文件中使用过时的构建工具版本,并且唯一可以做到的事情就是确保它与最新的构建工具版本保持同步。因此,我没有看到在build.gradle中指定它的任何优点。它是构建系统的必要技术限制吗?

1 个答案:

答案 0 :(得分:1)

尝试回答这类问题非常困难。

无论如何,buildToolsVersion属性指定编译器的版本,例如aapt,dx,renderscript编译器,SDK构建工具的版本,以及用于构建项目的版本。

它与构建过程有关,但它也与您正在使用的指定项目有关。

Android团队为每个API级别发布新版本 x.0.0 ),并经常使用次要更新更新编译器( x.0.1,x.0.2等。) 保持Build Tools组件的更新是一个很好的选择,但是将此值放在build.gradle可以选择何时迁移到新版本,以避免Google无声地更新它。
同样通过这种方式,最终的工件(apk或aar)在将来是可重复的,并且不依赖于用于编译的IDE或SDK工具(在相同的情况下,apk签名架构已更改并且在过去的renderscript支持中有一些重大变化。)