处理异步binder调用的方法和装置制造方法及图纸

技术编号:35518550 阅读:17 留言:0更新日期:2022-11-09 14:36
本申请涉及终端领域,提供了一种处理异步binder调用的方法和装置,该方法包括:检测系统进程的异步binder缓冲的占用空间;当所述占用空间大于或等于门限值时,从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,所述M和所述N为正整数,所述M大于或等于所述N;释放分配给所述N个目标进程的异步binder缓冲。上述方法避免冻屏现象的出现。上述方法避免冻屏现象的出现。上述方法避免冻屏现象的出现。

【技术实现步骤摘要】
处理异步binder调用的方法和装置


[0001]本申请涉及终端领域,具体涉及一种处理异步binder调用的方法和装置。

技术介绍

[0002]终端设备通常是指包括集成电路、晶体管或电子管等电子元器件,并且基于操作系统和第三方应用实现特定功能的设备。用户在使用终端设备时,可能会通过第三方应用控制终端设备实现特定功能,例如,用户点击屏幕上的视频图标后,视频播放器(第三方应用的一个示例)通过与操作系统的交互播放视频。
[0003]用户在使用终端设备的过程中,可能会出现“冻屏”现象。例如,用户点击屏幕上的视频图标后,终端设备未播放视频,并且,终端设备对用户后续的操作也不再做出反应,终端设备的屏幕如同被冻结一般。如何避免冻屏现象是当前需要解决的问题。

技术实现思路

[0004]本申请实施例提供了一种处理异步binder调用的方法和装置,能够避免冻屏现象的出现。
[0005]第一方面,提供了一种处理异步binder调用的方法,所述方法包括:
[0006]检测系统进程的异步binder缓冲的占用空间;
[0007]当所述占用空间大于或等于门限值时,从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,所述M和所述N为正整数,所述M大于或等于所述N;
[0008]释放分配给所述N个目标进程的异步binder缓冲。
[0009]binder是终端设备的进程之间的一种通信机制,系统进程的异步binder接口被另外一个进程(如用户进程)调用后,终端设备需要为该用户进程分配异步binder缓冲,在异步binder调用机制下,该用户进程无需等待本次调用的结果即可再次调用系统进程,因此,在一些情况下,例如,系统进程处理异步binder调用出错的情况下,用户进程会循环调用系统进程的异步binder接口,导致系统进程的异步binder缓冲资源耗尽,系统进程后续无法再响应其他进程的调用请求,从而导致冻屏现象。在上述实施例中,终端设备检测到系统进程的异步binder缓冲的占用空间大于或等于门限值时,从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,并释放分配给该N个目标进程的异步binder缓冲,从而可以避免系统进程的异步binder缓冲资源耗尽导致的冻屏现象。
[0010]可选地,所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,包括:
[0011]从直接调用所述异步binder接口的P个进程中确定第一进程,所述第一进程为所述P个进程中调用所述异步binder接口的次数最多的进程,所述P为小于或等于所述M的正整数;
[0012]当所述第一进程为第三方应用进程时,确定所述第一进程为所述N个目标进程中的一个。
[0013]造成冻屏现象的主要原因是第三方应用开发时未做好适配导致系统进程处理异步binder接口调用时出错,因此,当第一进程为调用异步binder接口的次数最多的第三方应用进程时,第一进程是最有可能导致冻屏的进程,将第一进程作为目标进程,释放分配给第一进程的binder缓冲,能够有效避免冻屏出现。
[0014]可选地,所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,包括:
[0015]当所述第一进程为非第三方应用进程时,从通过所述第一进程调用所述异步binder接口的Q个进程中确定第二进程,所述第二进程为所述Q个进程中调用所述异步binder接口的次数最多的进程,所述Q为小于或等于所述M的正整数;
[0016]当所述第二进程为第三方应用进程时,确定所述第二进程为所述N个目标进程中的一个。
[0017]当第一进程不是第三方应用进程时,第一进程导致冻屏的可能性不大,可以从通过第一进程调用系统进程的Q个进程中确定第二进程,即,从Q个进程中确定调用所述异步binder接口的次数最多的进程,释放分配给第二进程的binder缓冲,能够有效避免冻屏出现。
[0018]可选地,所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程之前,所述方法还包括:
[0019]确定K个进程,所述K个进程为所述系统进程的异步binder接口的调用链的源头进程,所述K为正整数;
[0020]从所述K个进程中确定所述M个进程,所述M个进程为第三方应用进程;
[0021]所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,包括:
[0022]从所述M个进程中确定调用所述异步binder接口的次数最多的N个进程为所述N个目标进程。
[0023]终端设备可以在确定系统进程的异步binder接口的调用链的源头后再确定目标进程,这样可以准确确定调用异步binder接口的次数最多的N个进程,从而可以有效避免冻屏出现。
[0024]可选地,所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,包括:
[0025]当所述M个进程包括调用所述异步binder接口的次数相同的H个进程时,并且,当所述H个进程调用所述异步binder接口的次数是所述M个进程中最多的进程时,从所述H个进程中确定N个调用所述异步binder接口的时间最早的进程为所述N个目标进程,所述H为大于所述N的正整数。
[0026]当H个进程调用系统进程的异步binder接口的次数相同时,并且,当H个进程是调用异步binder接口的次数是M个进程中最多的进程时,终端设备可以根据H个进程的调用时间确定N个目标进程,调用时间最早的进程大概率是发生调用失败的进程,将调用时间最早的N个进程确定为目标进程可以准确排除导致冻屏现象的隐患。
[0027]可选地,所述方法还包括:
[0028]在所述N个目标进程的异步binder缓冲释放之后,再次检测系统进程的异步
binder缓冲的占用空间;
[0029]当所述再次检测的检测结果大于或等于所述门限值时,从所述M个进程中剩余的进程中确定L个目标进程,所述L为正整数;
[0030]释放分配给所述L个目标进程的异步binder缓冲。
[0031]如果N个目标进程的异步binder缓冲释放之后,系统进程的异步binder缓冲的占用空间仍然大于或等于门限值,说明仍然有进程在循环调用系统进程的异步binder接口,终端设备可以再次从剩余的进程中确定L个目标进程,释放分配给L个目标进程的异步binder缓冲,避免冻屏现象的出现。
[0032]可选地,所述N等于1。
[0033]当N等于1时,终端设备执行的方案是逐个释放目标进程占用的异步binder缓冲,这样可以避免一次释放多个目标进程占用的异步binder缓冲导致正常业务受到影响。
[0034]可选地,所述方法还包括:
[0035]关闭所述N个目标进程。
[0036]关闭目标进程可以避免目标进程再次调用系统进程的异步binder接口,彻底消除导致冻屏现象的隐患。...

