如何基于 AVD 管理器中的设备定义通过命令行创建 Android 虚拟设备?

3

在 AVD 管理器的图形用户界面中,我可以看到设备定义列表,这些定义使得根据给定设置为设备分配资源变得更加容易。

当使用 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
你看到的这些(可能是在Android Studio中)是预装在IDE中的。如果你在Mac上查看Android Studio的应用程序文件,可以右键单击应用程序文件并选择“显示包内容”:

Applications ▸ Android Studio.app ▸ Contents ▸ plugins ▸ android ▸ lib ▸ device-art-resources ▸ 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-sdks ▸ sources ▸ android-21 ▸ com ▸ android ▸ layoutlib ▸ bridge ▸ intensive ▸ setup ▸ ConfigGenerator.java 话虽如此,您可能无法直接访问使用此专有的AVD定义。但也许,您可以创建一个脚本,并使用此文件作为基线来构建并得出自己的解决方案。
希望这可以帮助到您。

那些只是皮肤...我更好奇他们在哪里隐藏了这些设备定义的配置。 - Joe Susnick
啊!在SDK文件夹中还发现了另一个Java类,其中包含这些预装电话及其属性初始化的可疑实现。我更新了答案。 - serkanozel
我猜最终正确的答案是没有很好的方法来做到这一点。谢天谢地,我找到了一个解决方法。 - Joe Susnick
是的,我同意。抱歉Joe,这就是我在这个主题上能找到的全部内容。 - serkanozel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接