Android_binder通信机制学习

一.Binder是什么?

     Binder就是Android中的血管,在Android中我们使用的Activity、Service等组件需要和AMS(system_server)通信,这种跨进程的通信都是通过Binder完成

  • 机制:Binder是一种进程间通信机制
  • 驱动:Binder是一个虚拟物理设备驱动
  • 应用层:Binder是一个发起通信的Java类

二.多线程使用及优势

    虚拟机分配给各个进程的运行内存是有限制的,LMK也会优先回收对系统资源占有较多的进程

  • 突破进程内存限制
  • 功能稳定性:独立的通信进程保持长连接的稳定性
  • 规避系统内存泄露:独立的webview进程阻隔内存泄露导致的问题
  • 隔离风险:对于不稳定的功能放入独立进程,避免导致主进程崩溃
  • adb shell getprop dalvik.vm.heapsize查看虚拟机进程内存限制

三.内存划分

      内存被操作系统划分为两块,用户空间和内核空间,用户空间时代码运行的的地方,内核空间时内核代码运行的地方,为了安全它们是隔离的,即使用户程序崩溃,内核也不受影响传统IPC机制:系统调用(copy_from_user)第一次拷贝,系统调用(copy_to_user)第二次拷贝。

四.binder与传统IPC对比优势

五.Binder是如何做到一次拷贝的

      发送方与接收方内核有一块共享区域,mmap

六.MMAP原理

Binder映射关系  -----系统实现,发送方与接收方binder_mmap到同一物理内存

七.Binder机制是如何跨进程

       内存映射,两进程虚拟内存mmap到同一物理内存

八.描述AIDL生成的Java类细节

    data,reply

九.四大组件底层通信原理

十.为什么intent不能传递大数据

        同步:Binder_size=1M-8k,实际数据比这个少,因为网络通信存在打包操作,异步比同步少一半

        hander线程间通信机制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值