Java Android将SQLite数据库导出到计算机/Mac
我在Android设备(我自己的应用程序)上有一个SQLite数据库。现在我想在我的计算机上查看SQLite数据库 有没有什么解决方案(简单的方法)可以在我的计算机上获得没有根权限和SD卡的数据库 我试着用谷歌搜索它,但我找不到任何解决这个问题的方法Java Android将SQLite数据库导出到计算机/Mac,java,android,database,sqlite,Java,Android,Database,Sqlite,我在Android设备(我自己的应用程序)上有一个SQLite数据库。现在我想在我的计算机上查看SQLite数据库 有没有什么解决方案(简单的方法)可以在我的计算机上获得没有根权限和SD卡的数据库 我试着用谷歌搜索它,但我找不到任何解决这个问题的方法 编辑:我没有使用模拟器(我的设备上需要摄像头)。如果您在默认位置保存Sqlite DB,您可以在如下路径中找到相同的内容 /data/data/com.dev.myapplication/databases/mydb.db 您可以使用Androi
编辑:我没有使用模拟器(我的设备上需要摄像头)。如果您在默认位置保存Sqlite DB,您可以在如下路径中找到相同的内容
/data/data/com.dev.myapplication/databases/mydb.db
您可以使用Android设备监视器找到相同的内容,通过它您可以导航到内部和外部内存
找到数据库文件后,通过USB电缆连接后,将其解压缩并保存到桌面。您可以使用选项“从设备中提取文件”
将文件提取到桌面后,请使用与查看数据库类似的任何工具。此方法适用于我的无根设备 //检查您的设备是否已连接 亚洲开发银行设备 亚行壳牌 以您的.package.name运行 chmod 777 databases/your.database.name 出口 cp/data/data/your.package.name/your.database.name mnt/sdcard/ 出口
adb pull mnt/sdcard/your.database.name如果手机没有根目录,您无法直接访问数据库,但您可以将其复制到下载文件夹,然后复制到PC
public static void copyAppDbToDownloadFolder(Activity ctx) throws IOException {
File backupDB = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
"databse_name.db"); // for example "my_data_backup.db"
File currentDB = getApplicationContext().getDatabasePath("databasename.db");
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
}
在我看来,没有根目录的设备无法从中获取sqlite数据库。好的,非常感谢。最简单的方法是通过终端,这是本链接中的完整指南。dheeraj bhaskar的回答。但是我需要根权限才能获取这个数据库,是吗?我已尝试此操作,但我的“数据”文件夹为空。此操作不需要根权限。尝试保存到其他位置并进行验证。例如,您的外部SD卡位置和一些自定义文件夹。我没有SD卡…我尝试将其保存到其他位置。谢谢。请复制到文件夹以便于您访问。不要吃贝壳。cd mnt/然后是ls。告诉我文件夹的名称。我将告诉您在哪里复制数据库我的计算机上的文件夹名称?否,设备上的文件夹。做adb外壳,cd mnt,然后ls(伦敦的it L)并告诉我结果。哦,好的。我还以为是上流社会。我稍后告诉你,因为我在工作:我使用了cat命令。cp不起作用。cat/data/data/your.package.name/databases/database.name>/mnt/sdcard/database.sqlite谢谢,我稍后再试。如果这有效,你会得到一个+vote@FunkyMan你还不能投票。但是你可以把这个答案标记为接受。不过,我想您必须等几天。访问权限被拒绝问题无法复制