在真实设备上使用 Android 模拟器进行应用程序开发时,我会在哪里 运行 陷入陷阱?

Where can I run into pitfalls when using an Android emulator over a real device for app development?

我想为 Android 开发应用程序,因为它的用户群很大。但是,目前我没有smartphone。我也不太热衷于在未来获得 Android phone。

如果只使用模拟器为 Android 开发应用程序,我会遇到什么问题?我可以使用我的 parents' Android phones 进行偶尔的测试,但模拟器是否足够?此外,是否可以在我的计算机上设置一个带有 low-end 硬件的 Android 虚拟设备来测试带有 low-end phones 的应用程序?

note0:我不打算开发需要使用 phone 传感器(例如陀螺仪、GPS 等)的应用程序。我只打算开发需要 [=] 访问互联网的应用程序32=] 调用和微phone 用法(我现在不能透露太多细节;))

note1:我知道这个问题以前在 Whosebug 上被问过(虽然是 4 年前)。但是,我觉得重新审视这个问题很重要,因为仿真器、硬件和 Android 本身在过去几年里发生了巨大变化。

编辑:我的主要问题是应用程序在 phone 上看起来很奇怪,尽管它在模拟器上看起来不错,或者在 phone 上运行缓慢但在模拟器上运行良好。在模拟器上运行良好的每个应用程序在 phone 上是否也能正常运行,并且硬件配置与模拟器相似?我特别针对 Android 4.x/5.x.

的设备
  • 毫无疑问,最大的问题是很多功能像push 通知、地图、地理位置、应用程序内销售等不能 用模拟器测试。原因是所有这些功能都是 存在于 Google Play 服务库中,但不存在于 模拟器。
  • 在硬件设备上进行测试的另一个重要原因是 OS 三星、HTC 和 其他,因此,未观察到某些问题和异常 直到使用真实设备。
  • 但最重要的原因必须是 运行在 实际 phone 比痛苦更有趣 缓慢而迟钝的模拟器!最重要的事情之一 Android 是任何拥有 Android phone 的人都可以轻松探索 通过 运行 在他们的 phone 上编写简单程序来了解计算机科学概念。 即使是新手,也非常容易启动他们的 Android 设备,开始探索编程世界!直到几年前,在 SymbianPalmWinCE 设备上调试应用程序还是非常困难的。 iOS 在 运行 最简单的应用程序方面仍然很迟钝,您必须为 运行 iPhone 上的 Hello World 应用程序创建配置文件!

编辑:

  • 如果您的处理器支持 Intel 虚拟化,则可以使模拟器 运行 与真实设备一样快。你需要检查一下。如果您的 PC 低端 不支持此类虚拟化,那么运行安装和测试 Android 应用程序将是一种痛苦、乏味的体验这会吸走开发过程中的所有乐趣。
  • 与真实设备相比,模拟器确实有 一个 显着优势 - 模拟器能够访问 localhost 上的 Web 服务。如果您在本地服务器上仍处于开发阶段并且尚未转移到公共托管环境,则模拟器可以轻松访问本地服务器上的 Web 服务。您所要做的就是将您的计算机与本地服务器置于同一网络中,一切顺利。真实设备无法访问 localhost;据我所知,这是不可能的。
  • Android 模拟器是真正的 模拟器 - 它也模拟传感器,因此实际上您 可以 测试传感器在模拟器上编程(有一些限制)。它无法执行 GPS、地图等操作,因为这些功能已迁移到 Google Play 服务库,并且它们需要有效的 Google 帐户才能使用,这就是该库不存在的原因在模拟器上。如果您只打算使用 Web 服务、API、GUI,那么我想模拟器就足够了。与 iOS 模拟器 不同,Android 模拟器通常表现出所见即所得的行为,因此您的 GUI 在实际设备上不会有所不同,尽管您确实需要测试您的 GUI在具有不同屏幕尺寸的多个 AVD 上。