【问题标题】:How "good" is the Android Emulator? [closed]Android 模拟器有多“好”? [关闭]
【发布时间】:2010-03-01 13:59:54
【问题描述】:

正如标题所说,Android 模拟器有多“好”?

我没有安卓手机,但能不能单纯用模拟器做测试环境来开发?

我最初的问题:

  • 模拟器是否像普通的安卓手机一样响应迅速(当然这取决于具体的手机,但一般来说)?
  • 有没有办法控制模拟器上的内存?
  • 是否有人遇到过在手机上被标记但在模拟器上没有被标记的问题?反之亦然?
  • 您的正常测试程序是在整个过程中进行测试,还是在模拟器上进行递归测试并在最后进行电话测试?

我们将不胜感激。

谢谢,

【问题讨论】:

    标签: android testing android-emulator


    【解决方案1】:

    问:模拟器是否像普通的安卓手机一样响应迅速(当然这取决于具体的手机,但一般来说)?
    答:绝对不是!最糟糕的例子是 3D,这是,afaik,只有软件仿真。

    问:有没有办法控制模拟器上的内存?
    A: 请说明,SD卡的大小是可配置的,RAM/VM-Memory...我不知道。

    问:是否有人遇到过在手机上被标记但在模拟器上没有被标记的问题?反之亦然?
    A:每个设备都有自己的定制。在模拟器上您只能更改屏幕分辨率,但请注意:模拟器屏幕的大小取决于您设置的像素密度。所以在你的大模拟器上看起来不错的东西在真实设备上可能太小了。并且不要忘记,手指比鼠标光标大得多,而且不如鼠标光标准确。

    问:您的正常测试程序是什么? 答:功能在实施过程中主要在(快速)设备上进行测试,例如 Nexus One。实施后的真正测试将在尽可能多的设备上进行。用户界面也是如此(大部分差异)

    由于我的设备具有最新的 SDK,我更喜欢在设备上进行测试。这不是对应用程序进行编程所必需的,但请:不要在没有在真实设备上进行至少一轮测试的情况下发布应用程序 :)

    【讨论】:

    • 模拟器的速度很大程度上取决于你的机器。在我用于开发的 MacPro 上,模拟器比真机(Droid 和 NexusOne 除外)更快。
    【解决方案2】:
    1. 是的,模拟器非常快。
    2. 是的,您可以设置要模拟的目标的 RAM 大小。
    3. 我确定有人有,但我没有。
    4. 我通常在开发期间在模拟器上进行测试,然后在我准备好进行长期测试时在我的 G1 上进行测试。之后,我在模拟器上测试与 1.5、2.0 和 2.1 目标的兼容性。

    有关目标支持的选项,请参阅here。请注意,还有一个用于设置这些的 GUI 工具。

    【讨论】:

    • 好吧,我从来没有 G1(最初是 Galaxy),但与 N1 相比,模拟器速度较慢。很高兴看到有人玩模拟器比我玩得更开心
    • 我这里有 G1、HTC Hero 和 Nexus One,模拟器与 G1 和 Hero 相同,速度相同,但正如 WarrenFaith 所说,Nexus One 快得多了骁龙处理器
    【解决方案3】:

    要回答有关模拟器有多“好”的一般性问题,您需要查看模拟器是什么。

    仿真器是一个软件 (qemu),它能够使用仿真在开发人员机器上运行 arm 指令。这意味着模拟器将运行一个类似于在物理设备上运行的安卓平台。这种设置比使用为开发机器而不是为目标硬件编译平台的模拟器要好。但是有一些限制,例如

    • 外设支持 - 移动平台包括许多配套芯片,如蓝牙、wlan、gps、无线电接入、图形加速等。所有这些都以不可预测且难以模拟的方式与主 CPU 交互模拟器。有些以有限的方式得到支持,例如互联网访问,而另一些则根本不受支持,例如蓝牙。
    • 性能 - 仿真器不是真正的处理器,可能不使用实际设备上可用的物理加速器。它还在很多事情上使用主机硬件,这意味着与在实际设备上进行测试相比,内存访问和类似项目的行为有所不同。

    一般规则是,如果可能,请尝试在设备上进行尽可能多的测试,以避免最终出现意外。模拟器适用于测试一般功能、初始测试以避免明显的错误以及检查布局和 UI 在不同屏幕尺寸下的外观是否合适。当涉及到与外界交互时的任何性能关键测试或行为时,例如网络交互,不建议使用模拟器。它可能会告诉您您的应用程序存在严重问题,但不相信模拟器上的“足够好”足以满足现实世界的需求。

    【讨论】:

      【解决方案4】:

      我只回答#3,因为其他答案已经涵盖了。

      肯定有一些问题只存在于模拟器上,而不存在于设备本身上。一大问题是机场模式根本无法在模拟器上运行。尽管打开了机场模式,互联网仍然可以使用。

      此外,如果您只是使用股票模拟器,则无法进入市场,这意味着您的应用可能尝试与之交互的任何方式都无法通过模拟器进行测试。

      我知道我在实际设备和模拟器之间遇到了一些其他较小的问题。有很多东西,我强烈建议你不要只在模拟器上开发。

      【讨论】:

        【解决方案5】:

        只有使用模拟器,您的测试才能涵盖更多模拟测试:

        -触摸 -传感器

        有插件框架来模拟传感器/设备移动、使用网络摄像头的摄像头等。

        【讨论】:

          【解决方案6】:
          1. 您需要内存才能使用像 AVD 模拟器这样的模拟器,模拟器非常适合测试,但有时它会无缘无故地崩溃。
          2. 是的,您可以多次更改此设置。
          3. 前段时间我无法模拟加速度计,但现在可以了。
          4. 我更喜欢在真实设备上测试我的应用程序。我更喜欢在真实设备上测试我的应用(如果我的朋友无法创建它并且 JUnit 测试有效,那么这应该不是问题),但我会在模拟器上测试不同的屏幕尺寸。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-10-14
            • 1970-01-01
            • 1970-01-01
            • 2012-10-16
            • 1970-01-01
            • 2020-10-22
            • 2023-04-06
            • 1970-01-01
            相关资源
            最近更新 更多