1

在我的应用程序中,我使用了两个数据库。

这是处理数据库管理和对其进行的所有查询的类。

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)。

请就解决此问题的最佳方法提出建议。

问候,

收藏夹

4

0 回答 0