Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/07/2014, 14:15
Avatar de El_Metallick
El_Metallick
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 1 mes
Puntos: 16
Respuesta: Bases de datos en Android

Habbacuk, lo que razpeitia te quiere decir, es que android no puede consumir directamente una base de datos remota, por lo cual, para esos fines uno normalmente usa un webservice, que hace de puente o intermediario entre tu dispositivo android y tu base de datos. La idea básica es tener un webservice que consuma los datos de una base de datos central y que a su vez se los facilite a la aplicación android que los este solicitando (en realidad a cualquier aplicación que lo solicite). Algo así:

Aplicación android -> WebService -> Base de datos MySQL

Como programar un webservice se aleja de la pregunta que realizas en esta oportunidad y hay muchisima literatura al respecto, no detallaré al respeto.

Si me parece importante mencionar algunos aspectos para consumir dichos webservices desde android. (Esto es 100% en base a mi experiencia personal, por lo cual algunas personas pueden no estar de acuerdo con ello)
  • Utilizar Ksoap2, biblioteca que recopila una serie de recursos que nos permiten interactuar con webservices SOAP.

Si nuestros objetos están compuestos por atributos de tipos nativos (string, int, etc...)

Sin nuestros objetos contienen por ejemplo atributos del tipo ArrayList<String> o peor aún, ArrayList<ObjetoCustom2>
  • Utilizar tipos nativos para el input y un string para el output, siendo este string el correspondiente a la serialización XML de la colección de objetos que resulten de la consulta.
  • Hacer un parseador de XML (para ello puedes SAXParser propio de java o alguna biblioteca que hacen esta tarea bastante sencilla) que te permiten convertir ese XML en una colección de objetos definidos.

NOTA: Digo serialización XML por que es la que más me acomoda a mi, en realidad puedes usar XML, JSON o alguna otra que te acomode.

NOTA IMPORTANTE: Ahora, publicar un webservice que disponibilice la información de una base de datos empresarial o haga operaciones sobre dichos datos, es algo a lo menos delicado, puesto que muchas veces trabajamos con datos que suelen ser confidenciales, por lo que pensar alguna medida de seguridad para este caso resulta algo prioritario. Por ejemplo, en mi caso, dado que la aplicación android se usa sólo desde una lista conocida de dispositivos, registré dichos dispositivos mediante el IMEI y ante cualquier operación o consulta sobre el webservice este lo primero que hace es consultar si conoce al dispositivo que está solicitando el servicio, para ello, el primer parámetro de cada método del webservice (o en su defecto el método de conexión al mismo) es el IMEI.

Espero guiarte un poco en tu duda.

Salud(os)
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!

Última edición por El_Metallick; 29/07/2014 a las 14:46