前面的文章中我们介绍了 Java 层服务的注册流程,以及代理文件的查找。这里我们看一个 Binder 通信的实例,为了方便我们就以 Android 源码中现有的功能 PMS 的 install 为例,PMS 在进行 APK 安装时,会进行 dex 的翻译,依赖守护进程 installd 完成。
一、源码分析
1. AIDL
在 Binder 基础简介中我们说过,AIDL 是对 Binder 通信的封装,我们在使用 Binder 通信时,大都使用 AIDL 接口实现通信功能。所以我们需要先找到对应的 AIDL 接口类。
源码位置:frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl文章来源:https://www.toymoban.com/news/detail-856067.html
package android.os;
/** {@hide} */
interface IInstalld {
……
long createAppData(@nullable @utf8InCpp String uuid, in @utf8InCpp String packageName,
int userId, int flags, int appId, in @utf8InCpp String seInfo, int targetSdkVersion);
……
}
2、Java 端调用
源码位置:frameworks/base/services/core/java/com/android/server/pm/installer.java文章来源地址https://www.toymoban.com/news/detail-856067.html
import android.os.IInstalld;
public class Installer extends Sy
到了这里,关于Android Binder——Java层通信实例(十六)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!