2012-01-03 51 views
4

我正在学习ProtoBufs,并希望在Android中使用它,并让* .proto文件驻留在服务器上。我无法找到完整的RPC使用的任何体面的教程。需要Android ProtoBuf RPC示例?

我想要显示如何链接到数据的类示例(即:http:/a-site.com/my-file.proto),然后反序列化/将数据充气到带有链接的listView。我不需要序列化任何数据 - 只需读取&即可在设备上充气。

PLZ请注意,我目前正在了解网络服务;我已经准备好了解如何创建* .proto文件 - 我只需要学习Android的一面。否则,我确信我已经很容易实现ProtoBufs了。

非常感谢您的帮助!

+1

为了澄清一点,按照惯例,['.proto'](http://code.google.com/apis/protocolbuffers/docs/proto.html)文件是协议缓冲区信息的_definition_格式 - 它们不包含您的实际数据。这些文件[在部署之前由'protoc'编译](http://code.google.com/apis/protocolbuffers/docs/javatutorial.html),所以据我所知,将你的android应用程序指向像http:/a-site.com/my-file.proto这样的URL,然后动态编译协议缓冲区类将会很困难 - 你往往会事先知道你的协议缓冲区格式。 – 2012-02-11 18:03:58

回答

2

为Android最近开源的谷歌天空地图天文学的应用程序使用的protobuf来取消序列中ProtobufAstronomicalSource数据:

http://code.google.com/p/stardroid/source/browse/trunk/app/src/com/google/android/stardroid/source/proto/

一个Android的相关触摸的是,他们正在使用“精简版”在protobuf的罐子版本:

http://code.google.com/p/stardroid/source/browse/trunk/app/libs/protobuf-java-2.3.0-lite.jar

这需要你的LITE_RUNTIME标志添加到您的.proto文件 - 这将生成Java原型类,省略了像反射这样的移动虚拟机不友好的功能。

顺便说一句,Protocol Buffers的本身并不完全提供全方位RPC(PB只是一个编码结构化数据的方式),但正如你可能知道有几个第三方RPC实现,坐在上面:

http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns#RPC_Implementations