«In / out / inout» в значении параметра интерфейса AIDL?

Я программирую приложение для радиопотока. Я запускаю «радио-воспроизведение» в качестве удаленной Службы, используя технику интерфейса AIDL для связи с Сервисом. Но я не очень понимаю одно.

Что такое «выход» в значении параметра интерфейса AIDL?

Как это:

String doSomething(in String a, out String[] b); 

Я понимаю «in», который отправляет данные на удаленный компьютер, когда метод вызывается из активности.

Что такое «выход», и почему нам нужно «в» и «выходить» в том же методе? В каком случае они используются («out / inout»)? Почему String[] "out"?

Пожалуйста помоги..

Solutions Collecting From Web of "«In / out / inout» в значении параметра интерфейса AIDL?"

В AIDL тег «out» указывает параметр только для вывода. Другими словами, это параметр, который не содержит интересных данных о вводе, но будет заполнен данными во время метода.

Например, метод, который копирует массив байтов, может быть указан следующим образом:

 void copyArray(in byte[] source, out byte[] dest); 

Тег «inout» указывает, что параметр имеет значение как для входа, так и для вывода. Например:

 void charsToUpper(inout char[] chars); 

Это важно, потому что содержимое каждого параметра должно быть распределено (сериализовано, передано, получено и десериализовано). Теги in / out позволяют Binder пропускать шаг сортировки для повышения производительности.