5

背景:我创建了一个无头 OSX 工作站引导脚本,它android-sdk通过自制软件安装并设置了 Chef-solo 环境。我之所以提到这一点,是因为任何明智的工具/可预测命名的远程托管文件都在桌面上以寻求解决方案。

我的问题:我需要 Android API 16 系统映像,但我似乎无法使用androidCLI 实用程序找到正确的标志/包命名空间。我能够使用 安装 4.1.2/API 16 SDK 平台android update sdk -u --filter android-16,但我仍然需要系统映像进行仿真。

android update sdk -u --filter system-image安装 API 17/4.2.2。

我想避免在 running 上做一个基于 grep 的解决方案android list sdk,而不是它似乎是一个选项(android list sdk | grep 'API 16'不结果)。

我查看了androidCLI 实用程序调用以枚举其包列表的 XML 文件(http://dl-ssl.google.com/android/repository/sys-img/x86/sys-img.xml)并找到了链接到我认为我想要的文件,http://dl-ssl.google.com/android/repository/sys-img/x86/sysimg_x86-16_r01.zip,但我对解析 XML 不感兴趣 + go围绕现有的实用程序选项。

我已经看过其他 SO 帖子,虽然它很有帮助,但它并没有完全涵盖我正在尝试做的事情。

我是否缺少标志或使用了错误的包名称?如果是这样,我错过了哪些文档来源?我将来如何为自己解决这个问题?

4

2 回答 2

7

您现在可以使用单独的包标识符。对于您的情况,以下之一:

echo y | android update sdk --no-ui --filter sys-img-x86-android-16 --all
echo y | android update sdk --no-ui --filter sys-img-armeabi-v7a-android-16 --all
echo y | android update sdk --no-ui --filter sys-img-mips-android-16 --all

--all是必要的,因为没有它,android即使它们与过滤器匹配,也会忽略它认为旧的包。

您可以找到标识符列表android list sdk --extended --all

于 2014-09-26T18:42:02.530 回答
2

一个略显老套的解决方案,但可以这样做——顺序在 CLI 命令的运行中很重要。

获取 Android API 16、4.1.2 SDK 平台:

echo -ne 'y' | android update sdk -u --filter android-16

如果未安装 API 17,请立即安装系统映像。从表面上看,这将遵循最新版本的 SDK 平台工具碰巧在盒子上响应:

echo -ne 'y' | android update sdk -u --filter system-image

如果您需要 API 17,请安装 android-17,然后运行 ​​system-image install 命令。

于 2013-05-28T21:37:52.713 回答