繁体   English   中英

Dalvik到Java SE通信

[英]Dalvik to Java SE communications

我正在计划开发一个Android应用程序,需要后端服务器与应用程序的其他用户同步数据。 我打算在unix服务器上运行的标准java中编写这个服务器。

我曾经直接在两个Android设备之间做过这个,在这种情况下,我只是序列化了两端需要发送的所有数据。

但是我怀疑Dalvik序列化的格式与Java SE的格式不兼容。 是这样的吗? 如果是的话,我的替代方案是什么? 我想到的一件事就是将原始xml发送到套接字上,但如果有更好的选择,我会很高兴听到它们。

谢谢。

如果您正在使用服务器,那么您应该依赖更标准的内容,如XML或JSON。 我个人赞成JSON。 您不应期望所有客户端都是Java友好的。 几乎每个移动设备都支持JSON。 杰克逊图书馆来生成你的json。 然后你可以再次使用Jackson来反序列化你的对象。

这个解决方案的美妙之处也很简单。 您只需将请求放入浏览器即可查看内容。 二进制数据并不那么容易。

我在Android设备和服务器之间成功使用了数据序列化。

我确实必须将TimeZone类转换为String并返回,因为TimeZone类特别是不完全兼容(它尝试在sun.传输一些东西sun.在Android上获得ClassNotFoundException包)。

除此之外,我已经能够从java.util集合和映射以及java.sql数据类型java.util传输对象,当然还有java.lang类型的StringInteger等。

您可以尝试使用protobuf进行序列化。 它被认为更有效率,你不会担心兼容性。

您还可以使用某种形式的XML序列化(JAXB,XStream,XMLEncoder等)

这个问题的解决方案暗示它兼容的。

如果您的对象图非常简单,并且您完全熟悉JSON,那么Android会包含JSON支持,并且很容易在Java SE中获得支持。 我倾向于认为JSON是XML或Java序列化似乎“沉重”的一个很好的选择。

看看这个基准。 Kryo是我正在使用的那个。 它支持创建自定义二进制序列化,可以以适合Dalvik和JSE的方式完成。

您可能希望查看相关问题,该问题提供了额外的讨论和链接。

协议缓冲区将是一种很好的格式,需要考虑。

我无法谈论Dalvik的序列化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM