Base de datos pre-poblada de Android

Estoy trabajando en una aplicación de Android que necesitará varias entradas (una sola tabla, con 1000-10000 filas) pobladas en la base de datos de esa aplicación antes de que el usuario pueda utilizar esa aplicación. He mirado alrededor de algunos tutoriales y no estoy seguro de la mejor manera de hacer esto. ¿Debo comprobar si la base de datos existe cada vez que se inicia la aplicación y, si no está allí, crearla e insertar los miles de registros que necesito? ¿O hay una mejor manera de manejar este problema? Idealmente, podría ser incluido como parte del proceso de instalación de la aplicación, pero no estoy seguro si esto es posible. Cualquier comentario sería muy apreciado.

Este enlace tiene una buena respuesta Enviar una aplicación con una base de datos

La forma en que voy aquí es enviar una base de datos prepopulada en la carpeta de activos. Puede colocar los archivos allí y utilizarlos tal y como están. Tenga en cuenta, sin embargo, que hay un límite de tamaño de 1 MB, así que quizás tendrá que dividir archivos o comprimirlos.

La compresión es muy útil y bien soportada por el propio sistema operativo.

Espero que esto fue de alguna ayuda 🙂

Aquí está un ejemplo de cómo crear y poblar una base de datos, usted puede apenas hacer esto en la instalación de la aplicación, ésta crea solamente una entrada sin embargo así que puede ser ineficaz para lo que usted quiere hacer.

 private static class settingsDatabaseHelper extends SQLiteOpenHelper{ //SQL String for creating the table required private static final String CREATE_SETTINGS_TABLE = "CREATE TABLE tbl_settings(" + "_ID INTEGER PRIMARY KEY AUTOINCREMENT," + "VOIPUSERNAME TEXT," + "VOIPAUTHID TEXT," + "PASSWORD TEXT," + "VOIPDISPLAYNAME TEXT," + "SIPPROXYSERVER TEXT," + "SIPREGISTRAR TEXT," + "SIPREALM TEXT," + "EXPIRESTIME INTEGER);"; //constructor public settingsDatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_SETTINGS_TABLE); ContentValues initialValues = new ContentValues(); initialValues.put("VOIPUSERNAME", "xxxxx"); initialValues.put("VOIPAUTHID", "xxxxxxxxxx"); initialValues.put("PASSWORD", "xxxxxx"); initialValues.put("VOIPDISPLAYNAME", "xxxxxxxxx"); initialValues.put("SIPPROXYSERVER", "xxxxxxxxxxxxx"); initialValues.put("SIPREGISTRAR", "xxxxxxxxxxx"); initialValues.put("SIPREALM", "xxxxxxxxxx"); initialValues.put("EXPIRESTIME", xxxxxxxxxxx); Log.d("1.6", "gets to here"); db.insert(SETTINGS_TABLE, null, initialValues); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS " + SETTINGS_TABLE); onCreate(db); } } //end helper class } 

JavaDoc de SQLiteOpenHelper:

Una clase auxiliar para administrar la creación de bases de datos y la administración de versiones. Crea una subclase que implementa onCreate (SQLiteDatabase), onUpgrade (SQLiteDatabase, int, int) y opcionalmente onOpen (SQLiteDatabase), y esta clase se encarga de abrir la base de datos si existe, creándola si no lo hace y actualizándola según sea necesario . Transacciones se utilizan para asegurarse de que la base de datos siempre está en un estado razonable.

Para ver un ejemplo, consulte la clase NotePadProvider en la aplicación de ejemplo NotePad, en el directorio samples / del SDK.

Así que si se extiende esta clase, tiene 3 métodos que se llamará en algunos casos y se puede elegir, ¿qué hacer para. Esa es la mejor práctica

  • Selección de un proyecto ORM para Android (nivel mínimo de API 7)
  • Evite borrar los datos de la base de datos al hacer clic en el botón "borrar datos" en la configuración de la aplicación en el dispositivo Android
  • Instalar android sdk usando la línea de comandos linux
  • Sincronizar datos en el dispositivo con el servidor?
  • Leer / escribir en un archivo XML externo en Android
  • No se pudo asignar CursorWindow
  • Reiniciar CursorLoader no refleja la eliminación de la base de datos
  • ¿Rellenar la base de datos de Android desde el archivo CSV?
  • ¿Cómo puedo copiar un archivo de base de datos a la tarjeta SD en Android?
  • Eliminar la base de datos sqlite al actualizar la nueva versión de la aplicación
  • SQLite SQLiteOpenHelper IllegalStateException - Error de DB ya cerrado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.