我只是根植我的手机,因为我需要访问我的应用程序的数据库。但是,即使我的手机已植根,我仍然无法在Eclipse File Explorer中打开数据文件夹。
有什么我忘了的吗?我需要告诉Eclipse我是超级用户还是其他什么?我可以访问模拟器上的数据文件夹,但不能访问我的实际设备。
我真的想在我的设备上进行开发,模拟器速度慢得多,而且我无法使用互联网连接。
有什么想法吗?
答案 0 :(得分:5)
在当前版本的Android中,您无需执行此操作。只需将android:debuggable =“true”放入清单中,然后就可以使用shell的“run-as< package_name>”切换到应用程序的uid,以便访问其数据目录。
这肯定适用于2.3或更高版本;它可能适用于2.2我不记得它何时进入。
答案 1 :(得分:4)
另一种选择是使用设备本身的Root Explorer检查数据库。它可以读取.db
个文件。如果你需要修改它们,有SQLite editor(由同一家公司),但我没有太多的经验。
更新:到达此页后,我正在玩手机:http://www.screaming-penguin.com/node/7742
我将手机连接到usb(三星Captivate,自定义2.2 ROM),并启用了usb调试,而不是那篇文章中的模拟器。
我运行以下命令,例如:
$adb -d shell
# su
# cd /dbdata/databases/com.android.browser
# sqlite3 browser.db
sqlite> .tables
.tables
android_metadata bookmarks folders searches
sqlite> select * from bookmarks;
(listed all my bookmarks)
基本上,您可以在打开的任何数据库上运行来自adb的任何SQL命令(假设您将其作为su运行)
答案 2 :(得分:1)
另一个需要考虑的选择是进行应用程序的测试构建,添加一个按钮将数据库复制到SD卡上,然后您可以从PC浏览它。
或者,您可以将数据库文件的模式设置为共享,但您仍然无法浏览到它 - 您必须告诉文件浏览器直接转到数据库文件(即,键入其完整路径)因为您无法浏览干预级别的文件夹,例如/ data本身。我不知道浏览器是否允许你这样做(它今天对我来说根本不打开,但是我从不使用它,因为我喜欢命令行shell; - )