Android模拟器的“好”程度如何?

时间:2010-03-01 13:59:54

标签: android testing android-emulator

正如标题所说,Android模拟器的“好”程度如何?

我没有Android手机但是可以纯粹使用模拟器作为测试环境进行开发吗?

我最初的问题:

  • 仿真器是否像普通的Android手机一样响应(当然这取决于确切的手机,但一般而言)?
  • 有没有办法控制模拟器上的内存?
  • 是否有人在手机上标记了问题但是没有模拟器?反之亦然?
  • 您的正常测试程序是什么?在整个测试过程中,或者模拟器递归测试和电话结束?

任何反馈都将不胜感激。

谢谢,

6 个答案:

答案 0 :(得分:7)

问:模拟器是否像普通的Android手机一样响应(当然这取决于确切的手机,但一般而言)?
答:绝对不是!最糟糕的例子是3D,即afaik,只有软件模拟。

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

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

问:你在整个测试中使用的正常测试程序是什么,或者在结尾处通过递归和电话进行测试? 答:功能在实施过程中主要在(快速)设备上进行测试,如Nexus One。实施后的真实测试将在尽可能多的设备上进行。用户界面(那里的差异最大)

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

答案 1 :(得分:3)

  1. 是的,模拟器非常快。
  2. 是的,您可以设置您希望模拟的目标的RAM大小。
  3. 我确定有人,但我没有。
  4. 我通常在开发期间在模拟器上进行测试,然后在我准备进行长期测试时在G1上进行测试。之后,我在检查与1.5,2.0和2.1目标的兼容性时在模拟器上进行测试。
  5. 有关哪些选项支持,请参阅here。请注意,还有一个用于设置它们的GUI工具。

答案 2 :(得分:1)

要回答有关模拟器“好”的一般问题,您需要查看模拟器的内容。

模拟器是一个软件(qemu),它能够使用仿真在开发人员计算机上运行arm指令。这意味着模拟器将运行类似于物理设备上运行的android平台。此设置优于使用模拟器,其中平台是针对开发机器而不是针对目标硬件编译的。然而,有许多限制,例如

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

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

答案 3 :(得分:1)

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

肯定有一些问题只存在于模拟器上,而不存在于设备本身上。一个重要的问题是机场模式根本无法在模拟器上运行;尽管转向机场模式,互联网仍然有效。

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

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

答案 4 :(得分:0)

使用模拟器时,您的测试将包含更多模拟测试,以涵盖:

点触摸 多个传感器

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

答案 5 :(得分:0)

  1. 你需要内存来使用像AVD模拟器这样的emulatord,模拟器很适合测试,但有时它会无故崩溃。
  2. 是的,您可以多次更改此设置。
  3. 前段时间我无法模仿accelometer,但现在我可以。
  4. 我更喜欢在真实设备上测试我的应用。我更喜欢在真实设备上测试我的应用程序(如果我的常见问题不能破坏它并且JUnit测试工作那么它应该不是问题),但我在模拟器上测试不同的屏幕尺寸。