Android使用gRPC(二)实战

参照

《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、在客户端填入请求参数发起请求,结果如下


完美!


猜你喜欢

转载自blog.csdn.net/yongyu_it/article/details/80689706