0

我正在开发一个安卓应用程序。我已经在移动设备中测试了该应用程序,现在我需要查看我的应用程序的数据库(即移动数据库)。我正在使用 Mac 并且对如何从手机中提取数据库并在 SQLite 浏览器中查看它感到困惑。

谢谢你们的帮助。

4

1 回答 1

3

您将无法在真实设备上使用(除非它已植根)。数据目录受到保护,不被拥有应用程序以外的任何人访问。

要将其从设备中取出,您需要在应用程序中设置一种方法,将数据库复制到可访问的位置(如 SD 卡)。以下是我以前用来执行此操作的代码:

public void backup() {
    try {
        File sdcard = Environment.getExternalStorageDirectory();
        File outputFile = new File(sdcard,
                "yourDB.bak");

        if (!outputFile.exists()) 
             outputFile.createNewFile(); 

        File data = Environment.getDataDirectory();
        File inputFile = new File(data,
                "data/your.package.name/databases/yourDB");
        InputStream input = new FileInputStream(inputFile);
        OutputStream output = new FileOutputStream(outputFile);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = input.read(buffer)) > 0) {
            output.write(buffer, 0, length);
        }
        output.flush();
        output.close();
        input.close();
    } catch (IOException e) {
        e.printStackTrace();
        throw new Error("Copying Failed");
    }
}
于 2012-06-27T12:21:30.310 回答