entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Uso de base de datos .sqlite en android descargada de servidor externo

Buenas, para un proyecto necesito que la app descargue una base de datos .sqlite de un servidor en internet y acceda a ella (la use como interna). Sé que en ios no hay problema en guardar la base de datos en la mismo carpeta de app pero no sé si en android por temas de seguridad da problemas..

Me sirve tanto que se descargue directamente en la carpeta propia de la app y luego se acceda a ella como que se descargue en una carpeta distinta y luego se "machaque" la de la app.

He buscado por stackoverflow y he encontrado esta pregunta:
http://stackoverflow.com/questions/10254872/download-sqlite-database-from-internet-and-load-into-android-application

donde recomiendan usar este helper:
https://github.com/jgilfelt/android-sqlite-asset-helper

pero no me queda nada claro, ¿alguna idea?
un saludo y gracias de antemano.

1 Respuesta

2votos

Leonardo-Tadei Puntos227010

Hola @kratos91,

se puede perfectamente descargar la DB SQLite y usarla.

Primero la descargás con HttpClient o algun otro mecanismo, dependiendo del protocolo a usar para acceder al archivo. La tenés que descargar en el directorio assets de la app.

Luego, tenés que moverla a tu directorio de trabajo, esto lo averiguás con la función getDatabasePath()

Lo que dice la respuesta de StackOverflow es que, para archivos grandes, podés descargarlos comprimidos con ZIP y luego accederlo haciendo la descompresión tarnsparente con SQLiteAssetHelper, pero si no descargás el archivo comprimido, esto no hace falta.

Es una práctica recomentada que la DB no esté en uso al moento de reempazar un archivo por otro, para evitar problemas de bloqueos o de interrupción de la copia.

Saludos cordiales!

0voto

kratos91 comentado

Ya lo veo claro, mi confusión venía de pensar que la carpeta assets no era interna de la app si no genérica del sistema.
Veo muy interesante lo de descargar la BD comprimida, sobre todo para conexiones lentas y para gastar menos datos a los usuarios que no estén conectados a wifi en ese momento.
thx, estaba totalmente atascado =)

0voto

EstebanTorres comentado

Disculpa tengo un proyecto y deseo implementar esta función ya que es la mas indicada, pero no tengo amplios conocimientos en desarrollo; me podrian ayudar con algunos ejemplo de como es el manejo de esto en la aplicación y de lado del servidor;
la app esta bajo lenguaje Java y desarrollada en ardroid Studio, y el servidor puede ser cualquier lenguaje preferible php ya que es un proyecto académico.

0voto

Peter comentado

@EstebanTorres por favor abre tu propia pregunta.

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta