gpt4 book ai didi

android - 如何保存和加载 Android 应用程序状态的快照?

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:14 25 4
gpt4 key购买 nike

在阅读本文之前,请注意我不是在谈论捕获屏幕

动机

很多时候,为了测试应用程序,我们需要遍历许多 Activity (包括加载/启动屏幕),直到我们到达我们刚刚更新的 Activity 以对其进行测试。

我想通过捕获应用程序的确切状态(内存、首选项、 Activity 堆栈...)来减少这个时间,以便再次到达那里。

另一个例子:QA 团队可以告诉我在什么情况下会出现错误,而不必向我展示他们到达那里之前的整个过程(因为它可能无法重现),然后我可以运行应用程序,并确切地知道抛出异常的地方并通过 DDMS 的日志直接转到那里。

另一个例子:我们在开发一款游戏,QA 团队已经对游戏进行了数小时的测试并达到了某个阶段,想要保存应用的当前状态,以便从此时开始进行测试并制作多个对其进行测试,而不是每次都从头开始运行应用程序,等待它加载并完成所有阶段,直到它们到达此阶段。

我认为在其他情况下这样的东西可能会有用。

问题

这样的事情在 VM 世界(例如 virualBox)中可能是可能的,并且对于 android 模拟器来说也是可能的(至少根据 this post,但他们也说这是“挑剔的”,不确定这在此上下文),但不适用于设备。

上面的例子,虽然它们可能有效,但它们适用于整个操作系统而不适用于特定的应用程序,所以即使我选择使用它们,也需要很长时间才能使用(而且我需要使用模拟器通常比任何设备都慢)。

我很确定当前的 API 不支持这样的事情(出于安全原因,这可能是件好事)。

问题

是否可以使用 ROOT 捕获和加载整个应用程序状态?也许也可以成为系统应用程序?

也许已经有这个任务的应用程序?

最佳答案

因为应用程序将其整个状态保存在 SharedPreferences 中是很常见的和数据库中的持久性,在大多数应用程序中,您可以分别使用 adb backupadb restore 备份和恢复数据和状态:

备份:

adb backup -f app.ab com.company.app

恢复:

adb restore app.ab

PS:此功能是在 ICS 中引入的,不需要是 root。

更多信息 in this tutorial .

关于android - 如何保存和加载 Android 应用程序状态的快照?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16251042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com