【技术保护点】

【技术特征摘要】
1.一种处理异步binder调用的方法,其特征在于,所述方法包括:检测系统进程的异步binder缓冲的占用空间;当所述占用空间大于或等于门限值时,从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,所述M和所述N为正整数,所述M大于或等于所述N;释放分配给所述N个目标进程的异步binder缓冲。2.根据权利要求1所述的方法,其特征在于,所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,包括:从直接调用所述异步binder接口的P个进程中确定第一进程,所述第一进程为所述P个进程中调用所述异步binder接口的次数最多的进程,所述P为小于或等于所述M的正整数;当所述第一进程为第三方应用进程时,确定所述第一进程为所述N个目标进程中的一个。3.根据权利要求2所述的方法,其特征在于,所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,包括:当所述第一进程为非第三方应用进程时,从通过所述第一进程调用所述异步binder接口的Q个进程中确定第二进程,所述第二进程为所述Q个进程中调用所述异步binder接口的次数最多的进程,所述Q为小于或等于所述M的正整数;当所述第二进程为第三方应用进程时,确定所述第二进程为所述N个目标进程中的一个。4.根据权利要求1所述的方法,其特征在于,所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程之前,所述方法还包括:确定K个进程,所述K个进程为所述系统进程的异步binder接口的调用链的源头进程,所述K为正整数;从所述K个进程中确定所述M个进程,所述M个进程为第三方应用进程;所述从调用所述系统进程的异步binder接口的M个进程中确定N个目标进程,包括:从所...

【专利技术属性】
技术研发人员:李潘潘
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1