纯手写的mmap进程间通信组件
说到跨进程通信,你可能对Binder有着莫名的崇拜之情,因为它几乎贯穿了整个Android系统的跨进程通信任务,如果你探究到Binder是通过mmap实现的时候,你是否跟我一样,想用mmap实现一个跨进程组件,这就是 我创建该项目的目的,对于你来说,这是一个不错的学习mmap的开源项目。
优势:
- 通信数据大小突破binder限制
- 轻量级,易用
缺点:
- 安全,目前未考虑安全性,后续可以加进来,比如对数据加密,对外部进程访问加入验证规则
进行中:
- 跨线程、跨进程同步,已完成
- pb+加密,doing
初始化
class App : Application() {
override fun onCreate() {
super.onCreate()
"init".print(getProcessName())
MMIPC.initMMAP(this)
}
}
保存数据
MMIPC.setData("1", "2")
MMIPC.setData("3", "4")
获取数据,不分进程
MMIPC.getData()
MMIPC.getData("key")
MMIPC.getData("key","defaultValue")
该文章讲的很细,也有补充知识,推荐查看。
核心实现:https://github.com/ibaozi-cn/mmipc/tree/main/mmipc/src/main/cpp
https://github.com/Tencent/MMKV
https://mp.weixin.qq.com/s/YjwxeLCwvJxXn7HPOF4Ayw
https://mp.weixin.qq.com/s/xTKQjb45gzRIUjKzSBOKsg