【发布时间】:2014-02-22 17:12:30
【问题描述】:
在developer docs 中提到sqlite3 可通过adb shell 获得。但是,当我这样做时,我正在查看的数据库看起来完全是空的,而当我 adb pull .sqlite 文件并在本地检查它时,它包含它应该包含的内容。例如,在后一种情况下.tables 列出了表,在前一种情况下它什么都不列出,并尝试从应该存在的表中返回“错误:没有这样的表”。等等。
没有权限问题——sqlite3 启动时毫无怨言,我显然是 root 权限是 660。
【问题讨论】:
-
使用
adbshell 运行sqlite3的效果如何? -
@CL 根据this official-but-casual description,
adb shell是一个unix-y远程shell,因此可以访问设备/system/bin中的二进制文件。但是,在sqlite3的情况下,我猜它在远程文件上使用本地版本,因为 A)我在设备的/system/bin中看不到sqlite3,并且 B)android SDK 包含一个副本sqlite3在tools/目录中。 -
运行
sqlite3的具体内容是什么? -
@CL 抱歉,大声笑,我的眼睛读到 “你到底为什么要尝试运行
sqlite3?”。 谢谢, 因为这当然会导致我的问题:sqlite3如果路径不存在,则会创建一个文件。当我第一次进去的时候,我一定是升级了一个级别(/data/data/[app]/而不是/data/data/[app]/databases),然后一直把它当作我要找的东西……facepalm。