如何为特定设备测试我的应用?

时间:2019-06-18 18:44:47

标签: android android-studio react-native

我正在使用React Native构建应用程序,但该应用程序在一些Android设备上无法正常运行。因此,我需要查看出了什么问题,但我不知道如何为特定设备设置仿真器。这些问题是取决于手机的品牌和型号还是仅取决于其Android版本?

2 个答案:

答案 0 :(得分:2)

这不可能。主要有两个问题:

  1. 软件。真实设备不会像在模拟器上运行那样提供纯AOSP。他们添加了补丁和功能,无法知道它们的实际运行方式。
  2. 自定义UI。许多手机都提供了诸如TouchWhiz之类的自定义UI,可以覆盖Android行为
  3. 硬件。如果您的应用依赖于非常特定于硬件的事物(例如GPS或相机),则可能由于硬件错误而出现问题。

如果您只想仿真特定的OS版本,例如KitKat,或特定的低内存条件,则可以通过仿真器配置来实现。如果您确实需要在设备上进行测试,请购买一个设备或使用一项服务,该服务可让您远程控制特定设备。亚马逊有一个不错的设备场,您可以通过AWS租用。

答案 1 :(得分:1)

为Android开发时面临的最大挑战之一是制造商对其Android版本进行的各种设备和“优化”。

Android模拟器基于AOSP(香草Android),并且仅在最近才发布,其中包含Google服务。这是最干净的Android版本。您可以使用模拟器来测试针对不同屏幕尺寸的UI缩放,但它的行为始终类似于AOSP Android。 Google将许多硬件配置打包到Android Studio中,您可以在创建虚拟设备时选择它们。您始终可以创建具有自定义屏幕尺寸和分辨率的自定义硬件配置文件。一些制造商还更改了操作系统的DPI值,导致UI变大或变小,创建自定义硬件配置时请记住这一点。

此外,您可以使用模拟器来测试不同Android版本上的默认行为。同样,制造商更改其Android通常会导致行为略有不同。

我假设您的问题集中在不同的行为上,例如具有崩溃的三星手机仅在三星手机中发生(三星可以在这里与任何其他品牌互换)。不幸的是,没有简单的方法来测试此问题,而是让您接触故障的设备。一种选择是使用基于云的测试实验室(例如Firebase测试实验室,App Center或AWS设备场)在有故障的设备上测试您的代码或在本地商店租用该设备。大多数较大的城市都有公司每天或每周出租电话和平板电脑。

最后,如果语句检查特定的设备,制造商或Android版本或它们的任意组合,并做一些稍有不同的操作以纠正不良行为,则将需要

我知道这不是您要寻找的答案,但这是我能提供的最好的答案。告诉我一个我最糟糕的经历的故事:我曾经有一个错误,即调用加密函数导致HTC(?)手机出现内核恐慌。这意味着用户打开了我的应用程序,然后电话重新启动。我被要求再次针对Android 6.0的HTC实施整个加密逻辑。