1.什么是gRPC
gRPC是一个现代开源高性能的远程调用(RPC,remote procedure call)框架,能在任何环境中运行。
使用Protocol Buffers作为接口定义语言(IDL,Interface Definition Language)和底层消息交换格式
2.什么是Protocol Buffers
Protocol Buffers提供了一种结构化序列化数据的机制,它像Json除了更快更小并且生成本地语言绑定。
Protocol Buffers是定义语言(DL)的组合(在proto文件中创建),通过proto编译器生成序列化的数据接口,用于本地序列化或网络传输。
3.Protocol Buffers定义语法
protocol buffers使用需要先定义一个proto文件进行数据结构定义,protocol buffers支持数据类型包括常用的原始数据类型,还有以下几个常用类型:
message 消息类型
enum 枚举类型
oneof 限定类型,当消息有多个可选字段最多只能同时设置一个时使用
map 映射表类型,key-value映射关系数据结构
下面通过一个简单例子来说明:
//helloworld.proto(文件名) |
4.android中使用gRPC
开发环境:
windows10
Android Studio Bumblebee | 2021.1.1 Patch 2
Gradle 7.1.2
JDK 11
以gRPC客户端为例
4.1引入protobuf插件
工程顶层build.gradle中添加
id 'com.google.protobuf' version '0.8.18' apply false |
4.2proto脚本配置
工程子module的build.gradle中进行配置
plugins { |
项目build之后会自动生成gRPC相关的类文件
具体实现可参考gRPC for android和文中的示例程序gRPCSample
参考:
https://developers.google.com/protocol-buffers/docs/overview