Android SDK 可以通过 Android Command line tools(叫命令行工具或 SDK 工具)手动安装,也可以让 Android Studio 自动帮你下载安装,这里详细描述手动安装的方法。
官方网站为 https://developer.android.com/studio/command-line,当前(2023-06-03)最新版本为 v9.0。
1. 下载 zip 安装包
从 https://developer.android.com/studio#command-line-tools-only 选择适合平台的 zip 安装包:
- Windows 选择
commandlinetools-win-9477386_latest.zip
- macOS 选择
commandlinetools-mac-9477386_latest.zip
- Linux 选择
commandlinetools-linux-9477386_latest.zip
以下以 Windows 平台为例,其它平台基本一致!
2. 解压安装
将下载的 commandlinetools-win-9477386_latest.zip
安装包解压,解压后目录结构如下:
D:\path-to-android\cmdline-tools\ # 按需自行调整安装到的目录
├── bin
│ ├── apkanalyzer.bat # 用于在构建过程完成后深入分析 APK 组成
│ ├── avdmanager.bat # 创建和管理 Android 虚拟设备 (AVD)
│ ├── lint.bat # 代码扫描工具,可帮助您识别和纠正代码结构质量方面的问题
│ ├── profgen.bat
│ ├── retrace.bat
│ ├── screenshot2.bat
│ └── sdkmanager.bat # 查看、安装、更新和卸载 Android SDK 的软件包
├── lib
│ └── ...
├── NOTICE.txt
└── source.properties
切换到命令行执行如下命令安装最新版的 cmdline-tools:
> cd D:\path-to-android\cmdline-tools\bin
> sdkmanager --sdk_root=D:\path-to-android\android-sdk\ "cmdline-tools;latest"
License android-sdk-license: ] 10% Computing updates...
---------------------------------------
...
---------------------------------------
Accept? (y/N): y # 输入 y 接受 License
[====== ] 17% Downloading commandlinetools-win-9
[=======================================] 100% Unzipping... cmdline-tools/lib/RE
参数 --sdk_root=D:\path-to-android\android-sdk\
是非常关键的,必须精确指定。命令执行完毕后,将会新增如下目录:
D:\path-to-android\android-sdk\
├── cmdline-tools\latest\
│ ├── bin
│ │ ├── apkanalyzer.bat
│ │ ├── avdmanager.bat
│ │ ├── lint.bat
│ │ ├── profgen.bat
│ │ ├── retrace.bat
│ │ ├── screenshot2.bat
│ │ └── sdkmanager.bat
│ ├── lib
│ │ └── ...
│ ├── NOTICE.txt
│ ├── package.xml
│ └── source.properties
└── licenses
└── android-sdk-license
android-sdk\cmdline-tools\latest
就是最新版的命令行工具,D:\path-to-android\cmdline-tools
留着,以后执行下面的命令就可以用来更新 cmdline-tools 到最新版本。
> cd D:\path-to-android\cmdline-tools\bin
> sdkmanager --sdk_root=D:\path-to-android\android-sdk\ "cmdline-tools;latest"
[=======================================] 100% Computing updates...
执行如下命令查看 cmdline-tools 安装的版本:
> cd D:\path-to-android\android-sdk\cmdline-tools\latest\bin
> sdkmanager --list
[=======================================] 100% Computing updates...
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
cmdline-tools;latest | 9.0 | Android SDK Command-line Tools (latest) | cmdline-tools\latest
可见上述安装的 cmdline-tools 版本为
9.0
。
3. 安装必须的 SDK 包
# 切换到新的 cmdline-tools 目录
> cd D:\path-to-android\android-sdk\cmdline-tools\latest\bin
# 安装模拟器命令行工具(emulator.exe)
> sdkmanager --install emulator
[=======================================] 100% Unzipping... emulator/resources/m
# 安装 platform-tools(adb.exe、fastboot.exe、sqlite3.exe)
> sdkmanager --install platform-tools
[=======================================] 100% Unzipping... platform-tools/sqlit
4. 配置系统环境变量
- 创建系统环境变量
ANDROID_SDK_ROOT
,指向上面的目录D:\path-to-android\android-sdk
。 - 将
$ANDROID_SDK_ROOT\cmdline-tools\latest\bin
添加到系统环境变量Path
。 - 将
$ANDROID_SDK_ROOT\emulator
添加到系统环境变量Path
,使命令行可以直接执行 emulator。 - 将
$ANDROID_SDK_ROOT\platform-tools
添加到系统环境变量Path
,使命令行可以直接执行 adb、fastboot。 - 创建系统环境变量
ANDROID_SDK_HOME
,将默认的$USER_HOME\.android
目录指向其它分区位置,如D:\data\_android
- 这是可选配置,但强烈建议设置一下。 - 创建系统环境变量
ANDROID_AVD_HOME
,将默认的$USER_HOME\.android\avd
目录指向其它分区位置,如D:\data\_android\avd
- 这是可选配置,但强烈建议设置一下。如果设置了ANDROID_SDK_HOME
则必须设置这个,否则会创建模拟器成功,但启动模拟器说找不到路径。如果设置了这个环境变量,务必也手动创建这个目录,否则创建的模拟器实测还是保存在$USER_HOME\.android\avd
。
更多 Android 环境变量的配置,请参考 官方文档的环境变量配置。
配置完毕后,在任意目录重新打开新的 CMD 命令行,确认一下配置的正确性:
> sdkmanager --version
9.0
> emulator -version
INFO | Android emulator version 32.1.13.0 (build_id 10086546) (CL:N/A)
...
> adb version
Android Debug Bridge version 1.0.41
Version 34.0.1-9979309
Installed as D:\path-to-android\android-sdk\platform-tools\adb.exe
Running on Windows 10.0.19044
> fastboot --version
fastboot version 34.0.1-9979309
Installed as D:\path-to-android\android-sdk\platform-tools\fastboot.exe
看到上述输出的版本号信息就证明配置成功。
5. SDK 包的安装、更新与删除
命令行执行 "sdkmanager --list"
可以查看到所有已安装、可安装、可更新的包。如:
> sdkmanager --list
[=======================================] 100% Computing updates...
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
cmdline-tools;latest | 9.0 | Android SDK Command-line Tools (latest) | cmdline-tools\latest
emulator | 32.1.13 | Android Emulator | emulator
patcher;v4 | 1 | SDK Patch Applier v4 | patcher\v4
platform-tools | 34.0.1 | Android SDK Platform-Tools | platform-tools
Available Packages:
Path | Version | Description
------- | ------- | -------
add-ons;addon-google_apis-google-15 | 3 | Google APIs
...
Available Updates: (有更新时才会输出来)
ID | Installed | Available
------- | ------- | -------
platforms;android-30 | 2 | 3
安装新包:
# --install 参数是可选的
> sdkmanager --install "$PACKAGE_PATH" # 上面 `Available Packages` 中第一列 Path 的值就是 $PACKAGE_PATH
安装过程其实是 sdkmanager 通过网络下载相应包的压缩包,然后解压到相应的目录而已。故也可以从其它已经下载的电脑上复制过来,放到相应的目录即可。
更新已安装的包:
> sdkmanager --update # 所有已安装的包如果有更新将全部更新到最新版
卸载已安装的包:
> sdkmanager --uninstall "$PACKAGE_NAME"
自行将相应包所在的目录删除掉也可达到卸载的目的,效果是一样的。
有一些网站缓存了一些 SDK 的压缩包,直接下载有困难时可以灵活变通一下,自行从这些网站下载,然后解压到相应的 SDK 包目录即可:
- https://www.androiddevtools.cn - 只缓存到 API Leve 21
- http://downloads.puresoftware.org/files/android - 只缓存到 API Leve 23
6. 模拟器硬件加速配置
参考官方的详细文档《为 Android 模拟器配置硬件加速》。
从实用角度,这里简化挑选了 Intel CPU 和 AMD CPU 平台在 Windows 下的硬件加速方法。
只有安装了硬件加速,运行 x86 的模拟器时才能提高速度,否则会很慢。
6.1. Intel CPU 的模拟器硬件加速
Intel CPU 平台是使用 Intel HAXM 配置虚拟机加速的,操作步骤为:
- 主板 BIOS 需启用 CPU 的虚拟化支持(Intel 处理器的 VT-x 技术)。
- 在 "Windows 功能" 对话框中关闭 Hyper-V(系统默认情况下一般是关闭的)。
- 执行如下命令下载 Intel HAXM:
$ sdkmanager --install "extras;intel;Hardware_Accelerated_Execution_Manager"
- 在管理员模式的终端下运行刚下载的
"sdk\extras\intel\Hardware_Accelerated_Execution_Manager\silent_install.bat"
文件执行自动安装。> silent_install.bat Intel HAXM installed successfully!
- 验证安装:
> silent_install.bat -v 7.6.5 > emulator -accel-check accel: 0 HAXM version 7.6.5 (4) is installed and usable. accel
如果使用 Android Studio,则只需打开 SDK 管理器,点击 "SDK Update Sites" 标签,然后选择 "Intel HAXM",点击 "OK" 等待下载完成。然后运行
"sdk\extras\intel\Hardware_Accelerated_Execution_Manager\silent_install.bat"
文件执行自动安装。
注:从模拟器 33.xxx 开始,HAXM 已废弃,因为 Intel 已停止开发 HAXM。Android Emulator Hypervisor Driver (AEHD) 取代了 Intel 处理器上的 Intel HAXM。
以下是安装 AEHD 的命令:
> sdkmanager --install "extras;google;Android_Emulator_Hypervisor_Driver"
# 管理员模式执行
> cd $android-sdk\extras\google\Android_Emulator_Hypervisor_Driver
> silent_install.bat
SERVICE_NAME: gvm
TYPE : 1 KERNEL_DRIVER
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 0
FLAGS :
请先通过
> emulator version
确认 emulator 版本后再确定安装 Intel HAXM 还是 AEHD。
6.2. AMD CPU 的模拟器硬件加速
AMD CPU 平台是使用 Android Emulator Hypervisor Driver for AMD Processors 配置虚拟机加速的,操作步骤为:
主板 BIOS 需启用 CPU 的虚拟化支持(AMD 处理器的 Secure Virtual Machine (SVM) 技术)。
在 "Windows 功能" 对话框中关闭 Hyper-V(系统默认情况下一般是关闭的)。
从 Android Emulator Hypervisor Driver for AMD Processors 的 Github 发布地址 下载最新版的压缩包,如 gvm-windows_v1_6_0.zip。
-
解压 gvm-windows_v1_6_0.zip 文件后,以管理员身份执行其中的
silent_install.bat
即可。# 1. 安装 $ silent_install.bat SERVICE_NAME: gvm TYPE : 1 KERNEL_DRIVER STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 PID : 0 FLAGS : # 2. 验证1 $ sc query gvm SERVICE_NAME: gvm TYPE : 1 KERNEL_DRIVER STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 # 3. 验证2 $ emulator -accel-check accel: 0 GVM (version 1.6) is installed and usable. accel
看到上面的信息就安装成功了,如果要卸载,则在关闭所有 x86 模拟器后,执行如下命令:
$ sc stop gvm $ sc delete gvm
如果使用 Android Studio,则只需打开 SDK 管理器,点击 "SDK Tools" 标签页,然后选择 "Android Emulator Hypervisor Driver for AMD Processors",点击 "OK" 即可自动下载安装。
6.3. 为 Android 界面启用 Skia 渲染
使用 API 级别 27 或更高级别的映像时,模拟器可以使用 Skia 渲染 Android 界面。Skia 可帮助模拟器更流畅、更高效地渲染图形。
如需启用 Skia 渲染,请在 adb shell 中使用以下命令:
su
setprop debug.hwui.renderer skiagl
stop
start
7. 创建并运行一个模拟器的例子
以 Android-8.1(API Level 27)开发为例。
7.1. 安装 Android-8.1 编译构建工具
$ sdkmanager --install "build-tools;27.0.3" "platforms;android-27"
完成后,会多出如下两个目录:
$ANDROID_SDK_ROOT\build-tools\27.0.3\
$ANDROID_SDK_ROOT\platforms\android-27\
7.2. 安装 Android-8.1 模拟器镜像
下载一个 Android-8.1 的 x86 64 位模拟器镜像:
$ sdkmanager --install "system-images;android-27;default;x86_64"
完成后,会多出如下目录:
$ANDROID_SDK_ROOT\system-images\android-27\default\x86_64\
7.3. 创建 Android-8.1 模拟器
使用上面下载的镜像创建一个模拟器:
$ avdmanager create avd --name API_27_x86_64 --package "system-images;android-27;default;x86_64"
Do you wish to create a custom hardware profile? [no]
也可以使用简写参数 -n 代替 --name、 -k 代替 --package,如:
$ avdmanager create avd -n API_27_x86_64 -k "system-images;android-27;default;x86_64"
如果想创建一些内置的已知的设备的模拟器,可以通过指定
--device "..."
参数指定,该参数支持的设备列表可以通过> avdmanager list device
查看到。
完成后,会多出所创建的模拟器对应的配置文件和目录:
-
$ANDROID_AVD_HOME\API_27_x86_64.ini
- 模拟器配置文件 -
$ANDROID_AVD_HOME\API_27_x86_64.avd\
- 模拟器磁盘镜像等文件所在的目录
创建后可以通过如下命令查看已创建的模拟器信息:
$ avdmanager list avd
Available Android Virtual Devices:
Name: API_27_x86_64
Path: D:\data\_android\avd\API_27_x86_64.avd
Target: Default Android System Image
Based on: Android 8.1 (Oreo) Tag/ABI: default/x86_64
Sdcard: 512 MB
7.4. 运行 Android-8.1 模拟器
# 因为上面创建的 API_27_x86_64 模拟器是基于 android-27 的,启动模拟器前需要确保 `platforms;android-27` 包已经安装好
> sdkmanager --install "platforms;android-27"
# 启动模拟器的命令格式为 'emulator -avd $AVD_NAME' 或 '$ emulator @AVD_NAME'
$ emulator -avd API_27_x86_64
...
如果没有配置 x86 模拟器的硬件加速,可能会启动失败。启动后,这个模拟器的界面效果如下: