三星Galaxy S II的AVD(Android虚拟设备)的基本设置?
我想创build一个三星Galaxy S II的AVD。 唯一的目的是testing网站的默认网页浏览器,看看他们在纵向和横向模式。
因为它现在是最stream行的Android智能手机,我想用我的网站进行testing。
我只想知道最基本的设置,所以我可以得到至less一个粗略的想法。 我在GUI前端使用Andriod SDK。
我正在查找在Andriod虚拟设备pipe理器中单击“新build”后出现的那些设置。
例如:
目标:SD卡:皮肤:硬件:抽象LCD密度最大VM应用程序堆大小设备RAM大小
等等。
我尝试过三星的在线远程testing实验室,但是我发现这个实验太严格了(似乎无法在有某些端口closures的互联网热点上使用它),启动速度慢,而且我最后还是留下了空白的黑屏。 所以,我真的更喜欢把我自己的版本作为AVD来运行。
AVDpipe理器的接口已更改。 所以这个过程需要改变。 现在既有设备定义又有虚拟设备定义,而不是单个文件。 不幸的是,用户界面不能完全控制其中的内容。
这些说明适用于Android SDK工具修订版21.它们引用了Windows 7path。 如果您使用的是不同的操作系统,则需要确定文件的位置。
按照从mwalter到第6步的步骤(以获得适当的皮肤)。 然后执行以下操作:
-
在Android虚拟设备pipe理器中,点击设备定义选项卡并按下“新设备”
-
input名称“Samsung Galaxy SII”(名称必须与下列文件一致:如果更改,请确保对以下文件中的名称进行等同更改)。
-
填写屏幕大小,分辨率和RAM。 我们将重写内容,所以值并不重要,但正确的是:屏幕尺寸:4.3分辨率:480 x 800内存:1024密度:hdpibutton:硬件
-
点击创build设备,然后closuresAVDpipe理器
-
在您喜欢的XML编辑器中打开文件C:\ Users \ [用户名] \。android \ devices.xml
-
将名称为“Samsung Galaxy SII”的<d:device> … </ d:device>元素replace为以下内容:
<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>
-
重新打开AVDpipe理器并返回到设备定义选项卡,selectSamsung Galaxy SII设备并select创buildAVD。 按照您认为合适的名称命名,然后点击“确定”。 (再一次,我们将重写这个,所以不要太担心设置。)
-
closuresAVDpipe理器并在您喜欢的文本编辑器中打开文件C:\ Users \ [用户名] \。android \ avd \ [avd name] \ config.ini
-
用下面的内容replace文件的内容:
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可以设置为“无”或“仿真”。 同样,请检查hw.device.hash值是否与原始文件中的值相同。 如果不一样,文件将不起作用。
祝你好运。
执行以下操作以创build三星Galaxy S2皮肤:
- 从Samsung页面下载皮肤(按照anshumans发布的链接)
- 转到目录
[Android-SDK directory]/platforms/android-10/skins
- 创build一个名为GALAXY_S2的新目录
- 从下载的ZIP文件中提取所有文件到新目录
- 编辑文件
manifest.ini
并将行api=9
更改为api=10
- 启动AVD并点击“新build…”
- 在Target下select“Android 2.3.3 – API Level 10”
- 在“皮肤”下,从下拉列表中select“GALAXY_S2”
- 点击“创buildAVD”
您可能已经注意到,AVD将基于Android API 10级别。 因此,如果您select目标Android API级别16,Galaxy S2皮肤将不会显示。
三星在其开发者网站上有S II皮肤
您可以从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
虽然最高票数的答案是正确的,但你很可能最终会有一个解决scheme的显示问题,这将会伤害几乎所有你想testing/开发的应用程序。
为了解决这个特定的问题,你也需要改变这个设置:
hw.lcd.density
它位于AVD皮肤的hardware.ini中。 你可以在这里find它:
<ANDROID_SDK_PATH>\sdk\platforms\android-<APIversion>\skins\<YourSkin>\hardware.ini
从300到218 。
我不是盲目复制和粘贴的忠实粉丝; 最重要的答案是第二个参考,第二个参考第三个; 最后,SDK Tools v24.1.2有了一些新的变化,这意味着如果你没有testingBlueTooth, 绝对不需要文件编辑 。 因此,我想我会发布一个更新和整合的解决scheme。 充分信任anshumans , mwalter , 劳埃德和评论者
path使用Windows约定。 除安装文件夹之外,OS X / Linux用户通常可以将反斜杠(\)转换为正斜杠(/)。 这些环境variables可能会或可能不会在您的系统上设置:
<ADT_HOME>
是AVD Manager.exe
的位置(默认为C:\Program Files (x86)\Android\android-sdk
)
<ANDROID_SDK_HOME>
是AVD用于存储设备定义的.android
文件夹的位置(默认为HOMEPATH
[与您的SDK的位置无关)])
三星皮肤
三星的开发者网站包含了许多皮肤的链接,包括S2; 它还提供了使用Eclipse和ADT插件安装它们的说明,这是不必要的,并由Android Studio取代。 要获得S2皮肤,请使用三星页面上的链接,然后点击带有软盘符号的Zip文件( 或者点击此处 )。
如果您没有使用Samsung的说明来安装Eclipse,那么过程如下:
- 决定你的目标Android的版本。 请注意,S2是在API级别9(姜饼)上发布的,皮肤反映了这一点。 后来的版本和更新包括API级别10,15和16.(根据维基百科 )。
-
哪里
??
是您在上述步骤1中select的目标,将下载的zip文件的内容提取到新的文件夹(例如Galaxy_S2
)下<ADT_HOME>\platforms\android-??\skins
- 编辑提取的
manifest.ini
,改变行api=9
来反映它的当前位置(例如api=15
)。 (这实际上并不是必要的,但是直到我能确认为止。) - 为每个您想要testing的版本重复步骤1-3。
设备定义
selectAVDpipe理器上的设备定义选项卡,然后单击创build设备…button。 在创build新设备屏幕上,
- 接受所有默认值,除非另有说明
- 名称 :三星Galaxy SII(或其他)
- 屏幕尺寸 :4.3(或I9210型号为4.5)
- 分辨率 :480×800
- RAM :1024 MiB(或1 GiB)
- 密度 :hdpi
- button :硬件
- 点击创build设备
<ANDROID_SDK_HOME>\.android\devices.xml
将更新您的新设备定义。
一般来说,除非您基于此创build大量的AVD,否则您无需手动编辑devices.xml
条目。 还要注意,许多编辑提出的匹配SII的硬件实际上没有净结果。 如果你想编辑,首先closuresAVDpipe理器(如果适用的话,Eclipse IDE)。
-
使用
<d:name>Samsung Galaxy SII</d:name>
find您刚创build的d:device
的节点-
d:manufacturer
(可选)将用户的值更改为三星 -
d:networking
(可选)删除/注释掉NFC(例如<!-- NFC -->
),除非您要testing包含它的罕见型号 -
d:sensors
删除晴雨表线 -
d:internal-storage
(可选)将值从4更改为16(或32),但在创buildAVD时却被忽略 -
d:removable-storage
不需要添加,因为它被忽略 -
d:abi
没有必要削减这个,因为它被忽略了 -
d:bluetooth-profiles
replace自动closures标签<d:bluetooth-profiles> HSP HFP A2DP AVRCP OPP PBAP HID </d:bluetooth-profiles>
-
d:status-bar
更改值为true -
d:nav-state
将两个条目(在纵向和横向下)更改为“nonav”
-
Android虚拟设备(AVD)的定义(最后)
重新启动AVDpipe理器
- select您刚创build的设备定义
- 点击创buildAVD …
要么
- 在虚拟设备选项卡上单击创build…
- select您在设备下创build的定义
然后
- 接受所有默认值,除非另有说明
- AVD名称 :AVD_for_Samsung_Galaxy_SII(或其他)
- 设备 :已经设置为您的设备定义的名称
- 目标 :select适当的API级别 – 我通常也将此添加到AVD名称
- CPU / ABI :ARM
- 键盘 :取消/禁用“硬件键盘存在”
- 皮肤 :Galaxy_S2(如果您在选定的目标API下提取皮肤)
- 后退摄像头 :networking摄像头 0(或其他什么;你在与它进行交互?)
- 内存 :如果在Windows上考虑降低到768
- 内部存储 :虽然SII有16GB和32GB两个品种,但考虑到200MiB。
- SD卡的大小 :保持空白,除非它是你的testing的一部分。 它越大,所需的资源就越多。 (考虑200MiB)
为了在Windows上更快地模拟,可以考虑在Windowsfunction中禁用HyperV并启用HAXM。 如果这样做,请更改以下内容:
-
CPU / ABI :select任何英特尔
仿真 :选中/启用“使用主机GPU”
点击OK。
<ANDROID_SDK_HOME>\avd\<AVD_NAME>.avd\config.ini
反映您上面的所有设置(其中AVD_NAME
是您在4中设置的内容)。 由劳埃德给出的例子只显示了一个区别skin.dynamic=yes
– 虽然运行虽然我看不出差异。
- Android:以编程方式向线性布局添加文本视图
- 用于EditText的自定义剪切/复制操作栏,显示文本select手柄
- 如何使用Holo.Light主题,并在预蜂窝设备上回到“轻”?
- 我怎样才能在Android上以编程方式closures3G /数据?
- Android Volley中的http状态码,当error.networkResponse为null时
- Java代码中的“android:fontFamily =”sans-serif-light“相当于什么?
- Android的 – 如何用另一个stringreplace部分string?
- Android CollapsingToolbarLayout折叠监听器
- 以编程方式滚动到Android ListView中的特定位置