参照
《Android使用gRPC(一)》
https://github.com/grpc/grpc-java/blob/master/examples/android/helloworld
1、创建一个空白项目
2、配置插件支持
在项目根目录的build.gradle里,添加
mavenCentral()
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.5'
3、对项目添加相关相关支持
3.1 创建proto文件目录和代码文件
这个直接把《Go语言第八课 gRPC》一文的proto-src目录全部复制到项目根目录/app/src/下(当然helloworld.pb.go文件是可以删掉的)
3.2 配置项目支持proto
在项目的build.gradle(即根目录下/app/build.gradle文件)里面添加配置如下
1、应用插件
apply plugin: 'com.google.protobuf'
2、指明proto文件位置
sourceSets {
main {
proto {
srcDir 'src/main/proto-src'
}
}
}
3、编写编译脚本(这一步是参照https://github.com/grpc/grpc-java/blob/master/examples/android/helloworld/app/build.gradle)
protobuf {
protoc { artifact = 'com.google.protobuf:protoc:3.5.1-1' }
plugins {
javalite { artifact = "com.google.protobuf:protoc-gen-javalite:3.0.0" }
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.12.0'
}
}
generateProtoTasks {
all().each { task ->
task.plugins {
javalite {}
grpc { // Options added to --grpc_out
option 'lite'
}
}
}
}
generatedFilesBaseDir = "$projectDir/src/generated"
}
4、添加库支持
implementation 'io.grpc:grpc-okhttp:1.12.0'
implementation 'io.grpc:grpc-protobuf-lite:1.12.0'
implementation 'io.grpc:grpc-stub:1.12.0'
implementation 'javax.annotation:javax.annotation-api:1.2'
同步之后就可以看到$projectDir/src/generated下有生成的Java代码
编码,运行
1、把https://github.com/grpc/grpc-java/blob/master/examples/android/helloworld项目的HelloworldActivity.java和activity_helloworld.xml文件拷贝到项目里面,运行Android端。
2、运行《Go语言第八课 gRPC》里面的服务端
3、在客户端填入请求参数发起请求,结果如下
完美!