Generated Service API

Binder یک trait مطابق با تعریف interface تولید می‌کند. trait برای صحبت کردن با سرویس است.

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

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

Generated trait:

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

سرویس شما باید این trait را پیاده‌سازی کند و کلاینت شما از این ویژگی برای صحبت با سرویس‌ها استفاده خواهد کرد.

  • پیوندهای تولید شده را می توان در out/soong/.intermediates/<path to module>/ یافت.
  • اشاره کنید که چگونه function signature تولید شده، به ویژه typeهای آرگومان و بازگشتی، با تعریف interface مطابقت دارد.
    • String برای آرگومان منجر به type متفاوتی Rust نسبت به String به عنوان type برگشتی می‌شود.