Google Protocol Buffer的基本配置与使用
2016-11-14 15:35
459 查看
前段时间需要做紧凑排列的二进制数据的序列化与反序列化,老大让我研究谷歌的pb,尝试使用pb来做这些,说相对而言耦和性比较小,然后我就研究了下这个东西。 1.首先要知道pb具体是什么 Protocol buffers是一个灵活的,高效的,有自动机制(可能指编解码)工具用于序列化结构数据。类似XML,但是更小、更快、更简单。你定义你的结构化数据,然后就可以使用工具生成的你需要的语言的代码,从各种数据流中读写你的结构化数据。如果还是有不明白的就自己去谷歌了。(我简单的理解,是将规定形式排列的二进制数据进行序列化和反序列化工具) 2.安装代码生成工具 2.1 首先下载源代码:https://github.com/google/protobuf 2.2 编译重要的代码生成工具使用 HomeBrew 安装:$ brew install autoconf$ brew install automake$ brew installlib tool然后运行
脚本
$ ./autogen.sh
$ ./configure
$ make
# 如果希望安装protoc,执行下面的命令
$ make install
3.将源代码中的oc的文件打包成一个静态库或者frmework放进项目中使用,也可以直接将这个文件夹(将objectivec文件夹下的所有的.h文件和.m文件,除了GPBProtocolBuffers.m)拖到项目中使用。3.1设置header search pathstargets--->build settings ---->headersearch paths设置 $(SRCROOT)/objectives3.2 pb考虑性能没有使用arc,所以要将框架中的.m文件都设置为非arc的。targets--->build phases ------>compile source中的.m设置为-fno-objc-arc.4.PB 的使用如果上面编译没有错误,下面就可以正式的使用pb了。具体使用如下4.1 新建文件夹和.proto文件。4.1.1新建文件夹如下gen文件夹主要装生成的目标文件protocols文件夹主要装.proto文件4.1.2 .proto文件的具体格式。在.proto文件里首先确定文件的格式版本,总共有两个版本。proto3比proto2要更新,两者有稍微区别,具体两个版本的文件格式建议参照官网:https://developers.google.com/protocol-buffers/docs/proto4.2 .使用PB编译器编译.proto文件 在终端输入protoc --proto_path=... --objc_out=... XXX.proto --proto_path对应的是.proto文件文件夹(protocols文件夹)的路径。 --objc_out是生成模型文件夹(gen)路径。 XXX.proto是.proto路径。 执行命令会在gen文件夹下生成模型文件,将文件添加到项目中,并将.mComplier Flags设为-fno-objc-arc。(protobuf基于性能原因没有使用ARC) 4.3.在项目中使用PB完成序列化&反序列化示例如下:// 创建对象Person *person = [Person new];person.name = @"TanHao";person.uid = 28; // 序列化为DataNSData *data = [person data]; // 反序列化为对象Person *person2 = [Person parseFromData:data error:NULL];NSLog(@"name:%@ sex:%d age:%d",person2.name,person2.sex,person2.age);由于写这个文章时我已经做完这个有段时间了,其实在开始安装代码生成工具时在终端遇到不少问题,建议大家在官方推荐的地址下载最新的pb然后在进行配置,有问题欢迎留言交流。我的两个pb的demo,一个大成framework了,一个直接使用的,打成framework的已经上传,地址如下:https://github.com/Jing2684/ProtocolBuffersDemo
相关文章推荐
- Google protocol buffer的配置和使用(Linux&&Windows)
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用(未完待续)
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用和原理
- Google protocol buffer 使用和原理浅析 And 进阶使用方式之PbCodec
- ProtocolBuffer for Objective-C 运行环境配置及使用
- google protocol buffer 使用之 .proto 定义规则
- ProtocolBuffer for Objective-C 运行环境配置及使用
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用和原理(转)
- Google Protocol Buffer 的使用和原理(转)
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用和原理(无论对存储还是数据交换,都是个挺有用的东西,有9张图做说明,十分清楚)
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用和原理
- Google Protocol Buffer 的使用和原理