15

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

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

我最初的问题:

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

对于任何反馈,我们都表示感谢。

谢谢,

4

6 回答 6

7

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

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

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

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

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

于 2010-03-01T14:10:32.067 回答
3
  1. 是的,模拟器非常快。
  2. 是的,您可以设置要模拟的目标的 RAM 大小。
  3. 我确定有人有,但我没有。
  4. 我通常在开发期间在模拟器上进行测试,然后在我准备好进行长期测试时在我的 G1 上进行测试。之后,我在模拟器上测试与 1.5、2.0 和 2.1 目标的兼容性。

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

于 2010-03-01T14:17:12.160 回答
1

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

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

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

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

于 2010-03-01T16:11:27.293 回答
1

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

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

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

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

于 2010-03-01T15:29:38.750 回答
0

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

-触摸传感器

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

于 2010-03-12T21:16:08.727 回答
0
  1. 你需要内存才能使用像 AVD 模拟器这样的模拟器,模拟器很适合测试,但有时它会无缘无故地崩溃。
  2. 是的,您可以多次更改此设置。
  3. 前段时间我不能模拟加速度计,但现在我可以了。
  4. 我更喜欢在真实设备上测试我的应用程序。我更喜欢在真实设备上测试我的应用程序(如果我的朋友无法创建它并且 JUnit 测试有效,那么它应该不是问题),但我在模拟器上测试不同的屏幕尺寸。
于 2012-07-11T09:20:56.883 回答