使用'android'命令行实用程序定位特定的系统映像版本?

5 macos scripting android android-emulator

背景:我创建了一个无头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.

我想避免在运行时做一个基于grep的解决方案android list sdk,而不是看起来它似乎是一个选项(android list sdk | grep 'API 16'没有结果).

我看的是XML文件androidCLI实用程序调用来枚举它的软件包列表(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激动+ 90围绕现有的实用程序选项.

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

我错过了一个标志或使用了错误的包名吗?如果是这样,我错过了哪些文档来源?我怎么能在将来为自己解决这个问题?

avh*_*avh 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
Run Code Online (Sandbox Code Playgroud)

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

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