三星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步的步骤(以获得适当的皮肤)。 然后执行以下操作:

  1. 在Android虚拟设备pipe理器中,点击设备定义选项卡并按下“新设备”

  2. input名称“Samsung Galaxy SII”(名称必须与下列文件一致:如果更改,请确保对以下文件中的名称进行等同更改)。

  3. 填写屏幕大小,分辨率和RAM。 我们将重写内容,所以值并不重要,但正确的是:屏幕尺寸:4.3分辨率:480 x 800内存:1024密度:hdpibutton:硬件

  4. 点击创build设备,然后closuresAVDpipe理器

  5. 在您喜欢的XML编辑器中打开文件C:\ Users \ [用户名] \。android \ devices.xml

  6. 将名称为“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> 
  7. 重新打开AVDpipe理器并返回到设备定义选项卡,selectSamsung Galaxy SII设备并select创buildAVD。 按照您认为合适的名称命名,然后点击“确定”。 (再一次,我们将重写这个,所以不要太担心设置。)

  8. closuresAVDpipe理器并在您喜欢的文本编辑器中打开文件C:\ Users \ [用户名] \。android \ avd \ [avd name] \ config.ini

  9. 用下面的内容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 
  10. 您可能需要编辑最后3个条目以更改可用存储空间以及相机是如何更改的。 我发现,如果我把disk.dataPartition.size设置的大一些(16G),模拟器不能正常启动。 sdcard.size也是一样,可以大到32G。 如果您愿意,hw.camera.back可以设置为“无”或“仿真”。 同样,请检查hw.device.hash值是否与原始文件中的值相同。 如果不一样,文件将不起作用。

祝你好运。

执行以下操作以创build三星Galaxy S2皮肤:

  1. 从Samsung页面下载皮肤(按照anshumans发布的链接)
  2. 转到目录[Android-SDK directory]/platforms/android-10/skins
  3. 创build一个名为GALAXY_S2的新目录
  4. 从下载的ZIP文件中提取所有文件到新目录
  5. 编辑文件manifest.ini并将行api=9更改为api=10
  6. 启动AVD并点击“新build…”
  7. 在Tar​​get下select“Android 2.3.3 – API Level 10”
  8. 在“皮肤”下,从下拉列表中select“GALAXY_S2”
  9. 点击“创buildAVD”

您可能已经注意到,AVD将基于Android API 10级别。 因此,如果您select目标Android API级别16,Galaxy S2皮肤将不会显示。

三星在其开发者网站上有S II皮肤

虽然最高票数的答案是正确的,但你很可能最终会有一个解决scheme的显示问题,这将会伤害几乎所有你想testing/开发的应用程序。

为了解决这个特定的问题,你也需要改变这个设置:

 hw.lcd.density 

它位于AVD皮肤的hardware.ini中。 你可以在这里find它:

 <ANDROID_SDK_PATH>\sdk\platforms\android-<APIversion>\skins\<YourSkin>\hardware.ini 

300218

我不是盲目复制和粘贴的忠实粉丝; 最重要的答案是第二个参考,第二个参考第三个; 最后,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,那么过程如下:

  1. 决定你的目标Android的版本。 请注意,S2是在API级别9(姜饼)上发布的,皮肤反映了这一点。 后来的版本和更新包括API级别10,15和16.(根据维基百科 )。
  2. 哪里?? 是您在上述步骤1中select的目标,将下载的zip文件的内容提取到新的文件夹(例如Galaxy_S2 )下

      <ADT_HOME>\platforms\android-??\skins 
  3. 编辑提取的manifest.ini ,改变行api=9来反映它的当前位置(例如api=15 )。 (这实际上并不是必要的,但是直到我能确认为止。)
  4. 为每个您想要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-profilesreplace自动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理器

  1. select您刚创build的设备定义
  2. 点击创buildAVD …

要么

  1. 在虚拟设备选项卡上单击创build…
  2. select您在设备下创build的定义

然后

  1. 接受所有默认值,除非另有说明
  2. AVD名称 :AVD_for_Samsung_Galaxy_SII(或其他)
  3. 设备 :已经设置为您的设备定义的名称
  4. 目标 :select适当的API级别 – 我通常也将此添加到AVD名称
  5. CPU / ABI :ARM
  6. 键盘 :取消/禁用“硬件键盘存在”
  7. 皮肤 :Galaxy_S2(如果您在选定的目标API下提取皮肤)
  8. 后退摄像头 :networking摄像头 0(或其他什么;你在与它进行交互?)
  9. 内存 :如果在Windows上考虑降低到768
  10. 内部存储 :虽然SII有16GB和32GB两个品种,但考虑到200MiB。
  11. SD卡的大小 :保持空白,除非它是你的testing的一部分。 它越大,所需的资源就越多。 (考虑200MiB)

为了在Windows上更快地模拟,可以考虑在Windowsfunction中禁用HyperV并启用HAXM。 如果这样做,请更改以下内容:

  1. CPU / ABI :select任何英特尔

    仿真 :选中/启用“使用主机GPU”

点击OK。

<ANDROID_SDK_HOME>\avd\<AVD_NAME>.avd\config.ini反映您上面的所有设置(其中AVD_NAME是您在4中设置的内容)。 由劳埃德给出的例子只显示了一个区别skin.dynamic=yes – 虽然运行虽然我看不出差异。