面试真题:Android 中为什么要使用 Binder 机制?
发布于 2022-09-20 23:33:31
关注者
0
被浏览
27
5 个回答
-
1、分析Android基于Linux系统,进程间无法直接通信,binder机制就是为了解决进程间通信的问题。 2、对比其他的IPC机制,说明binder的安全、性能等优势。
-
效率,只copy一次,到内核缓存
-
主要是出于以上三个方面的考量: 1\.高性能:从数据拷贝次数来看Binder只需要进行一次内存拷贝,而管道、消息队列、Socket都需要两次,共享内存不需要拷贝,Binder的性能仅次于共享内存。 2\.稳定性:上面说到共享内存的性能优于Binder,那为什么不适用共享内存呢,因为共享内存需要处理并发同步问题,容易出现死锁和资源竞争,稳定性较差。而Binder基于C/S架构,客户端与服务端彼此独立,稳定性较好。 3\.安全性:Android为每个应用分配了UID,作为鉴别进程的重要标志,Android内部依赖这个UID进行权限管理,包括6\.0以前的固定权限和6\.0以后的动态权限,传统IPC只能由用户在数据包里填入UID/PID,这个标记是在用户空间控制,没有放在内核空间,因此有被恶意篡改的可能,因此Binder的安全性更高
-
因为linux的进程间通信的方式,从架构模式,性能,安全方面都不满足Android的需求
-
对比linux四种通信方式,都不太合适,定制的binder,串联app所有。