Android如何查看我的SQLite?

时间:2014-10-16 12:42:28

标签: java android

我使用Eclipse打开data/data/your.package.name/databases,但data中没有任何内容。

有些人说我没有获得" root权限"。

如何查看我的SQLite?

4 个答案:

答案 0 :(得分:1)

我认为最简单的方法是在您的应用中编写一个小功能,将/data/.../etc复制到/sdcard/或其他地方。

之后,您将能够从计算机上打开该数据库。

以下是完整的答案,如何将文件复制到SD卡中:https://stackoverflow.com/a/19093736/2891426

我会在一个全新的类中实现这个函数,并创建一个调用它的按钮。或类似的东西。

您可以从此处下载小型Windows应用程序,以浏览数据库文件:http://sqlitebrowser.org/

答案 1 :(得分:0)

您需要root权限才能查看设备上的数据库。您可以使用模拟器而不是物理设备,这样您就可以在Eclipse中浏览数据库。

答案 2 :(得分:0)

您无需拥有root权限即可访问外部存储空间。你需要内部存储。在ddms的eclipse中转到android / data / yourpackage,在那里你应该找到你的应用程序创建的所有文件。如果没有文件,则没有数据库。 一旦找到数据库,就可以使用sqliteman查看其内容 http://sourceforge.net/projects/sqliteman/files

最佳解决方案是使用内部存储,然后在您想要访问它时将其导出到外部。看这里:https://stackoverflow.com/a/19093736/2026478

public void exportDatabse(String databaseName) {
    try {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();

        if (sd.canWrite()) {
            String currentDBPath = "//data//"+getPackageName()+"//databases//"+databaseName+"";
            String backupDBPath = "backupname.db";
            File currentDB = new File(data, currentDBPath);
            File backupDB = new File(sd, backupDBPath);

            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();
            }
        }
    } catch (Exception e) {

    }
}

答案 3 :(得分:0)

您应该使用SQLiteBrowser,因为您可以轻松访问您的数据库。 您可以从这里下载http://sqlitebrowser.org/