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


¿Qué técnica de almacenamiento de datos Android utilizar?

La documentación de Android tiene las siguientes opciones a continuación, pero no explica qué circunstancias es mejor para cada uno. ¿Cuáles son los pros y los contras de cada método? Por ejemplo, ¿bajo qué condiciones sería SQL mejor que las preferencias compartidas?

  • Preferencias compartidas
  • Almacenamiento interno
  • Almacenamiento externo
  • Bases de datos SQLite
  • Conexión de red

  • Mejor detección de corrupción de SQLite
  • ¿Dónde está almacenada mi base de datos sqlite en android?
  • ¿JSON en un campo del sqlite?
  • Android - ¿Dónde está la base de datos SQLite almacenada
  • SQLite database, multithreading, bloqueos y sincronización de cuentas en android
  • Cómo implementar una base de datos de objetos de uno a muchos en sqlite para android
  • ¿Por qué onUpgrade () no está siendo invocado en la base de datos Android sqlite?
  • Aplicación de Android (Samsung Galaxy Tab, 2.2) no * a veces * escribir en el DB
  • 4 Solutions collect form web for “¿Qué técnica de almacenamiento de datos Android utilizar?”

    Diferentes opciones de almacenamiento en Android

    Introduzca aquí la descripción de la imagen


    Proveedores de contenido

    Introduzca aquí la descripción de la imagen

    • Consideremos que los datos estructurados añadidos al dispositivo desde la aplicación1 no están accesibles para otra aplicación2 presente en el mismo dispositivo pero la foto del perfil agregada al dispositivo por la application1 está disponible para la application2 ejecuta en el mismo dispositivo

    • Considere el dispositivo android como una ciudad, las aplicaciones en ella son las casas en la ciudad, la gente en las casas (aplicación) son los datos. Ahora el proveedor de contenido es como un agente en la ciudad (dispositivo Android). Este corredor proporciona el acceso para la gente en la ciudad para encontrar diversas casas que refieren como el abastecedor de contenido en el dispositivo androide proporciona el acceso para los datos en el dispositivo para diversas aplicaciones.


    Preferencias compartidas

    Introduzca aquí la descripción de la imagen

    • Tenga en cuenta que tengo una aplicación que dice una aplicación de Face Book que utilizo para iniciar sesión en mi cuenta.

    • Ahora, la primera vez que ingrese mi nombre de usuario y mi contraseña para acceder a mi cuenta. Diga que me cierre la sesión de la aplicación una hora más tarde de nuevo, uso la misma aplicación de Face Book para iniciar sesión nuevamente en mi aplicación.

    • Tengo que ingresar el nombre de usuario y la contraseña de nuevo para iniciar sesión en mi cuenta y establezco un tema para mi aplicación y otras opciones de cómo se ve mi aplicación en mi teléfono actual

    • Esto no es necesario porque considero que estoy utilizando mi teléfono para iniciar sesión en la aplicación. Así que siempre voy a utilizar mi teléfono para iniciar sesión una y otra vez, por lo tanto, introducir mis credenciales una y otra vez es más trabajo muestra que no es una aplicación fácil de usar

    • Preferencias compartidas es muy útil en escenarios donde puedo usar su función para compartir mis datos en un archivo xml que existe físicamente en la aplicación de Android instalada en mi teléfono que no se destruye aunque la aplicación esté cerrada. Aquí podemos guardar los datos de preferencias de usuario de la aplicación actual.

    • Como resultado la próxima vez que abra mi aplicación en mi teléfono puedo ver los datos rellenados automáticamente los campos necesarios y los ajustes son


    Almacenamiento de archivos

    Introduzca aquí la descripción de la imagen

    • En Android podemos usar el espacio de almacenamiento del dispositivo para almacenar los datos en él para las aplicaciones. El tipo de datos implica cosas como un archivo de texto, archivo de imagen, archivo de vídeo, archivo de audio, etc.

    • Como se ve en la figura como podemos ver que hay dos lugares que podemos hacer esto. Una forma es escribir los archivos sin formato en el almacenamiento primario / secundario. Otra forma es escribir los archivos de caché en el almacenamiento principal / secundario.

    • También hay diferencia entre el almacenamiento de datos en bruto y los datos de caché, los datos en bruto una vez almacenados en la memoria por el usuario tiene que ser explícitamente suprimido por el usuario explícitamente de lo contrario existiría hasta entonces. Los datos de caché almacenados en la memoria no son datos permanentes porque el sistema lo elimina automáticamente si se siente que hay escasez de memoria.

    Introduzca aquí la descripción de la imagen

    Almacenamiento interno:

    • Considere que un usuario en una aplicación ha almacenado datos en el almacenamiento interno, entonces sólo el usuario de esa aplicación tiene acceso a esos datos en el móvil y que los datos se eliminan automáticamente cuando el usuario desinstala la aplicación. Hablando de que la memoria interna es privada.

    • El directorio de almacenamiento interno de las aplicaciones se almacena utilizando el nombre del paquete de nombre en un lugar especial del sistema de archivos android.

    • Otras aplicaciones o usuarios de la aplicación actual no tienen acceso al archivo establecido por un usuario en particular y una aplicación concreta, a menos que esté disponible explícitamente para que el usuario pueda acceder con legibilidad.

    Introduzca aquí la descripción de la imagen


    SQLite

    Introduzca aquí la descripción de la imagen

    • Sqlite se utiliza para almacenar datos más estructurados localmente en un móvil donde se está ejecutando la aplicación android. Los datos estructurados implican a partir de los cuales se muestra en la figura como la información de un estudiante en forma de filas y columnas.

    • Sqlite ofrece funcionalidades similares como Mysql y oracle pero con funciones funcionales limitadas. Algunas de las cosas implican realizar operaciones de consulta en tablas. Hay características, aunque como la creación de vistas, pero también algunas características no están disponibles como el procedimiento almacenado.

    • Sqlite es muy útil en el almacenamiento de datos complejos y grandes que se pueden descargar una vez y se puede utilizar una y otra vez hasta que la aplicación se está ejecutando. Cuando la aplicación se cierra, la base de datos sqlite también se destruye.


    Juntando todas las piezas

    Introduzca aquí la descripción de la imagen

    • Las preferencias compartidas son buenas para almacenar … las preferencias de una aplicación y otros pequeños fragmentos de datos. Es un almacén de clave de cadena persistente realmente simple para algunos tipos de datos: boolean, float, int, long y string. Por ejemplo, si mi aplicación tenía un inicio de sesión, podría considerar almacenar la clave de sesión como cadena dentro de SharedPreferences.
    • El almacenamiento interno es bueno para almacenar datos de aplicación a los que el usuario no necesita acceso, ya que el usuario no puede acceder fácilmente al almacenamiento interno. Posiblemente bueno para el almacenamiento en caché, registros, otras cosas. Cualquier cosa que sólo la aplicación tenga la intención de crear Leer Actualizar o Eliminar.
    • Almacenamiento externo . Genial para lo contrario de lo que acabo de decir. La aplicación de Dropbox probablemente utiliza almacenamiento externo para almacenar la carpeta de Dropbox del usuario, por lo que el usuario tiene acceso fácil a estos archivos fuera de la aplicación de Dropbox, por ejemplo, utilizando el administrador de archivos.

    • Las bases de datos SQLite son excelentes siempre que vaya a usar una gran cantidad de datos estructurados y un esquema relativamente rígido para administrarlo. En términos sencillos, SQLite es como MySQL o PostgreSQL excepto en lugar de la base de datos que actúa como un daemon de servidor que luego toma las consultas de los scripts CGI como php, simplemente se almacena en un archivo .db y se accede a través de una simple biblioteca Dentro de la aplicación. Aunque SQLite no puede escalar casi tan grande como las bases de datos dedicadas, es muy rápido y conveniente para aplicaciones más pequeñas, como aplicaciones de Android. Utilizaría un db de SQLite si estuviera haciendo una aplicación para agregar y descargar recetas, ya que ese tipo de datos está relativamente estructurado y una base de datos permitiría que escalara bien. Las bases de datos son buenas porque escribir todos sus datos a un archivo, luego analizar de nuevo en su propio formato propietario no es divertido. Por otra parte, el almacenamiento de datos en XML o JSON no sería tan malo.

    • La conexión de red se refiere al almacenamiento de datos en la nube. El archivo HTTP o FTP y las transferencias de contenido a través de los paquetes java.net. * Lo hacen posible.

    SharedPreferences es principalmente para configuraciones específicas de la aplicación a las que puede acceder a través del menú Configuración, como la configuración de la aplicación. Es una buena idea mantener todo simple aquí – en su mayoría banderas booleanas, cuerdas cortas o números enteros. Los datos de SharedPreferences persisten en el reinicio del dispositivo y se eliminan junto con la desinstalación de la aplicación. Los datos se guardan como un par clave-valor.

    El almacenamiento interno se utiliza principalmente para un mayor almacenamiento de datos no persistentes. Utiliza almacenamiento interno si desea procesar una imagen, un clip de vídeo corto, un archivo de texto grande, etc. Pero no almacena los datos procesados ​​en el almacenamiento interno, su función es más similar a la memoria RAM de una CPU. La cantidad de almacenamiento interno disponible para su aplicación depende del dispositivo, pero siempre es una buena idea mantener algo por debajo de 1 MB. Los datos se hacen referencia a través de su ruta de archivo.

    El almacenamiento externo no sólo se refiere al almacenamiento de tarjetas SD, sino también a los teléfonos de gama alta, lo que puede significar almacenamiento interno (como en el Galaxy Nexus o S2). Aquí es donde almacena los archivos de video grandes, las imágenes de alta resolución y el archivo de texto de 20 megabytes que desea analizar en su aplicación. También es un lugar para almacenar datos que desea compartir entre dispositivos si cambia tarjetas SD. Los datos también se hacen referencia a través de su ruta de archivo.

    Bases de datos SQLite es donde se almacenan casi cualquier cosa que desee en una base de datos regular – con la ventaja de organizar las cosas en tablas, filas y columnas. Funciona mejor con las cosas que desea mostrar en la interfaz de usuario como listas – el mejor ejemplo sería la gran invención conoce como el CursorAdapter. Los datos almacenados aquí también persisten en el reinicio del dispositivo y se eliminan con la desinstalación de la aplicación. También puede compartir datos entre aplicaciones con sqlite db si lo conecta a un ContentProvider. Se accede a los datos mediante un Cursor , donde se pueden llamar métodos como si estuviera ejecutando sentencias SQL.

    La conexión de red no es realmente una técnica de almacenamiento de datos, pero puede ser una forma de datos persistentes para un usuario específico siempre que el dispositivo esté conectado a Internet, utilizando algún tipo de autenticación. Usted tiene que equilibrar entre la descarga de datos cada vez que la aplicación lo necesita, o tener una sincronización de datos de una sola vez, lo que finalmente conduciría a otra de las opciones de almacenamiento mencionadas anteriormente.

    Las preferencias compartidas son pares clave / valor, nada más. Así que si quieres mantener un registro de decir, los estudiantes y su puntuación de prueba, realmente no funcionará bien para eso.

    Una base de datos es sólo eso, una base de datos. Puede definir cuantas columnas (y tablas) necesite para realizar el trabajo.

    Si se trata de preferencias para tu aplicación, utiliza las preferencias compartidas (casi cualquier preferencia que pueda imaginar se puede hacer de esa manera), si es algo más complicado, utiliza una base de datos.

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