CN113867820B - 一种动态修改framebuffer的方法、装置、设备及存储介质 - Google Patents
一种动态修改framebuffer的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113867820B CN113867820B CN202111149983.1A CN202111149983A CN113867820B CN 113867820 B CN113867820 B CN 113867820B CN 202111149983 A CN202111149983 A CN 202111149983A CN 113867820 B CN113867820 B CN 113867820B
- Authority
- CN
- China
- Prior art keywords
- buffer
- frame buffer
- upper layer
- module
- 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.)
- Active
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring 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的方法、装置、设备及存储介质。
背景技术
云终端作为一种终端,对硬件成本比较敏感,内存作为一种必备的硬件,它的大小对终端的硬件成本有着直接的影响,在使用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 (4)
1.一种动态修改framebuffer的方法,其特征在于,所述方法包括下述步骤:
初始化上层framebuffer虚拟buffer的大小;
获取GEM的buffer handle;通过insmod命令在kernel中加载ModifyMem驱动模块;将所述buffer handle传递给所述ModifyMem驱动模块;
所述ModifyMem驱动模块通过所述buffer handle找到所述framebuffer进程的页表;
通过修改所述页表动态修改所述framebuffer的大小;
通知上层虚拟buffer管理服务;
根据修改后的所述framebuffer进行上层虚拟buffer管理;
所述上层虚拟buffer管理包括:刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
2.一种动态修改framebuffer的装置,其特征在于,所述装置包括:
初始化模块,用于初始化上层framebuffer虚拟buffer的大小;
获取模块,用于获取GEM的buffer handle;通过insmod命令在kernel中加载ModifyMem驱动模块;将所述buffer handle传递给所述ModifyMem驱动模块;
查找模块,用于所述ModifyMem驱动模块通过所述buffer handle找到所述framebuffer进程的页表;
修改模块,用于通过修改所述页表动态修改所述framebuffer的大小;
通知模块,用于通知上层虚拟buffer管理服务;
上层管理模块,用于根据修改后的framebuffer进行上层虚拟buffer管理;
所述上层虚拟buffer管理包括:刷新上层framebuffer虚拟buffer和对接上层访问逻辑。
3.一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1所述方法的步骤。
4.一种可读存储介质,计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1所述方法的步骤。
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 CN113867820A (zh) | 2021-12-31 |
CN113867820B true 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 (16)
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 | 广明光电股份有限公司 | 固态硬盘动态调整高速缓冲区的方法 |
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应用的图形显示方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160364397A1 (en) * | 2015-06-11 | 2016-12-15 | Qualcomm Incorporated | System and Methods for Locally Customizing Media Content for Rendering |
-
2021
- 2021-09-29 CN CN202111149983.1A patent/CN113867820B/zh active Active
Patent Citations (16)
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 | 广明光电股份有限公司 | 固态硬盘动态调整高速缓冲区的方法 |
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)
Title |
---|
"SurfaceFlinger在X Window系统环境下的运行方案";江帆等;《计算机系统应用》;第95-101页 * |
"基于虚拟化的云计算平台内存资源协同共享技术研究";王柳峰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20120715;I139-354 * |
Also Published As
Publication number | Publication date |
---|---|
CN113867820A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9274839B2 (en) | Techniques for dynamic physical memory partitioning | |
CN107305534B (zh) | 同时进行内核模式访问和用户模式访问的方法 | |
US8610732B2 (en) | System and method for video memory usage for general system application | |
US20100302141A1 (en) | Display and Interaction Environment for Mobile Devices | |
US9584831B2 (en) | Image frame transmission method, mobile terminal, and smart television | |
CN110865888A (zh) | 一种资源加载方法、装置、服务器及存储介质 | |
CN110023906A (zh) | 一种压缩和解压处理器所占内存的方法及装置 | |
US20240292009A1 (en) | Method and apparatus for processing video compression, and medium | |
WO2014175911A1 (en) | Management of access to a hybrid drive in power saving mode | |
CN107526616B (zh) | 一种主机对bmc进行数据写入和读取的方法及装置 | |
US20240256477A1 (en) | Method and apparatus for processing dma, and computer-readable storage medium | |
CN107408073B (zh) | 使用存储器压缩来减少存储器提交开销 | |
US20190107929A1 (en) | Method and device for loading content of page, and electronic device | |
US12027087B2 (en) | Smart compositor module | |
US20120284458A1 (en) | Selecting an auxiliary storage medium for writing data of real storage pages | |
CN113867820B (zh) | 一种动态修改framebuffer的方法、装置、设备及存储介质 | |
CN105824580A (zh) | 录像文件写方法和录制设备 | |
US20110185142A1 (en) | Information processing apparatus and data saving acceleration method of the information processing apparatus | |
CN105630556A (zh) | 一种加载资源的方法和系统 | |
CN102662614A (zh) | 一种嵌入式设备及其时间显示方法、系统 | |
US9342134B2 (en) | Power consumption reduction in a computing device | |
CN102999393B (zh) | 一种数据传输的方法、装置及电子设备 | |
US20200073759A1 (en) | Maximum data recovery of scalable persistent memory | |
CN113672293A (zh) | 一种基于云手机的媒体数据处理方法以及终端设备 | |
CN217543829U (zh) | 外接设备动态驱动系统 |
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 | ||
GR01 | Patent grant |