Android SDK 安裝配置

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)境變量

  1. 創(chuàng)建系統(tǒng)環(huán)境變量 ANDROID_SDK_ROOT,指向上面的目錄 D:\path-to-android\android-sdk。
  2. $ANDROID_SDK_ROOT\cmdline-tools\latest\bin 添加到系統(tǒng)環(huán)境變量 Path
  3. $ANDROID_SDK_ROOT\emulator 添加到系統(tǒng)環(huán)境變量 Path,使命令行可以直接執(zhí)行 emulator。
  4. $ANDROID_SDK_ROOT\platform-tools 添加到系統(tǒng)環(huán)境變量 Path,使命令行可以直接執(zhí)行 adb、fastboot。
  5. 創(chuàng)建系統(tǒng)環(huán)境變量 ANDROID_SDK_HOME,將默認的 $USER_HOME\.android 目錄指向其它分區(qū)位置,如 D:\data\_android - 這是可選配置,但強烈建議設置一下。
  6. 創(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 包目錄即可:

6. 模擬器硬件加速配置

參考官方的詳細文檔《為 Android 模擬器配置硬件加速》。

從實用角度,這里簡化挑選了 Intel CPU 和 AMD CPU 平臺在 Windows 下的硬件加速方法。

只有安裝了硬件加速,運行 x86 的模擬器時才能提高速度,否則會很慢。

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

Intel CPU 平臺是使用 Intel HAXM 配置虛擬機加速的,操作步驟為:

  1. 主板 BIOS 需啟用 CPU 的虛擬化支持(Intel 處理器的 VT-x 技術(shù))。
  2. 在 "Windows 功能" 對話框中關閉 Hyper-V(系統(tǒng)默認情況下一般是關閉的)。
  3. 執(zhí)行如下命令下載 Intel HAXM:
    $ sdkmanager --install "extras;intel;Hardware_Accelerated_Execution_Manager"
    
  4. 在管理員模式的終端下運行剛下載的 "sdk\extras\intel\Hardware_Accelerated_Execution_Manager\silent_install.bat" 文件執(zhí)行自動安裝。
    > 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" 文件執(zhí)行自動安裝。

注:從模擬器 33.xxx 開始,HAXM 已廢棄,因為 Intel 已停止開發(fā) HAXMAndroid 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 配置虛擬機加速的,操作步驟為:

  1. 主板 BIOS 需啟用 CPU 的虛擬化支持(AMD 處理器的 Secure Virtual Machine (SVM) 技術(shù))。

  2. 在 "Windows 功能" 對話框中關閉 Hyper-V(系統(tǒng)默認情況下一般是關閉的)。

  3. 從 Android Emulator Hypervisor Driver for AMD Processors 的 Github 發(fā)布地址 下載最新版的壓縮包,如 gvm-windows_v1_6_0.zip。

  4. 解壓 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 模擬器的硬件加速,可能會啟動失敗。啟動后,這個模擬器的界面效果如下:

android-emulator-api27.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容