繁体   English   中英

Android如何查看我的SQLite?

[英]Android How can I see my SQLite?

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

有人说我没有获得“ root特权”。

如何查看我的SQLite?

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

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

这是一个完整的答案,如何将文件复制到SDCard: https : //stackoverflow.com/a/19093736/2891426

我将在一个全新的类中实现此功能,并创建一个调用此按钮的按钮。 或类似的东西。

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

您确实需要root用户访问权限才能查看设备上的数据库。 但是,您可以使用仿真器而不是物理设备,这将使您能够在Eclipse中浏览数据库。

您无需具有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) {

    }
}

您应该使用SQLiteBrowser来轻松访问数据库。 您可以从此处下载http://sqlitebrowser.org/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM