我知道这是一个非常基本的问题,但令我惊讶的是,我找不到任何关于Android SDK构建工具的文档。 除了Android SDK Tools和Android SDK Platform-tools,还有一堆Android SDK Build-tools,如图所示。有没有人能指出一个来源来解释所有这些,并帮助澄清一个特定版本的Android SDK构建工具是如何被选择使用的?

编辑(2014-02-27):

我仍然没有完全理解所有的工具。以下是我根据谷歌最新的资料所作的有限了解:

Android SDK Build-tools used to be components of Android SDK Platform-tools. They have been decoupled from Android SDK Platform-tools, so that the build tools can be updated independently of the integrated development environment (IDE) components. Android SDK Platform-tools are customized to support the features of the latest Android platform. They are backward compatible so that you always use the latest update of Android SDK Platform-tools even your app targets older Android platforms. SDK tools are platform independent and are required no matter which Android platform you are developing on.

I still do not understand the rationale of taking Android SDK Build-tools out of Android SDK Platform-tools which has a single instance and is easy to manage the update. The only possible reason that I can think of is that some apps have to rely on older build components to build them. Google's document mentions this, but does not explain why. Looking at the release notes, you will notice that updates of Android SDK Build-tools are primarily for fixing bugs or/add support for new platforms. The only reason that I can think of for some apps to use older versions of Android SDK Build-tools is that they rely on certain bugs of Android SDK Build-tools. These apps would not function normally without being built with these bugs. I wish Google could explain this better by giving one or two examples showing why these bugs in the tools are critical for certain apps.


当前回答

正确答案是

将Android SDK的特定于构建的组件与平台工具组件解耦,这样构建工具就可以独立于集成开发环境(IDE)组件进行更新。

link(扩展修订版17)

其他回答

Android SDK构建工具用于调试、构建、运行和测试Android应用程序。

Android Build Tools可以用于从命令行或IDE(即Eclipse或Android Studio)开发和工作。

也用于连接Android设备和根它们。(fastboot, adb等)

始终使用最新的。(推荐)

更多关于Android构建工具和命令的信息

正确答案是

将Android SDK的特定于构建的组件与平台工具组件解耦,这样构建工具就可以独立于集成开发环境(IDE)组件进行更新。

link(扩展修订版17)

关于Android SDK构建工具的版本,答案是

默认情况下,Android SDK使用最新的下载版本 构建工具。

在Eclipse中,您可以使用sdk选择特定的版本。项目中的Buildtools属性。属性文件。

似乎没有官方页面解释所有的构建工具。以下是Android团队对此的看法。

这些[构建]工具,如aidl、aapt、dexdump和dx 通常由Android构建工具或Android Development调用 工具(ADT),因此很少需要直接调用这些工具。作为一个 一般的规则,你应该依靠构建工具或ADT插件 必要时给他们打电话。

无论如何,这里是工具、平台工具和构建工具之间差异的综合:

Android SDK Tools Location: $ANDROID_HOME/tools Main tools: ant scripts (to build your APKs) and ddms (for debugging) Android SDK Platform-tools Location: $ANDROID_HOME/platform-tools Main tool: adb (to manage the state of an emulator or an Android device) Android SDK Build-tools Location: $ANDROID_HOME/build-tools/$VERSION/ Documentation Main tools: aapt (to generate R.java and unaligned, unsigned APKs), dx (to convert Java bytecode to Dalvik bytecode), and zipalign (to optimize your APKs)

Android SDK构建工具如其名;构建Android应用程序的工具。使用最新版本的构建工具是非常重要的(由您的IDE通过Android SDK自动选择),但保留旧版本的原因是为了支持向后兼容性,也就是说,如果您的项目依赖于旧版本的构建工具。

我将把构建工具、平台工具和工具之间的区别留给其他人讨论。从实际的角度来看,你只需要知道第二个问题的答案:

应该使用哪个版本?

答:使用最新版本。

对于那些使用Android Studio和Gradle的人来说,buildToolsVersion必须在构建中设置。gradle(模块:app)文件。

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}

我从哪里得到构建工具的最新版本号?

打开Android SDK管理器。

在Android Studio中,进入工具> Android > SDK管理器>外观和行为>系统设置> Android SDK 选择SDK Tools选项卡。 从列表中选择Android SDK Build Tools 检查显示包详细信息。

最后一项将显示最新的版本。

确保它已经安装,然后在build中将该数字写为buildToolsVersion。gradle(模块:app)。