如何在不使用计算机的情况下读取设备上的db文件

时间:2012-09-09 12:12:55

标签: android sqlite root runas

我刚开始开发android并且目前只使用惊人的应用程序AIDE直接在我的设备(galaxy nexus和nexus 7)上编码。

在这里看到有很多关于使用adb将数据库拉到计算机上的答案,但我没有使用计算机。

我看到了在可调试模式下构建应用程序并使用“run-as”的答案,但我得到了一个无权限错误。我没有root,也不是完全厌恶它,但想确保没有非root方法来做到这一点。

我正在使用connectbot尝试运行。

提前致谢

2 个答案:

答案 0 :(得分:1)

http://sourceforge.net/projects/asqlitemanager/之类的工具可以读取和写入位于SD卡上的本地sql文件。 (没有生根电话)
在root用户手机上,很多应用程序甚至可以读/写系统数据库。

我建议不要在没有加密的情况下将任何重要数据放在本地数据库上


编辑:
如果我理解正确,您有一个SQLite应用程序,并且您想从应用程序外部(但在您的设备上)访问您的 sqlite数据库

如果是这种情况,我会尝试在我的应用程序(仅适用于调试版本)上设置“秘密”选项,该选项将从external sqlite browser application启动活动。
或者,您可以进行将数据库复制到SD卡上的文件夹的活动,您可以在其中轻松编辑它 但你真正需要的是什么? 您是否只需要查看值? 你需要检查结构吗?
您是否需要对数据库进行完全编辑? 您可能只需要转储(写入SD卡上的txt文件)数据而无需处理完整的sqlite编辑器(根据您对这些问题的回答)

答案 1 :(得分:0)

  

我没有root,并不是完全厌恶它,但想确保没有非root方法来做到这一点。

如果没有工作,没有非root方法可以做到这一点。一个应用程序(例如,AIDE)无权访问另一个应用程序(例如,您的)的内部存储空间。

非root选项包括:

  • 向您的应用添加备份功能,将数据库复制到外部存储,此时您可以使用上一篇文章中提到的aSQLiteManager等应用程序(也可用directly on the Play Store)。

  • 在开发过程中暂时将某种SQLite编辑器放入您的应用中,并在投入生产时将其删除。