Android模拟器 vs 真实设备

42

开发人员需要注意哪些差异?

7个回答

33

我意识到以下限制:

  1. 预装软件。真实设备可能会预装更多应用程序。
  2. 在模拟器中无法使用“拍摄”照片/视频功能。

根据模拟器文档,它的限制包括:

模拟器的功能限制包括:

  • 不支持实际电话的拨打或接听。但是,您可以通过模拟器控制台模拟电话(已拨打和已接收)。

  • 不支持USB连接

  • 不支持连接设备的耳机
  • 不支持确定网络连接状态
  • 不支持确定电池充电水平和交流充电状态
  • 不支持确定SD卡插入/弹出
  • 不支持蓝牙

我的建议是,您可以使用模拟器简化UI开发,查看UI在“设备屏幕”上的显示效果,确保应用程序布局正确、可运行,还可以通过模拟GPS位置、网络速度或消息等特殊情况来测试一些特殊情况。但是,在真实设备上进行测试是必不可少的。


3
此外,模拟器镜像不会绑定到您的Google账户,因此您无法测试与该账户相关的任何内容(如GMail、您的真实联系人、市场、日历等)。 - Henning
你有没有想过为什么会实行这种限制? - Jiri
2
这是一个许可问题。模拟器基于Android的开源版本,但专有的Google应用程序需要与手机厂商或移动运营商达成协议。 - mparaz
2
所以,如果你想在某个新的奇怪设备上安装Android系统,那么你也不能在其中安装谷歌应用,我说得对吗? - Jiri
1
在真机上,每个应用程序的映射堆大小限制为16/24/48MB,具体取决于设备。仿真器通常每个应用程序也只有16MB的限制,就像老一些的设备(如G1)一样。这个参数无法在创建AVD时设置,但是在启动仿真器时可以作为参数传递,例如:-prop dalvik.vm.heapsize=24m。通过这种方式,您还可以正确模拟设备的正确“每应用程序的堆”大小。 - Mathias Conradt

12

在1.5 SDK中存在以下限制(来自SDK网站):

  • 不支持进行实际的电话通话。但可以通过模拟器控制台模拟电话呼叫(包括呼入和呼出)。
  • 不支持USB连接。
  • 不支持相机/视频捕获(输入)。
  • 不支持连接到设备的耳机。
  • 无法确定连接状态。
  • 无法确定电池充电状态和交流电充电状态。
  • 无法确定SD卡的插入/移除状态。
  • 不支持蓝牙。
  • 不支持多点触控。

基于经验,我注意到在实际开发中存在以下差异:

  • 在模拟器中可以忽略的错误可能会导致设备崩溃(例如未关闭游标)。
  • 你与设备的交互方式与模拟器不同。我在使用实际设备时更经常使用横屏模式。
  • 设备有不同的CPU。在模拟器上快速运行的东西在实际设备上可能会变得更慢。
  • 你可以使用设备进行内部测试(dogfood),但在模拟器上进行内部测试会更加困难。

如果你需要实际设备测试人员,可以在这里找到一个Google群组。


8

无法使用模拟器测试触摸事件,只能通过在模拟器上进行鼠标点击来测试,任何计划开发基于触摸屏的应用程序的开发人员都应该知道这一点。


7
我认为主要问题在于目前有多个使用Android的“真实设备”,未来还会有更多,硬件配置也各不相同--有些设备可能具有GPS功能,有些则没有;触摸屏、实体键盘和虚拟键盘等方面也是如此,还有相机分辨率等等。
尽管操作系统会为您做很多重活,但您仍需要确保设计出一种用户体验,使其在您打算支持的每个Android设备上都能够合理运行,尽管这些设备的硬件特性存在差异--从这个意义上说,为Android设计应用程序更类似于为Linux、Windows或Web设计应用程序(考虑到各种硬件配置细节),而不是像Mac或iPhone那样需要考虑更少的可能的硬件配置。
模拟器是(或试图成为)“一个”Android设备--但是将来还会有其他“真实”设备,它们具有不同的屏幕分辨率、输入外围设备等等。

1
关于Google账户的一条评论:使用Android 2.2的Google API版本8,您可以在设备上添加Google账户。但是,它只允许对Google API(例如Google文档)进行测试的身份验证,而不支持联系人等的同步。

0
简单来说,模拟器是一种在计算机上运行的设备(作为软件),而真实设备是您可以握在手中的东西。当然,两者之间会有一些差异,例如某些特定于设备的功能在模拟器上不可用。
编辑:从答案中删除了一个已过期的链接。

这正是为什么stackoverflow指出你不应该使用链接的原因,该链接已失效。 - htafoya

0

这是一个错误,因为尝试了相机和视频支持(不正确):相机和视频意图在“捕获”后不会将其输出存储在MediaStore数据库中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接