android-sdk是什么

入门与上手

给 Android 开发新手讲清 SDK 里到底装了些什么、为什么必须装、装完在项目里怎么用、出问题先查哪一步。

刚装好 Android Studio 就发现它偷偷下了好几个 G 的东西,打开目录一看全是 platforms、build-tools、platform-tools 这些文件夹,不知道哪个能删哪个不能动。也有人照着教程敲代码,报错说找不到某个类或者编译版本不对,其实是 SDK 组件没装齐。这篇不背名词,就按「它是什么—里面有什么—为什么必须装—装在哪—怎么用—出问题怎么查」的顺序走一遍,让你知道每一步在干什么。

刚装好 Android Studio,回头一看硬盘少了几个 G,打开安装目录全是 platforms、build-tools、platform-tools 这些文件夹,删哪个都怕出事。也有人照着教程敲代码,报错说找不到某个类,或者提示编译版本不对,折腾半天其实是 SDK 组件没装齐。

这篇不讲名词,就按「它是什么—里面有什么—为什么必须装—装在哪—怎么用—出问题怎么查」走一遍。看完你至少能判断:哪个文件夹能删,哪个不能动,报错第一步该查什么。术语拿不准的,先去站内 术语词典(/glossary) 对一下词义再动手。

一句话说清 Android SDK 是什么

SDK 是 Software Development Kit 的缩写,直译是「软件开发工具包」,你可以理解成官方发给你的一整套造 App 的工具箱。Android SDK 就是 Google 给 Android 开发者准备的那一套,里面装着编译要用的库、跟手机对话的命令行程序、还有打包成安装包的工具。

关键在于:它不是一个软件,而是一堆文件夹的集合。Android Studio 只是调用它们的图形界面,真正干活的命令和库都在 SDK 里。没有它,你代码里的 Activity、Context 这些类根本没地方引用,连第一个 Hello World 都编不过去。

箱子里到底有什么:几个必认的组件

打开 SDK 目录,新手最容易懵的是那一串文件夹名。其实常用的就那么几个,认清它们,后面看报错就有方向了。

目录名干什么用能不能删
platform-tools装 adb、fastboot 这类跟手机对话的命令行工具一个 SDK 只需要一份,别删
platforms每个系统版本一份,里面的 jar 决定你能调用哪些 API按项目需要的版本留,旧的可清
build-tools把源码和资源打包成安装包的那几支工具留当前项目用的,旧的能清
系统镜像 / 模拟器想在电脑上开虚拟机跑 App 才需要不用模拟器可以完全不装
  • 真正占空间的大头是系统镜像,编译器和构建工具反而没多少。
  • 同一台机器上多个项目可能用到不同版本的 build-tools,删之前先确认没有项目依赖它。
  • Android Studio 的版本和 SDK 组件是分开升级的,更新了 IDE 不代表 SDK 也跟着变了。

想更细地理解这些缩写

这些词在别的技术场景里也常出现,含义不完全一样。如果你之前从别的语言或平台过来,建议先去站内 术语词典(/glossary) 确认一遍,避免把别的平台的 SDK 概念套到 Android 上。

为什么开发前必须先把它装上

整个开发流程分成编译、打包、调试几段,每一段都要调用 SDK 里的东西。少装一块,对应环节就卡住,报错信息还不一定直白。

编译期
编译器要去 platforms 里的 jar 找系统类的定义,找不到就报 cannot find symbol 这类错
打包期
资源编译、代码压缩、签名成安装包,全靠 build-tools 里的程序跑一遍
调试期
adb 装应用、抓日志、切设备,是排查问题时最常用的入口,它也在 SDK 里

还有一种情况容易被忽略:某个 API 只在较高的系统版本里存在。这时你需要用较高版本的 platform 去编译,同时在运行时判断当前设备系统是否够。也就是说,装哪个版本的 platform 不是随便挑的,要跟代码里用到的 API 对齐。

什么情况下这套说法不适用

如果你用的是纯跨平台方案,业务代码完全不碰原生 API,那对 Android SDK 的依赖会小很多,配置也更简单。但只要涉及原生能力、或者要自己出安装包,SDK 这关还是绕不过去。

装到哪儿去了、为什么这么占地方

默认安装位置各系统不一样:Windows 常在用户目录下的 AppData 里,macOS 在用户目录的 Library 下,Linux 一般在 opt 或用户目录。环境变量 ANDROID_HOME 或 ANDROID_SDK_ROOT 指的就是这个目录,很多工具靠它找 SDK。

  1. 先确认 SDK 在哪在 Android Studio 的设置里能找到 SDK 路径,把它和环境变量里的值对一遍,不一致就是问题源头
  2. 再看占空间的都是谁按文件夹大小排序,通常排前面的都是系统镜像,其次才是多个版本的 platform
  3. 按项目实际需要精简只想跑一个项目的话,装一两个 platform、一两个 build-tools 就够了,其余可以清
  4. 清理时的删除顺序先删旧版本系统镜像,再删不用的 build-tools,platform-tools 和当前项目用到的那份别碰

