Android SDK 可以通過 Android Command line tools(叫命令行工具或 SDK 工具)手動安裝,也可以讓 Android Studio 自動幫你下載安裝,這里詳細描述手動安裝的方法。
官方網(wǎng)站為 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 安裝包解壓,解壓后目錄結(jié)構(gòu)如下:
D:\path-to-android\cmdline-tools\ # 按需自行調(diào)整安裝到的目錄
├── bin
│ ├── apkanalyzer.bat # 用于在構(gòu)建過程完成后深入分析 APK 組成
│ ├── avdmanager.bat # 創(chuàng)建和管理 Android 虛擬設備 (AVD)
│ ├── lint.bat # 代碼掃描工具,可幫助您識別和糾正代碼結(jié)構(gòu)質(zhì)量方面的問題
│ ├── profgen.bat
│ ├── retrace.bat
│ ├── screenshot2.bat
│ └── sdkmanager.bat # 查看、安裝、更新和卸載 Android SDK 的軟件包
├── lib
│ └── ...
├── NOTICE.txt
└── source.properties
切換到命令行執(zhí)行如下命令安裝最新版的 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
參數(shù) --sdk_root=D:\path-to-android\android-sdk\ 是非常關鍵的,必須精確指定。命令執(zhí)行完畢后,將會新增如下目錄:
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 留著,以后執(zhí)行下面的命令就可以用來更新 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...
執(zhí)行如下命令查看 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. 配置系統(tǒng)環(huán)境變量
- 創(chuàng)建系統(tǒng)環(huán)境變量
ANDROID_SDK_ROOT,指向上面的目錄D:\path-to-android\android-sdk。 - 將
$ANDROID_SDK_ROOT\cmdline-tools\latest\bin添加到系統(tǒng)環(huán)境變量Path。 - 將
$ANDROID_SDK_ROOT\emulator添加到系統(tǒng)環(huán)境變量Path,使命令行可以直接執(zhí)行 emulator。 - 將
$ANDROID_SDK_ROOT\platform-tools添加到系統(tǒng)環(huán)境變量Path,使命令行可以直接執(zhí)行 adb、fastboot。 - 創(chuàng)建系統(tǒng)環(huán)境變量
ANDROID_SDK_HOME,將默認的$USER_HOME\.android目錄指向其它分區(qū)位置,如D:\data\_android- 這是可選配置,但強烈建議設置一下。 - 創(chuàng)建系統(tǒng)環(huán)境變量
ANDROID_AVD_HOME,將默認的$USER_HOME\.android\avd目錄指向其它分區(qū)位置,如D:\data\_android\avd- 這是可選配置,但強烈建議設置一下。如果設置了ANDROID_SDK_HOME則必須設置這個,否則會創(chuàng)建模擬器成功,但啟動模擬器說找不到路徑。如果設置了這個環(huán)境變量,務必也手動創(chuàng)建這個目錄,否則創(chuàng)建的模擬器實測還是保存在$USER_HOME\.android\avd。
更多 Android 環(huán)境變量的配置,請參考 官方文檔的環(huán)境變量配置。
配置完畢后,在任意目錄重新打開新的 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 包的安裝、更新與刪除
命令行執(zhí)行 "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 參數(shù)是可選的
> sdkmanager --install "$PACKAGE_PATH" # 上面 `Available Packages` 中第一列 Path 的值就是 $PACKAGE_PATH
安裝過程其實是 sdkmanager 通過網(wǎng)絡下載相應包的壓縮包,然后解壓到相應的目錄而已。故也可以從其它已經(jīng)下載的電腦上復制過來,放到相應的目錄即可。
更新已安裝的包:
> sdkmanager --update # 所有已安裝的包如果有更新將全部更新到最新版
卸載已安裝的包:
> sdkmanager --uninstall "$PACKAGE_NAME"
自行將相應包所在的目錄刪除掉也可達到卸載的目的,效果是一樣的。
有一些網(wǎng)站緩存了一些 SDK 的壓縮包,直接下載有困難時可以靈活變通一下,自行從這些網(wǎng)站下載,然后解壓到相應的 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 技術(shù))。
- 在 "Windows 功能" 對話框中關閉 Hyper-V(系統(tǒng)默認情況下一般是關閉的)。
- 執(zhí)行如下命令下載 Intel HAXM:
$ sdkmanager --install "extras;intel;Hardware_Accelerated_Execution_Manager" - 在管理員模式的終端下運行剛下載的
"sdk\extras\intel\Hardware_Accelerated_Execution_Manager\silent_install.bat"文件執(zhí)行自動安裝。> 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"文件執(zhí)行自動安裝。
注:從模擬器 33.xxx 開始,HAXM 已廢棄,因為 Intel 已停止開發(fā) HAXM。Android Emulator Hypervisor Driver (AEHD) 取代了 Intel 處理器上的 Intel HAXM。
以下是安裝 AEHD 的命令:
> sdkmanager --install "extras;google;Android_Emulator_Hypervisor_Driver"
# 管理員模式執(zhí)行
> 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) 技術(shù))。
在 "Windows 功能" 對話框中關閉 Hyper-V(系統(tǒng)默認情況下一般是關閉的)。
從 Android Emulator Hypervisor Driver for AMD Processors 的 Github 發(fā)布地址 下載最新版的壓縮包,如 gvm-windows_v1_6_0.zip。
-
解壓 gvm-windows_v1_6_0.zip 文件后,以管理員身份執(zhí)行其中的
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 模擬器后,執(zhí)行如下命令:
$ 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. 創(chuàng)建并運行一個模擬器的例子
以 Android-8.1(API Level 27)開發(fā)為例。
7.1. 安裝 Android-8.1 編譯構(gòu)建工具
$ 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. 創(chuàng)建 Android-8.1 模擬器
使用上面下載的鏡像創(chuàng)建一個模擬器:
$ 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]
也可以使用簡寫參數(shù) -n 代替 --name、 -k 代替 --package,如:
$ avdmanager create avd -n API_27_x86_64 -k "system-images;android-27;default;x86_64"
如果想創(chuàng)建一些內(nèi)置的已知的設備的模擬器,可以通過指定
--device "..."參數(shù)指定,該參數(shù)支持的設備列表可以通過> avdmanager list device查看到。
完成后,會多出所創(chuàng)建的模擬器對應的配置文件和目錄:
-
$ANDROID_AVD_HOME\API_27_x86_64.ini- 模擬器配置文件 -
$ANDROID_AVD_HOME\API_27_x86_64.avd\- 模擬器磁盤鏡像等文件所在的目錄
創(chuàng)建后可以通過如下命令查看已創(chuàng)建的模擬器信息:
$ 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 模擬器
# 因為上面創(chuàng)建的 API_27_x86_64 模擬器是基于 android-27 的,啟動模擬器前需要確保 `platforms;android-27` 包已經(jīng)安裝好
> sdkmanager --install "platforms;android-27"
# 啟動模擬器的命令格式為 'emulator -avd $AVD_NAME' 或 '$ emulator @AVD_NAME'
$ emulator -avd API_27_x86_64
...
如果沒有配置 x86 模擬器的硬件加速,可能會啟動失敗。啟動后,這個模擬器的界面效果如下:
