【问题标题】:Android export SQLite Database to Computer / MacAndroid 将 SQLite 数据库导出到计算机/Mac
【发布时间】:2016-03-31 07:28:25
【问题描述】:

我的 Android 设备(我自己的应用程序)上有一个 SQLite 数据库。现在我想在我的计算机上查看 SQLite 数据库。

是否有任何解决方案(简单的方法)可以在我的计算机上没有 root 权限且没有 SD 卡的情况下获取数据库?

我尝试用谷歌搜索,但找不到任何解决此问题的方法......

编辑:我使用的不是模拟器(需要我的设备上的相机)。

【问题讨论】:

  • 在我看来,非 root 设备无法从中获取 sqlite 数据库。
  • 好的,非常感谢。
  • 最简单的方法是通过终端,此链接中的完整指南。由 dheeraj bhaskar 回答。 stackoverflow.com/questions/18370219/…

标签: java android database sqlite


【解决方案1】:

如果手机没有root你不能直接访问你的数据库,但是你可以复制它到下载文件夹,然后复制到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();
    }
}

【讨论】:

  • 谢谢,我稍后再试。如果可行,您将获得 +vote
  • @FunkyMan 你还不能投票。但是您可以将此答案标记为已接受。不过,我想您必须等待几天。
  • 面临 EAaccess 权限被拒绝问题无法复制
【解决方案2】:

此方法适用于我的无根设备。

//检查你的设备是否连接

adb 设备

adb 外壳

作为 your.package.name 运行

chmod 777 数据库/your.database.name

退出

cp /data/data/your.package.name/your.database.name mnt/sdcard/

退出

adb pull mnt/sdcard/your.database.name

【讨论】:

  • 复制到您可以访问的文件夹。做亚行外壳。 cd mnt/ 然后 ls.并告诉我文件夹名称。我会告诉你在哪里复制数据库
  • 我电脑上的文件夹名称?
  • 不,您设备上的文件夹。执行 adb shell, cd mnt 然后 ls (it L for london) 并告诉我结果。
  • 哦,好吧。我还以为是Upper i。我稍后告诉你,因为我在工作:D
  • 我使用了 cat 命令。 cp 没用。 cat /data/data/your.package.name/databases/database.name >/mnt/sdcard/database.sqlite
【解决方案3】:

如果您将 Sqlite DB 保存在默认位置,您可以在如下路径中找到相同的位置

/data/data/com.dev.myapplication/databases/mydb.db

您可以使用 Android Device Monitor 找到相同的内容,通过它您可以导航到内部和外部存储器。

找到数据库文件后,通过USB线连接后将其解压缩并保存在桌面。您可以使用“从设备中拉取文件”选项

将文件解压到桌面后,使用类似于Mozilla Firefox SQLite viewer 的任何工具查看数据库。

【讨论】:

  • 但是我需要 Root 权限来获取这个数据库,或者不需要?我试过了,但我的“数据”文件夹是空的。
  • 不需要root权限。尝试保存到其他位置并验证。例如您的外部 SD 卡位置和一些自定义文件夹。
  • 我没有 SD 卡...我尝试将其保存到其他位置。谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
相关资源
最近更新 更多