PGzxc的博客

纸上得来终觉浅 绝知此事要躬行

0%

Android开发之——数据优化ProtoBuf

前言

protobuf,全称:Google Protocol Buffer,是Google开源的一种轻便高效的结构化数据存储格式,可以用于结构化数据的串行化,也称作序列化,主要用于数据存储或是RPC数据交换,支持多语言,可拓展。
本文主要讲述Proto的本地实例化和网络实例化。

项目

protobuf Github: Git地址
protobuf (Java): Protobuf java

配置

项目配置

在项目根目录的build.gradle中配置protobuf

在app目录下的build.gradle中配置protobuf

配置plugin插件

配置protobuf Task

配置依赖库

安装Protobuf Support

Protobuf Support支持 Protobuf 高亮显示

新建ProtoBuf数据

新建proto文件夹,在文件夹下新建文件,后缀名为.proto

按照下列格式设置数据

syntax = “proto3”;
package 包名;
message 数据
  1. 数据类型
  2. 必须初始化,且必须为整数

重新编译项目

执行Build->Rebuild Project

若项目不经过编译,无法在项目中引用Proto文件

查看编译后Proto文件

编译后可在app->build->generated->source->proto查看编译后的文件

使用

Proto使用,包括直接使用本地的Proto数据和访问网络上的Proto数据

本地Proto数据

查看Proto数据

经过build project后,输入Proto数据即可查看

使用Proto数据

分析

我们的Proto变成了内部类,为何使用Build生成数据,请自行查看源码

网络Proto数据

使用返回Proto类型的接口

本来想使用RAP2来模拟接口数据,奈何不支持,网上找了一条返回Proto的接口

Postman请求结果

配置网络

此前的Gson换成了Proto

使用

效果

参考:

参考源码