参考:
https://www.cnblogs.com/qingchen1984/p/5212755.html
https://blog.youkuaiyun.com/paxhujing/article/details/80255526
https://www.cnblogs.com/gdk-0078/p/5165242.html
https://www.liangzl.com/get-article-detail-8155.html
http://virtual.51cto.com/art/201903/593315.htm?pc
https://blog.youkuaiyun.com/u011619211/article/details/72188552
https://blog.youkuaiyun.com/coding_glacier/article/details/7520199
https://cloud.tencent.com/developer/article/1154077
作为android的应用开发程序员,Binder机制总归是要了解的,但是这里有一个“度”的问题,
了解到什么程度比较好呢。
第一:AIDL要自己会定义,自己会实现。这个在之前的文章中已经做过。
第二:Binder机制的四个角色:
Server Client ServiceManager Binder驱动
服务端 客户端 DNS解析 路由器
其中Binder驱动运行在内核空间,其它三个都在用户空间
第三:进程隔离
简单来说,就是进程之间数据不共享,因此如果要实现进程交互,则需要IPC机制
第四:用户空间和内核空间
两者权限不同,内核空间权限较高,进行IPC要通过内核空间
第五:传统IPC原理
用户空间-->内核空间-->用户空间,这样进过了两次拷贝
第六:虚拟内存
所谓虚拟内存,即“虚拟”的内存,每个进程所访问的内存地址其实并不是真正的物理地址,
而是使用虚拟内存技术的虚拟内存地址,这样每个应用都会感觉自己的内存地址是连续的。
第七:为什么Binde机制只需要拷贝一次
传统的IPC方式需要拷贝两次,而为什么binder机制只需要拷贝一次,
答案只有四个字“内存映射”
第八:Binder机制和传统IPC对比的优点
1.安全性 Android为每个安装的App分配了UID,可以进行权限校验
2.CS架构明晰而稳定
3.只需要拷贝一次,性能较好