2011-03-09 13 views
5

Tengo varios archivos xml con esquemas, algunos de ellos bastante grandes (alrededor de 16MB en total) con muchas interdependencias. Quiero utilizar estos datos en mi aplicación de Android. Los datos se buscarán con frecuencia, pero muy raramente cambiados.xml vs. sqlite para android y cómo

  1. ¿Debo guardarlos como archivos xml o debo convertir los datos a un sqlite db? ¿Cuál es más rápido? ¿El espacio de memoria es un problema con 16MB en un dispositivo Android?

  2. Si es mejor convertir los archivos xml a sqlite db, ¿cómo hago esto? Vi a este tema:

How to convert xml to sqlite database in android platform?

que desde mi entendimiento, sugieren el streaming el archivo XML en db, pero sólo se habla de un archivo XML. Con varios archivos xml que representan objetos con dependencias, ¿qué trabajo adicional tengo que hacer, por ejemplo, tengo que hacer algún tipo de enlace primero? Si es así, ¿qué herramienta es mejor para la tarea?

Soy muy nuevo en android dev y sqlite por lo que cualquier sugerencia sería muy apreciada.

Respuesta

2

Echa un vistazo a esta respuesta:

Raw resources versus SQLite database

Con respecto a esta pregunta ...

How to convert xml to sqlite database in android platform?

... Creo que no tiene sentido para serializar un XML ... hará las cosas mucho más lentas: tendrá que deserializar y luego analizar el XML. Entonces, lo mejor que puede hacer es poner todos sus datos dentro de una tabla XML.

Como los datos no cambiarán, puede crear la base de datos fuera del dispositivo. Quiero decir, crea la base de datos en tu escritorio, luego coloca la base de datos en la carpeta de activos de tu aplicación de Android y cópiala en el dispositivo.

¿Cómo pones el XML en la base de datos? Depende de la estructura de los archivos XML ... cree tablas según la información que tenga en el XML, incluidas todas las relaciones (que puede emular utilizando claves externas, etc.). Lo que haría sería crear un guión o algo para hacer ese trabajo (podría ser una aplicación Java, un guión Perl, un programa Python o cualquier otra cosa con la que se sienta cómodo).

+0

Gracias por la esclarecedora discusión. Decidí convertir mis xml en una base de datos sqlite. Esperaba algo como JAXB que hiciera el trabajo por mí, pero encontré (de todos los lugares) un complemento para firefox llamado sqlite manager, lo probaré. ¿Tienes una sugerencia diferente para mí? No tengo demasiados objetos pero cada uno de ellos tiene una larga lista de propiedades. De todos modos, gracias por la respuesta rápida. – nullgraph