Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Сгенерированный 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 в качестве возвращаемого типа.