2012-01-03 74 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