Каков дескриптор Сервиса, сгенерированный AIDL? - PullRequest
0 голосов
/ 11 декабря 2018

Нам известно, что системная служба Android регистрируется в системном менеджере при загрузке устройства. Например:

        AlarmManagerService alarm = new AlarmManagerService(context);
        ServiceManager.addService(Context.ALARM_SERVICE, alarm);

Код выше находится в

/ frameworks / base/services/java/com/android/server/SystemServer.java

Итак, если вы хотите использовать AlarmManager, вам нужно всего лишь получить прокси-сервер AlarmManagerService для вызова функции, а затем AlarmManagerProxy вызовите соответствующий метод в BinderProxy для выполнения.

Важно, что BinderProxy.java или BpBinder.cpp имеет правую ручку для Binder --- AlarmManagerService.

Но когданапример, AIDL:

   interface IDCSCore {
      int add(int i,int j);
      void show();
   }

Когда мы связываем удаленный сервис в другом процессе, метод onBind возвращает Binder - реализацию IDCSCore.Stub, затем в ServiceConnect onServiceBinded перезванивают вамполучить IDCSCore.Stub.Proxy.Системная служба Android, такая как AlarmManagerSerice, зарегистрирована в servicemanger, и вы можете использовать adb shell service list, чтобы найти все системные службы в системном менеджере, но я не могу найти информацию, связанную с IDCSCore.Где находится IDCSCore.Stub?Как прокси без дескриптора правильно выполнить вызов функции ??

Я разочарован!Это немного сложно для меня ...

1 Ответ

0 голосов
/ 22 января 2019

Системная служба AOSP и Служба Android имеют различную реализацию и работают по-разному.Вы не можете привязаться к системным службам AOSP.Для получения прокси-заглушки AOSP уже предоставил API getSystemService().ServiceManager содержит все прокси-заглушки системных служб.

Для просмотра списка всех служб активности можно использовать следующую команду.

adb shell dumpsys activity services

Что такое IDCSCore?

Чтобы получить большеподробности о системном сервисе AOSP и сервисе Android см. по этой ссылке, Системный сервис AOSP против различий в обслуживании

...