我知道这是一个非常基本的问题,但是令我惊讶的是,我找不到关于Android SDK构建工具的任何文档。
除了Android SDK工具和Android SDK平台工具之外,还有很多Android SDK构建-工具,如所附屏幕截图所示。任何人都可以指向一个源代码解释所有这些源代码,并帮助阐明如何选择使用某个版本的Android SDK构建工具吗? -27):

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




Android SDK构建工具曾经是Android SDK平台工具的组成部分。它们已与Android SDK平台工具脱钩,因此可以独立于集成开发环境(IDE)组件来更新构建工具。最新的Android平台。它们是向后兼容的,因此即使您的应用程序也针对较旧的Android平台,您也始终使用最新版本的Android SDK平台工具。上。

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

#1 楼

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


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


源代码

在Eclipse中,您可以通过使用sdk.buildtools文件中的project.properties属性来选择特定版本。解释所有构建工具的页面。这是Android团队对此的评价。工具或Android开发工具
工具(ADT),因此您几乎不需要直接调用这些工具。通常,应依靠构建工具或ADT插件
根据需要调用它们。


源代码

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



Android SDK工具


位置:$ANDROID_HOME/tools

主要工具:蚂蚁脚本(用于构建APK)和ddms(用于调试)



Android SDK平台-工具


位置:$ANDROID_HOME/platform-tools

主要工具:adb(用于管理模拟器或Android设备的状态)



Android SDK构建工具


位置:$ANDROID_HOME/build-tools/$VERSION/

文档
主要工具:aapt(生成R.java和未对齐,未签名的APK),dx(将Java字节码转换为Dalvik字节码)和zipalign(用于优化您的APK)




评论


我真的很高兴有不同版本的构建工具的更改日志

–炒锅
15年8月18日在12:11



@lacton我在项目中使用了旧的构建工具(版本17)。我可以使用最新的构建工具对其进行重建吗?

–user1156041
16年6月20日在14:51

我们可以在Eclipse和Studio中使用相同的SDK +构建工具吗?

–穆罕默德·巴巴尔(Muhammad Babar)
16年7月31日在10:29

我们如何通过命令行安装构建工具

– Ashok kumar Ganesan
20年6月22日在15:40

#2 楼

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

Android构建工具可用于从命令行或IDE(即Eclipse或Android Studio)进行开发和工作。 br />
还用于连接Android设备并对其进行root(快速启动,adb等)。有关Android构建工具和命令的更多信息

评论


谢谢(你的)信息。您的意思是说Android Build Tools是“用于连接Android设备并为它们添加根目录的”吗? adbis是Android平台工具的一部分。 adb是否依赖Android Build Tools起作用?如果是这样,怎么办?我好奇。

–Hong
13年11月19日在12:52

adb可用于从命令行推入和拉出文件。 (更多功能。)fastboot可用于刷新自定义引导加载程序。但是,除非您使用终端进行开发,否则这些命令对Android开发没有用。 IDE本身提供了所有功能。

– mipreamble
13年11月20日在19:31



我的理解是Eclipse在后台使用adb.exe。

–Hong
13年11月21日在3:26

@mipreamble那么android sdk有什么区别:工具,平台工具和构建工具?我可以在没有构建工具的情况下构建和运行我的应用程序。

–kreker
2014年1月11日0:00



@CJBS是的。坚持使用版本设置工具即可。构建工具会在新版本的Android出现时进行更新。您可能希望针对最新的Android版本编译和测试该应用程序。

– mipreamble
2015年4月19日在2:01

#3 楼

我将不再讨论构建工具,平台工具和其他工具之间的区别。从实际的角度来看,您只需要知道第二个问题的答案即可:

应使用哪个版本?

答案:使用最新版本。

对于将Android Studio与Gradle结合使用的用户,必须在buildToolsVersion(模块:应用程序)文件中设置build.gradle

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    ...
}


我在哪里得到最新版本的Build Tools?

打开Android SDK Manager。


在Android Studio中,依次转到“工具”>“ Android”>“ SDK Manager”>“外观和行为”>“系统设置”>“ Android SDK”。

选择“ SDK工具”选项卡。
从列表中选择Android SDK Build Tools
检查“显示软件包详细信息”。

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



确保已安装,然后在buildToolsVersion(模块:app)中将该编号写为build.gradle

评论


如果有24.0.2,为什么没有将24.0.1和24.标记为过时的(独立管理器允许显示/隐藏过时的包)?

–user1803551
16 Dec 18'在4:23

@ user1803551,并不总是希望自动使用最新的构建工具版本。例如,假设您已经使用特定的构建工具版本彻底测试了您的应用程序。如果您更新构建工具,则那里的更改可能会破坏您的应用程序。允许开发人员继续使用旧的构建工具版本,可以确保他们的构建可以按预期进行。如果查看被声明为过时的模式,您会发现24和24.0.1最终将被声明为过时。

– Suragch
16 Dec 18'在13:47

#4 楼

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

tl; dr:

SDK工具: /> Android SDK Manager(sdkmanager)
AVD Manager(avdmanager)
Dalvik Debug Monitor Server(ddms)

构建工具:


签名者
proGuard
zipalign
jobb

平台工具:


adb
aidl,aapt,dexdump和dx
bmgr
logcat


评论


aidl,aapt,dexdump和dx这些是构建工具而非平台工具的组成部分

– Masum
18年8月27日在10:38

#5 楼

正确的答案是


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


链接(扩展修订版17)

评论


感谢您的信息。如果新版本只是旧版本的改进版本,那么Google为什么不只有一个构建工具并像SDK工具和平台工具那样不断更新呢?换句话说,在那里拥有较旧版本的原因是什么?

–Hong
2014年1月11日,下午3:58

我只是尝试对这个答案进行投票,但是事实证明,我去年已经对它进行了投票! @Hong,他们保留了旧的构建工具,因为在更新工具时,某些功能已被弃用。但是应用程序开发人员可能拥有依赖于这些功能的源代码,因此他们保留了旧版本以支持这些旧代码库。

–主任
2015年2月9日在9:54



在这种情况下,他们是否应该具有不推荐使用的功能列表,以便开发人员可以确切地知道是否仍然需要使用旧版本?

–Hong
2015年2月9日,12:30

@Hong:这正是我要寻找的问题。现在...出发寻找答案:)

–DerpyNerd
16年8月14日在20:14

#6 楼

顾名思义,Android SDK Build Tools就是如此。用于构建Android应用程序的工具。使用最新的构建工具版本(由IDE通过Android SDK自动选择)非常重要,但是保留旧版本的原因是为了向后兼容,也就是说,如果您的项目取决于旧版的构建工具。