如何通过重写旧数据库在模拟器中运行 android 应用程序?

Posted

技术标签:

【中文标题】如何通过重写旧数据库在模拟器中运行 android 应用程序?【英文标题】:How to run android app in emulator by rewriting old databases? 【发布时间】:2011-06-14 01:21:30 【问题描述】:

当我总是从 Eclipse 运行应用程序在模拟器中进行测试时,默认情况下它从不卸载以前的应用程序。它将维护同一应用程序的数据库和文件的先前副本并运行新的编译代码。

如果我想在每次编译和运行测试时删除所有与应用程序相关的文件、数据库怎么办?在 Eclipse 中有任何设置吗?我想避免在每次运行之前手动卸载它的步骤。谢谢。

【问题讨论】:

【参考方案1】:

您可以打开一个命令提示符窗口,然后在启动之前执行:

adb uninstall your.project.package

当使用带有-r 修饰符的adb install 时,应用程序会重新安装并保存其数据。我没有在 Eclipse 中找到任何地方来更改此配置,但我认为这是在 SDK 的 Ant 任务中完成的。查看this class了解更多信息

【讨论】:

是的,这就是目前正在从命令行执行的操作。可能是指出的类提供了一些方法。谢谢。【参考方案2】:

您可以使用任何 SQLiteOpenHelper 子类中的数据库版本来完成其中的一部分,然后覆盖 onUpgrade 以删除所有表。其实我想onUpgrade也可以删除已知文件。

【讨论】:

是的,但我更喜欢无需更改代码的解决方案。我想一定有某种方法可以告诉 eclipse 通过删除我的应用程序空间中的所有文件来重新开始。【参考方案3】:

运行配置目标选项卡下的“擦除用户数据”是否会为您擦除所有内容?在运行应用程序之前,我不是 100% 擦除它,但我怀疑它会清除所有数据。你可以试试看。

【讨论】:

“擦除用户数据”通过删除所有应用程序来重置您的 avd。我的问题只是一种简单的方法,以防您在 Eclipse 测试期间尝试使用数据库/文件并希望在每次启动时清理以前的副本。

以上是关于如何通过重写旧数据库在模拟器中运行 android 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Android 模拟器在 Windows 中使用 telnet?

Android Emulator 使用旧版式

我的 MainActivity 在使用 android 旧版本(例如 oreo)时滞后,但在最新版本中运行良好,如何解决?

android如何显示数据库内容

在没有 Android Studio 的情况下运行 AVD 模拟器

如何在新版本的 android 上运行旧版本的 android 应用程序?