如何根据AVD管理器中的设备定义从命令行创建AVD



在AVD管理器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

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

应用程序▸安卓Studio.app▸目录▸插件▸安卓▸lib▸设备艺术资源▸device-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 SDK▸来源▸雄性-21▸com▸安卓▸布局库▸桥▸密集的▸设置▸ConfigGenerator.java

话虽如此,您可能无法直接使用此专有的avd定义。但也许,您可以创建一个脚本,并将此文件用作基线,在上面构建并派生您自己的解决方案。

希望这能有所帮助。

最新更新