前言:
最近app要做用户行为统计埋点,对数据进行序列化和反序列化实用Google提供的protoBuf,这里也简单的介绍一下
protobuf 已经更新到3.2.0 :查看blog下面资源包
依赖:
Win7+64位,android studio 2.3 gradle.build 2.2.3
Protobuf 主页:进入
Protobuf win+java demo 进入
Mvn下载地址:进入链接
Mvn安装步骤:进入
Protobuf源码:进入
定义:
protobuf,全称:Google Protocol Buffer,是Google开源的一种轻便高效的结构化数据存储格式,可以用于结构化数据的串行化,也称作序列化,主要用于数据存储或是RPC数据交换,支持多语言,可拓展。
安装步骤:
1.安装Maven环境(可以直接使用已经打好的jar,免去安装maven),具体安装过程,参考Mvn安装步骤部分
安装好Maven后,需要进行编译,才能生成需要引入的Jar文件,具体操作为:首先将下载好的protoc.exe文件复制到\protobuf-2.6.1\src目录下。然后进入protobuf-2.6.1\java目录下,直接运行命令:
编译完成后,会在\protobuf-2.6.1\java\target\目录下生成文件:protobuf-java-2.6.1.jar。可以直接导入Eclipse中进行使用,这里mvn环境安装异常,使用从网上down下的jar
2.下载
这里使用 protoc.exe 可执行文件。进行文件的生成
3.编写待处理文件,后缀名使用 .proto,语法遵循protobuf语法
4.Test.proto
说明:该文件中:
java_package:包名
java_outer_classname:类名
testBuf :对象名
required:必须有值
optional:可以不写值
string:相当于Java中的String
int32:相当于Java中的int
具体proto文件类型、Java类型及C++类型对比如下:
使用protoc进行编译,cm进入到protoc-2.5.0-win32文件中 语句为:
protoc –java_out=./test.proto
注:
protoc:指使用下载好的protoc.exe进行编译
java_out:编译器编译时,生成的语言同样的参数也可以是cpp_out
“=” 后边内容为需要编译的文件路径和文件名
编译完成后,会在编译文件位置相同的路径下,生成编译完成的文件,Java的以包的形式存放,即以文件夹的形式存放。
至此,已经完成了Jar包的编译和需要传输的对象的编译,接下来举例说明如何进行使用。
新建Eclipse 的java工程,当然android studio同样可以建立java工程
需要导入前面编译好的FirstProtobuf.java和protobuf-java-2.5.0.jar
进行编译和反编译测试
运行结果:
Ok到这里protobuf的简单实用 已经完成。总的来说首次还是需要费一些时间进行环境配置的
demo下载: http://pan.baidu.com/s/1jImfnd8
protobuf 3.2.0 资源包: http://pan.baidu.com/s/1hsMesoG
引用: Protobuf语言指南
官方网站: https://developers.google.com/protocol-buffers/