http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
这家伙谈到了android系统路径:
// Android应用程序数据库的默认系统路径 private static String DB_PATH =“/ data / data / YOUR_PACKAGE / databases /”;
和这里:关于sqlite数据库的许多其他链接中的DB_PATH =“/ data / data / com.android.example / databases /”。
问题是,eclipse(在mac osx 10.7上)没有创建数据目录并且在我的motorola xoom(它有Android 4.0.3 - 冰淇淋三明治)上我无法确定它的默认系统路径是什么。我没有看到任何引用/ data / data / ...使用Astro文件管理器。
由于我正在使用mac,我不得不使用android文件系统应用程序将我的apk文件从我的eclipse工作区传输到motorola xoom。我认为我的一个问题应该是 - 在哪里适当放置这个或者做的事情是重要的?
我已经下载了Sqlite数据库浏览器并填写了我的数据库,如上面的链接所述。我没有任何主键。我已将.db文件复制到项目中的assets文件夹中 - 也就是链接状态。
此外,由于我的数据库已经创建了表,我真的需要做的(我猜)是将表复制到每个人总是提到的数据目录,然后我应该能够进行插入/更新/选择等等?
到目前为止我的代码:
public class DatabaseHelper extends SQLiteOpenHelper {
private Context myDbContext;
private static String dbName = "restaurant";
public DatabaseHelper(Context context){
super(context, dbName, null, 1);
this.myDbContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
//need to take input from local database and copy it
//but where do i copy the information to? what path should i use?
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(DatabaseHelper.class.getName(), "upgrading database/changing database which will remove all old data!");
db.execSQL("drop table if exists menu");
db.execSQL("drop table if exists items");
db.execSQL("drop table if exists server");
onCreate(db);
}
}
答案 0 :(得分:0)
问题是,eclipse(在mac osx 10.7上)没有创建数据目录
Eclipse不会在设备上创建/data
目录。它来自工厂。
和我的motorola xoom(有Android 4.0.3 - 冰淇淋三明治)我无法确定它的默认系统路径。
Android中没有“默认系统路径”的概念。
由于我正在使用mac,我必须使用android文件系统应用程序将我的apk文件从我的eclipse工作区传输到motorola xoom。
大多数Android开发人员只是从Eclipse运行应用程序。
此外,由于我的数据库已经创建了表,我真的需要做的(我猜)是将表复制到每个人总是提到的数据目录,然后我应该能够进行插入/更新/选择等等?
使用SQLiteAssetHelper
,它为您提供了在Eclipse中打包数据库的说明,然后在运行时在适当的位置为您解压缩。