Android构建时需要使用SDK,而sdkmanager则是一个可以对Android SDK进行常见的操作的命令行工具,包括查看、安装、更新、卸载各种包。当然,使用Android Studio
的开发者则不需要使用这类工具,因为可以通过IDE对SDK的包进行管理。
注:sdkmanager是在Android Tools package 25.2.3和之后的版本才提供的功能,缺省被安装在sdk的tools/bin的目录之下。
常用命令
操作 | 命令 | 使用格式 |
---|---|---|
查看sdkmanager版本 | --version | sdkmanager --version |
查看包信息 | --list | sdkmanager --list 参数 |
安装包 | --install | sdkmanager --install 参数 |
跟新包 | --update | sdkmanager --update 参数 |
卸载包 | --uninstall | sdkmanager --uninstall 参数 |
licenses管理 | --licenses | sdkmanager --licenses 参数 |
注:需要说明的时--\install可以省略,使用sdkmanager 直接加包名就意味着安装此包
常用选项
选项 | 说明 |
---|---|
--sdk_root=sdk根目录 | 使用指定的SDK而不是包含sdkmanager的当前SDK |
--channel=channelId | channelId表示包的来源,选项为0-3,具体含义为:0 (Stable), 1 (Beta), 2 (Dev), and 3 (Canary) |
--include_obsolete | 结合--list或者--update可以显示或者更新那些过时的包 |
--no_https | 强制所有的连接都是http而不是https |
--proxy=http|socks | 通过代理或者socks进行连接 |
--proxy_host=IP或者DNS地址 | 代理所使用的IP或者DNS地址 |
--proxy_port=端口号 | 代理所使用的端口号 |
--verbose | 显示详细输出信息 |
REPO_OS_OVERRIDE环境变量
REPO_OS_OVERRIDE环境变量可设定值为:
- windows
- macosx
- linux
当需要使用sdkmanager下载和当前操作系统不同的包时可以通过设定此环境变量来使用。
使用示例
显示版本
执行命令:sdkmanager --version
liumiaocn:bin liumiao$ pwd
/Users/liumiao/Library/Android/sdk/tools/bin
liumiaocn:bin liumiao$ ls
apkanalyzer avdmanager lint screenshot2 uiautomatorviewer
archquery jobb monkeyrunner sdkmanager
liumiaocn:bin liumiao$ ./sdkmanager --version
26.1.1
liumiaocn:bin liumiao$
查看包
执行命令:sdkmanager --list
可以看到本地已经安装的以及远程仓库提供的可安装的包的信息。
liumiaocn:bin liumiao$ ./sdkmanager --list
Warning: File /Users/liumiao/.android/repositories.cfg could not be loaded.
Installed packages:=====================] 100% Computing updates...
Path | Version | Description | Location
------- | ------- | ------- | -------
build-tools;29.0.2 | 29.0.2 | Android SDK Build-Tools 29.0.2 | build-tools/29.0.2/
emulator | 29.3.0 | Android Emulator | emulator/
extras;intel;Hardware_Accelerated_Execution_Manager | 7.5.1 | Intel x86 Emulator Accelerator (HAXM installer) | extras/intel/Hardware_Accelerated_Execution_Manager/
patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/
platform-tools | 29.0.5 | Android SDK Platform-Tools | platform-tools/
platforms;android-29 | 4 | Android SDK Platform 29 | platforms/android-29/
sources;android-29 | 1 | Sources for Android 29 | sources/android-29/
system-images;android-29;google_apis_playstore;x86 | 8 | Google Play Intel x86 Atom System Image | system-images/android-29/google_apis_playstore/x86/
tools | 26.1.1 | Android SDK Tools | tools/
Available Packages:
Path | Version | Description
------- | ------- | -------
add-ons;addon-google_apis-google-15 | 3 | Google APIs
...省略
Development Kit Preview
build-tools;19.1.0 | 19.1.0 | Android SDK Build-Tools 19.1
...省略
cmake;3.10.2.4988404 | 3.10.2 | CMake 3.10.2.4988404
cmake;3.6.4111459 | 3.6.4111459 | CMake 3.6.4111459
docs | 1 | Documentation for Android SDK
emulator | 29.3.0 | Android Emulator
extras;android;gapid;1 | 1.0.3 | GPU Debugging tools
...省略
lldb;2.0 | 2.0.2558144 | LLDB 2.0
...省略
ndk-bundle | 20.1.5948944 | NDK
ndk;16.1.4479499 | 16.1.4479499 | NDK (Side by side) 16.1.4479499
...省略
patcher;v4 | 1 | SDK Patch Applier v4
platform-tools | 29.0.5 | Android SDK Platform-Tools
platforms;android-10 | 2 | Android SDK Platform 10
...省略
sources;android-15 | 2 | Sources for Android 15
...省略
system-images;android-10;default;armeabi-v7a | 5 | ARM EABI v7a System Image
...省略
tools | 26.1.1 | Android SDK Tools
liumiaocn:bin liumiao$
安装包
执行命令:sdkmanager --install 包名
或者
执行命令:sdkmanager 包名
一次安装多个包时,只需用空格隔开各个包作为参数传入即可。
更新包
执行命令:sdkmanager --update 包名
不带参数将会更新所有已安装的包至最新版本
执行命令:sdkmanager --update
删除包
执行命令:sdkmanager --uninstall 包名
参考内容
https://developer.android.google.cn/studio/command-line/sdkmanager