我正计划开发一个需要后端服务器与应用程序的其他用户同步数据的安卓应用程序。我打算用在 unix 服务器上运行的标准 java 编写这个服务器。
我曾经直接在两个 android 设备之间执行此操作,在这种情况下,我只是序列化了所有需要在两端发送的数据。
但是我怀疑 Dalvik 序列化的格式和 Java SE 的格式不兼容。是这样吗?如果是的话,我的选择是什么?我突然想到的一件事是通过套接字发送原始 xml,但如果有更好的选择,我会很高兴听到它们。
谢谢。
我正计划开发一个需要后端服务器与应用程序的其他用户同步数据的安卓应用程序。我打算用在 unix 服务器上运行的标准 java 编写这个服务器。
我曾经直接在两个 android 设备之间执行此操作,在这种情况下,我只是序列化了所有需要在两端发送的数据。
但是我怀疑 Dalvik 序列化的格式和 Java SE 的格式不兼容。是这样吗?如果是的话,我的选择是什么?我突然想到的一件事是通过套接字发送原始 xml,但如果有更好的选择,我会很高兴听到它们。
谢谢。
如果你正在做一个服务器,那么你应该依赖更标准的东西,比如 XML 或 JSON。我个人喜欢 JSON。您不应该期望您的所有客户端都对 Java 友好。几乎所有移动设备都支持 JSON。查看Jackson库以生成您的 json。然后你可以再次使用 Jackson 来反序列化你的对象。
这个解决方案的美妙之处也很简单。您只需将请求放入浏览器即可查看内容。二进制数据并不容易。
我已经在 Android 设备和服务器之间成功使用了数据序列化。
我确实必须将TimeZone
类转换为 String 并返回,因为TimeZone
该类特别不完全兼容(它尝试在 Android 上的sun.
包中传输一些东西)。ClassNotFoundException
除此之外,我已经能够从java.util
集合和映射以及java.sql
数据类型,当然还有java.lang
类型String
,Integer
等传输对象。
如果您的对象图非常简单并且您对 JSON 完全满意,那么 Android 包含JSON 支持,并且很容易在 Java SE 中获得支持。当 XML 或 Java 序列化似乎“繁重”时,我倾向于认为 JSON 是一个很好的选择。
协议缓冲区将是一种值得考虑的良好格式。
我无法谈论 Dalvik 的连载。