cd /data/data/com.mycompck/databases
,然后运行ls
,都会出现这样的错误信息:"opendir failed, Permission denied"
。或者每当我输入sqlite3
时,都会显示"sqlite3: permission denied"
。我做错了什么?
是否有一些应用程序可以帮助我获取内容解析器值和/或SQLite数据库的人类视图呢?
请查看以下讨论中的答案:为什么我在使用adb时会被拒绝访问数据文件夹?
从API级别8(Android 2.2)开始,如果将应用程序构建为可调试的,则可以使用shell
run-as
命令以特定用户/应用程序的身份运行命令或可执行文件,或者只是切换到您的应用程序的UID
,以便可以访问其data
目录。
因此,基本上您需要进行调试构建(每当您从Android Studio启动应用程序时都会自动进行构建,除非您请求发布版本),并运行以下命令:
run-as com.mycompck
cd /data/data/com.mycompck/databases
ls
sqlite3 ./yourdatabase.db
sqlite3
二进制文件。因此,您可能需要从某个地方下载它(例如从http://shortfuse.org/的SuperOneClick档案中),将其保存在SD卡上并使其可执行(尽管这有点棘手),例如:run-as com.mycompck
cd /data/data/com.mycompck/
cat /sdcard/sqlite3 >./sqlite3
chmod 744 ./sqlite3
./sqlite3 ./databases/yourdatabase.db
回答您问题的第一部分,可以查看this answer。基本上,你的手机需要root访问权限,并且需要以root模式运行adb(使用“adb root”)。
至于第二部分,我使用SQLite Database Browser来查看我的SQLite数据库(虽然只有在数据库位于我的计算机上时才这样做;不知道是否有任何设备上的浏览器)。我不知道有什么办法可以获得内容解析器的人类视图。
你必须成为root用户才能访问任何数据库文件。因此,你可以在手机上获取root权限(在谷歌上查找信息),或者仅通过模拟器调试数据库(模拟器总是会给你root访问权限)。
再见!
查看和管理您的Android应用程序数据库的最佳方法是使用此库 https://github.com/sanathp/DatabaseManager_For_Android
这是一个单独的Java活动文件,只需将Java文件添加到源文件夹中,即可查看应用程序数据库中的表格,更新、删除、插入行到您的表格。一切都可以从您的应用程序中完成。
开发完成后,从src文件夹中删除Java文件即可。
它对我很有帮助。希望对您也有所帮助。
您可以在此处查看1分钟演示:http://youtu.be/P5vpaGoBlBY
我已经了解了一些关于这个问题的信息,移动设备上访问数据库文件似乎非常麻烦。
看看这个吧。使用它,你可以在应用程序内查看数据库。数据库管理器
对我来说,这很好用。当然,它也取决于你计划做什么。
希望能帮到你。
adb uninstall
(不带-k
选项)才会将其删除(或通过设备应用程序管理器手动卸载应用程序)。 - Idolon