Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Almacenamiento de datos de Android – Archivo vs SQLite

Estoy desarrollando una aplicación que periódicamente envía información a un servidor externo. Hago una copia local de los datos que se envían, con fines de copia de seguridad.

¿Cuál es la mejor opción para almacenar los datos en términos de ahorro de batería ? Cada envío de datos es un objeto serializado (la clase tiene 5 campos, incluyendo una fecha, números y cadenas) de aproximadamente 5K-10K.

¿Alguna otra idea?

  • Eficiente ejecución de consultas SQL por lotes en Android, para actualizar la base de datos
  • Android cómo obtener datos sqlite por nombre de columna
  • Acceso a bases de datos en Android
  • Android: Fragmentos, SQLite y cargadores
  • ¿Por qué un delete rawQuery necesita un moveToFirst para eliminar realmente las filas?
  • Cómo utilizar FTS3 en SQLite
  • SQLiteConstraintException: código de error 19: falla de restricción
  • Android: actualizar la versión de la base de datos y agregar nueva tabla
  • 3 Solutions collect form web for “Almacenamiento de datos de Android – Archivo vs SQLite”

    No tengo ni idea en términos de duración de la batería directamente pero un criterio sería que es más fácil de manejar? Menos operaciones para administrar los datos significarían menos ciclos de CPU y, a su vez, una mayor duración de la batería.

    Yo diría que la opción SQLite es más fácil. Usted puede poner una columna de fecha en la tabla de SQLite que almacena sus datos que hace la eliminación de envíos antiguos que usted no necesita más fácil – y todo manejado a través de la biblioteca nativa de SQL. Gestionar una carga completa de archivo – o peor un solo archivo – con su propio código Java sería mucho más trabajo.

    Además, puede escribir datos en la base de datos y olvidarse de ella hasta que necesite volver a leerla. Si almacena datos en archivos, tendrá que trabajar cuando deba leer y escribir archivos en términos del ciclo de vida de la aplicación de Android . Si le preocupa la batería, probablemente no desearía escribir archivos con más frecuencia de lo que debería, y almacenar los datos en la memoria, pero debería asegurarse de no perder datos cuando la aplicación esté Pausada o Destruida . En mi opinión, es mucho más fácil utilizar una base de datos SQLite y no preocuparse de nada de esto.

    No creo que importe si usas SQLite o un archivo, porque el SQLite db es simplemente un archivo en el sistema (almacenado en /data/data/<your_package>/databases/ ). Tendrá que comprometerse con el db en el momento adecuado, tanto como necesitaría para guardar un archivo en el disco duro en el momento adecuado. En otras palabras, de una forma u otra puede utilizar tantas unidades de disco duro.

    Creo que lo que elijas depende más del tipo de datos que estás guardando. Si usted necesita los poderes que tener un db puede otorgar (como la consulta), entonces por todos los medios utilizar SQLite. Sin embargo, si no necesita un db, o tiene datos que varían enormemente (y no se puede configurar fácilmente en una base de datos relacional), entonces iría con archivos.

    Lo que puedo decirle con seguridad es que no debe usar serialización para guardar un archivo, si esa es la ruta que elija ir. La serialización de Android es lenta, lenta, lenta y crea archivos grandes. Es mucho mejor escribir su propio formato XML o JSON por razones de rendimiento.

    ¿Es su aplicación multi-threaded? Si usted tiene varios hilos de acceso al almacén de datos, entonces yo iría con SQLite. Deje que SQLite se preocupe por bloquear problemas.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.