我可以在我的模拟器中使用adb shell命令访问我的sqlite数据库。但我的HTC Desire手机无法做到这一点。它抛出一些权限被拒绝的消息。有没有可能访问这些数据库用于调试目的。有什么想法吗?
先谢谢。
答案 0 :(得分:5)
您还可以在命令提示符/终端
中键入以下内容如果您的应用包是com.example.dbtest且数据库名为sqlite.db
adb shell
run-as com.example.dbtest
cat databases/sqlite.db > /sdcard/sqlite.db
exit
exit
adb pull /sdcard/sqlite.db /path/to/place/file
(如果您将最后一个参数留空,则它将与adb放在同一目录中)
这不需要root并编写脚本来从您的应用中删除任何文件。
您还可以使用流式读取器和写入器将其复制到SD卡。不要像barmaley建议的那样逐行复制它,因为这可能会掩盖错误。
答案 1 :(得分:2)
我只能看到两个选项:
答案 2 :(得分:0)
你不需要rootor export你db。您可以使用以下库直接从您的应用程序管理您的Android数据库
https://github.com/sanathp/DatabaseManager_For_Android
它是一个单独的java活动文件,只需将java文件添加到源文件夹即可查看应用数据库中的表,更新,删除,向表中插入行。从应用程序中获取所有内容。
开发完成后,从你的src文件夹中删除java文件。
它给了我很多帮助。希望它也可以帮到你。
您可以在此处查看1分钟演示:http://youtu.be/P5vpaGoBlBY