我正在开发一个应用程序,其中使用 sqlite3 数据库来存储值。我的 Nexus S 和 Nexus 7 都是未 root 的设备。我如何获取我的应用程序的数据库以进行调试。
我努力了
(1)我已经尝试了所有提到的方法here http://blog.shvetsov.com/2013/02/access-android-app-data-without-root.html
adb shell
run-as app.package.name \
cp /data/data/package.name/databases/application.sqlite /sdcard/
exit
adb pull /sdcard/application.sqlite ~/
这说找不到cp..
(2) http://developer.android.com/tools/help/adb.html#sqlite http://developer.android.com/tools/help/adb.html#sqlite
adb -s emulator-5554 shell
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions
.... enter commands, then quit...
sqlite> .exit
以下解决方案仅适用于可调试的应用程序。它可能无法在所有设备上正常工作,因为 run-as 命令在某些设备上不起作用,尤其是 Jelly Bean。
-
创建*.bat文件并复制以下脚本
adb shell run-as [package] chmod 777 /data/data/[package]/databases/
adb shell run-as [package] chmod 777 /data/data/[package]/databases/[db_file_name]
adb shell run-as [package] cp /data/data/[package]/databases/[db_file_name] /sdcard/
adb pull /sdcard/[db_file_name]
将[package]更改为所需的应用程序包
将 [db_file_name] 更改为所需的数据库名称 运行 bat 文件并
您应该在与 bat 相同的文件夹中看到复制的数据库
文件
上述解决方案假设:
- 您正在 Windows 上工作
- 设备已连接并在下面可见
“亚行设备”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)