如何根据AVD Manager中的设备定义从命令行创建AVD?

时间:2015-02-26 21:09:53

标签: android command-line avd

在AVD Manager gui中,我看到了一个设备定义列表,这些设备可以很容易地为设备配置给定的设置。

当我使用android list targets时,我会从设备定义中获得一组不同的结果。

是否可以通过命令行访问设备定义列表?如果是这样,我如何通过命令行基于一个设备构建设备?

更新

当您通过avd gui创建设备时,它会创建位于/.android/name-of-your-phone/Config.ini的配置文件您可以使用-prop示例-prop hw.sdCard=yes -prop sdcard.size=200M向新设备添加所需的设置选项,我使用-verbose标志运行完整命令,您可以看到它旋转的配置。令人讨厌的是,这些选项不是用逗号描述的,而是用于描述。

为我工作的完整命令是:

$ANDROID_HOME/tools/emulator -avd phone -gpu on -memory 3072 -prop hw.sdCard=yes -prop sdcard.size=200M -prop disk.dataPartition.size=200M

1 个答案:

答案 0 :(得分:0)

您所看到的(可能是在Android Studio中)已预先与IDE一起打包。如果您通过右键单击应用程序文件并选择“显示包内容”来查看Android Studio的应用程序文件(在Mac中):

应用▸AndroidStudio.app▸内容▸插件▸android▸lib▸器件艺术资源▸convice-art.xml

你会看到这样的事情:

...
<device id="galaxy_nexus" name="Galaxy Nexus">
    <orientation name="port" size="1101,1709" screenPos="192,213" screenSize="720,1280" shadow="port_shadow.png" back="port_back.png" lights="port_fore.png"/>
    <orientation name="land" size="1847,886" screenPos="304,68" screenSize="1280,720" shadow="land_shadow.png" back="land_back.png" lights="land_fore.png"/>
</device>
<device id="nexus_s" name="Nexus S">
    <orientation name="port" size="719,1139" screenPos="119,160" screenSize="480,800" shadow="port_shadow.png" back="port_back.png" lights="port_fore.png"/>
    <orientation name="land" size="1210,586" screenPos="208,44" screenSize="800,480" shadow="land_shadow.png" back="land_back.png" lights="land_fore.png"/>
</device>
...

此外,我在SDK文件夹中找到了ConfigGenerator.java类,该文件夹包含Java中所有这些预先打包的设备配置和定义。看一看,我认为这正是您可能正在寻找的。

android-sdks▸来源▸android-21▸com▸andor▸布局lIB▸桥▸密集▸设置▸ConfigGenerator.java

因此,您可能无法直接访问此专有的avd定义。但也许,您可以创建一个脚本并使用此文件作为基线来构建在顶层并从您自己的解决方案派生。

希望这有帮助。