我写了一个android应用程序,它需要使用数据库
数据库保存在“data/data/packegename/database”
我想将我的 .db 文件下载到“data/data/packegename/database/”
但我不想root我的手机
有什么简单的方法可以把它下载到文件夹中吗?(我需要经常复制它)
我写了一个android应用程序,它需要使用数据库
数据库保存在“data/data/packegename/database”
我想将我的 .db 文件下载到“data/data/packegename/database/”
但我不想root我的手机
有什么简单的方法可以把它下载到文件夹中吗?(我需要经常复制它)
如果你不想root你的手机,除了你的应用程序本身,你不能访问你自己的应用程序数据目录。
OptionOne - 在您自己的应用程序中编写一些后门代码,该代码将从您的 PC 下载数据库(设置 Web 服务)
OptionTwo - 在您自己的应用程序中设置一个小型 Web 服务(就像 google 一样简单),然后从 PC 上传数据库
您可以使用该run-as
命令通过 adb 模拟您的应用程序。请参阅博文Read Android Data Folder without Rooting 。您的应用程序必须使用调试标志构建,此方法才能正常工作。然后你可以做类似的事情
adb shell "stty raw; run-as your.application.package.name cat /data/data/your.application.package.name/files/whatever.file" > whatever.file
但是,在传输二进制数据时,至少在 Windows 上存在一些行尾/编码问题。您可以通过将文件复制到 sdcard,然后从那里提取(如果您的应用程序具有该权限)或将文件更改为世界可读(然后您可以adb pull
直接文件)来规避这种情况。