生成されたサービス API

Binder は、各インターフェース定義に対してトレイトを生成します。

birthday_service/aidl/com/example/birthdayservice/IBirthdayService.aidl:

/** Birthday service interface. */
interface IBirthdayService {
    /** Generate a Happy Birthday message. */
    String wishHappyBirthday(String name, int years);
}

out/soong/.intermediates/…/com_example_birthdayservice.rs:

// Copyright 2024 Google LLC
// SPDX-License-Identifier: Apache-2.0

trait IBirthdayService {
    fn wishHappyBirthday(&self, name: &str, years: i32) -> binder::Result<String>;
}

サービスはこのトレイトを実装する必要があり、クライアントはこの トレイトを使用してサービスとやり取りします。

  • 生成された関数シグネチャ、特に引数と返り値の型が、インターフェース定義に どのように対応しているかを指摘してください。
    • 引数の String は、返り値の String とは異なる Rust の型に なります。