最近公司在使用Protocol Buffer替代原先的json作为移动端的数据交互格式,尽管服务端和CTO把这项新技术吹的天花乱坠,说什么体积小,不易被破解乱七八糟的,但是作为Android端人员,我只关心数据如何解析的问题。折腾了两天,最终解析成功,我来分享下我的过程,有什么更好的建议大家都提提。
网上找了一大堆的攻略,都是讲protocol的下载与编译,给的链接大部分已经不能直接下载,我直接说我怎么做的。
下载最新的proctoc.exe 链接地址https://github.com/google/protobuf/releases“>https://github.com/google/protobuf/releases
里面有个protoc-3.0.0-alpha-3-win32.zip直接下载,可以在里面拿到protoc.exe
配置到环境变量,这个都是老手了,在系统中自己配置下方便于在任何地方使用黑窗口使用就可以。
拿到服务器端提供的他定义好的 .proto文件
编译.proto文件 protoc --java_out=D:/ test.proto
Javaout后面的是编译输出的路劲地址,第二个参数是需要编译的proto文件。编译成功后直接将生成的Javabean复制到Android项目中。
以前接项目其中网络访问层使用的是xutils框架中的HttpUtils,这个有优点也有缺点,好像是国人自己封装的,在请求成功的方法中直接将结果强制转化成了字符串,我这此试验了很久使用的是android-async-http 链接https://github.com/loopj/android-async-http 直接可以返回字节流,使用字节流解析。(PS不是懒得自己写框架,程序员界那句话:不要重复造轮子。再说项目经理也不能给你时间自己写一个近乎完美的框架出来)。这样解析工具就准备好了。
依赖库,因为protocolbuffer是Google提供的,所以使用AndroidStudio很容易引入最新的依赖库,直接选中项目 按下F4,选择Dependencies选项卡,从网络添加依赖库,输入关键字com.google.protobuf就可以搜索到最新的protocolbuffer依赖库。(eclipse 的开发者在studio引入后直接把studio下载好的jar拖进去就好)
解析工具、依赖库和实体类全部导入到项目中后,就可以根据服务端提供的接口访问成功后解析了
很简单的解析,我的实体类叫做API,解析就一句话
API api = API.parseFrom(byte[] data)
语文不好,只能说这么多,有需要我帮助的直接评论就好。
protocolbuffer的优点我就明白体积小不易被破解,其他的感觉没什么,作为移动端开发人员,其实关心的还是如果解析这玩意。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u014527619/article/details/46981337