【问题标题】:What should be the location of sqlite database in android application?sqlite数据库在android应用程序中的位置应该是什么?
【发布时间】:2016-04-24 17:45:11
【问题描述】:
目前,我正在开发一个 android 应用程序,它会在打开服务器后立即从服务器下载 sqlite 数据库。我必须在应用程序中非常频繁地使用这个数据库文件,并且必须经常从这个数据库文件中获取数据。那么,这个数据库在手机中的正确位置或目录应该是什么,这样我才能有效地读/写这个数据库文件。
【问题讨论】:
标签:
java
android
database
sqlite
adk
【解决方案1】:
默认情况下,新创建的数据库存储在:
//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