通过命令行列出已安装的 sdk 包
List installed sdk package via command line
我想通过命令行列出已安装的sdk包。(由于某些原因我无法使用GUI)
我做了一些研究,找到了几个命令来列出远程服务器上的可用包,但我还没有找到任何命令来列出已安装的 sdk 包。
谢谢
如 $ANDROID_HOME/tools/android list --help
中所述
- list : Lists existing targets or virtual devices.
- list avd : Lists existing Android Virtual Devices.
- list target : Lists existing targets.
- list device : Lists existing devices.
- list sdk : Lists remote SDK repository.
我猜你正在寻找这个:
$ANDROID_HOME/tools/android list target
您可以在 Command Line Reference 中了解有关 android
工具的更多信息。
祝你好运!
使用 Android SDK 工具 25.2.3(及更高版本):
$ANDROID_HOME/tools/bin/sdkmanager --list
参见:https://developer.android.com/studio/command-line/sdkmanager.html#usage
它不完全是一个清单,但 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。
在我的 mac 上只是 sdkmanager --list
不工作,需要指定路径。
使用 android studio 默认 SDK 位置路径为 ~/Library/Android/sdk/tools/bin/sdkmanager --list
如@tnissi 所述,这是针对 Android SDK 工具 25.2.3(及更高版本)的。
或通过以下方式添加路径:export PATH=$PATH:~/Library/Android/sdk/tools/bin
一个有点老的话题,但我遇到了类似的问题,并注意到 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
以防你只需要安装包的全名
sdkmanager --verbose --list | sed -n '/^Installed packages:$/,/^Available Packages:$/p'
对于那些想要使用 awk
获取 "Installed packages" 和 "Aavaliable Packages" 之间的内部段落但不包括 "Installed packages" 和 "Aavaliable Packages" 行的人。
sdkmanager --list | awk '/Installed/{flag=1; next} /Available/{flag=0} flag'
如果您设置了路径,运行
sdkmanager --list_installed
这将打印出使用 sdkmanager 安装的所有包。
我想通过命令行列出已安装的sdk包。(由于某些原因我无法使用GUI)
我做了一些研究,找到了几个命令来列出远程服务器上的可用包,但我还没有找到任何命令来列出已安装的 sdk 包。
谢谢
如 $ANDROID_HOME/tools/android list --help
中所述
- list : Lists existing targets or virtual devices.
- list avd : Lists existing Android Virtual Devices.
- list target : Lists existing targets.
- list device : Lists existing devices.
- list sdk : Lists remote SDK repository.
我猜你正在寻找这个:
$ANDROID_HOME/tools/android list target
您可以在 Command Line Reference 中了解有关 android
工具的更多信息。
祝你好运!
使用 Android SDK 工具 25.2.3(及更高版本):
$ANDROID_HOME/tools/bin/sdkmanager --list
参见:https://developer.android.com/studio/command-line/sdkmanager.html#usage
它不完全是一个清单,但 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。
在我的 mac 上只是 sdkmanager --list
不工作,需要指定路径。
使用 android studio 默认 SDK 位置路径为 ~/Library/Android/sdk/tools/bin/sdkmanager --list
如@tnissi 所述,这是针对 Android SDK 工具 25.2.3(及更高版本)的。
或通过以下方式添加路径:export PATH=$PATH:~/Library/Android/sdk/tools/bin
一个有点老的话题,但我遇到了类似的问题,并注意到 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
以防你只需要安装包的全名
sdkmanager --verbose --list | sed -n '/^Installed packages:$/,/^Available Packages:$/p'
对于那些想要使用 awk
获取 "Installed packages" 和 "Aavaliable Packages" 之间的内部段落但不包括 "Installed packages" 和 "Aavaliable Packages" 行的人。
sdkmanager --list | awk '/Installed/{flag=1; next} /Available/{flag=0} flag'
如果您设置了路径,运行
sdkmanager --list_installed
这将打印出使用 sdkmanager 安装的所有包。