在我的应用程序中,我使用了两个数据库。
这是处理数据库管理和对其进行的所有查询的类。
public class Database {
private DbHelper DBHelper;
private final Context Context;
private SQLiteDatabase MyDBone, MyDBtwo;
static Context ctx;
private static class DbHelper extends SQLiteOpenHelper {
public DbHelper(Context context, String dbName, int dbVersion) {
super(context, dbName, null, dbVersion);
}
@Override
public void onCreate(SQLiteDatabase db) {
// This is where the two databases are created
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVesion) {
// database upgrades are handled here
}
}
}
// database constructor
public Database(Context c) {
Context = c;
ctx = c;
}
// database open
public Database open() throws SQLException {
DBHelper = new DbHelper(Context, BD_NAME, BD_VERSION);
// I have here some if code to decide witch one of the bellow is used
if{
MyDBone = DBHelper.getWritableDatabase();
} else{
MyDBtwo = DBHelper.getWritableDatabase();
}
return this;
}
// database close
public void close() {
DBHelper.close();
}
public Cursor getData(........) {
// My querys are made here
}
}
我的问题是数据库太大了。在 onCreate 方法中,我收到错误:The code of method onCreate(SQLiteDatabase) is exceeding the 65535bytes limit
. 另一方面,我的应用程序变得非常大。
我想知道解决此问题的最佳方法是什么,因为我无法更改我的数据库。
由于我的应用程序必须离线运行,我无法在网络服务器上进行查询。
我相信最好的方法是,在应用程序的第一次运行时,从互联网上的某个地方(驱动器、保管箱或其他方面)下载数据库,但由于我的编程技能有点绿色,我必须推迟这个将来做。
是否有可能,维护我的数据库类,将 apk 与数据库预打包并将它们安装在 sdcard 上?另一方面,这会增加 apk 的大小(数据库总数为 15 mb)。
请就解决此问题的最佳方法提出建议。
问候,
收藏夹