为什么SDK Manager有两个版本?使用哪一个



我已经在Linux上安装(解压缩(了Android命令行工具包,并将这些环境变量设置到我的.bashrc文件中:

export ANDROID_SDK_ROOT=$HOME/Programs/Android
export PATH=$ANDROID_SDK_ROOT/cmdline-tools/tools:$PATH
export PATH=$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$PATH
export PATH=$ANDROID_SDK_ROOT/cmdline-tools/tools/lib:$PATH

sdkmanager显示的版本为:

$ sdkmanager --version
4.0.1

有了这个经理,我安装了其他软件包:

$ sdkmanager --install "system-images;android-29;google_apis;x86" "platform-tools" "platforms;android-29" "build-tools;29.0.3"
$ sdkmanager --install "cmdline-tools;latest"

$ANDROID_SDK_ROOT下创建了一些目录,其中tools目录与cmdline-tools/tools目录结构相似,但文件较多。$ANDROID_SDK_ROOT/cmdline-tools/tools/bin$ANDROID_SDK_ROOT/tools/bin都拥有sdkmanager文件,并且每个文件都显示不同的版本:

$ANDROID_SDK_ROOT/cmdline-tools/tools/bin/sdkmanager   ==> 4.0.1
$ANDROID_SDK_ROOT/tools/bin/sdkmanager                 ==> 26.1.1

我没有修改我的初始环境变量,并且一直在使用我创建的模拟器,直到最近开始在我的终端中接收到一条消息(当启动我的模拟器时(,其中包含以下文本:

Your emulator is out of date, please update by launching Android Studio

这条消息只是第一次显示,下次重新发布要等到一段时间后。它在启动我的模拟器时不会干扰,也不会降低它的性能。

根据本发布说明,SDK Tools包已弃用(上一个版本是26.1.1(,它要求使用新的命令行工具包。

命令行工具包的文档没有提到该包的当前版本,安卓SDK工具小节说它应该位于android_sdk/cmdline-tools/version/bin/中,那么哪个version?在下载压缩文件的页面中没有提到它。

那么,为什么我的系统中有两个版本的sdkmanager文件呢?使用哪一个?过时模拟器的消息是否与这两个文件有关?

考虑到版本4.0.1是首先安装的,我只能推测为什么也安装了不推荐使用的版本。我怀疑您安装的软件包中有一个需要旧版本,或者在安装时cmdline-tools;latest尚未指向4.0.1版本。如果这真的很重要,我能想到的唯一检查方法就是重复这个过程,然后一次安装一个包,以帮助缩小范围。

关于您的另一个问题,除非需要一些删除功能,否则通常最好放弃不推荐使用的软件。因此,我认为在这种情况下,使用cmdline-tools/tools/bin/sdkmanager,即版本4.0.1,将是谨慎的做法。

我不确定关于过时模拟器的消息。

最新更新