在android系统中管理sqlite?

时间:2017-07-04 08:19:00

标签: android sqlite

我想知道如何在android系统中管理sqlite数据库。 当我使用SQLiteDatabase来保存数据时,它在android系统中保存在哪里?

我想知道它,因为当我通过sqlite保存数据时,其他开发者是否可以打开并更改它?

感谢。

2 个答案:

答案 0 :(得分:2)

它将您的移动内部存储空间保存为数据库名称的文件:

目录是:(内部存储路径).... / Android / data / packageName / database /

但数据库文件将不可见,但您可以将其写入另一个路径,然后使用sqlite浏览器打开。

如何将数据库写入另一个文件:

    private void write() throws IOException {
            File sd = Environment.getExternalStorageDirectory();
            if (sd.canWrite())
            {
                String currentDBPath = DBHelper.DATABASE_NAME;
                String backupDBPath= "QSDevice.db";

                File currentDB = new File(getDBPath(), 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();
                }
            }
        }

 private String getDBPath() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            return getFilesDir().getAbsolutePath().replace("files", "databases") +
                    File.separator;
        } else {
            return getFilesDir().getPath() + getPackageName() + "/databases/";
        }
    }

答案 1 :(得分:0)

您通过Android中的SQLite保存的数据保存在Android设备的data-> data->(您的包名) - > data->(您的数据库名称)中。如果您选择模式为PRIVATE,则其他应用程序和开发人员无法访问您的数据库。您可以使用ANDROID DEVICE MANAGER访问此数据库,您可以从Tools-> Android-> Android设备管理器打开它。它将在你的android Studio中打开一个eclipse DDMS。您可以打开文件资源管理器并转到数据库目录并从那里拉出