(1)第一行有一个proto3,他表示的是protobuf的语法版本,就类似于jdk1.7和jdk1.8的概念。需要在第一行指定。默认使用的是proto2。 (2)java_package:表示的是java包,不指定就使用 package.生成的类会放到该package下。这里表示把生成的类存放在com.fdd.protobuf包下面。 (3)java_outer_classname:我们说过.proto...
(1)第一行有一个proto3,他示意的是protobuf的语法版本,就类似于jdk1.7和jdk1.8的观点。需要在第一行指定。默认使用的是proto2。 (2)java_package:示意的是java包,不指定就使用 package.天生的类会放到该package下。这里示意把天生的类存放在com.fdd.protobuf包下面。 (3)java_outer_classname:我们说过.proto...
1.准备两个文件proto.exe,protobuf-java-2.5.0.jar。 如果是protobuf-2.5.0.zip,将其解压缩后,用VS2010打开其中的vsprojects工程,编译后,将proto.exe拷贝待用。 2.建立一个Java工程test-protocbuf 将proto.exe拷贝至test-protocbuf下; 工程下建立proto文件夹,用来存放xxx.proto文件; 编写规范的proto文件兵存储...
dependencies{classpath'com.android.tools.build:gradle:3.0.1'classpath'com.google.protobuf:protobuf-gradle-plugin:0.8.2' 2.在app中的build.gradle添加两个protobuf依赖库:protobuf-java和protoc(如图:app模块中添加protobuf依赖库.png)。protobuf-java是用来处理java代码的,protoc是处理C或者C++代码的。 代码...
Protobuf的Java实例 一、 安装Protobuf 去Protobuf的GitHub下载,解压。 如果你是Windows环境,则还要下载多一个东西。protobuf-2.5.0-windows.zip。 解压protobuf-2.5.0-windows.zip,把protoc.exe放在Protobuf安装目录下的src里。(其实放哪都可以) 二、 配置环境变量 ...
编写.proto文件,它是序列化一个对象的“模板”,protobuf就是根据它来决定如何序列化和反序列化。 编写的person-entity.proto配置文件如下: option java_outer_classname ="PersonEntity";//生成的数据访问类的类名message Person { required int32 id=1;//同上requiredstringname =2;//必须字段,在后面的使用中必...
编写Protobuf编译器配置文件:为了将.proto文件编译成Java代码,需要创建一个编译器配置文件。在该文件中,可以指定生成的Java代码的包名和输出路径。例如,可以创建一个名为protobuf-java-config.txt的文件,内容如下: 代码语言:txt 复制 --java_out=src/main/java --proto_path=src/main/proto ...
protobuf 工作原理 首先我们需要编写一个 .protot 文件来定义序列化数据结构 运行protobuf 编译器protoc生成对应语言的代码,如 java 会生成 .java 文件(每个消息对应一个类,同时还有一个特殊的Builder类用于创建消息接口) 通过protobuf API 来读写消息 .protot 文件模板: ...
(1)java默认序列化机制:效率极低,而且还能不能跨语言之间共享数据。 (2)XML常用于与其他项目之间数据传输或者是共享数据,但是编码和解码会造成很大的性能损失。 (3)json格式也是常见的一种,但是在json在解析的时候非常耗时,而且json结构非常占内存。 但是我们protobuf是一种灵活的、高效的、自动化的序列化机制,可以...
implementation 'com.google.protobuf:protobuf-java:3.4.0' implementation 'com.google.protobuf:protoc:3.4.0' 混淆配置: -keepclass*extendscom.google.protobuf.GeneratedMessageLite{*;} 第四步 在app\src\main目录中新建proto文件夹,并新建对应的proto文件,这里以LoginRequest.proto为例 ...