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