Android,Ormlite,数据库位置

Col*_*ann 7 sql android ormlite

我正在使用Ormlite来保存我的Android应用程序中的一些数据(在Motorola Xoom上运行).默认情况下,sql数据库保存到/ data/data/[package name]/databases/[dbname] .db.麻烦的是,Xoom没有root,因此用户无权访问保存db的目录(无法复制/备份/编辑db的内容).

我已经在其中一个类中添加了一些额外的代码来将数据库从/ data复制到sd卡,这很好,但实际上我认为应该可以设置数据库存储位置的路径.我错过了什么,或者Ormlite不可能这样做?

在此先感谢,C

kol*_*aTM 6

如果您使用类似的东西,可以在SDCard上创建数据库

public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
[...]
public DatabaseHelper(final Context context) {
    super(context, Environment.getExternalStorageDirectory().getAbsolutePath()
    + File.separator + DATABASE_NAME, null, DATABASE_VERSION);
}
Run Code Online (Sandbox Code Playgroud)

这将创建db文件,例如/mnt/sdcard/Android/data/com.your.app/files/myData.sqlite Pro:保存内部存储器Con:当SDCard不可用时无法访问数据库(例如,当它连接时)到PC)此外,它可以被任何人可能是赞成或反对阅读.

使用context.getExternalFilesDir()而不是Environment.getExternalStorageDirectory()将使用特定于您的应用的位置,并在卸载后自动清理(并且在应用更新时也显示在2.2上).

PS我在某处读到这种方法可能不适用于2.2之前的Android版本(?)


小智 0

不,您不能直接访问数据库。您可以使用adb shelltocd进入该目录。以下是有关该主题的一些提示: http://developer.android.com/guide/developing/tools/adb.html#sqlite

我不明白这与 Ormlite 有什么关系。