由于感觉官网上的介绍也比较模糊,所以在自己操作成功后,就把它记录下来.
Protobuf介绍
官网上介绍的很简单,就是一个Google内部通用的数据交换格式.我们也知道一些数据交换格式,比如,JSON,XML等.
那么为什么Google还要提出Protobuf这种格式呢?因为JSON,XML等格式虽然是对人类非常友好的,但是效率并不高.
简单来说,它就是一种数据交换格式.
Protobuf编译器安装
由于在使用Protobuf时,是需要我们编写一个proto文件,然后通过一个编译器将其编译成我们需要的格式的文件,比如,对我来说,就要编译成Java格式的文件.
所以,我们需要安装这么一个编译器.
我们来这里下载一个protoc-version-your_platform.zip文件,然后解压并添加到PATH这个环境变量里就行了.
然后安装完成之后,通过protoc –version,能够输出对应的版本,就表示成功了.
Protoc的使用
我们上面说过,我们需要写一个通用的proto文件,然后通过Protoc编译器编译成我们想要的语言的文件,然后再操纵这些文件.
那我们如何来做呢?
首先,我们编写一个proto文件,
syntax = "proto3";
package com.project;
option java_package = "com.projecthome";
option java_multiple_files = true;
option java_outer_classname = "AddressBookProtos";
message Person {
string name = 1;
int32 id = 2;
string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
string number = 1;
PhoneType type = 2;
}
repeated PhoneNumber phones = 4;
}
message AddressBook {
repeated Person people = 1;
}
最上面的syntax = “proto3”表示我们这个proto文件的版本,目前有proto2和proto3两种版本.
这两种版本的语法,并不完全一样,proto3的比proto2更简洁,你在下载protoc时,也要注意跟这个版本对应.
关于这两种版本的细节,请移步这里
然后,我们可以通过protoc –java_out=${your_output_directory} your_proto_file来编译这个proto文件.我们可以看到,我们编译成的是Java文件.
编译完成后,在${your_output_directory}/com/projecthome下面,可以看到,生成了几个Java文件.
总结
在这篇文章中,我们介绍了如何安装protoc以及编译proto文件.
关于如何在项目中使用这些编译出的文件,我们会在下一篇文章中介绍.