一种动态修改framebuffer的方法、装置、设备及存储介质制造方法及图纸

技术编号:31710176 阅读:58 留言:0更新日期:2022-01-01 11:13
本发明专利技术适用计算机技术领域,提供了一种动态修改framebuffer的方法,通过GEM的buffer handle找到framebuffer的进程页表,并通过进程页表动态修改framebuffer虚拟buffer的大小,该方法解决了在不中断上层业务逻辑的情况下任意修改frambuffer大小的问题,提高了内存的利用率。的利用率。的利用率。

【技术实现步骤摘要】
一种动态修改framebuffer的方法、装置、设备及存储介质


[0001]本专利技术属于计算机
,尤其涉及一种动态修改framebuffer的方法、装置、设备及存储介质。

技术介绍

[0002]云终端作为一种终端,对硬件成本比较敏感,内存作为一种必备的硬件,它的大小对终端的硬件成本有着直接的影响,在使用Androi d8系统的云终端中,用于显示的framebuffer对内存的占用比较大,而且主屏frambuffer在开机申请一次后就不能更改,如果需要更改则必须重新启动系统服务,导致上层业务逻辑的中断,给用户带来不好的体验。

技术实现思路

[0003]本专利技术的目的在于提供一动态修改framebuffer的方法、装置、设备及存储介质,旨在解决由于现有技术中修改framebuffer的大小导致上层业务逻辑终端,用户体验不好的问题。
[0004]一方面,本专利技术提供了一种动态修改framebuffer的方法,所述方法包括下述步骤:
[0005]获取GEM的buffer handle,并将其传递给ModifyMem驱动模块;
[0006]所述ModifyMem驱动模块通过所述buffer handle找到所述framebuffer进程的页表;
[0007]通过修改所述页表动态修改所述framebuffer的大小;
[0008]根据修改后的所述framebuffer进行上层虚拟buffer管理。
[0009]进一步地,所述步骤获取GEM的buffer handle,并将其传递给ModifyMem驱动模块之前还包括以下步骤:
[0010]初始化上层framebuffer虚拟buffer的大小。
[0011]进一步地,所述步骤获取GEM的buffer handle,并将其传递给ModifyMem驱动模块包括以下具体步骤:
[0012]获取GEM的buffer handle;
[0013]通过insmod命令在kernel中加载ModifyMem驱动模块;
[0014]将所述buffer handle传递给所述ModifyMem驱动模块。
[0015]进一步地,在所述步骤通过修改所述页表动态修改所述framebuffer的大小之后和所述步骤通过修改后的所述framebuffer进行上层虚拟buffer管理之前还包括步骤:
[0016]通知上层虚拟buffer管理服务。
[0017]进一步地,所述上层虚拟buffer管理包括:刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
[0018]另一方面,本专利技术提供了一种动态修改framebuffer的通讯装置,所述装置包括:
[0019]获取模块,用于获取GEM的buffer handle并将其递传给ModifyMem驱动模块;
[0020]查找模块,用于通过所述buffer handle查找所述framebuffer进程的页表;
[0021]修改模块,用于通过修改所述framebuffer进程的页表动态修改所述framebuffer的大小;
[0022]上层管理模块,用于根据修改后的framebuffer进行上层虚拟buffer管理。
[0023]进一步地,所述ModifyMem驱动模块通过insmod命令加载到kernel中。
[0024]进一步地,所述上层虚拟buffer管理包括刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
[0025]另一方面,本专利技术还提供了一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现动态修改framebuffer的通讯方法所述的步骤。
[0026]另一方面,本专利技术还提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现动态修改framebuffer的通讯方法中所述的步骤。
[0027]本专利技术的有益效果:通过GEM的buffer handle找到framebuffer的进程页表,并通过进程页表动态修改framebuffer虚拟buffer的大小解决了在不中断上层业务逻辑的情况下任意修改frambuffer大小的问题,提高了内存的利用率。
附图说明
[0028]图1是本专利技术实施例提供的动态修改framebuffer的方法的流程图;
[0029]图2是本专利技术实施例提供的动态修改framebuffer的装置的结构示意图;
[0030]图3是本专利技术实施例提供的设备的结构示意图。
具体实施方式
[0031]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0032]以下结合具体实施例对本专利技术的具体实现进行详细描述:
[0033]实施例一:
[0034]图1示出了本专利技术实施例一提供的动态修改framebuffer的方法的实现流程,为了便于说明,仅示出了与本专利技术实施例相关的部分,详述如下:
[0035]本实施例中终端采用的系统为Android8。
[0036]步骤S101:获取GEM的buffer handle,并将其传递给ModifyMem驱动模块;
[0037]步骤S102:ModifyMem驱动模块通过buffer handle找到framebuffer进程的页表;
[0038]步骤S103:通过修改页表动态修改framebuffer的大小;
[0039]步骤S104:根据修改后的framebuffer进行上层虚拟buffer管理。
[0040]进一步地,步骤S101之前还包括如下步骤:
[0041]初始化上层framebuffer虚拟buffer的大小,比如定义4K的虚拟buffer。
[0042]进一步地,步骤S101还包括以下步骤:
[0043]步骤S1011:获取GEM的buffer handle;
[0044]步骤S1012:通过insmod命令在kernel中加载ModifyMem驱动模块;
[0045]步骤S1013:将所述buffer handle传递给所述ModifyMem驱动模块。
[0046]进一步地,在步骤S103之后和步骤S104之前还包括如下步骤:
[0047]通知上层虚拟buffer管理服务。
[0048]进一步地,步骤S104中的虚拟buffer管理包括刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
[0049]实施例二:
[0050]图2示出了本专利技术实施例提供的动态修改framebuffer的装置的结构示意图,为了便于说明,仅示出了与本专利技术实施例相关的部分,其中包括:
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动态修改framebuffer的方法,其特征在于,所述方法包括下述步骤:获取GEM的buffer handle,并将其传递给ModifyMem驱动模块;所述ModifyMem驱动模块通过所述buffer handle找到所述framebuffer进程的页表;通过修改所述页表动态修改所述framebuffer的大小;根据修改后的所述framebuffer进行上层虚拟buffer管理。2.根据权利要求1所述的动态修改framebuffer的方法,其特征在于,所述步骤获取GEM的buffer handle,并将其传递给ModifyMem驱动模块之前还包括以下步骤:初始化上层framebuffer虚拟buffer的大小。3.根据权利要求1所述的动态修改framebuffer的方法,其特征在于,所述步骤获取GEM的buffer handle,并将其传递给ModifyMem驱动模块包括以下具体步骤:获取GEM的buffer handle;通过insmod命令在kernel中加载ModifyMem驱动模块;将所述buffer handle传递给所述ModifyMem驱动模块。4.根据权利要求1所述的动态修改framebuffer的方法,其特征在于,在所述步骤通过修改所述页表动态修改所述framebuffer的大小之后和所述步骤通过修改后的所述framebuffer进行上层虚拟buffer管理之前还包括步骤:通知上层虚拟buffer管理服务。5....

【专利技术属性】
技术研发人员:付炜
申请(专利权)人:深圳市智微智能软件开发有限公司
类型:发明
国别省市:

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

1