安装软件包安装是否也会更新已安装的软件包

时间:2017-02-10 08:38:49

标签: android android-sdk-manager

我有一个shell脚本,定期运行以使我的CI服务器上的Android SDK保持最新。我正在从android update sdk --filter <foopackage>迁移到:sdkmanager <foopackage>

对于标识符中没有major.minor.patch的包(例如platform-toolstoolsextras;*) - 以前的方法会隐式更新这些包。阅读文档(https://developer.android.com/studio/command-line/sdkmanager.html)目前还不清楚sdkmanager <foopackage>是否会在已经安装的情况下更新软件包,或者只在缺少时才安装它? (在这种情况下,还需要sdkmanager --update <foopackage>

1 个答案:

答案 0 :(得分:1)

来自文档:

  

packages参数是一个SDK风格的路径,如-list命令所示,用引号括起来(例如,&#34; build-tools; 25.0.0&#34;或者&#34;平台; android -25&#34)

--list给出的输出类似于:

Available Packages:
Path                              | Version      | Description                      
-------                           | -------      | -------                          
add-ons;addon-g..._apis-google-23 | 1            | Google APIs                      
add-ons;addon-g..._apis-google-24 | 1            | Google APIs                      
add-ons;addon-g...e_gdk-google-19 | 11           | Glass Development Kit Preview    
build-tools;25.0.0                | 25.0.0       | Android SDK Build-Tools 25       
build-tools;25.0.1                | 25.0.1       | Android SDK Build-Tools 25.0.1   
build-tools;25.0.2                | 25.0.2       | Android SDK Build-Tools 25.0.2   
cmake;3.6.3155560                 | 3.6.3155560  | CMake 3.6.3155560                
docs                              | 1            | Documentation for Android SDK    
extras;android;gapid;3            | 3.1.0        | GPU Debugging tools              
extras;android;m2repository       | 43.0.0       | Android Support Repository       
extras;google;auto                | 1.1          | Android Auto Desktop Head Unit...
extras;google;play_billing        | 5            | Google Play Billing Library      
extras;google;simulators          | 1            | Android Auto API Simulators      
extras;google;webdriver           | 2            | Google Web Driver                
extras;m2reposi...ut;1.0.0-alpha9 | 1            | ConstraintLayout for Android 1...
extras;m2reposi...out;1.0.0-beta5 | 1            | ConstraintLayout for Android 1...
lldb;2.2                          | 2.2.3271982  | LLDB 2.2                         
ndk-bundle                        | 13.1.3345770 | NDK                              
patcher;v4                        | 1            | SDK Patch Applier v4             
platform-tools                    | 25.0.3       | Android SDK Platform-Tools       
platforms;android-24              | 2            | Android SDK Platform 24          
platforms;android-25              | 3            | Android SDK Platform 25                     
sources;android-25                | 1            | Sources for Android 25           
system-images;a...google_apis;x86 | 5            | Google APIs Intel x86 Atom Sys...
system-images;a...ult;armeabi-v7a | 5            | ARM EABI v7a System Image        
system-images;a...google_apis;x86 | 3            | Google APIs Intel x86 Atom Sys...
system-images;a...gle_apis;x86_64 | 3            | Google APIs Intel x86 Atom_64 ...
tools                             | 25.2.5       | Android SDK Tools 25.2.5         

Available Updates:
ID                         | Installed | Available
-------                    | -------   | -------  
extras;google;m2repository | 42        | 43       

因此,要更新包,您需要传递Path列下的完整值。例如,以下命令sdkmanager "platform-tools"将更新平台工具,因为Path列中没有版本。

但命令sdkmanager "build-tools"会抛出错误

  

错误:无法找到包构建工具

因此,您需要使用命令sdkmanager <foopackage>传递完整值以安装/更新软件包。

但是,如果您使用sdkmanager --update,它将为当前安装的所有软件包安装更新。