为了账号安全,请及时绑定邮箱和手机立即绑定

Android实现跨进程通信

Kaneki 移动开发工程师
难度中级
时长 1小时59分
学习人数
综合评分9.53
13人评价 查看评价
9.2 内容实用
9.4 简洁易懂
10.0 逻辑清晰
  • 跨进程通信核心

    binder 

    基于c/s结构,稳定性好,不需要考虑进程同步问题,优于共享内存方式

    binder底层驱动基于内存映射,所以性能较好,数据拷贝次数只有一次,优于管道、消息队列、socket拷贝两次

    安全性高,在binder通信过程中,通信双方对方的进程uid/pid是可见的

    查看全部
    0 采集 收起 来源:Binder机制介绍

    2019-11-26

  • 跨进程通信IPC

    进程间通过内核的机制完成数据交换。称之为进程间通信(inter process communication)

    ①管道

    分为匿名管道和有名管道

    匿名管道只能用于父子进程 或者兄弟进程之间也就是亲人进程

    有名管道可以用于两个不同的进程。

    管道都是基于内存中缓冲区间实现,大小都是固定的4KB,管道读写时确保对端的存在,读只能从头开始读,写入从末尾开始。管道的数据只能从一个方向流动,若需要双方通信需要建立两个管道,一般管道用于轻量级的进程间通信

    ②消息队列

    存放在内核消息链表,因为存在内核中,所以大家都可以从消息链表中读写。每个消息队列都有一个消息队列标识符表示。消息队列只会在内核重启或者特定删除情况下才会消息。消息队列消息的写入是不需要其它进程等待的,先把消息写到队列中,其它进程可以通过这个队列读取消息。消息队列的读取是支持随机查询读取,想要读取特定的消息类型也是可以直接读取到的

    ③信号

    Linux系统中用于相互进程间通信和操作的一种机制,信号可以在任何时候发送给某个进程,而无需知道那个进程的状态,如果当前进程处于未执行的状态的话,信号会被内核保存起来,那个进程告诉它可以执行力,内核才会把存储的信号发送过去。整个来说信号是一个软件层次上对中断机制的一种模拟

    ④共享内存

    是整个IPC中效率最高的一种机制,通过多个进程直接读写同一块内存空间,内核中会专门留一块内存区,可以由需要访问的进程可以把内同一段内存区设到自己的私人地址空间,进程就可以读写这块内存,而不需要进行数据的拷贝。但是由于多个进程共享一段内存,就需要某种同步机制

    ⑤信号量

    就是一个计数器,用于多进程对共享数据的访问进行控制,信号量的意图在于进程间同步。信号量的增减其实是原子操作,它其实是内核实现的,其实就是操作系统学习到的PV操作

    ⑥套接字

    socket c/s结构 一个客户端一个服务端通过这两端建立一个socket连接,来完成通信


    查看全部
  • 跨进程通信 IPC

    进程间通过内核提供的机制完成数据交换

    Linux跨进程通信方式

    ①管道

    查看全部
首页上一页123下一页尾页

举报

0/150
提交
取消
课程须知
本课程适合有一定的Android基础,想彻底了解Android进程间通信的同学。
老师告诉你能学到什么?
1、Android中多进程开发的应用和关键技术 2、Android中进程间通信的主要方式以及应用场景 3、Binder 框架在•Android中的应用 4、AIDL Messenger的底层原理和开发应用 5、AIDL 中关键字 oneway in out inout的作用和原理 6、Binder连接池的开发与实现

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!