是否可以在非root设备上检索我的Android应用程序的数据库文件?

时间:2013-01-10 18:20:58

标签: android

我的设备没有root,我想检查我开发的应用程序的数据库的内容。如何将此数据库下载到我的桌​​面电脑,以便我可以检查内容。我已经尝试使用astro和fileexpert,但在那里我无法访问我的应用程序的数据文件夹。是否有可能实现这一目标?

由于

4 个答案:

答案 0 :(得分:1)

使用应用程序代码,您必须将数据库文件/data/data/<application_package>/database/目录复制到/mnt/sdcard,然后您可以将该文件提取到您的系统。

或者您可以在模拟器上运行您的应用程序,然后您可以在模拟器生根时从/data/data/<application_package>/database/访问它。

答案 1 :(得分:1)

如果您可以使用USB线将设备插入开发计算机,则可以使用adb tool。特别是,命令adb pull可用于从设备中检索任何文件。数据库文件位于/data/data/<android_package_name>/database。使用命令行,完整命令为:

adb pull /data/data<android_package_name/database

然后,您可以使用sqlite3工具连接到数据库文件并检查它是否正确。或者,您可以使用adb shell直接连接到设备上的命令行,并使用设备sqlite3工具检出数据库。 (注意事项:这在模拟器上有效。我不确定sqlite3是否安装了物理设备。)

答案 2 :(得分:0)

有几个选择:

  • 如果apk仍然是调试版本,您可以通过adb shell使用run-as命令将文件复制到外部存储,然后adb从那里拉出来。这需要一些unix shell知识,因为没有'cp'二进制文件,大多数都使用cat和重定向。

  • 您可以在程序中添加功能,将文件复制到外部存储器进行检查。由于没有文件复制功能,您必须实际编写代码才能进行复制。

  • 您可以将文件的访问权限更改为全球可读,并且直接adb拉取它,尽管您将无法浏览它所在的目录树;考虑打印logcat的绝对路径或从包信息中确定它。

  • 您可以在默认情况下生根的模拟器上运行

答案 3 :(得分:0)

如果你想要一些更加图形化的东西,你可以从IDE Eclipse进入PMMS,选择你的设备,然后从文件资源管理器选项卡中查找路径/data/data/ <package name of your aplicacacion> /databases,选择你的数据库文件和点击“拉一个文件”按钮(位于右上角)

然后,如果您想使用其他图形工具,可以使用firefox插件“SQLite Manager”。