What are the Android SDK build-tools, platform-tools and tools? And which version should be used?
About the version of Android SDK Build-tools, the answer is
By default, the Android SDK uses the most recent downloaded version of the Build Tools.
Source
In Eclipse, you can choose a specific version by using the sdk.buildtools
property in the project.properties
file.
There seems to be no official page explaining all the build tools. Here is what the Android team says about this.
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.
Source
Anyway, here is a synthesis of the differences between tools, platform-tools and build-tools:
-
Android SDK Tools
- Location:
$ANDROID_HOME/tools
- Main tools: ant scripts (to build your APKs) and
ddms
(for debugging)
- Location:
-
Android SDK Platform-tools
- Location:
$ANDROID_HOME/platform-tools
- Main tool:
adb
(to manage the state of an emulator or an Android device)
- Location:
-
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), andzipalign
(to optimize your APKs)
- Location:
Android SDK build tools are used to debug, build, run and test an Android application.
Android Build Tools can be used to develop and work from command line or IDE (i.e Eclipse or Android Studio).
Also used to connect Android devices and root them.(fastboot, adb and more..)
Always use the latest.(Recommended)
More Info on Android Build tools and commands
I'll leave the discussion of the difference between Build Tools, Platform Tools, and Tools to others. From a practical standpoint, you only need to know the answer to your second question:
Which version should be used?
Answer: Use the most recent version.
For those using Android Studio with Gradle, the buildToolsVersion
has to be set in the build.gradle
(Module: app) file.
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
...
}
Where do I get the most recent version number of Build Tools?
Open the Android SDK Manager.
- In Android Studio go to Tools > Android > SDK Manager > Appearance & Behavior > System Settings > Android SDK
- Choose the SDK Tools tab.
- Select Android SDK Build Tools from the list
- Check Show Package Details.
The last item will show the most recent version.
Make sure it is installed and then write that number as the buildToolsVersion
in build.gradle
(Module: app).
You can find details about these in this Android - Command Line Tools
tl;dr:
SDK Tools:
- Android SDK Manager (sdkmanager)
- AVD Manager (avdmanager)
- Dalvik Debug Monitor Server (ddms)
Build Tools:
- signer
- proGuard
- zipalign
- jobb
Platform Tools:
- adb
- aidl, aapt, dexdump, and dx
- bmgr
- logcat
The right answer is
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.
link (expand Revision 17)