什么是Android SDK构建工具,平台工具和工具? 应该使用哪个版本?

What are the Android SDK build-tools, platform-tools and tools? And which version should be used?

我知道这是一个非常基本的问题,但令我惊讶的是,我找不到任何关于Android SDK Build-tools的文档。
除了Android SDK工具和Android SDK平台工具之外,还有一堆Android SDK Build-tools,如附图所示。任何人都可以指向一个解释所有这些内容的来源,并帮助澄清如何选择某个版本的Android SDK Build-tools使用?

enter image description here

编辑(2014-02-27):

我仍然不完全了解所有工具。以下是基于Google最新文档的有限理解:

  • Android SDK Build-tools曾经是Android SDK Platform-tools的组件。它们已与Android SDK平台工具分离,因此可以独立于集成开发环境(IDE)组件更新构建工具。
  • Android SDK平台工具经过自定义,可支持最新Android平台的功能。它们向后兼容,因此您始终可以使用Android SDK平台工具的最新更新,甚至您的应用程序也可以使用较旧的Android平台。
  • SDK工具独立于平台,无论您正在开发哪个Android平台,都需要SDK工具。

我仍然不明白从Android SDK平台工具中获取Android SDK构建工具的理由,这些工具具有单个实例并且易于管理更新。我能想到的唯一可能的原因是某些应用程序必须依赖较旧的构建组件来构建它们。谷歌的文件提到了这一点,但没有解释原因。查看发行说明,您会注意到Android SDK Build-tools的更新主要用于修复错误或/添加对新平台的支持。我可以想到一些应用程序使用旧版Android SDK Build-tools的唯一原因是它们依赖于Android SDK Build-tools的某些缺陷。如果没有使用这些错误构建,这些应用程序将无法正常运行。我希望Google能够通过提供一两个示例来更好地解释这一点,这些示例说明了为什么这些工具中的错误对某些应用程序至关重要


关于Android SDK Build-tools的版本,答案是

By default, the Android SDK uses the most recent downloaded version of
the Build Tools.

资源

在Eclipse中,您可以使用project.properties文件中的sdk.buildtools属性选择特定版本。

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

The [build] tools, such as aidl, aapt, dexdump, and dx, are
typically called by the Android build tools or Android Development
Tools (ADT), so you rarely need to invoke these tools directly. As a
general rule, you should rely on the build tools or the ADT plugin to
call them as needed.

资源

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

  • Android SDK工具

    • 地点:$ANDROID_HOME/tools
    • 主要工具:ant脚本(用于构建APK)和ddms(用于调试)
  • Android SDK平台工具

    • 地点:$ANDROID_HOME/platform-tools
    • 主要工具:adb(用于管理模拟器或Android设备的状态)
  • Android SDK Build-tools

    • 地点:$ANDROID_HOME/build-tools/$VERSION/
    • 文档
    • 主要工具:aapt(生成R.java和未对齐的未签名APK),dx(将Java字节码转换为Dalvik字节码)和zipalign(以优化您的APK)


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

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

也用于连接Android设备并根源。(fastboot,adb等...)

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

有关Android Build工具和命令的更多信息


我将讨论Build Tools,Platform Tools和Tools之间的区别。从实际角度来看,您只需知道第二个问题的答案:

应该使用哪个版本?

答:使用最新版本。

对于使用带有Gradle的Android Studio的用户,必须在build.gradle(Module:app)文件中设置buildToolsVersion

1
2
3
4
5
6
android {
    compileSdkVersion 25
    buildToolsVersion"25.0.2"

    ...
}

我从哪里可以获得最新版本的Build Tools?

打开Android SDK Manager。

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

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

enter image description here

确保已安装,然后将该编号写为build.gradle(模块:应用程序)中的buildToolsVersion


您可以在此Android - 命令行工具中找到有关这些的详细信息

TL;博士:

SDK工具:

  • Android SDK Manager(sdkmanager)
  • AVD经理(avdmanager)
  • Dalvik Debug Monitor Server(ddms)
  • 构建工具:

  • 签名者
  • ProGuard的
  • 的zipalign
  • JOBB
  • 平台工具:

  • 亚行
  • aidl,aapt,dexdump和dx
  • BMGR
  • logcat的

  • 正确的答案是

    Decoupled the build-specific components of the Android SDK from the platform-tools component, so that the build tools can be updated independently of the integrated development environment (IDE) components.

    链接(扩展版本17)


    Android SDK Build Tools正如它们所说的那样;用于构建Android应用程序的工具。使用最新的构建工具版本(由IDE通过Android SDK自动选择)非常重要,但旧版本留在那里的原因是为了支持向后兼容性,即如果您的项目依赖于旧版本的Build Tools。