Grpc使用
1、简介
gRPC是由Google主导开发的RPC(Remote Procedure Call:远程过程调用协议)框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。为客户端提供Objective-C、Java接口,服务器侧则有Java、Golang、C++等接口,从而为移动端(iOS/Android)到服务器端通讯提供了一种解决方案。
protobuf 序列化解决方案 (消息的数据结构确定后,将数据或对象转换成二进制进行传输)
2、Android集成
- app的gradle文件中添加一下配置
顶部添加plugin插件
plugins{
id 'com.google.protobuf' //添加protobuf插件 grpc底层消息使用protobuf进行序列化和反序列化
}
添加protobuf编译器
protobuf {
protoc { artifact = 'com.google.protobuf:protoc:3.12.0' }
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.31.1'
}
}
generateProtoTasks {
all().each { task ->
task.builtins {
java { option 'lite' }
}
task.plugins {
grpc {
option 'lite'
}
}
}
}
}
添加dependency依赖
//for GRPC
api 'io.grpc:grpc-okhttp:1.44.1'
api 'io.grpc:grpc-protobuf-lite:1.44.1'
api 'io.grpc:grpc-stub:1.44.1'
api 'org.apache.tomcat:annotations-api:6.0.53'
- project的build.gradle文件添加配置
buildscript {
repositories {
google()
jcenter()
}
dependencies {
.....
classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.8"
}
}
- 添加权限
<uses-permission android:name="android.permission.INTERNET"/>
- proto生成Java文件
(1) 把自己的proto文件复制粘贴到main/proto目录下,点击Android Studio中的Build菜单下的Rebuild Project即可
(2) Java文件生成位置:app/build/generated/source/proto/……
(3) 将Java文件复制出来即可使用