导出Android SQLite数据库

时间:2012-01-16 22:23:09

标签: android sqlite

我为我的应用程序创建了一个数据库。现在我想确保所有属性都正确并且行正确填充。数据库似乎在/data文件夹中,但此文件夹似乎是空的。当我尝试使用sqlite3访问它时(使用adb shell从命令行)我得到一个未找到的错误。我正在玩的Android手机是谷歌Nexus S.有关如何导出它或测试数据库是否正确构建并按预期使用的任何想法?

3 个答案:

答案 0 :(得分:5)

在DDMS透视图中,在模拟器运行时使用文件资源管理器。您可以在那里浏览文件夹。您将在/ data / data / your-package-name / databases中找到您的数据库 您可以找到有关DD​​MS here

的详细信息

答案 1 :(得分:4)

您可能会发现此问题有用:

How do I backup a database file to the SD card on Android?

@skeniver说:

try {
    File sd = Environment.getExternalStorageDirectory();
    File data = Environment.getDataDirectory();

    if (sd.canWrite()) {
        String currentDBPath = "//data//{package name}//databases//{database name}";
        String backupDBPath = "{database name}";
        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) {
}

@jakobud补充说你需要

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
在你的清单中

答案 2 :(得分:1)

您需要手机根,或者使用模拟器。在普通的非root手机上,您无权访问此类私人应用数据。

Read this to see how to export your file for analysis