Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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 使用';安卓&x27;命令行实用程序?_Android_Macos_Scripting_Android Emulator - Fatal编程技术网

Android 使用';安卓&x27;命令行实用程序?

Android 使用';安卓&x27;命令行实用程序?,android,macos,scripting,android-emulator,Android,Macos,Scripting,Android Emulator,背景:我创建了一个无头OSX工作站引导脚本,它通过安装AndroidSDK,并设置一个Chef solo环境。我之所以提到这一点,是因为任何合理的工具/可预测命名的远程托管文件都可以提供解决方案 我的问题是: 我需要Android API 16系统映像,但似乎无法使用AndroidCLI实用程序找到正确的标志/包名称空间。我能够使用android update SDK-u--filter android-16安装4.1.2/API 16 SDK平台,但我仍然需要系统映像进行仿真 android更

背景:我创建了一个无头OSX工作站引导脚本,它通过安装
AndroidSDK
,并设置一个Chef solo环境。我之所以提到这一点,是因为任何合理的工具/可预测命名的远程托管文件都可以提供解决方案

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

android更新sdk-u——过滤系统映像
安装API 17/4.2.2

我希望避免在运行
android list sdk
时使用基于grep的解决方案,但这似乎不是一种选择(
android list sdk | grep'API 16'
没有结果)

我已经查看了
android
CLI实用程序调用以枚举其包列表()的XML文件,并找到了指向我认为需要的文件的链接,但我对parse XML+绕过现有实用程序选项并不感到兴奋

我已经看到了,虽然它很有帮助,但它并没有完全涵盖我正在尝试做的事情


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

这是一个有点粗俗的解决方案,但下面是如何做到的——在运行CLI命令时,顺序很重要

获取Android API 16,4.1.2 SDK平台:

echo-ne'y'| android更新sdk-u——过滤android-16

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

echo-ne'y'| android更新sdk-u——过滤系统映像


如果需要API 17,请安装android-17,然后运行系统映像安装命令

您现在可以使用单个包标识符。对于您的情况,请选择以下选项之一:

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
将忽略它认为旧的包,即使它们与过滤器匹配


您可以使用
androidlistsdk--extended--all

找到一个标识符列表;感谢您抽出时间添加答案。我接受了你的回答,以帮助未来的观众。我会在下面留下我的答案,以防这个选项被恢复,失效,或者有人使用旧版本的android工具。