通过命令行

时间:2015-08-07 20:22:42

标签: android android-sdk-tools

我想通过命令行列出已安装的sdk软件包。(由于某些原因我无法使用GUI)

我做了一些研究并发现了几个命令来列出远程服务器上的可用软件包,但是我找不到任何命令来列出已安装的sdk软件包。

由于

8 个答案:

答案 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'