Binder的简单了解笔记

一、Binder是什么?

Binder是Android 进程间通信机制之一(IPC)

二、为什么一线企业开发的app要使用多线程?

1.突破进程内存限制:因为虚拟机分配给各个进程的运行内存是有限制的,LMK(低内存杀死机制)也会优先回收对系统资源占用多的进程。

2.功能稳定性:独立的通信进程保持长链接的稳定性。

3.规避系统内存泄漏:独立的webview进程阻隔内存泄漏导致的问题。

4.隔离风险:对于不稳定的功能放入单独的进程,避免导致主线程崩溃。

三、查看某个手机一个进程分配的运行内存是多大

1.adb shell

2.getprop dalvik.vm.heapsize

四、Linux的IPC机制有哪些?

管道、共享内存、信号、socket、消息队列等等

五、Binder有什么优势?

Binder需要拷贝一次从用户空间拷贝到内核空间(真正其实需要拷贝2次,一次是拷贝数据,一次是拷贝的请求头(8k/4k))

六、Binder如何做到一次拷贝的?

接收方和内核 有一块共享区域(通过mmap实现的) 

七、为什么intent不能传递大数据?

Intent传输数据的机制中,用到了Binder。Intent中的数据,会作为Parcel被存储在Binder的事物缓冲区进行传输。而这个Binder事务缓冲区具有一个有限的固定大小。

限制为同步情况下为1M-8k,异步情况下为(1M-8k)/2

实际传递的数据要小于1M-8K,因为数据还要打包,还包含包头和命令

八、进程间通信的本质是:内存拷贝

九、内核空间和用户空间的区别

内核空间运行的是系统代码的空间/进程,用户空间运行的是用户代码

学习地址:

Android大厂面试必问—Binder【底层原理解析】_哔哩哔哩_bilibili

手撕 FrameWork源码,从Binder → Handler → Zygote → AMS → PMS → WMS 彻底讲穿原理_哔哩哔哩_bilibili
​​​​​​​

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值