这与"Uninstall old Android SDK versions"有关,除了我想在无头Linux CI服务器(磁盘空间不足)上进行此操作。
android
命令行工具是否提供了删除SDK旧版部分的选项?快速查看,唯一能删除的内容是AVD。我忽视了什么吗?
或者,我想我可以手动删除SDK_HOME下的内容。但删除哪些东西是安全的?其他候选人比这些?
platforms/
下的内容,例如android-3
和android-4
。docs
(800MB),samples
(300MB)system-images
怎么样?我需要吗? android-18/armeabi-v7a/
和android-18/x86/
如果我只想使用Gradle(和Ant)进行自动APK构建(没有模拟器的东西)?至少在完全删除docs
后,下次我运行android update sdk --no-ui
时,它又开始抓取它们了:
Downloading Documentation for Android SDK, API 19, revision 1
我可以避免update
添加我丢弃的SDK部分吗?
免责声明:是的,磁盘很便宜,我真的应该添加更多。但是现在在这个特定的服务器上(8.5G磁盘)我没有那个选项,但我还是想让它运行Android 19版本......
答案 0 :(得分:3)
除工具之外的任何东西都可以通常用
重新安装android list sdk -a
和
android update sdk --no-ui -a --filter <#index>
我会经常吹掉我的附加组件/构建工具/文件夹并重新安装我的附加组件/和构建工具/。如果你需要自动接受许可证,另外一个小技巧如下,至少如果你一次安装一个:
android update sdk --no-ui -a --filter <#index> 0<<EOF
y
EOF
&#34; android&#34;命令本身存在于&#34; SDK工具&#34;包或工具/目录,因此您无法删除它,因为这样您就无法安装其他任何内容。我通常也不会删除平台工具/,因为除非您正在安装新的/旧版本,否则您无法构建任何内容。如果您查看&lt; sdk-folder&gt; / SDK Readme.txt,您将在第一段中看到以下内容以确认:
欢迎使用Android SDK!
Android SDK档案最初只包含基本的SDK工具。它不包含Android平台或任何第三方库。事实上,它甚至没有开发应用程序所需的所有工具。
要开始开发应用程序,您必须使用SDK Manager安装Platform-tools和至少一个版本的Android平台。
答案 1 :(得分:2)
您似乎只需要下载所需的部件。在没有其他参数的情况下执行android update sdk --no-ui
会下载所有内容,因此非常耗时且浪费。
--filter
参数,用于确定所需的软件包,并在每次要进行更新时使用它们。有关如何执行此操作的更详细说明here(甚至更多关于android
命令here)。
如果定期更改所需的组件(例如,定位到不同的平台),您可以创建一个脚本,删除不需要的各种文件夹下的组件(例如android-sdk-linux/platforms
下的API),然后重新只使用您想要的组件进行创建。
android list sdk -e
命令将提供可与--filter
参数一起使用的扩展包列表,因此只允许安装特定组件。
在审核an excellent answer自动方式使用expect
命令自动接受许可提示后,我最终安装并更新了我需要的组件,而没有下载其他所有内容(在Ubuntu上) ):
expect -c '
set timeout -1;
spawn /opt/android-sdk-linux/tools/android update sdk --no-ui --filter tools,build-tools-20.0.0,platform-tools,android-16,extra-android-support,extra-android-m2repository;
expect {
"Do you accept the license" { exp_send "y\r" ; exp_continue }
eof
}
'
请注意使用tools,build-tools-20.0.0,platform-tools,android-16,extra-android-support,extra-android-m2repository
参数指定的组件--filter
,这些组件将下载限制为这些部分。
运行此脚本一次只下载这些组件。再次运行确定不需要更新,但确实给出了一组令人困惑的消息:
Error: Ignoring unknown package filter 'tools'
Error: Ignoring unknown package filter 'build-tools-20.0.0'
Error: Ignoring unknown package filter 'platform-tools'
Error: Ignoring unknown package filter 'android-16'
Error: Ignoring unknown package filter 'extra-android-support'
Error: Ignoring unknown package filter 'extra-android-m2repository'
Warning: The package filter removed all packages. There is nothing to install.
Please consider trying to update again without a package filter.
这些消息只表示没有更新任何内容 - --filter
规范中包含的组件实际上并未卸载。
答案 2 :(得分:1)
根据我能够收集的内容,您只需删除/platforms
/skins
和/system-images