android应用程序中sqlite数据库的位置应该是什么?

时间:2016-04-24 17:45:11

标签: java android database sqlite adk

目前,我正在开发一个Android应用程序,它将在打开时立即从服务器下载sqlite数据库。我必须在应用程序中频繁使用此数据库文件,并且必须经常从此数据库文件中获取数据。那么,移动设备中该数据库的正确位置或目录应该是什么,所以我可以有效地读/写这个数据库文件。

1 个答案:

答案 0 :(得分:0)

默认情况下,新创建的数据库存储在:

//data/data/<Your-Application-Package-Name>/databases/<your-database-name>

但是在非root设备上无法访问此文件夹。通过Internet传输数据库存在安全风险,但如果绝对必要,您可以像这样修改MySQLiteOpenHelper构造函数:

public class MySQLiteOpenHelper extends SQLiteOpenHelper {
    MySQLiteOpenHelper(Context context) {
       super(context, "/mnt/sdcard/<your-app-name>/database_name.db", null, 0);
}

}

通过执行此操作,您将数据库存储在SD卡上的文件夹中。

请记住,通过使用此方法,您需要额外的权限才能在manifest.xml中写入外部存储:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

您可以在此处找到更多信息和示例:Location of sqlite database on the device