Android SDK组件中SDK Tool与Build Tool有何区别?各组件详情是怎样的?
Android SDK核心组件差异详解
SDK Tools 与 Build Tools 核心差异
二者虽然都参与APK构建全流程,但定位、能力边界、版本规则完全不同:
- 定位区别
- SDK Tools是Android SDK的通用基础工具集,和具体的Android平台版本无关,负责提供整个开发流程的通用支撑能力,不管你开发适配哪个版本的APP都会用到
- Build Tools是APK构建专属工具集,和编译目标的Android版本强相关,专门负责源码、资源到最终APK的编译打包流程
- 包含工具区别
- SDK Tools包含
sdkmanager(SDK组件管理)、avdmanager(模拟器管理)、adb(设备调试桥)、lint(静态代码检查)、monkey(稳定性测试工具)、hierarchy viewer(布局层级检查)等通用开发、调试、测试工具 - Build Tools包含
aapt2(资源编译打包)、d8(Java字节码转Dex文件)、r8(代码混淆、压缩、优化)、zipalign(APK字节对齐优化)、apksigner(APK签名)等构建环节专属工具
- SDK Tools包含
- 版本规则区别
- SDK Tools全局仅需安装一个最新版本即可,向下兼容所有Android平台版本,版本号为独立序列(如26.1.1),更新频率较低,多为通用功能迭代
- Build Tools支持多版本共存,每个项目可以指定对应的Build Tools版本,建议选择和项目compileSdk版本匹配的最新小版本,版本号和Android平台版本对应(如34.0.0对应Android 14),更新频率较高,多为构建性能、兼容性优化
全量常见Android SDK组件介绍
- Android SDK Platform:对应每个Android正式版本的开发核心包,包含对应版本的
android.jar、系统资源、全量API声明,编译APP时需要指定compileSdk为对应平台版本,不同版本独立安装互不影响 - Android SDK Command-line Tools:SDK Tools的命令行子集,无GUI相关组件,适合CI/CD服务器等无图形界面环境使用,包含
sdkmanager、avdmanager等核心命令行工具 - Android Emulator:安卓模拟器运行程序,配合系统镜像可以运行虚拟安卓设备,用于APP无实物调试、测试
- System Images:对应每个Android版本的模拟器系统镜像,分为不同架构(arm64、x86_64)、不同设备类型(手机、Wear OS、Android TV、车载等)、不同渠道(AOSP版、谷歌Play版),创建AVD时需要使用对应版本的镜像
- NDK (Native Development Kit):原生C/C++代码开发工具集,包含交叉编译器、调试工具、原生API头文件和依赖库,用于开发包含原生代码的APP或者高性能计算、音视频处理等场景
- CMake:原生代码构建工具,配合NDK完成C/C++代码的编译、打包,是目前官方推荐的原生代码构建方案,替代传统的ndk-build
- Sources for Android SDK:对应Android版本的AOSP源码包,安装后开发时可以直接跳转查看系统API的实现逻辑,方便调试和理解API的底层行为
- Google Maven Repository:本地缓存的Jetpack组件、Google服务等依赖包,新版Android Studio默认从线上maven仓库拉取依赖,老项目可能仍需要依赖本地缓存
内容的提问来源于stack exchange,提问作者Nadim Ansari
相关产品推荐
相关产品推荐

