快速入门

本指南通过一个简单的工作示例,帮助您开始使用 Android 上的 Kotlin gRPC。

快速入门

本指南通过一个简单的工作示例,帮助您开始使用 Android 上的 Kotlin gRPC。

先决条件

  • Kotlin 版本 1.3 或更高版本

  • JDK 版本 7 或更高版本

  • Android SDK,API 级别 16 或更高版本

    1. 安装 Android Studio 或 Android 命令行工具

    2. 通过设置以下环境变量,让其他工具和脚本知道在哪里可以找到您的 Android SDK

      export ANDROID_SDK_ROOT="<path-to-your-android-sdk>"
      
  • 设置为 USB 调试的 Android 设备或 Android 虚拟设备

获取示例代码

示例代码是 grpc-kotlin 存储库的一部分。

  1. 将存储库下载为 zip 文件 并解压缩,或克隆存储库

    git clone https://github.com/grpc/grpc-kotlin
    
  2. 更改到 examples 目录

    cd grpc-kotlin/examples
    

运行示例

  1. 编译服务器

    ./gradlew installDist
    
  2. 运行服务器

    ./server/build/install/server/bin/hello-world-server
    Server started, listening on 50051
    
  3. 从另一个终端,构建客户端并将其安装到您的设备上

    ./gradlew :android:installDebug
    
  4. 从您的设备启动客户端应用程序。

  5. 名称框中键入“Alice”,然后单击发送。您将看到以下响应

    Hello Alice
    

恭喜!您刚刚运行了一个带有 gRPC 的客户端-服务器应用程序。

更新 gRPC 服务

在本节中,您将通过添加一个额外的服务器方法来更新应用程序。gRPC 服务使用 协议缓冲区 定义。要了解有关如何在 .proto 文件中定义服务的更多信息,请参阅基础教程。现在,您需要知道的是,服务器和客户端存根都具有一个 SayHello() RPC 方法,该方法从客户端获取 HelloRequest 参数,并从服务器返回 HelloReply,并且该方法的定义如下

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

protos/src/main/proto/io/grpc/examples 文件夹打开 helloworld/hello_world.proto,并添加一个新的 SayHelloAgain() 方法,其具有相同的请求和响应类型

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
  // Sends another greeting
  rpc SayHelloAgain (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

记住保存文件!

更新应用程序

当您构建示例时,构建过程会重新生成 HelloWorldProtoGrpcKt.kt,其中包含生成的 gRPC 客户端和服务器类。这也会为填充、序列化和检索我们的请求和响应类型重新生成类。

但是,您仍然需要在示例应用程序的手写部分中实现并调用新方法。

更新服务器

按照 Kotlin 快速入门页面的 更新服务器 中给出的说明进行操作。

更新客户端

按照以下步骤操作

  1. client/src/main/kotlin/io/grpc/examples 文件夹打开 helloworld/MainActivity.kt

  2. 找到包含对 sayHello() 的调用的函数。您将看到以下代码行

    val response = greeter.sayHello(request)
    responseText.text = response.message
    
  3. 添加对 sayHelloAgain() 的调用,并更改响应消息的创建方式。将上面的代码行替换为以下内容

    val response = greeter.sayHello(request)
    val againResponse = greeter.sayHelloAgain(request)
    val message = "${response.message}\n${againResponse.message}"
    responseText.text = message
    

运行更新后的应用程序

像以前一样运行客户端和服务器。从 examples 目录执行以下命令

  1. 编译服务器

    ./gradlew installDist
    
  2. 运行服务器

    ./server/build/install/server/bin/hello-world-server
    Server started, listening on 50051
    
  3. 从另一个终端,构建客户端并将其安装到您的设备上

    ./gradlew :android:installDebug
    
  4. 从您的设备启动客户端应用程序。

  5. 消息框中键入“Alice”,然后单击发送。您将看到以下响应

    Hello Alice
    Hello again Alice
    

下一步

上次修改时间为 2024 年 11 月 25 日:feat:将 $ shell 行指示器移动到 scss (#1354) (ab8b3af)