三星Galaxy S II AVD(Android虚拟设备)基本设置?

时间:2012-05-17 18:48:49

标签: android avd galaxy

我想创建三星Galaxy S II的AVD。唯一的目的是使用它的默认Web浏览器测试网站,以查看它们在纵向和横向模式下的外观。

由于它现在是最受欢迎的Android智能手机,我想用我的网站进行测试。

我想知道最基本的设置,所以我至少可以得到一个粗略的想法。我正在使用带有GUI前端的Andriod SDK。

我正在寻找在Andriod虚拟设备管理器中点击“新建”后出现的那些设置。

例如:

目标: SD卡: 皮肤: 硬件: 提取LCD密度 最大VM应用程序堆大小 设备RAM大小

我尝试了三星的在线远程测试实验室,但我发现限制太多(似乎无法在某些端口关闭的互联网热点上使用它),启动速度慢,我最后还是以空白黑屏结束。所以,我真的更愿意将自己的版本作为AVD运行。

6 个答案:

答案 0 :(得分:53)

AVD管理器的界面已更改。因此,该过程需要进行更改。现在既有设备定义又有虚拟设备定义,而不是单个文件。不幸的是,用户界面无法完全控制其中的内容。

这些说明适用于Android SDK工具修订版21.它们引用了Windows 7路径。如果您使用的是其他操作系统,则需要确定文件所在的位置。

按照从mwalter到步骤6的步骤(以获得适当的皮肤)。然后执行以下操作:

  1. 在Android虚拟设备管理器中,点击设备定义标签,然后按“新设备”

  2. 输入名称“Samsung Galaxy SII”(名称必须精确才能使以下文件生效。如果更改,请务必对以下文件中的名称进行等效更改。)

  3. 填写屏幕尺寸,分辨率和RAM。我们将覆盖内容,因此值并不重要,但正确的是: 屏幕尺寸:4.3 分辨率:480 x 800 RAM:1024 密度:hdpi 按钮:硬件

  4. 点击创建设备,然后关闭AVD管理器

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

  6. 替换< 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>
    
  7. 重新打开AVD Manager并返回“设备定义”选项卡,选择Samsung Galaxy SII设备并选择“创建AVD”。根据您的需要命名并点击“确定”。 (同样,我们要覆盖它,所以不要过于担心设置。)

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

  9. 使用以下内容替换文件的内容:

    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设置为“None”或“Emulated”。同样,检查hw.device.hash值是否与原始文件中的值相同。如果不同,该文件将无效。

  11. 祝你好运。

答案 1 :(得分:32)

执行以下操作以创建Samsung Galaxy S2皮肤:

  1. 从三星页面下载皮肤(按照anshumans发布的链接)
  2. 转到目录[Android-SDK directory]/platforms/android-10/skins
  3. 创建名为GALAXY_S2
  4. 的新目录
  5. 将下载的ZIP文件中的所有文件解压缩到新目录
  6. 修改文件manifest.ini并将行api=9更改为api=10
  7. 启动AVD并点击&#34;新...&#34;
  8. 在Target select&#34; Android 2.3.3 - API Level 10&#34;
  9. 在皮肤下选择&#34; GALAXY_S2&#34;来自下拉列表
  10. 点击&#34;创建AVD&#34;
  11. 您可能已经注意到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,绝对不需要编辑文件。因此,我想我会发布一个更新和整合的解决方案。完全归功于anshumansmwalterLloyd和评论者

路径使用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. 确定您要定位的Android版本。请注意,S2在API级别9(Gingerbread)上发布,皮肤反映了这一点。后续版本和更新包括API级别10,15和16.(根据Wikipedia)。
  2. 如果??是您在上面的步骤1中选择的目标,请将下载的zip文件的内容解压缩到

    下的新文件夹(例如Galaxy_S2
      <ADT_HOME>\platforms\android-??\skins
    
  3. 修改提取的manifest.ini,更改行api=9以反映其当前位置(例如api=15)。 (这实际上似乎没有必要,但在我确认之前就会留下来。)
  4. 对于您要测试的每个版本重复步骤1-3。
  5. 设备定义

    在AVD Manager上选择设备定义选项卡,然后单击创建设备... 按钮。在“创建新设备”屏幕上,

    • 接受所有默认值,除非另有说明
    • 名称:三星Galaxy SII(或其他)
    • 屏幕尺寸:4.3(或I9210型号为4.5)
    • 分辨率:480x800
    • RAM :1024 MiB(或1 GiB)
    • 密度:hdpi
    • 按钮:硬件
    • 点击创建设备

    <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;

    Android虚拟设备(AVD)定义(最后)

    重新启动AVD Manager

    1. 选择刚刚创建的设备定义
    2. 点击创建AVD ...
      1. 单击“虚拟设备”选项卡上的创建...
      2. 选择您在设备
      3. 下创建的定义

        然后

        1. 接受所有默认值,除非另有说明
        2. AVD名称:AVD_for_Samsung_Galaxy_SII(或其他)
        3. 设备:已设置为您的设备定义
        4. 目标:选择合适的API级别 - 此时我通常会将此附加到AVD名称
        5. CPU / ABI :ARM
        6. 键盘:取消选中/停用&#39;硬件键盘&#39;
        7. 皮肤:Galaxy_S2(如果您在所选目标API下提取皮肤)
        8. 返回相机:Webcam0(或者其他什么;你在与它互动吗?)
        9. RAM :如果在Windows上,请考虑降低到768
        10. 内部存储:虽然SII有16GB和32GB两种,但考虑以200MiB的速度离开。
        11. SD卡大小:除非是您测试的一部分,否则请留空。它越大,所需的资源就越多。 (考虑200MiB)
        12. For faster emulation on Windows考虑​​禁用Windows功能中的HyperV并启用HAXM。如果您这样做,请更改以下内容:

          1. CPU / ABI :选择任何英特尔

            仿真:检查/启用&#39;使用主机GPU&#39;

          2. 单击“确定”。

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