Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在命令行上卸载Android SDK的选定部分_Android_Command Line_Continuous Integration_Android Build - Fatal编程技术网

在命令行上卸载Android SDK的选定部分

在命令行上卸载Android SDK的选定部分,android,command-line,continuous-integration,android-build,Android,Command Line,Continuous Integration,Android Build,除了我想在无头LinuxCI服务器(磁盘空间不足)上做这件事之外,这与 android命令行工具是否提供了删除SDK旧部分的选项?快速查看,它只能删除AVD。我忽略了什么吗 或者,我想我可以手动删除SDK_主页下的内容。但哪些内容可以安全删除?除了这些,还有其他候选人吗 我只需要支持API级别14及以上,所以我想我可以删除 在platforms/下的东西,比如android-3和android-4 文档(800MB)、样本(300MB) 系统映像如何?如果我只想使用Gradle(和Ant)进行

除了我想在无头LinuxCI服务器(磁盘空间不足)上做这件事之外,这与

android命令行工具是否提供了删除SDK旧部分的选项?快速查看,它只能删除AVD。我忽略了什么吗

或者,我想我可以手动删除SDK_主页下的内容。但哪些内容可以安全删除?除了这些,还有其他候选人吗

  • 我只需要支持API级别14及以上,所以我想我可以删除 在
    platforms/
    下的东西,比如
    android-3
    android-4
  • 文档
    (800MB)、
    样本
    (300MB)
  • 系统映像如何?如果我只想使用Gradle(和Ant)进行自动APK构建(无仿真程序),我是否需要例如
    android-18/armeabi-v7a/
    android-18/x86/
至少在完全删除
文档
后,下次我运行
android update sdk--无ui
时,它再次开始获取它们:

   Downloading Documentation for Android SDK, API 19, revision 1
我可以避免
update
重新添加我扔掉的SDK部分吗


免责声明:是的,磁盘很便宜,我真的应该添加更多。但是现在在这个特定的服务器(8.5G磁盘)上,我没有这个选项,但我仍然希望让它运行Android 19版本…

似乎您只需要下载所需的部分。做一个
android更新sdk——没有其他参数的ui
下载所有东西,这既耗时又浪费

--filter
参数用于确定所需的软件包,并在每次更新时使用它们。关于如何做到这一点,有更详细的解释(甚至更多关于
android
命令)

如果定期更改所需的组件(例如,针对不同的平台),您可以创建一个脚本,删除不同文件夹下不需要的组件(例如,
android sdk linux/platforms
下的api),然后仅使用所需的组件重新创建

android list sdk-e
命令将提供可与
--filter
参数一起使用的扩展包列表,因此只允许安装特定组件

在回顾了使用
expect
命令自动接受许可证提示的自动方法之后,我最终使用该命令来安装和更新我需要的组件,而无需下载其他所有内容(在Ubuntu上):

注意组件
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
规范中包含的组件实际上没有卸载。

除了工具以外的任何东西都可以通过

android list sdk -a

android更新sdk——无ui-a——过滤器
我会经常清理我的加载项/和构建工具/文件夹,然后重新安装我的加载项/和构建工具/。如果您需要自动接受许可证,另一个小技巧如下,至少如果您一次安装一个许可证:

android update sdk --no-ui -a --filter <#index> 0<<EOF
y
EOF

android update sdk——无ui-a——过滤器0根据我收集到的信息,您只需删除
/platforms
/skins
/system images

中的目录,不确定您是在使用Windows还是Linux(或其他)问题的第一句话:“[…]在无头Linux CI服务器上”
android update sdk --no-ui -a --filter <#index>
android update sdk --no-ui -a --filter <#index> 0<<EOF
y
EOF