Comunicaciones de Dalvik a Java SE

Estoy planeando desarrollar una aplicación para Android que requiere un servidor de fondo para sincronizar datos con otros usuarios de la aplicación. Estoy pensando en escribir este servidor en java estándar que se ejecuta en un servidor unix.

Una vez hice esto directamente entre dos dispositivos de Android, en ese caso, sólo serializado todos los datos necesarios para ser enviado en ambos extremos.

Sin embargo, sospecho que el formato que Dalvik serializa y el formato de Java SE no son compatibles. ¿Es este el caso? Y si lo es, ¿cuáles son mis alternativas? Una cosa que surgió en mi mente fue el envío de xml crudo a través de un socket, pero si hay mejores alternativas voy a estar encantado de escucharlos.

Gracias.

Si usted está haciendo un servidor, entonces debe confiar en algo más estándar como XML o JSON. Personalmente, estoy a favor de JSON. Usted no debe esperar que todo su cliente sea Java amistoso. Casi todos los dispositivos móviles admiten JSON. Mira la biblioteca de Jackson para generar tu json. A continuación, puede utilizar Jackson de nuevo para deserializar su objeto.

La belleza de esta solución es también estúpido simple. Puede ver el contenido simplemente poniendo la solicitud en su navegador. No es tan fácil con datos binarios.

He utilizado serialización de datos con éxito entre dispositivos Android y servidores.

Tuve que convertir la clase TimeZone a String y volver porque la clase TimeZone en particular no es totalmente compatible (intentó transferir algo al sun. Paquete que obtuvo ClassNotFoundException en Android).

Aparte de eso, he podido transferir objetos de colecciones y mapas java.util y de tipos de datos java.sql y por supuesto los tipos java.lang String , Integer , etc.

Puede probar protobuf para la serialización. Se dice que es más eficiente, y no le preocupará la compatibilidad.

También puede utilizar algún tipo de serialización XML (JAXB, XStream, XMLEncoder, etc)

La resolución de esta pregunta insinúa que es compatible.

Si su gráfico de objeto es bastante simple y si se siente cómodo con JSON en absoluto, Android tiene soporte JSON incluido y sería fácil obtener soporte en Java SE. Tiendo a pensar en JSON como una buena alternativa para cuando XML o serialización Java parece "pesado".

Echa un vistazo a este punto de referencia. Kryo es el que estoy usando. Es compatible con la creación de la serialización binaria personalizada, que se puede hacer de una manera adecuada tanto para Dalvik como para JSE.

Es posible que desee ver una pregunta relacionada , que proporciona una discusión adicional y enlaces.

Protocol buffers sería un buen formato sobre el cable a considerar.

No puedo hablar de la serialización de Dalvik.

  • Serializar objeto para enviar dentro de Intent en Android
  • El servicio de Android no se puede iniciar debido a un ClassNotFoundException de una clase que ya no existe
  • Problemas de serialización java con JVM diferentes
  • Coloque varios parámetros en ContentResolver.requestSync
  • ¿Cuál es la mejor manera de guardar el contenido de una ArrayList?
  • Escribir XML en Android
  • Serialización y des-serialización de android.graphics.Bitmap en Java
  • Subclase serializable de clase padre no serializable
  • Buffers de Android y Protocolo
  • ¿La aplicación de Android restablece el cambio de orientación, la mejor manera de manejar?
  • Restlet en Android - Problemas con la serialización
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.