Android和AppEngine Web服务:Json ... RPC,REST ...协议缓冲区?

时间:2011-04-22 16:40:24

标签: java android json rest protocol-buffers

我正在开发一款可从Android应用访问的网络服务。在对什么是最好的技术进行一些研究之后,我对选项感到有些困惑和茫然。

显然在Android端我希望它尽可能轻巧。我也更愿意共享公共代码,因为它们都是java,尽管这不太重要。我主要担心的是它是否有效,之后是简单而优雅的代码。

我在Android端尝试过gson,效果很好。但后来我读到了协议缓冲区,这似乎更有效,我不确定它是否有显着差异。此外,我不确定是否要使用RPC或REST。

1 个答案:

答案 0 :(得分:5)

在效率方面,Protocol Buffers可能比任何JSON实现都更有效率,并不一定能像您想象的那样多。 GSON并不是特别快,但Jackson库几乎可以与大多数二进制序列化器竞争(Jackson在大多数情况下比GSON快2-4倍,在UTF-8上快10-20倍,因为它有UTF-8的特殊代码)。 / p>

但由于编程模型,我仍然会在任何JSON库上使用Protocol Buffers。对于大多数JSON库,您必须手动检查消息的结构。使用Protocol Buffers,您可以声明性地指定消息结构,并且库将为您处理结构验证(尽管仍然需要手动验证)。

协议缓冲区等其他库:Apache Avro,Apache Thrift。

Protostuff库使用Protocol Buffers数据模型(因此您可以免费获得结构验证),但除了其他格式外,还支持序列化为JSON和YAML。如果您希望Javascript代码使用您的服务,这可能很有用,其中JSON通常是最容易处理的事情。