我想通过命令行列出已安装的sdk软件包。(由于某些原因我无法使用GUI)
我做了一些研究并发现了几个命令来列出远程服务器上的可用软件包,但是我找不到任何命令来列出已安装的sdk软件包。
由于
答案 0 :(得分:29)
使用Android SDK工具25.2.3(及更高版本):
$ANDROID_HOME/tools/bin/sdkmanager --list
请参阅:https://developer.android.com/studio/command-line/sdkmanager.html#usage
答案 1 :(得分:4)
如$ ANDROID_HOME / tools / android list --help
中所述
- list:列出现有目标或虚拟设备。
- list avd:列出现有的Android虚拟设备。
- list target:列出现有目标。
- list device:列出现有设备。
- list sdk:列出远程SDK存储库。
我猜你正在寻找这个:
$ANDROID_HOME/tools/android list target
您可以在Command Line Reference中的android
工具了解详情。
答案 2 :(得分:1)
在我的Mac上sdkmanager --list
无效,需要指定路径。
使用android studio默认SDK位置路径为~/Library/Android/sdk/tools/bin/sdkmanager --list
如@tnissi所述,这适用于Android SDK Tools 25.2.3(及更高版本)。
或按以下方式添加路径:export PATH=$PATH:~/Library/Android/sdk/tools/bin
答案 3 :(得分:1)
如果您设置了路径,请运行
sdkmanager --list_installed
这将打印出所有使用 sdkmanager 安装的包。
答案 4 :(得分:0)
它不是一个列表,但source.properties文件提供了起源的详细信息。我使用它来比较不同机器上的SDK:
for i in $(find -name source.properties); do
if [ -e ../other.sdk/$i ] ; then
echo ========================= $i
diff -wu $i ../other.sdk/$i | grep -v Pkg.License
fi
done
我剥离了Pkg.License,因为它是hyoooj。
答案 5 :(得分:0)
话题有点老,但是我遇到了类似的问题,并且注意到avdmanager将已安装的平台列为目标
"%ANDROID_SDK_ROOT%\tools\bin\avdmanager" list target
Available Android targets:==============] 100% Fetch remote repository...
----------
id: 1 or "android-25"
Name: Android API 25
Type: Platform
API level: 25
Revision: 3
----------
id: 2 or "android-28"
Name: Android API 28
Type: Platform
API level: 28
Revision: 6
答案 6 :(得分:0)
如果您只需要使用全名安装的软件包
sdkmanager --verbose --list | sed -n '/^Installed packages:$/,/^Available Packages:$/p'
答案 7 :(得分:0)
对于那些想使用awk
来获得“已安装的软件包”和“可用软件包”之间的内部段落,但不包括“已安装的软件包”和“可用软件包”行的人。
sdkmanager --list | awk '/Installed/{flag=1; next} /Available/{flag=0} flag'