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 usar esa aplicación. He buscado algunos tutoriales y no estoy seguro de cuál es la mejor manera de hacerlo. ¿Debo verificar 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 incluirse 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.Base de datos prepoblada de Android
Respuesta
Este enlace tiene buena respuesta Ship an application with a database
Aquí está el enlace que se presenta como Mejor respuesta en la pregunta de SO a la que hace referencia Andrey. Es un excelente artículo sobre la distribución de una base de datos preconstruida con su aplicación Android: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ –
Similar pero más breve : http://www.helloandroid.com/tutorials/how-have-default-database –
http: // stackoverflow.com/preguntas/9109438 /-Ya-creados usando la base de datos-con-android-/ 9109728 # 9109728 –
la forma en que voy aquí es enviar una base de datos prepoblada en la carpeta de activos. Puede colocar allí archivos y usarlos tal como están. Tenga en cuenta, sin embargo, que hay un límite de tamaño de 1 MB, por lo que tal vez tendrá que dividir archivos o comprimirlos.
La compresión es bastante práctica y está bien soportada por el propio sistema operativo.
esperanza esto fue de alguna ayuda :-)
El límite de tamaño es de 1 MB. –
JavaDoc de SQLiteOpenHelper:
una clase de ayuda para gestionar la base de datos creación y gestión de versiones. Usted crear una subclase implementar onCreate (SQLiteDatabase), ONUPGRADE (SQLiteDatabase, int, int) y opcionalmente onOpen (SQLiteDatabase), y esta clase se encarga de la apertura la base de datos si es que existe, crearlo si lo hace no, y actualizándolo como necesario. Las transacciones se usan en , asegúrese de que la base de datos esté siempre en un estado sensible .
Para ver un ejemplo, consulte la clase NotePadProvider en la aplicación de ejemplo NotePad , en las muestras/ directorio del SDK.
Si amplía esta clase, tiene 3 métodos que se llamarán en algunos casos y puede elegir qué hacer. Eso es la mejor práctica :)
Aquí está un ejemplo de cómo crear y llenar una base de datos, sólo se puede hacer esto en la instalación de la aplicación, esto sólo crea una entrada, aunque por lo que puede ser ineficiente para lo que 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
}
Una explicación para el voto por favor? –
¿Cómo puedo hacer esto 'en la instalación de la aplicación?' ¿Esta parte del código se ejecuta solo en la instalación? –
- 1. Crear base de datos SQLite en android
- 2. Actualizar la base de datos Android
- 3. base de datos Access en Android
- 4. Android: Eliminar toda la base de datos
- 5. Android ExpandableListView y base de datos SQLite
- 6. Android, dos aplicaciones, una base de datos?
- 7. Android - ¿Existe una base de datos SQLite?
- 8. Android abrir o crear base de datos
- 9. Android: excepción de estado ilegal de base de datos SqLite (base de datos ya cerrada)
- 10. android base de datos de exportación de importación
- 11. capa de base de datos de nivel superior para Android?
- 12. ¿Cómo conectar Android al servidor de base de datos MySql?
- 13. Android cambiar el nombre de la base de datos SQLite
- 14. ¡Pregunta si existe la base de datos de Android!
- 15. Android. ¿Proveedor de contenido o base de datos?
- 16. Cómo conectar Android a un servidor de base de datos
- 17. Prueba de base de datos en Android: ProviderTestCase2 o RenamingDelegatingContext?
- 18. ORM en Android SQLite y esquema de base de datos
- 19. Cómo actualizar la base de datos multimedia de Android
- 20. Acceso de Android a la base de datos SQL remota
- 21. Error indefinido de la base de datos en phonegap android?
- 22. Existe el registro de Android() en la base de datos?
- 23. Permiso de Android para crear la base de datos
- 24. Android: cierre de la base de datos SQLite
- 25. Populating Spinner de la base de datos SQLite Android
- 26. Agregar una base de datos/backend a aplicaciones de Android
- 27. base de datos de Android SQLite se corrompe
- 28. base de datos SQLite Android local, bloqueo, y la versión
- 29. ¿Por qué usar la base de datos sqlite en Android?
- 30. Android: guarde el objeto android.net.Uri en la base de datos
http://stackoverflow.com/a/9109728/265167 –
no quiero para publicar esto como una respuesta porque no es verdad. Considere escribir Java para compilar la base de datos _en Android_ (por ejemplo, desde archivos CSV insertados con ADB). Luego comprimirlo en '/ assets' para instalarlo. Tratar de coincidir exactamente con lo que Android espera en un entorno que no sea de Android resultó ser un paso de construcción frágil. – Gene
@ JonDiY212 HTML incorrecto en su enlace. – Noumenon