测试Android应用程序进程生命周期和在进程为空状态时恢复状态

4
我最近一直在努力完善自己关于管理Android应用程序状态的知识和技能,尤其是在应用程序进程生命周期的各个节点。具体来说,我一直在测试各种方法来维护和共享活动之间的全局数据。在我的测试应用中,为了测试全局应用程序数据或单例数据的重建,我需要等待几个小时或更长时间,以便我的手机决定其他进程更为重要,并将我的测试应用置于空进程状态中,如进程生命周期文档所定义的那样。此时,应用程序的数据被释放,并且需要在再次将应用程序带到前台时重新创建。如果操作不正确,则应用程序上一次已知状态的重新初始化可能会因各种原因导致强制关闭。

因此,我的问题是,除了等待这种情况自然发生外,是否有真实世界的方式来测试这种情况。例如,如果应用程序已达到空进程状态,则QA使用案例会是什么样子?


我假设在设置中强制关闭应用程序或将应用程序滑动到活动应用程序之外(长按主屏幕键)不起作用? - bclymer
像这样做只会杀死应用程序,而不是模仿操作系统如何管理进程生命周期的文档中所描述的方式。例如,如果您在应用程序的第二个活动中,并且它进入后台。两天后,当您再次打开应用程序时,操作系统已经销毁了实际的应用程序进程。但是保留的空进程状态将尝试以您离开时的相同状态打开应用程序。在这种情况下,是活动#2。如果状态数据没有被正确保留,可能会发生糟糕的事情。这些类型的场景是我感兴趣测试的内容。 - SBerg413
1个回答

3

我已经进行了一些试验和错误,并得出了一个好的解决方案:

最终,这归结于每个 Activity 能够独立地恢复其状态。这同样适用于应用程序。"空进程" 状态是操作系统在将应用程序视为不再重要后将其置于的最终状态。

以下是对我测试应用程序的 "空进程" 场景有效的内容:

  1. 打开应用程序到相应页面。
  2. 按手机上的 "主页" 按钮。
  3. 在 Facebook、Youtube 和 Google Play 商店中至少打开 3 个资源使用高且具有长滚动列表视图的应用程序。
  4. 在每个应用程序中将列表视图向下滚动很多以使用系统资源。
  5. 完成所有 3 个应用程序后,重新打开您的应用程序。

对每个 activity 和 fragment 运行以上测试,可以测试不仅 activity 和/或 fragment 的完全重建,还可以测试整个应用程序。

这有点麻烦,但是非常有效。


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