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.
- Guardar el estado de la instancia de ListView personalizado?
- Serializador personalizado - deserializador utilizando GSON para una lista de BasicNameValuePairs
- Parcelable encontrado IOException writing serializable object getactivity ()
- ¿Cuál es la mejor manera de serializar una imagen (compatible con Swing) de Java a Android?
- ¿Guardando la clase en el archivo?
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.
- Serialización de objetos para una nueva actividad
- Serializar un objeto Drawable en Android
- Serializar / deserializar un LinkedHashMap (android) java
- ¿Cómo arreglar Unmarshalling código de tipo desconocido XXX en el desplazamiento YYY en Android?
- Leer / escribir un objeto en un archivo
- Serializar objetos entre Android y PC (Dalvik vs JVM)
- Android NotSerializableException aumenta para un objeto
- Serialización y subclases
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.
- ¿Cómo tener igual tamaño de ancho y altura usando layout_weight?
- Android Studio 2.1 No se puede resolver el símbolo 'R'