Android面试题之IPC,包括Binder机制等。
本文是我一点点归纳总结的干货,但是难免有疏忽和遗漏,希望不吝赐教。
转载请注明链接:https://blog.csdn.net/feather_wch/article/details/81136290
有帮助的话请点个赞!万分感谢!
Android面试题-IPC(7题)
版本:2018/7/20-1
1、Binder机制是做什么的?
Android Binder
用于进程间通信
。Android的应用和系统服务
运行在各自的进程中
,进程之间的通信就需要借助Binder
实现。
2、Android基于的Linux内核,Linux有哪些IPC方法?
IPC | 特点 | 数据复制次数 | 同步 |
---|---|---|---|
管道 | 分配一个page大小的内存,容量有限 | 2 | × |
消息队列 | 任何大小,不适合频繁大量的数据 | 2 | × |
共享内存 | 任何大小 | 0 | × |
Socket | 任何大小,多用于不同设备间的网络通信,传输效率较低。 | 2 | × |
信号量 | 进程间通信的同步机制,用于给共享资源上锁。 | × | √ |
信号 | 不适合进行数据通信,多用于进程中断控制,比如杀死一个进程 | × |
3、Binder机制的优势体现在哪里?
性能
:数据只需要复制一次,Linux的大部分IPC需要复制两次,共享内存不需要复制数据。因此Binder
仅次于共享内存
。稳定性
:共享内存
需要额外进行数据同步
操作,但是Binder机制
不需要(本身进行了同步)。安全性
:Android应用具有UID
,这是在内核空间的。然而Linux的UID和PID都是在用户空间操作的,因此Binder安全性更高