Android SDK 安装配置

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. 配置系统环境变量

  1. 创建系统环境变量 ANDROID_SDK_ROOT,指向上面的目录 D:\path-to-android\android-sdk
  2. $ANDROID_SDK_ROOT\cmdline-tools\latest\bin 添加到系统环境变量 Path
  3. $ANDROID_SDK_ROOT\emulator 添加到系统环境变量 Path,使命令行可以直接执行 emulator。
  4. $ANDROID_SDK_ROOT\platform-tools 添加到系统环境变量 Path,使命令行可以直接执行 adb、fastboot。
  5. 创建系统环境变量 ANDROID_SDK_HOME,将默认的 $USER_HOME\.android 目录指向其它分区位置,如 D:\data\_android - 这是可选配置,但强烈建议设置一下。
  6. 创建系统环境变量 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 包目录即可:

6. 模拟器硬件加速配置

参考官方的详细文档《为 Android 模拟器配置硬件加速》。

从实用角度,这里简化挑选了 Intel CPU 和 AMD CPU 平台在 Windows 下的硬件加速方法。

只有安装了硬件加速,运行 x86 的模拟器时才能提高速度,否则会很慢。

6.1. Intel CPU 的模拟器硬件加速

Intel CPU 平台是使用 Intel HAXM 配置虚拟机加速的,操作步骤为:

  1. 主板 BIOS 需启用 CPU 的虚拟化支持(Intel 处理器的 VT-x 技术)。
  2. 在 "Windows 功能" 对话框中关闭 Hyper-V(系统默认情况下一般是关闭的)。
  3. 执行如下命令下载 Intel HAXM:
    $ sdkmanager --install "extras;intel;Hardware_Accelerated_Execution_Manager"
    
  4. 在管理员模式的终端下运行刚下载的 "sdk\extras\intel\Hardware_Accelerated_Execution_Manager\silent_install.bat" 文件执行自动安装。
    > silent_install.bat
    Intel HAXM installed successfully!
    
  5. 验证安装:
    > 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 已停止开发 HAXMAndroid 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 配置虚拟机加速的,操作步骤为:

  1. 主板 BIOS 需启用 CPU 的虚拟化支持(AMD 处理器的 Secure Virtual Machine (SVM) 技术)。

  2. 在 "Windows 功能" 对话框中关闭 Hyper-V(系统默认情况下一般是关闭的)。

  3. 从 Android Emulator Hypervisor Driver for AMD Processors 的 Github 发布地址 下载最新版的压缩包,如 gvm-windows_v1_6_0.zip

  4. 解压 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 模拟器的硬件加速,可能会启动失败。启动后,这个模拟器的界面效果如下:

android-emulator-api27.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342