【问题标题】:Android and AppEngine web service: Json... RPC, REST... protocol buffers?Android 和 AppEngine 网络服务:Json... RPC、REST... 协议缓冲区?
【发布时间】:2011-08-11 02:11:03
【问题描述】:

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

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

我在 Android 端尝试过 gson,效果很好。但后来我读到了协议缓冲区,这似乎更有效率,我不确定这是否有显着差异。另外我不确定是选择 RPC 还是 REST。

【问题讨论】:

    标签: java android json rest protocol-buffers


    【解决方案1】:

    在效率方面,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 通常是最容易处理的东西。

    【讨论】:

    • 感谢您提供此信息,这正是我所怀疑的,但我在 google 上发现很少有关于使用协议缓冲区的信息。如果有更多关于使用协议缓冲区的示例,那就太好了。
    • Protostuff 库看起来很棒。我不知道,好提示!
    猜你喜欢
    • 1970-01-01
    • 2010-12-15
    • 2013-11-19
    • 2010-11-29
    • 1970-01-01
    • 2016-12-19
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多