CN102004699A - 一种基于mtk平台的内存共享方法 - Google Patents
一种基于mtk平台的内存共享方法 Download PDFInfo
- Publication number
- CN102004699A CN102004699A CN2010105592591A CN201010559259A CN102004699A CN 102004699 A CN102004699 A CN 102004699A CN 2010105592591 A CN2010105592591 A CN 2010105592591A CN 201010559259 A CN201010559259 A CN 201010559259A CN 102004699 A CN102004699 A CN 102004699A
- Authority
- CN
- China
- Prior art keywords
- memory
- module
- shared
- internal
- sharing method
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 169
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000006870 function Effects 0.000 claims description 9
- 238000011084 recovery Methods 0.000 claims description 2
- 230000005059 dormancy Effects 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 5
- 230000007717 exclusion Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Abstract
本发明公开了一种基于MTK平台的内存共享方法,其特征在于,包括以下步骤:A:选择所要运行的功能模块;B:检测判断外部存储卡是否有效,是则执行步骤C,否则执行步骤G;C:选择内存中提供内存共享的模块;D:将选定的所有的提供内存共享的模块中的数据保存为一个数据包存放在外部存储卡中的指定目录下;F:将所运行的功能模块中需要使用较大内存的操作指向提供内存共享的模块所在的内存区域;G:执行所选择的功能模块。采用本发明不仅提高系统的处理速度,系统内存的利用率,而且解决现有的移动通信终端经常出现的内存不够用的问题。
Description
技术领域
本发明涉及一种内存共享技术,尤其涉及的是一种基于MTK平台的内存共享方法。
背景技术
现在移动通信终端上的很多媒体功能在运行需要独占系统很大的内存,而现有的移动通信终端的内存空间是很有限的,当系统内存的占用率过高时,系统的运行速度就会变慢甚至导致系统死机。而在系统的内存中所有的数据并不是所有的时候都是在运行的,这部分数据时常占据了内存中的大部分空间,因此如何在运行占内存较大的程序时能够将内存中闲置的空间利用起来,解决内存空间利用紧张的问题。
因此,现有技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种基于MTK平台的内存共享方法,旨在解决现有的移动通信终端中内存共享的问题。
本发明的技术方案如下:
一种基于MTK平台的内存共享方法,其中,包括以下步骤:
A:选择所要运行的功能模块;
B:检测判断外部存储卡是否有效,是则执行步骤C,否则执行步骤G;
C:选择内存中提供内存共享的模块;
D:将选定的所有的提供内存共享的模块中的数据保存为一个数据包存放在外部存储卡中的指定目录下;
F:将所运行的功能模块中需要使用较大内存的操作指向提供内存共享的模块所在的内存区域;
G:执行所选择的功能模块。
所述的基于MTK平台的内存共享方法,其中,还包括步骤:
H:功能模块停止运行后,判断是否需要恢复提供内存共享的模块中的内存数据,是在执行步骤I,否则执行步骤J;
I:将存储于外部存储卡的数据包中的内存数据恢复回原始的内存模块中;
J:退出功能模块。
所述的基于MTK平台的内存共享方法,其中,还包括步骤:
E:修改内存中提供内存共享的模块的内存空间位置,将所有离散的提供内存共享的模块的内存空间修改为一个连续的内存区域。
所述的基于MTK平台的内存共享方法,其中,所述提供内存共享的模块在提供内存共享服务时内存数据处于挂起状态。
所述的基于MTK平台的内存共享方法,其中,所述提供内存共享的模块的总内存空间要大于功能模块所需的内存空间。
本发明的有益效果:本发明通过在运行程序时,将暂时处于“休眠”状态的内存共享、重复利用,不仅提高系统的处理速度,而且解决现有的移动通信终端经常出现的内存不够用的问题。
附图说明
图1是本发明实施例提供的将提供内存共享模块修改为实现内存共享模块的示意图。
图2是本发明实施例提供的内存共享方法流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。
在运行对内存要求较高的功能模块时,需要通过共享内存。在共享内存前,将提供内存共享的模块中的内容,以文件的方式保存到外部存储器中,在退出提供内存共享的模块前,将保存在外部存储器中的内存数据文件,恢复到相应的提供内存共享的模块中。
当运行的功能模块对内存的需求很高时,会需要内存中的多个处于挂起状态的内存模块作为提供内存共享的模块,这些能够提供内存共享的模块在内存中的位置不一定是连续的,所以需要通过内存空间的修改,将所有离散的提供内存共享的模块修改为在内存中连续的区域。参见图1,例如,某一功能模块在运行过程中需要内存中的三个处于挂起状态的内存模块(分配给A模块的内存模块、分配给B模块的内存模块和分配给C模块的内存模块)同时提供内存共享服务,然而这三个内存模块在内存空间中是离散的,如果要为运行的功能模块提供内存共享服务则需要将这三个离散的内存模块修改为连续的内存模块,形成一个连续的内存空间。
参见图2,本发明实施例提供的内存共享方法包括以下步骤:
A:选择所要运行的功能模块;
B:检测判断外部存储卡是否有效,是则执行步骤C,否则执行步骤G;
C:选择内存中提供内存共享的模块;
D:将选定的所有的提供内存共享的模块中的数据保存为一个数据包存放在外部存储卡中的指定目录下;
E:修改内存中提供内存共享的模块的内存空间位置,将所有离散的提供内存共享的模块的内存空间修改为一个连续的内存区域;
F:将所运行的功能模块中需要使用较大内存的操作指向提供内存共享的模块所在的内存区域;
G:执行所选择的功能模块;
H:功能模块停止运行后,判断是否需要恢复提供内存共享模块中的数据,是在执行步骤I,否则执行步骤J;
I:将存储于外部存储卡的数据包中的内存数据恢复回原始的内存模块中;
J:退出功能模块。
下面是一种实现本发明目的的具体实施方法,但本发明的内容不仅限于此种办法,使用其它实施方法实现本发明目的的也将落入本发明范围之内。
作为实现本发明目的的一种具体实施方式,分成三个步骤:
首先选择需要共享内存的功能模块,例如:开启照相功能,或某个游戏等。
提供内存共享的模块:把模块自身的内存“贡献”出来,用作内存共享区域的模块。实现内存共享的模块:动态使用提供内存共享的模块 “贡献”出来的内存的功能模块。如内存中的WAP模块、JAVA模块可以做为提供内存共享的模块;照相模块则做为实现内存共享模块。通过本发明提供的方法,在执行照相功能时,需要很大的内存就可以使用WAP模块及JAVA模块的内存空间了。
用于提供内存共享的模块和实现内存共享的模块在运行时间上是互斥的。所述时间上的互斥是指:在运行照相模块时(实现内存共享模块),WAP模块及JAVA模块(提供内存共享的模块)一定要先处于挂起状态即内存数据是处于“休眠”状态。
由于提供内存共享的模块的内存一般都比较大,通常都是大数组组成(如:JAVA运行内存、堆栈都是一个上百Kbytes的数组组成的),这样实现起来相对简单、高效。另外,实现内存共享模块在运行时,需要外部存储器的支持(比如T卡),否则将不能实现共享。
第二步是修改共享内存的物理位置(见上图1):
该步骤设置在进入实现内存共享模块后即运行功能模块后,进行内存共享操作前,要先保存提供共享内存区域的内容,并将数据写在外部存储器上,退出提供内存共享的模块前需要将外部存储器上的共享内存数据恢复回来。
在实现内存共享的模块中,将需要用到较大内存分配的地方可以指向所述的共享内存区域,但要保证需要的内存不能超过共享内存的大小;由于在运行实现内存共享的模块时需要申请的内存比较大,直接从系统的动态内存池空间申请,是分配不到那么多的内存,所以,需要将这个大内存位置指向提供内存共享模块所在的内存区域。
第三步则是内存共享的实现,将照相功能运行的过程中需要用到较大内存的操作,指定到修改后的提供内存共享的模块中。当照相功能结束后,再将存储在外部存储卡中的共享内存数据恢复到提供内存共享的模块中。最终完成内存共享操作。
本发明提供的内存共享方法具有以下特点: 1:由于实现内存共享的模块跟提供内存共享的模块在运行时间上是互斥,所以,在执行实现内存共享的模块时,在提供内存共享的模块的内存数据是处于“休眠”状态,数据不会变化的。2:当实现内存共享的模块在运行时,需要申请的较大的动态内存空间,而系统的动态分配内存池中又没有这么多内存可以提供。此时,就可以用提供共享内存模块的“休眠”内存。3:实现内存共享模块在使用提供共享内存模块的内存时,需要满足两个条件: A:退出实现共享内存模块时,不能破坏提供共享内存的“休眠“内存,所以,必须执行1)中的操作。B:实现共享内存的模块在运行时,其所需的存空间不能超过提供共享内存的模块的总内存空间。如果超过了,就会破坏其它系统、模块的内存空间,造成系统崩溃。
采用本发明提供的内存共享方法的好处不仅提高系统的处理速度,系统内存的利用率,而且解决现有的移动通信终端经常出现的内存不够用的问题。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (5)
1.一种基于MTK平台的内存共享方法,其特征在于,包括以下步骤:
A:选择所要运行的功能模块;
B:检测判断外部存储卡是否有效,是则执行步骤C,否则执行步骤G;
C:选择内存中提供内存共享的模块;
D:将选定的所有的提供内存共享的模块中的数据保存为一个数据包存放在外部存储卡中的指定目录下;
F:将所运行的功能模块中需要使用较大内存的操作指向提供内存共享的模块所在的内存区域;
G:执行所选择的功能模块。
2.根据权利要求1所述的基于MTK平台的内存共享方法,其特征在于,还包括步骤:
H:功能模块停止运行后,判断是否需要恢复提供内存共享的模块中的内存数据,是在执行步骤I,否则执行步骤J;
I:将存储于外部存储卡的数据包中的内存数据恢复回原始的内存模块中;
J:退出功能模块。
3.根据权利要求1所述的基于MTK平台的内存共享方法,其特征在于,还包括步骤:
E:修改内存中提供内存共享的模块的内存空间位置,将所有离散的提供内存共享的模块的内存空间修改为一个连续的内存区域。
4.根据权利要求1所述的基于MTK平台的内存共享方法,其特征在于,所述提供内存共享的模块在提供内存共享服务时内存数据处于挂起状态。
5.根据权利要求1所述的基于MTK平台的内存共享方法,其特征在于,所述提供内存共享的模块的总内存空间要大于功能模块所需的内存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105592591A CN102004699A (zh) | 2010-11-25 | 2010-11-25 | 一种基于mtk平台的内存共享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105592591A CN102004699A (zh) | 2010-11-25 | 2010-11-25 | 一种基于mtk平台的内存共享方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102004699A true CN102004699A (zh) | 2011-04-06 |
Family
ID=43812075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105592591A Pending CN102004699A (zh) | 2010-11-25 | 2010-11-25 | 一种基于mtk平台的内存共享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102004699A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407981A (zh) * | 2014-10-28 | 2015-03-11 | 小米科技有限责任公司 | 内存管理方法和装置 |
CN104503740A (zh) * | 2014-12-01 | 2015-04-08 | 小米科技有限责任公司 | 内存管理方法和装置 |
-
2010
- 2010-11-25 CN CN2010105592591A patent/CN102004699A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407981A (zh) * | 2014-10-28 | 2015-03-11 | 小米科技有限责任公司 | 内存管理方法和装置 |
CN104503740A (zh) * | 2014-12-01 | 2015-04-08 | 小米科技有限责任公司 | 内存管理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885666B (zh) | 一种内存管理方法和装置 | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
CN101799773B (zh) | 并行计算的内存访问方法 | |
CN103530118A (zh) | 将自定义dll注入目标进程的方法及装置 | |
CN102541605A (zh) | 基于Android系统的图片加载方法和装置 | |
CN101859279A (zh) | 一种内存分配、释放方法及装置 | |
CN102831088A (zh) | 基于混合存储器的数据迁移方法和装置 | |
CN105452986A (zh) | 用于具有选择性功率或性能优化的内存通道交织的系统和方法 | |
CN101178701B (zh) | 一种多处理器间通信的方法及系统 | |
CN102662747A (zh) | 一种线程访问临界区的方法、系统和终端设备 | |
CN102047218A (zh) | 进程中的调度器实例 | |
CN107209716A (zh) | 内存管理装置和方法 | |
CN101286878A (zh) | 一种终端的内存池的管理方法 | |
CN104317739A (zh) | 一种混合内存页面调度方法及装置 | |
CN107436798A (zh) | 一种基于numa节点的进程访问方法及装置 | |
CN103218305A (zh) | 存储空间的分配方法 | |
CN106055274A (zh) | 一种数据存储方法、数据读取方法及电子设备 | |
CN103488504A (zh) | 一种数据加载方法及装置 | |
CN103116475B (zh) | 一种自动精简配置扩容的方法 | |
CN103377079A (zh) | 终端及其应用运行装置和方法,运行应用程序的方法 | |
CN102855214A (zh) | 实现数据一致性的方法和一种多核系统 | |
CN101504632A (zh) | 一种dma数据传输方法、系统及一种dma控制器 | |
CN102004699A (zh) | 一种基于mtk平台的内存共享方法 | |
US20120102012A1 (en) | Cross-region access method for embedded file system | |
CN103197962A (zh) | 多进程状态切换方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110406 |