【技术实现步骤摘要】
Binder驱动内存管理方法、装置、设备及存储介质
[0001]本申请涉及
,特别是涉及一种Binder驱动内存管理方法、装置、设备及存储介质。
技术介绍
[0002]整个Android系统架构中,大量采用了Binder机制作为进程间通信(Inter
‑
Process Communication,IPC)方案。Android系统中,每个应用程序都是由Android的四大组件(Activity、Service、Broadcast、ContentProvider)的一或多个组合而成,而这些组件所涉及的进程间的通信非常多,且都是依赖于Binder IPC机制。
[0003]在进程间通信过程中,当“数据发送进程”要将数据发送到“数据接收进程”,Binder驱动会申请一块物理内存缓存区用于存放通信的数据。Binder驱动会优先向Binder Alloc LRU链表申请用于存放通信数据的目标内存空间,当Binder Alloc LRU链表中空闲内存不足时,需要继续向伙伴系统(Buddy System)申请 ...
【技术保护点】
【技术特征摘要】
1.一种Binder驱动内存管理方法,其特征在于,包括:获取第一进程向第二进程发起的Binder进程间通信指令;响应于所述Binder进程间通信指令,向内存回收链表请求为所述第一进程和第二进程分配用于存放通信数据的目标内存空间;响应于所述内存回收链表中对应所述第一进程和所述第二进程的空闲内存空间不足以存放所述通信数据,向预设内存池请求为所述第一进程和所述第二进程分配所述目标内存空间,其中,所述预设内存池独立于所述内存回收链表以及伙伴系统。2.根据权利要求1中所述的方法,其特征在于,所述响应于所述Binder进程间通信指令,向内存回收链表请求为所述第一进程和第二进程分配用于存放通信数据的目标内存空间,包括:响应于所述Binder进程间通信指令,向所述内存回收链表申请所述目标内存空间;确定所述内存回收链表中对应所述第一进程和所述第二进程的空闲内存空间,其中,所述内存回收链表用于回收至少一组通信进程通信完成后释放的内存空间;响应于所述内存回收链表中对应所述第一进程和所述第二进程的空闲内存空间大于或等于所述目标内存空间,则从所述内存回收链表中为所述第一进程和所述第二进程分配所述目标内存空间。3.根据权利要求1中所述的方法,其特征在于,所述响应于所述内存回收链表中对应所述第一进程和所述第二进程的空闲内存空间不足以存放所述通信数据,向预设内存池请求为所述第一进程和所述第二进程分配所述目标内存空间,包括:响应于所述内存回收链表中不存在对应所述第一进程和所述第二进程的空闲内存空间,或者所述内存回收链表中对应所述第一进程和所述第二进程的空闲内存空间小于所述目标内存空间,请求所述预设内存池为所述第一进程和所述第二进程分配所述目标内存空间。4.根据权利要求1中所述的方法,其特征在于,所述方法包括:响应于所述预设内存池中的空闲...
【专利技术属性】
技术研发人员:郑堂权,
申请(专利权)人:OPPO广东移动通信有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。