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

Ott*_*tto 3 java rest android json protocol-buffers

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

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

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

Kan*_*dan 5

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

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

其他库如Protocol Buffers:Apache Avro,Apache Thrift.

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