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 را پیاده‌سازی کند و کلاینت شما از این ویژگی برای صحبت با سرویس‌ها استفاده خواهد کرد.

Speaker Notes

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