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

  • Post author:
  • Post category:其他




前言(废话)



为什么要写博客?

这个……主要还是因为个人感受吧,不知道你们有没有经历过,但是我感受过,遇到问题各种尝试找不到解决方法,最后不得不依赖网络,但是网络上也没有关于这个问题的解决方法,身边也没有懂这个的人,网上问了也没有想要的回答……这个确实是挺自闭的。

我觉得写这个博客不止是为了给自己看,更应该是给别人看,给需要的人看。既然我有幸知道解决方法,就应该分享出来。



为什么要写这个指南?

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

一栏。

Command line tools only

在这里选择自己的系统,例如我这里是Windows,后文也将以Windows的命令行来作介绍。

点击下载后,会弹出这样一个弹窗,我们点击选择“我已阅读并同意上述条款及条件”前面的方框。

下载 Android Command Line Tools

选中之后,可以看到下载按钮亮起。

再次核对自己的系统,然后就可以点击下载。

下载

下载下来的文件是个.zip压缩文件,我们直接解压,我这边解压在了D:\AndroidSDK,推荐找一个

内存较多

的磁盘,专门新建一个文件夹来放置我们的sdk(其实sdk的内存并不大,这样方便管理),路径里最好

不要有中文



解压后里面会有一个tools文件夹,tools文件夹里面是这样的:
tools文件夹内部

这里对其他的文件不过多介绍了,我们所需要的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-tools



platforms



platforms-tools

,但是在–list列出的表格里只会列出

platforms

的版本,剩余的版本大家可以在

版本说明

里看到:

版本说明

例如下面的命令将下载所有工具的最新版:

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

下载的sdk将会安装到你的解压目录,也就是跟tools同一目录。

另外,

platform-tools

似乎不分版本,只会下载最新版,下载一次偶尔更新就行了。

下载过程中可能会询问是否同意协议,我们输入y然后回车即可继续安装:
同意协议

下载之后,可以看到在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”。



总结

这篇文章其实没什么好总结的吧

另外有事没事可以翻翻

官网


希望能帮到大家



版权声明:本文为qq_45612474原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。