Сгенерированный API сервиса
Binder генерирует трейт для каждого определения интерфейса.
birthday_service/aidl/com/example/birthdayservice/IBirthdayService.aidl:
/** Интерфейс сервиса дня рождения. */
interface IBirthdayService {
/** Сгенерировать поздравление с днём рождения. */
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в качестве аргумента даёт другой тип Rust, чемStringв качестве возвращаемого типа.