丨Android丨SDK管理工具——sdkmanager命令行使用指南

前言(废话)

为什么要写博客?

这个……主要还是因为个人感受吧,不知道你们有没有经历过,但是我感受过,遇到问题各种尝试找不到解决方法,最后不得不依赖网络,但是网络上也没有关于这个问题的解决方法,身边也没有懂这个的人,网上问了也没有想要的回答……这个确实是挺自闭的。
我觉得写这个博客不止是为了给自己看,更应该是给别人看,给需要的人看。既然我有幸知道解决方法,就应该分享出来。

为什么要写这个指南?

sdkmanager的gui版不知道大家使用的如何,反正我是无论怎么尝试,镜像啊改hosts那些方法都试过了,死活就是获取不了新版本,网上查嘛,那些方法都没用,自己也就放弃了(果然还是我比较菜吧)。
但幸运的是,我本来从一开始就是用的命令行版本,后来才拿到的gui版,我的gui版死活用不了我还能继续使用命令行,但是问题来了……我是本来就会命令行,但是其他人不一定会啊……所以我决定写这么一篇文章,帮助那些跟我一样用不了gui版的人,找到一个新的方向。

介绍

官网对sdkmanager的介绍是这样的,我觉得已经足够详细了,所以这里不多阐述。

sdkmanager 是一个命令行工具,您可以用它来查看、安装、更新和卸载 Android SDK 的软件包。如果您使用 Android Studio,则无需使用此工具,而可以从 IDE 管理 SDK 软件包。

sdkmanager 工具在 Android SDK Tools 软件包(25.2.3 及更高版本)中提供,并位于 android_sdk/tools/bin/ 下。

下载

sdkmanager是免费的,可以直接在官网下载
我们进去后往下翻,可以看到Command line tools only一栏。
丨Android丨SDK管理工具——sdkmanager命令行使用指南_第1张图片
在这里选择自己的系统,例如我这里是Windows,后文也将以Windows的命令行来作介绍。
点击下载后,会弹出这样一个弹窗,我们点击选择“我已阅读并同意上述条款及条件”前面的方框。
丨Android丨SDK管理工具——sdkmanager命令行使用指南_第2张图片
选中之后,可以看到下载按钮亮起。
再次核对自己的系统,然后就可以点击下载。
丨Android丨SDK管理工具——sdkmanager命令行使用指南_第3张图片
下载下来的文件是个.zip压缩文件,我们直接解压,我这边解压在了D:\AndroidSDK,推荐找一个内存较多的磁盘,专门新建一个文件夹来放置我们的sdk(其实sdk的内存并不大,这样方便管理),路径里最好不要有中文
解压后里面会有一个tools文件夹,tools文件夹里面是这样的:丨Android丨SDK管理工具——sdkmanager命令行使用指南_第4张图片
这里对其他的文件不过多介绍了,我们所需要的sdkmanager就在“你的解压路径/tools/bin”下:
sdkmanager
命令行的使用不需要我多说吧?Win+R输入cmd,然后cd到bin下。不过这边我比较喜欢在文件夹下Shift+右键空白处,选择在此处打开命令窗口,这能快捷打开命令行,不过不是管理员,但是我们安装sdk是不需要管理员哒。

用法

列出已安装和可用列表

sdkmanager --list

其实这个命令好像没什么作用,因为通常会显示不全,但是有时候还是能用到的

安装

sdkmanager [packages]

这个就是我们最重要的命令之一,官网对这条命令的介绍:

packages 参数是 --list 命令列出的 SDK 式的路径,这些路径括在引号中(例如 “build-tools;29.0.0” 或 “platforms;android-28”)。您可以传递多个软件包路径(用空格分隔),但各个路径必须括在各自的一组引号中。

我们开发需要的工具有build-toolsplatformsplatforms-tools,但是在–list列出的表格里只会列出platforms的版本,剩余的版本大家可以在版本说明里看到:
丨Android丨SDK管理工具——sdkmanager命令行使用指南_第5张图片
例如下面的命令将下载所有工具的最新版:

sdkmanager "platform-tools" "platforms;android-29" "build-tools;29.0.2"

下载的sdk将会安装到你的解压目录,也就是跟tools同一目录。
另外,platform-tools似乎不分版本,只会下载最新版,下载一次偶尔更新就行了。
下载过程中可能会询问是否同意协议,我们输入y然后回车即可继续安装:丨Android丨SDK管理工具——sdkmanager命令行使用指南_第6张图片
下载之后,可以看到在tools同级多了一些文件(我这里作演示只下了一个)
文件

更新

更新就很简单了,使用下面的命令,会自动更新所有已安装的软件包

sdkmanager --update

卸载

卸载与安装差不多,添加一个--uninstall参数即可

sdkmanager --uninstall packages

我是比较推荐用命令行卸载而不是用直接删除文件夹,如果直接删除不知道会有什么问题。
例如,我这边有API29的SDK了,想要卸载之前的API28,我就可以输入下面的命令:

sdkmanager --uninstall "platforms;android-28"

然后就可以看到API28的文件夹消失了

附加参数

这个我用不上,但是顺便就写一下吧

选项 说明
–sdk_root=path 使用指定的 SDK 路径而不是包含此工具的 SDK
–channel=channel_id 包含从 channel_0 到 channel_id 所有渠道中的软件包。可用的渠道包括:0(稳定版)、1(测试版)、2(开发版)和 3(Canary 版)。
–include_obsolete 在列出或更新软件包时纳入那些已过时的软件包。仅适用于 --list 和 --update。
–no_https 强制所有连接使用 HTTP 而不是 HTTPS。
–verbose 详细输出模式。该模式会输出错误、警告和参考性消息。
–proxy={http | socks} 通过给定类型的代理建立连接:用 http 指定一个高层级协议(如 HTTP 或 FTP)的代理,或用 socks 指定一个 SOCKS(V4 或 V5)代理。
–proxy_host={IP_address | DNS_address} 要使用的代理的 IP 或 DNS 地址。
–proxy_port=port_number 要连接到的代理端口号。

注意:如果要为与当前计算机不同的操作系统安装软件包,请将 REPO_OS_OVERRIDE 环境变量设置为“windows”、“macosx”或“linux”。

总结

这篇文章其实没什么好总结的吧
另外有事没事可以翻翻官网
希望能帮到大家

你可能感兴趣的:(Android)