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

Hon*_*ong 326 sdk android android-sdk-tools

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

在此输入图像描述

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

lac*_*ton 85

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

默认情况下,Android SDK使用最新下载的Build Tools版本.

资源

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

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

[build]工具,例如aidl,aapt,dexdump和dx,通常由Android构建工具或Android开发工具(ADT)调用,因此您很少需要直接调用这些工具.作为一般规则,您应该依赖构建工具或ADT插件来根据需要调用它们.

资源

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

  • 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)


mip*_*ble 38

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

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

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

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

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


Sur*_*gch 16

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

应该使用哪个版本?

答:使用最新版本.

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

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}
Run Code Online (Sandbox Code Playgroud)

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

打开Android SDK Manager.

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

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

在此输入图像描述

请确保它已安装,然后写一个数字作为buildToolsVersionbuild.gradle(模块:应用程序).

  • @ user1803551,并不总是希望自动使用最新的构建工具版本.例如,假设您已经使用特定的构建工具版本彻底测试了您的应用程序.如果您更新构建工具,那么更改可能会破坏您应用中的某些内容.允许开发人员继续使用旧的构建工具版本允许他们确保他们的构建将按预期继续工作.如果你看一下声明过时的模式,你会发现24和24.0.1最终会被宣布为过时的. (3认同)

Suh*_*aib 13

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


TL;博士:

SDK工具:

  1. Android SDK Manager(sdkmanager)
  2. AVD经理(avdmanager)
  3. Dalvik Debug Monitor Server(ddms)

构建工具:

  1. 签名者
  2. ProGuard的
  3. 的zipalign
  4. JOBB

平台工具:

  1. 亚行
  2. aidl,aapt,dexdump和dx
  3. BMGR
  4. logcat的

  • aidl、aapt、dexdump 和 dx 这些是构建工具的组件,而不是平台工具 (2认同)

kre*_*ker 9

正确的答案是

将Android SDK的特定于构建的组件与平台工具组件分离,以便可以独立于集成开发环境(IDE)组件更新构建工具.

链接(扩展版本17)

  • 感谢您的信息.如果新版本只是改进的旧版本,为什么Google只有一个Build-tools并不断更新它像SDK Tools和Platform-tools?换句话说,那里有旧版本的原因是什么? (4认同)
  • 我只是试图提出这个答案,但事实证明我去年已经投了赞成票!@Hong,他们保留旧的构建工具,因为在更新工具时,某些功能已被弃用.但是,应用程序开发人员可能拥有依赖这些功能的源代码,因此他们可以保留旧版本以支持这些旧代码库. (2认同)