我想创建三星Galaxy S II的AVD。唯一的目的是使用它的默认Web浏览器测试网站,以查看它们在纵向和横向模式下的外观。
由于它现在是最受欢迎的Android智能手机,我想用我的网站进行测试。
我想知道最基本的设置,所以我至少可以得到一个粗略的想法。我正在使用带有GUI前端的Andriod SDK。
我正在寻找在Andriod虚拟设备管理器中点击“新建”后出现的那些设置。
例如:
目标: SD卡: 皮肤: 硬件: 提取LCD密度 最大VM应用程序堆大小 设备RAM大小
等
我尝试了三星的在线远程测试实验室,但我发现限制太多(似乎无法在某些端口关闭的互联网热点上使用它),启动速度慢,我最后还是以空白黑屏结束。所以,我真的更愿意将自己的版本作为AVD运行。
答案 0 :(得分:53)
AVD管理器的界面已更改。因此,该过程需要进行更改。现在既有设备定义又有虚拟设备定义,而不是单个文件。不幸的是,用户界面无法完全控制其中的内容。
这些说明适用于Android SDK工具修订版21.它们引用了Windows 7路径。如果您使用的是其他操作系统,则需要确定文件所在的位置。
按照从mwalter到步骤6的步骤(以获得适当的皮肤)。然后执行以下操作:
在Android虚拟设备管理器中,点击设备定义标签,然后按“新设备”
输入名称“Samsung Galaxy SII”(名称必须精确才能使以下文件生效。如果更改,请务必对以下文件中的名称进行等效更改。)
填写屏幕尺寸,分辨率和RAM。我们将覆盖内容,因此值并不重要,但正确的是: 屏幕尺寸:4.3 分辨率:480 x 800 RAM:1024 密度:hdpi 按钮:硬件
点击创建设备,然后关闭AVD管理器
在您喜欢的XML编辑器中打开文件C:\ Users \ [用户名] \ .android \ devices.xml
替换< d:device> ...< / d:device>具有以下名称的“Samsung Galaxy SII”元素:
<d:device>
<d:name>Samsung Galaxy SII</d:name>
<d:manufacturer>Samsung</d:manufacturer>
<d:meta/>
<d:hardware>
<d:screen>
<d:screen-size>normal</d:screen-size>
<d:diagonal-length>4.30</d:diagonal-length>
<d:pixel-density>hdpi</d:pixel-density>
<d:screen-ratio>long</d:screen-ratio>
<d:dimensions>
<d:x-dimension>480</d:x-dimension>
<d:y-dimension>800</d:y-dimension>
</d:dimensions>
<d:xdpi>216.97</d:xdpi>
<d:ydpi>216.97</d:ydpi>
<d:touch>
<d:multitouch>jazz-hands</d:multitouch>
<d:mechanism>finger</d:mechanism>
<d:screen-type>capacitive</d:screen-type>
</d:touch>
</d:screen>
<d:networking>
Bluetooth
<!--NFC (put this back in if you have an S2 model that supports NFC-->
Wifi
</d:networking>
<d:sensors>
Compass
Accelerometer
GPS
ProximitySensor
LightSensor
Gyroscope
</d:sensors>
<d:mic>true</d:mic>
<d:camera>
<d:location>back</d:location>
<d:autofocus>true</d:autofocus>
<d:flash>true</d:flash>
</d:camera>
<d:keyboard>nokeys</d:keyboard>
<d:nav>nonav</d:nav>
<d:ram unit="GiB">1</d:ram>
<d:buttons>hard</d:buttons>
<d:internal-storage unit="GiB">16</d:internal-storage>
<d:removable-storage unit="GiB">32</d:removable-storage>
<d:cpu>Generic CPU</d:cpu>
<d:gpu>Generic GPU</d:gpu>
<d:abi>
armeabi-v7a
armeabi
</d:abi>
<d:dock/>
<d:power-type>battery</d:power-type>
</d:hardware>
<d:software>
<d:api-level>10-</d:api-level>
<d:live-wallpaper-support>true</d:live-wallpaper-support>
<d:bluetooth-profiles>
HSP
HFP
A2DP
AVRCP
OPP
PBAP
HID
</d:bluetooth-profiles>
<d:gl-version>2.0</d:gl-version>
<d:gl-extensions>
<!-- No clue why the tool is unhappy declaring these, but it is. (Doesn't complain about their presence in the 'official' devices.) Comment them out for now.
GL_OES_rgb8_rgba8
GL_OES_depth24
GL_OES_vertex_half_float
GL_OES_texture_float
GL_OES_texture_half_float
GL_OES_element_index_uint
GL_OES_mapbuffer
GL_OES_fragment_precision_high
GL_OES_compressed_ETC1_RGB8_texture
GL_OES_EGL_image
GL_OES_EGL_image_external
GL_OES_required_internalformat
GL_OES_depth_texture
GL_OES_get_program_binary
GL_OES_packed_depth_stencil
GL_OES_standard_derivatives
GL_OES_vertex_array_object
GL_OES_egl_sync
GL_EXT_multi_draw_arrays
GL_EXT_texture_format_BGRA8888
GL_EXT_discard_framebuffer
GL_EXT_shader_texture_lod
GL_IMG_shader_binary
GL_IMG_texture_compression_pvrtc
GL_IMG_texture_npot
GL_IMG_texture_format_BGRA8888
GL_IMG_read_format
GL_IMG_program_binary
GL_IMG_multisampled_render_to_texture
-->
</d:gl-extensions>
<d:status-bar>true</d:status-bar>
</d:software>
<d:state default="true" name="Portrait">
<d:description>The device in portrait orientation</d:description>
<d:screen-orientation>port</d:screen-orientation>
<d:keyboard-state>keyssoft</d:keyboard-state>
<d:nav-state>nonav</d:nav-state>
</d:state>
<d:state name="Landscape">
<d:description>The device in landscape orientation</d:description>
<d:screen-orientation>land</d:screen-orientation>
<d:keyboard-state>keyssoft</d:keyboard-state>
<d:nav-state>nonav</d:nav-state>
</d:state>
</d:device>
重新打开AVD Manager并返回“设备定义”选项卡,选择Samsung Galaxy SII设备并选择“创建AVD”。根据您的需要命名并点击“确定”。 (同样,我们要覆盖它,所以不要过于担心设置。)
关闭AVD管理器并在您喜欢的文本编辑器中打开文件C:\ Users \ [用户名] \ .android \ avd \ [avd name] \ config.ini
使用以下内容替换文件的内容:
avd.ini.encoding=ISO-8859-1
abi.type=armeabi
hw.accelerometer=yes
hw.audioInput=yes
hw.battery=yes
hw.cpu.arch=arm
hw.device.hash=-1902399403
hw.device.manufacturer=Samsung
hw.device.name=Samsung Galaxy SII
hw.dPad=no
hw.gps=yes
hw.gsmModem=yes
hw.keyboard=no
hw.lcd.density=240
hw.mainKeys=yes
hw.ramSize=1024M
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.touchScreen=yes
hw.trackBall=no
image.sysdir.1=platforms\android-10\images\
skin.dynamic=yes
skin.name=galaxy_s2
skin.path=platforms\android-10\skins\GALAXY_S2
vm.heapSize=32
disk.dataPartition.size=2G
hw.camera.back=webcam0
sdcard.size=200M
您可能需要编辑最后3个条目以更改可用存储空间以及相机的更改方式。我发现如果我使disk.dataPartition.size尽可能大(16G),模拟器就无法正常启动。 sdcard.size也是一样,可以大到32G。如果您愿意,可以将hw.camera.back设置为“None”或“Emulated”。同样,检查hw.device.hash值是否与原始文件中的值相同。如果不同,该文件将无效。
答案 1 :(得分:32)
执行以下操作以创建Samsung Galaxy S2皮肤:
[Android-SDK directory]/platforms/android-10/skins
manifest.ini
并将行api=9
更改为api=10
您可能已经注意到AVD将基于Android API 10级别。因此,如果您选择目标Android API等级16,Galaxy S2皮肤将无法显示。
答案 2 :(得分:16)
三星在其开发者网站here
上拥有S II皮肤答案 3 :(得分:1)
您可以从Samsung的开发站点http://developer.samsung.com/technical-doc/view.do?v=T000000075&pi=1&ps=10&pb=Y&ct=CT350000&sc=
下载并添加s2模拟器还有关于如何使用它们的详细说明 - http://developer.samsung.com/technical-doc/view.do?v=T000000095
答案 4 :(得分:0)
虽然最高投票的答案是正确的,但您很可能最终会出现解决方案显示问题,几乎会损害您想要测试/开发的任何应用程序。
为了解决该特定问题,您还需要更改此设置:
hw.lcd.density
位于AVD皮肤的hardware.ini中。你可以在这里找到它:
<ANDROID_SDK_PATH>\sdk\platforms\android-<APIversion>\skins\<YourSkin>\hardware.ini
从 300 到 218 。
答案 5 :(得分:0)
我不是盲目复制粘贴的忠实粉丝;另外,最上面的答案是第2个,而第2个则是第3个;最后,SDK Tools v24.1.2中有一些新的变化,这意味着如果你没有测试BlueTooth,绝对不需要编辑文件。因此,我想我会发布一个更新和整合的解决方案。完全归功于anshumans,mwalter,Lloyd和评论者
路径使用Windows约定。 OS X / Linux用户通常只需将反斜杠(\)切换为正斜杠(/),安装文件夹除外。您的系统可能会也可能不会设置这些环境变量:
<ADT_HOME>
是AVD Manager.exe
的位置(默认为C:\Program Files (x86)\Android\android-sdk
)
<ANDROID_SDK_HOME>
是AVD用于存储设备定义的.android
文件夹的位置(默认为HOMEPATH
[与您的SDK的位置无关]] )
Samsung's developer's site包含许多皮肤的链接,包括S2;它还有使用Eclipse the ADT Plugin安装它们的说明,这是不必要的,并由Android Studio取代。要获得S2皮肤,请使用Samsung页面上的链接,然后使用软盘符号(or just click here)单击Zip文件。
如果您没有使用Samsung的说明与Eclipse一起安装,则程序为:
如果??
是您在上面的步骤1中选择的目标,请将下载的zip文件的内容解压缩到
Galaxy_S2
)
<ADT_HOME>\platforms\android-??\skins
manifest.ini
,更改行api=9
以反映其当前位置(例如api=15
)。 (这实际上似乎没有必要,但在我确认之前就会留下来。)在AVD Manager上选择设备定义选项卡,然后单击创建设备... 按钮。在“创建新设备”屏幕上,
<ANDROID_SDK_HOME>\.android\devices.xml
将使用您的新设备定义进行更新。
作为一般规则,除非您基于它创建了大量AVD,否则您无法必须手动编辑devices.xml
中的条目。另请注意,许多与SII硬件匹配的编辑实际上没有净结果。如果您希望编辑,请先关闭AVD Manager(如果适用,请关闭Eclipse IDE)。
使用d:device
<d:name>Samsung Galaxy SII</d:name>
的节点
d:manufacturer
(可选)将值从用户更改为三星d:networking
(可选)删除/注释掉NFC(例如<!-- NFC -->
),除非您要对包含它的稀有模型进行测试d:sensors
删除晴雨表线d:internal-storage
(可选)将值从4更改为16(或32),但在创建AVD时无论如何都会被忽略d:removable-storage
无需添加此项,因为它被忽略d:abi
无需削减,因为它被忽略 d:bluetooth-profiles
用
<d:bluetooth-profiles>
HSP
HFP
A2DP
AVRCP
OPP
PBAP
HID
</d:bluetooth-profiles>
d:status-bar
将值更改为true
d:nav-state
将两个条目(在纵向和横向下)更改为&#39; nonav&#39; 重新启动AVD Manager
或
然后
For faster emulation on Windows考虑禁用Windows功能中的HyperV并启用HAXM。如果您这样做,请更改以下内容:
CPU / ABI :选择任何英特尔
仿真:检查/启用&#39;使用主机GPU&#39;
单击“确定”。
<ANDROID_SDK_HOME>\avd\<AVD_NAME>.avd\config.ini
反映了上面的所有设置(其中AVD_NAME
是您在4.中设置的内容)。 lloyd给出的示例只显示了skin.dynamic=yes
的一个区别 - 运行时我看不出差异。