CN113867820A - 一种动态修改framebuffer的方法、装置、设备及存储介质 - Google Patents

一种动态修改framebuffer的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113867820A
CN113867820A CN202111149983.1A CN202111149983A CN113867820A CN 113867820 A CN113867820 A CN 113867820A CN 202111149983 A CN202111149983 A CN 202111149983A CN 113867820 A CN113867820 A CN 113867820A
Authority
CN
China
Prior art keywords
buffer
framebuffer
upper layer
dynamically modifying
modifymem
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111149983.1A
Other languages
English (en)
Other versions
CN113867820B (zh
Inventor
付炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhiwei Intelligent Software Development Co ltd
Original Assignee
Shenzhen Zhiwei Intelligent Software Development Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhiwei Intelligent Software Development Co ltd filed Critical Shenzhen Zhiwei Intelligent Software Development Co ltd
Priority to CN202111149983.1A priority Critical patent/CN113867820B/zh
Publication of CN113867820A publication Critical patent/CN113867820A/zh
Application granted granted Critical
Publication of CN113867820B publication Critical patent/CN113867820B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明适用计算机技术领域,提供了一种动态修改framebuffer的方法,通过GEM的buffer handle找到framebuffer的进程页表,并通过进程页表动态修改framebuffer虚拟buffer的大小,该方法解决了在不中断上层业务逻辑的情况下任意修改frambuffer大小的问题,提高了内存的利用率。

Description

一种动态修改framebuffer的方法、装置、设备及存储介质
技术领域
本发明属于计算机技术领域,尤其涉及一种动态修改framebuffer的方法、装置、设备及存储介质。
背景技术
云终端作为一种终端,对硬件成本比较敏感,内存作为一种必备的硬件,它的大小对终端的硬件成本有着直接的影响,在使用Androi d8系统的云终端中,用于显示的framebuffer对内存的占用比较大,而且主屏frambuffer在开机申请一次后就不能更改,如果需要更改则必须重新启动系统服务,导致上层业务逻辑的中断,给用户带来不好的体验。
发明内容
本发明的目的在于提供一动态修改framebuffer的方法、装置、设备及存储介质,旨在解决由于现有技术中修改framebuffer的大小导致上层业务逻辑终端,用户体验不好的问题。
一方面,本发明提供了一种动态修改framebuffer的方法,所述方法包括下述步骤:
获取GEM的buffer handle,并将其传递给ModifyMem驱动模块;
所述ModifyMem驱动模块通过所述buffer handle找到所述framebuffer进程的页表;
通过修改所述页表动态修改所述framebuffer的大小;
根据修改后的所述framebuffer进行上层虚拟buffer管理。
进一步地,所述步骤获取GEM的buffer handle,并将其传递给ModifyMem驱动模块之前还包括以下步骤:
初始化上层framebuffer虚拟buffer的大小。
进一步地,所述步骤获取GEM的buffer handle,并将其传递给ModifyMem驱动模块包括以下具体步骤:
获取GEM的buffer handle;
通过insmod命令在kernel中加载ModifyMem驱动模块;
将所述buffer handle传递给所述ModifyMem驱动模块。
进一步地,在所述步骤通过修改所述页表动态修改所述framebuffer的大小之后和所述步骤通过修改后的所述framebuffer进行上层虚拟buffer管理之前还包括步骤:
通知上层虚拟buffer管理服务。
进一步地,所述上层虚拟buffer管理包括:刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
另一方面,本发明提供了一种动态修改framebuffer的通讯装置,所述装置包括:
获取模块,用于获取GEM的buffer handle并将其递传给ModifyMem驱动模块;
查找模块,用于通过所述buffer handle查找所述framebuffer进程的页表;
修改模块,用于通过修改所述framebuffer进程的页表动态修改所述framebuffer的大小;
上层管理模块,用于根据修改后的framebuffer进行上层虚拟buffer管理。
进一步地,所述ModifyMem驱动模块通过insmod命令加载到kernel中。
进一步地,所述上层虚拟buffer管理包括刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
另一方面,本发明还提供了一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现动态修改framebuffer的通讯方法所述的步骤。
另一方面,本发明还提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现动态修改framebuffer的通讯方法中所述的步骤。
本发明的有益效果:通过GEM的buffer handle找到framebuffer的进程页表,并通过进程页表动态修改framebuffer虚拟buffer的大小解决了在不中断上层业务逻辑的情况下任意修改frambuffer大小的问题,提高了内存的利用率。
附图说明
图1是本发明实施例提供的动态修改framebuffer的方法的流程图;
图2是本发明实施例提供的动态修改framebuffer的装置的结构示意图;
图3是本发明实施例提供的设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明实施例一提供的动态修改framebuffer的方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
本实施例中终端采用的系统为Android8。
步骤S101:获取GEM的buffer handle,并将其传递给ModifyMem驱动模块;
步骤S102:ModifyMem驱动模块通过buffer handle找到framebuffer进程的页表;
步骤S103:通过修改页表动态修改framebuffer的大小;
步骤S104:根据修改后的framebuffer进行上层虚拟buffer管理。
进一步地,步骤S101之前还包括如下步骤:
初始化上层framebuffer虚拟buffer的大小,比如定义4K的虚拟buffer。
进一步地,步骤S101还包括以下步骤:
步骤S1011:获取GEM的buffer handle;
步骤S1012:通过insmod命令在kernel中加载ModifyMem驱动模块;
步骤S1013:将所述buffer handle传递给所述ModifyMem驱动模块。
进一步地,在步骤S103之后和步骤S104之前还包括如下步骤:
通知上层虚拟buffer管理服务。
进一步地,步骤S104中的虚拟buffer管理包括刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
实施例二:
图2示出了本发明实施例提供的动态修改framebuffer的装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
获取模块201,用于获取GEM的buffer handle并将其递传给ModifyMem驱动模块;
查找模块202,用于通过buffer handle查找framebuffer进程的页表;
修改模块203,用于通过修改framebuffer进程的页表动态修改framebuffer的大小;
上层管理模块204,用于根据修改后的framebuffer进行上层虚拟buffer管理。
实施例三:
图3示出了本发明实施例提供的动态修改framebuffer的设备的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
在本发明实施例中,提供了一种设备,包括存储器301、处理器302以及存储在存储器中并可在处理器上运行的计算机程序303,该计算机程序被处理器执行时实现上述动态修改framebuffer的方法实施例中的步骤,例如,图1所示的步骤S101至S104。或者,该计算机程序被处理器执行时实现上述动态修改framebuffer的装置中各模块的功能,例如,图2所示的模块201至204。
实施例四:
在本发明实施例中,提供了一种可读存储介质,该可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述动态修改framebuffer的方法实施例中的步骤,例如,图1所示的步骤S101至S104。或者,该计算机程序被处理器执行时实现上述各装置实施例中各模块的功能,例如图2所示的各个模块的功能。
本发明实施例的计算机可读存储介质可以包括能够携带计算机程序代码的任何实体或装置、记录介质,例如,ROM/RAM、磁盘、光盘、闪存等存储器。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

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.根据权利要求1所述的动态修改framebuffer的方法,其特征在于,所述上层虚拟buffer管理包括:刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
6.一种动态修改framebuffer的装置,其特征在于,所述装置包括:
获取模块,用于获取GEM的buffer handle并将其递传给ModifyMem驱动模块;
查找模块,用于通过所述buffer handle查找所述framebuffer进程的页表;
修改模块,用于通过修改所述framebuffer进程的页表动态修改所述framebuffer的大小;
上层管理模块,用于根据修改后的framebuffer进行上层虚拟buffer管理。
7.根据权利要求6所述的动态修改framebuffer的装置,其特征在于,所述ModifyMem驱动模块通过insmod命令加载到kernel中。
8.根据权利要求6所述的动态修改framebuffer的装置,其特征在于,所述上层虚拟buffer管理包括刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
9.一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述方法的步骤。
10.一种可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
CN202111149983.1A 2021-09-29 2021-09-29 一种动态修改framebuffer的方法、装置、设备及存储介质 Active CN113867820B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111149983.1A CN113867820B (zh) 2021-09-29 2021-09-29 一种动态修改framebuffer的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111149983.1A CN113867820B (zh) 2021-09-29 2021-09-29 一种动态修改framebuffer的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113867820A true CN113867820A (zh) 2021-12-31
CN113867820B CN113867820B (zh) 2024-05-28

Family

ID=78992533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111149983.1A Active CN113867820B (zh) 2021-09-29 2021-09-29 一种动态修改framebuffer的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113867820B (zh)

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123571A (zh) * 2006-08-07 2008-02-13 北京三星通信技术研究有限公司 基于自适应抖动缓冲的调度策略的调整方法
CN101751345A (zh) * 2008-12-10 2010-06-23 国际商业机器公司 在主机中运行客户机的程序的模拟器和模拟方法
CN101763316A (zh) * 2009-12-25 2010-06-30 东南大学 基于虚存机制的指令片上异构存储资源动态分配的方法
CN102314506A (zh) * 2011-09-07 2012-01-11 北京人大金仓信息技术股份有限公司 基于动态索引的分布式缓冲区管理方法
CN102521079A (zh) * 2011-12-02 2012-06-27 华中科技大学 软件栈缓冲区溢出的容错方法
CN105426112A (zh) * 2014-08-28 2016-03-23 广明光电股份有限公司 固态硬盘动态调整高速缓冲区的方法
US20160364397A1 (en) * 2015-06-11 2016-12-15 Qualcomm Incorporated System and Methods for Locally Customizing Media Content for Rendering
CN107168801A (zh) * 2017-05-12 2017-09-15 南京大学 基于多内核页表的内核动态数据隔离以及保护技术
CN107292807A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种图形合成方法、窗口设置方法及系统
CN107529097A (zh) * 2016-06-20 2017-12-29 北京信威通信技术股份有限公司 一种自适应调整视频缓冲大小的方法及装置
CN107844267A (zh) * 2016-09-19 2018-03-27 芬基波尔有限责任公司 缓冲区分配和存储器管理
CN108763508A (zh) * 2018-05-30 2018-11-06 中兴通讯股份有限公司 数据页访问方法、存储引擎以及计算机可读存储介质
CN108959124A (zh) * 2018-05-04 2018-12-07 广东睿江云计算股份有限公司 基于动态缓冲的虚拟机磁盘复制过程写入方法及装置
CN109002401A (zh) * 2018-05-04 2018-12-14 广东睿江云计算股份有限公司 基于动态缓冲的虚拟机磁盘复制过程读取方法及装置
CN109933441A (zh) * 2019-02-28 2019-06-25 上海交通大学 微内核进程间通讯方法和系统
CN110730364A (zh) * 2019-10-14 2020-01-24 广州微算互联信息技术有限公司 一种云手机数据传输方法、装置及存储介质
CN112269603A (zh) * 2020-10-16 2021-01-26 北京技德系统技术有限公司 一种在Linux上兼容运行Android应用的图形显示方法与装置

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123571A (zh) * 2006-08-07 2008-02-13 北京三星通信技术研究有限公司 基于自适应抖动缓冲的调度策略的调整方法
CN101751345A (zh) * 2008-12-10 2010-06-23 国际商业机器公司 在主机中运行客户机的程序的模拟器和模拟方法
CN101763316A (zh) * 2009-12-25 2010-06-30 东南大学 基于虚存机制的指令片上异构存储资源动态分配的方法
CN102314506A (zh) * 2011-09-07 2012-01-11 北京人大金仓信息技术股份有限公司 基于动态索引的分布式缓冲区管理方法
CN102521079A (zh) * 2011-12-02 2012-06-27 华中科技大学 软件栈缓冲区溢出的容错方法
CN105426112A (zh) * 2014-08-28 2016-03-23 广明光电股份有限公司 固态硬盘动态调整高速缓冲区的方法
US20160364397A1 (en) * 2015-06-11 2016-12-15 Qualcomm Incorporated System and Methods for Locally Customizing Media Content for Rendering
CN107292807A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种图形合成方法、窗口设置方法及系统
CN107529097A (zh) * 2016-06-20 2017-12-29 北京信威通信技术股份有限公司 一种自适应调整视频缓冲大小的方法及装置
CN107844267A (zh) * 2016-09-19 2018-03-27 芬基波尔有限责任公司 缓冲区分配和存储器管理
CN107168801A (zh) * 2017-05-12 2017-09-15 南京大学 基于多内核页表的内核动态数据隔离以及保护技术
CN108959124A (zh) * 2018-05-04 2018-12-07 广东睿江云计算股份有限公司 基于动态缓冲的虚拟机磁盘复制过程写入方法及装置
CN109002401A (zh) * 2018-05-04 2018-12-14 广东睿江云计算股份有限公司 基于动态缓冲的虚拟机磁盘复制过程读取方法及装置
CN108763508A (zh) * 2018-05-30 2018-11-06 中兴通讯股份有限公司 数据页访问方法、存储引擎以及计算机可读存储介质
CN109933441A (zh) * 2019-02-28 2019-06-25 上海交通大学 微内核进程间通讯方法和系统
CN110730364A (zh) * 2019-10-14 2020-01-24 广州微算互联信息技术有限公司 一种云手机数据传输方法、装置及存储介质
CN112269603A (zh) * 2020-10-16 2021-01-26 北京技德系统技术有限公司 一种在Linux上兼容运行Android应用的图形显示方法与装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
江帆等: ""SurfaceFlinger在X Window系统环境下的运行方案"", 《计算机系统应用》, pages 95 - 101 *
王柳峰: ""基于虚拟化的云计算平台内存资源协同共享技术研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 July 2012 (2012-07-15), pages 139 - 354 *

Also Published As

Publication number Publication date
CN113867820B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
US11803451B2 (en) Application exception recovery
WO2021218751A1 (zh) 一种基于云手机的媒体数据处理方法以及终端设备
CN108702480B (zh) 电子设备和用于驱动其显示器的方法
US9268678B2 (en) Memory defragmentation in a hosted hypervisor
EP3971818A1 (en) Picture processing method and apparatus
CN105183551A (zh) 基于Linux容器技术的多Android系统之间切换方法
US10235945B2 (en) Apparatus and method for controlling display in electronic device having processors
WO2015149664A1 (en) Web page access method and apparatus
US10347166B2 (en) Electronic device and operating method thereof
CN113900754B (zh) 共享桌面方法、装置、计算机设备和存储介质
US20220230272A1 (en) Full screen processing in multi-application environments
US20180181999A1 (en) Electronic device and method for displaying web page using the same
US20120265920A1 (en) Storage block deallocation in virtual environments
CN107423291B (zh) 一种数据翻译方法以及客户端设备
WO2017206893A1 (zh) 界面刷新同步方法、装置、终端及存储介质
US20230153246A1 (en) Memory management method and terminal device
US20230082375A1 (en) Permission Reuse Method, Permission Reuse-Based Resource Access Method, and Related Device
US20200013137A1 (en) Fixed-stride draw tables for tiled rendering
US8819568B1 (en) Electronic paper display updates
CN113867820A (zh) 一种动态修改framebuffer的方法、装置、设备及存储介质
US20210200255A1 (en) Higher graphics processing unit clocks for low power consuming operations
WO2023045572A1 (zh) 信息处理方法及其装置、云终端、云服务器、存储介质
US11893199B2 (en) Systems and methods for viewing incompatible web pages via remote browser instances
CN107678718A (zh) 不同分辨率显示屏的兼容处理方法、移动终端及存储介质
CN108235822B (zh) 虚拟sim卡的实现方法及装置、存储介质、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant