创建一个以.proto为后缀的文件,本篇创建了一个名为msg.proto的消息文件,具体信息如下:
package tutorial;
option java_package = "com.protobuftest.protobuf"; (生成Java类时包名;C#类的命名空间)
option java_outer_classname = "PersonProbuf"; (生成Java、C#类的类名)
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
message CountryInfo {
required string name = 1;
required string code = 2;
optional int32 number = 3;
}
}
message AddressBook {
repeated Person person = 1;
}
package在Java里面代表这个文件所在的包名,在c#里面代表该文件的命名空间;
message代表一个类;
required 代表该字段必填;
optional 代表该字段可选,并可以为其设置默认值,默认值格式 :[defalut=Home],它是一个枚举类型。
2.双方都编译.proto文件(本篇文章主要用的是2.4.1版本的protobuf)
proto可以在Linux、Windows下编译。
protobuf 下载列表请参照:http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载。解压后会得到一个 protoc.exe 文件,此时就可以开始编译了。
java 的编译的步骤如下:
1>在d盘建立protoc文件夹,将protoc.exe和msg.proto放在该文件夹下
2> 打开命令工具 cmd,执行d:\
3> D:/ >cd d:/protoc回车
(3) 输入protoc.exe --java_out=. msg.proto .后面的是空格,然后加上转换的proto文件
此时会发现 D:/protoc目录中多了一个文件夹com\protobuftest\protobuf,即以该proto的package命名的目录,会产生一个Msg.java的文件,这时这个文件就可以使用到我们的java或者android 工程了。
(4) 下载一个protobuf-java-2.4.1.jar的jar 包引用到你的java和android工程里面,之后可以使用你的protobuf了。