【发布时间】:2015-04-08 18:10:35
【问题描述】:
我按照How do I view the SQLite database on an Android device?的答案中给出的分步说明进行操作
1) 连接您的设备并在调试模式下启动应用程序。
2) 将数据库文件从您的应用程序文件夹复制到您的 sd 卡片。您可能想使用 adb -d shell "run-as com.resmed.mon ls /data/data/com.resmed.mon/databases/" 看看是什么数据库 文件名是。
3) adb -d shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"
(在我的情况下为“/data/data/com.mypackge.name/databases/MyDb”)
4) 将数据库文件拉到你的机器上:
5) adb pull /sdcard/filename.sqlite .
6) 安装 Firefox SQLLite 管理器: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
7) 打开 Firefox SQLLite Manager (Tools->SQLite Manager) 并打开你的 上面步骤 3 中的数据库文件。”
但就我而言,提取的数据库始终为空。当我在 SQL Lite 管理器上打开文件时,我找不到我的表和我的数据。我不明白为什么。我可以在调试模式下使用我的应用程序在设备屏幕上查看数据。是否有其他文件夹可以存储我的数据库? 我的手机没有root。
感谢您的帮助。
PS : 我想评论上一个答案,但我的声誉太低,无法与答案互动。
【问题讨论】:
-
@AlexP。 - 这似乎没有涵盖这里的情况,获取文件但发现它是空的。
-
几个想法:一个是最近的Android版本是多用户的,每个用户可能有自己的数据目录,上面的方法可能找不到。另一个是您的应用程序可能实际上并没有提交其数据库更改 - 如果您将应用程序从最近的应用程序中滑出以杀死它,然后重新启动,它们在那里吗?最后,您的获取操作(尤其是 shell 重定向)可能会以某种方式失败,但不会产生错误输出,但会导致创建一个空文件。
标签: android database sqlite adb extraction