Android之Binder的使用及上层原理,Aidl自动生成binder

借鉴自开发艺术


Binder是Android中的一个类,实现了IBinder接口

IPC角度,是一种跨进程通信方式

可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder,Linux中没有这种通信方式

Framework层,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager等)和相应ManagerService的桥梁

应用层,是客户端和服务端通信的媒介,当bindService的时候,服务端会返回一个包含了服务端业务调用的Binder对象,通过这个Binder对象,客户端就可以获取服务端提供的数据或者服务,这里的服务包括普通服务和基于AIDL的服务。

Android开发中,Binder主要用在Service中,包括AIDL和Messenger,其中普通Service中的Binder不涉及进程间通信,而Messenger的底层其实是AIDL。、


直接新建Aidl文件

rebuild

会发现


gen目录下会生成对应的java文件,就好了


生成的java文件如下

public interface IMyAidlInterface extends android.os.IInterface {
    /**
     * Local-side IPC implementation stub class.
     */
    public static abstract class Stub extends android.os.Binder implements com.example.test.IMyAidlInterface {
        private static final java.lang.String DESCRIPTOR = "com.example.test.IMyAidlInterface";

        /**
         * Construct the stub at attach it to the interface.
         */
        public Stub() {
            this.attachInterface(this, DESCRIPTOR);
        }

        /**
         * Cast an IBinder object into an com.example.test.IMyAidlInterface interface,
         * generating a proxy if needed.
         */
        public static com.example.test.IMyAidlInterface asInterface(android.os.IBinder obj) {
            <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值