AIDL

作者: jiting45 | 来源:发表于2018-05-28 11:30 被阅读0次

    1、为什么跨进程通信
    2、为什么要选binder进行跨进程通信
    3、怎样跨进程通信

    进程隔离
    不同的应用都有各自的进程,进程间的数据是不共享的;
    android是基于Linux系统的,将空间分为了用户空间、内核空间;
    如果一个用户空间想要访问另一个用户空间,就需要进程间通信;

    进程通信的方式
    Intent+Bundle
    文件共享
    Messager
    AIDL
    管道
    Socket

    Binder的优势
    性能:binder比传统的进程间通信的方式少一次数据传递(映射)
    安全:传统的进程通信方式对于通信双方的身份并没有做出严格的验证,只有在上层协议上进行架设;比如Socket通信ip地址是客户端手动填入的,都可以进行伪造;而Binder机制从协议本身就支持对通信双方做身份校检,因而大大提升了安全性

    进程间通信流程图


    未命名文件.png

    知识点:
    1、两种类型的service:本地Service和远程Service
    2、两种aidl文件:数据、接口
    3、手动导包
    4、AIDL中除了基本数据类型,其他类型的参数必须标上方向:in、out、inout
    5、客户端bindService时,intent隐式调用,除了action,还需setPackage。
    6、若服务端中的方法是耗时的,就不能在UI线程中发起远程请求。
    死亡代理:linkToDeath、unlinkToDeath.
    7、客户端和服务端的AIDL的包结构必须一样。
    8、允许多个客户端和服务端同时通信,所以要处理线程同步。
    9、权限验证

    相关文章

      网友评论

        本文标题:AIDL

        本文链接:https://www.haomeiwen.com/subject/edtydftx.html