Pen*_*m10 9 sqlite android adb
我在手机上开发时遇到了访问数据库的问题.每当我执行
cd /data/data/com.mycompck/databases
然后运行ls我得到:"opendir failed, Permission denied"
或者每当我输入时,sqlite3我得到:"sqlite3: permission denied"
我究竟做错了什么?
是否有一些应用程序可以帮助我获得内容解析器值和/或SQLite数据库的人工视图?
Ido*_*lon 16
从以下主题检查我的答案:为什么在使用adb时我被拒绝访问数据文件夹?
从API级别8(安卓2.2)开始,如果您构建应用程序的可调试,你可以使用shell
run-as命令来运行一个命令或执行特定的用户/应用程序或只需切换到该UID应用程序,让您可以访问它的data目录.
因此,基本上您需要进行调试构建(除非您请求发布版本,否则每当您从Android Studio启动应用程序时都会自动生成)并运行以下命令:
run-as com.mycompck
cd /data/data/com.mycompck/databases
ls
sqlite3 ./yourdatabase.db
Run Code Online (Sandbox Code Playgroud)
但请注意,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
Run Code Online (Sandbox Code Playgroud)
要回答您问题的第一部分,请查看此答案。基本上,您的手机需要具有 root 访问权限,并且需要以 root 模式运行 adb(使用“adb root”)。
至于第二部分,我使用SQLite 数据库浏览器来查看我的 SQLite 数据库(尽管这仅当数据库位于我的计算机上时;不知道任何设备上的浏览器)。我不知道有什么方法可以获得内容解析器的人性化视图。
| 归档时间: |
|
| 查看次数: |
18944 次 |
| 最近记录: |