1. 程式人生 > >framework裏的xxxManagerProxy,xxxManager與xxxManagerService概念介紹(AIDL通信模型)

framework裏的xxxManagerProxy,xxxManager與xxxManagerService概念介紹(AIDL通信模型)

logs 獲取 封裝 strong system ron bin andro 做的

用於AIDL的模型基本如下

技術分享

這裏BackupManager的一個例子可以看到下面的關系

1 opt/net/wifi/service/java/com/android/server/wifi/BackupManagerProxy.java
2 base/services/backup/java/com/android/server/backup/BackupManagerService.java
3 base/core/java/android/app/backup/BackupManager.java
4 base/core/java/android/app/backup/IBackupManager.aidl

根據路徑可以知道,SDK裏給app調用的位於base/core/java/android/app

裏邊,這裏是BackupManager的Client和aidl文件

在base/services/backup/java/com/andorid/server裏邊則是這個service的Servcer端

而在opt/net/wifi/service/java/com/android/server/wifi/下的BackupManagerProxy則是WIFI這單個應用為了使用BackupManager而對其做的一層封裝,只為單個app方便使用這個而存在,可以在其中獲取相應的xxxManager,然後調用其方法,與binder通信無關,是為了方便編程而存在的。所以BackupManagerProxy和BackupManager都是在一個進程裏,而BackupManagerServcie則是存在與SystemServer進程裏

framework裏的xxxManagerProxy,xxxManager與xxxManagerService概念介紹(AIDL通信模型)