我想知道如何在android系统中管理sqlite数据库。 当我使用SQLiteDatabase来保存数据时,它在android系统中保存在哪里?
我想知道它,因为当我通过sqlite保存数据时,其他开发者是否可以打开并更改它?
感谢。
答案 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。您可以打开文件资源管理器并转到数据库目录并从那里拉出