新手装一遍的实操顺序

下面这条顺序能避免大部分新手坑。核心思路是:先把运行环境准备好,再装开发工具,最后让项目配置和已装组件对齐。

  1. 准备 JDK先装好 JDK,再装 Android Studio。用命令 java -version 确认能输出结果
  2. 跟着引导装 SDKAndroid Studio 首次启动会提示下载 SDK,跟着点完即可;之后可在 SDK Manager 里增删组件
  3. 勾选必要组件当前稳定版 platform、对应的 build-tools、platform-tools 三项必选;要模拟器再勾一个系统镜像
  4. 配好环境变量把 platform-tools 加进 PATH,设好 ANDROID_HOME。之后在命令行直接敲 adb 能出结果就算通
  5. 对齐项目版本把项目里的编译版本、目标版本、最低支持版本,都对齐到你装好的 platform,不一致就会提示缺失
  6. 跑一次验证执行 adb devices 看设备是否列出,再新建一个空白项目编译一遍,能过说明环境基本没问题

装完之后它在哪儿发挥作用

很多新手装完 SDK 就以为完事了,其实它在日常开发里一直参与,只是藏得比较深。知道它什么时候被调用,出问题时才知道往哪看。

  • 写代码时:IDE 的自动补全和类型检查读的就是 platform 里的库,所以编译版本决定你能看见哪些提示。
  • 构建时:Gradle 会把 SDK 路径写进项目里的本地配置文件,换电脑或换路径后这个文件常需要重新生成。
  • 发布时:签名、对齐、生成上架包也走 SDK 里的工具链,和调试期用的是同一套基础。
  • 团队协作时:几个人的 build-tools 版本不一致,容易出现「我这里能编他那编不过」,统一版本是好习惯。

团队里怎么统一

可行的做法是在项目配置文件里把版本号写死,而不是让每个人各自选。新人拉下代码后,对照配置里写的版本去 SDK Manager 装齐即可,比口头同步靠谱得多。

常见报错的排查顺序

SDK 相关问题看着五花八门,其实九成集中在几个点。按下面的顺序查,通常两三步就能定位,不用来回重装。

现象先查什么大概率原因
提示某组件缺失报错里的版本号对应的 platform 或 build-tools 没装
命令行说找不到 adb环境变量 PATHplatform-tools 没加进 PATH
换机器后构建失败项目里的本地配置文件SDK 路径还是旧机器的
卡在构建阶段不动JDK 版本工具链对 JDK 有要求,过旧或过新都不行
  • 先看报错里的版本号,它往往直接告诉你缺哪个组件。
  • 再看环境变量,命令行类的问题基本出在这。
  • 然后看项目本地配置里的 SDK 路径是否正确。
  • 最后看 JDK 版本是否匹配,这一项最容易被跳过。
排查 SDK 问题,顺序比经验重要:版本、路径、环境变量、JDK,一路查下来,多数问题当场就有答案。

同一个报错在不同版本上表现可能不一样,拿不准时先去站内 基础概念词典(/glossary) 确认名词含义,再动手改配置,能少走不少弯路。

下一步如果你正在挑工具链或想看看别人踩过的坑,站内已经按类别整理好了,去翻一遍比一个个试快得多

常见问题

Android SDK 和 JDK 是一回事吗?

不是。JDK 是 Java 的开发工具包,管的是 Java 语言本身的编译与运行;Android SDK 管的是 Android 系统特有的 API、打包工具和设备调试工具。开发 Android 两个都要装,只是分工不同,报错时也要分清是哪个出的问题。

不装 Android Studio 只装 SDK 能开发吗?

技术上可以,用命令行加任意编辑器也能编译打包,但学习阶段不推荐。SDK Manager 的图形界面、Gradle 同步、设备管理这些都集成在 Studio 里,新手少配一步就少一个坑,等熟悉流程后再去精简工具链更合适。

SDK 目录里哪些能删、哪些不能删?

platform-tools 和当前项目用到的那份 platform、build-tools 不要动。旧版本的系统镜像、几个版本之前的 build-tools、用不到的旧平台可以删。删之前建议看一眼项目里的 compileSdk 和 targetSdk,把还在用的版本留下。

换电脑后项目报找不到 SDK 怎么办?

多半是 local.properties 里还记着老机器的路径。把这个文件删掉,让 IDE 重新同步生成,或者在设置里手动指到新机器上的 SDK 目录。设好之后跑一次编译和 adb devices 验证,两个都过就说明环境接上了。

SDK 版本和手机系统版本必须一致吗?

不用一致。编译时用较高的 SDK 版本可以调用更多 API,运行时靠 minSdk 和版本判断保证低版本设备不崩。一般做法是把编译版本设高、最低支持版本按你要覆盖的机型定,中间用兼容判断处理差异。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。