一种基于移动终端的缓存共享方法及***
技术领域
本发明涉及移动终端技术领域,尤其涉及一种基于移动终端的缓存共享方法及***。
背景技术
随着人们生活水平的不断提高,各种移动终端如手机的使用越来越普及,手机已经成为人们生活中不可缺少的通信工具。
一方面,移动终端中采用各种各样的SENSOR(传感器)来进行检测移动终端运动时加速度(通过加速度传感器检测)、角速度(通过陀螺仪检测)的检测,然后移动终端根据各种算法对数据进行处理从而识别出一个特定的动作;譬如,最为常用的计步器功能。
另一方面,移动终端中采用TP(Touch Panel,触摸屏)进行输入操作,为了使输入方法多样化,移动终端往往还包含各种特定触摸轨迹的输入检测;譬如,在触摸屏上画S形、V形的检测等。
上述提到的对于特定动作的检测、对于特定输入轨迹的检测只要开启均需要存储大量的检测数据进行计算,而这些检测数据的存储需要大量的内存,在现有技术中这两个功能被分别分配独享地内存,众所周知,内存资源很宝贵,如果被大量使用会使***运行变慢,影响用户使用移动终端。
因此,现有技术还有待于改进和发展。
发明内容
鉴于现有技术的不足,本发明目的在于提供一种基于移动终端的缓存共享方法及***,旨在解决现有技术中移动终端中不同的功能分别分配独享地内存,众所周知,内存资源很宝贵,如果被大量使用会使***运行变慢,影响用户使用移动终端的缺陷。
本发明的技术方案如下:
一种基于移动终端的缓存共享方法,其中,方法包括步骤:
A、预先在移动终端中建立一块连续的内存空间用于第一设备与第二设备所检测到的数据的临时存储;
B、当第一设备检测到第一数据时,将第一数据存储以内存空间的起始地址开始,由低地址向高地址连续存储;当第二设备检测到第二数据时,将第二数据存储以内存空间的结束地址开始,从高地址向低地址连续存储。
所述的基于移动终端的缓存共享方法,其中,所述步骤A具体包括步骤:
A1、预先在移动终端建立一块连续的内存空间,用数组dat[Y]表示,每个数组元素存储一个字节的数据,内存空间大小为Y字节,其中Y为自然数;
A2、设置第一变量用于存储第一设备检测到的数据的字节数,设置第二变量用于存储第二设备所检测到的数据的字节数。
所述的基于移动终端的缓存共享方法,其中,所述步骤A还包括步骤:
A11、第一变量及第二变量在初始化或复位时均置为零。
所述的基于移动终端的缓存共享方法,其中,所述步骤B中,当第一设备检测到第一数据时,将第一数据存储以内存空间的起始地址开始,由低地址向高地址连续存储具体包括步骤:
B11、当第一设备检测到第一数据时,获取本次要存储的第一数据的字节数记为Z1,内存空间中第一变量记为X1,第二变量记为X2,判断X1+X2+Z1是否大于或等于Y;
B12、如果X1+X2+Z1大于或等于Y,则提示用户存储空间不足数据无法存储;
B13、如果X1+X2+Z1小于Y,则将Z1字节数据依次存储在dat[X1]至dat[X1+Z1-1],存储结束后X1=X1+Z1。
所述的基于移动终端的缓存共享方法,其中,所述步骤B中第二设备检测到第二数据时,将第二数据存储以内存空间的结束地址开始,从高地址向低地址连续存储具体包括步骤:
B21、当第二设备检测到第二数据时,获取本次要存储的第二数据的字节数记为Z2,内存空间中第一变量记为X1,第二变量记为X2,判断X1+X2+Z2是否大于或等于Y;
B22、如果X1+X2+Z2大于或等于Y,则提示用户存储空间不足数据无法存储;
B23、如果X1+X2+Z2小于Y,则将Z2字节数据依次存储在dat[Y-X2-1]至dat[Y-X2-Z2],存储结束后X2=X2+Z2。
一种基于移动终端的缓存共享***,其中,***包括:
内存开辟模块,用于预先在移动终端中建立一块连续的内存空间用于第一设备与第二设备所检测到的数据的临时存储;
检测与存储模块,用于当第一设备检测到第一数据时,将第一数据存储以内存空间的起始地址开始,由低地址向高地址连续存储;当第二设备检测到第二数据时,将第二数据存储以内存空间的结束地址开始,从高地址向低地址连续存储。
所述的基于移动终端的缓存共享***,其中,所述内存开辟模块具体包括:
内存空间设置单元,用于预先在移动终端建立一块连续的内存空间,用数组dat[Y]表示,每个数组元素存储一个字节的数据,内存空间大小为Y字节,其中Y为自然数;
数据存储变量设置单元,用于设置第一变量用于存储第一设备检测到的数据的字节数,设置第二变量用于存储第二设备所检测到的数据的字节数。
所述的基于移动终端的缓存共享***,其中,所述内存开辟模块具体包括:
变量置零单元,用于第一变量及第二变量在初始化或复位时均置为零。
所述的基于移动终端的缓存共享***,其中,所述检测与存储模块具体包括:
第一检测与获取单元,用于当第一设备检测到第一数据时,获取本次要存储的第一数据的字节数记为Z1,内存空间中第一变量记为X1,第二变量记为X2,判断X1+X2+Z1是否大于或等于Y;
第一提示单元,用于如果X1+X2+Z1大于或等于Y,则提示用户存储空间不足数据无法存储;
第一控制单元,用于如果X1+X2+Z1小于Y,则控制将Z1字节数据依次存储在dat[X1]至dat[X1+Z1-1],存储结束后X1=X1+Z1。
所述的基于移动终端的缓存共享***,其中,所述检测与存储模块还包括:
第二检测与获取单元,用于当第二设备检测到第二数据时,获取本次要存储的第二数据的字节数记为Z2,内存空间中第一变量记为X1,第二变量记为X2,判断X1+X2+Z2是否大于或等于Y;
第二提示单元,用于如果X1+X2+Z2大于或等于Y,则提示用户存储空间不足数据无法存储;
第二控制单元,用于如果X1+X2+Z2小于Y,则控制将Z2字节数据依次存储在dat[Y-X2-1]至dat[Y-X2-Z2],存储结束后X2=X2+Z2。
本发明提供了一种基于移动终端的缓存共享方法及***,通过预先建立一块连续的内存空间用于第一设备与第二设备所检测到的数据的临时存储;第一设备的数据存储以所述内存空间的起始地址开始,由低地址向高地址连续存储;第二设备的数据存储以所述内存空间的结束地址开始,由高地址向低地址连续存储,从而提高移动终端内存利用效率,保证***稳定运行,提高移动终端的使用寿命。
附图说明
图1为本发明的一种基于移动终端的缓存共享方法的较佳实施例的流程图。
图2为本发明的一种基于移动终端的缓存共享***的较佳实施例的功能原理框图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明还提供了一种基于移动终端的缓存共享方法的较佳实施例的流程图,如图1所示,其中,方法包括:
步骤S100、预先在移动终端中建立一块连续的内存空间用于第一设备与第二设备所检测到的数据的临时存储;
步骤S200、当第一设备检测到第一数据时,将第一数据存储以内存空间的起始地址开始,由低地址向高地址连续存储;当第二设备检测到第二数据时,将第二数据存储以内存空间的结束地址开始,从高地址向低地址连续存储。
具体实施时,预先建立一块连续的内存空间用于第一设备与第二设备所检测到的数据的临时存储,即用于第一设备与第二设备的数据栈。移动终端包括不限于手机、平板电脑等智能终端。第一设备和和第二设备为移动终端中两个不同的硬件。优选地,第一设备为传感器SENSOR,第二设备为触摸屏TP;或者所述第二设备为传感器SENSOR,第一设备为触摸屏TP。空间大小可根据用户需要进行设置。
具体实施时,所述步骤S100具体包括:
步骤S101、预先在移动终端建立一块连续的内存空间,用数组dat[Y]表示,每个数组元素存储一个字节的数据,内存空间大小为Y字节,其中Y为自然数;
步骤S102、设置第一变量用于存储第一设备检测到的数据的字节数,设置第二变量用于存储第二设备所检测到的数据的字节数。
具体实施时,在建立一块连续的内存空间后,用数组dat[Y](该数组即为缓存模块)表示,每个数组元素存储一个字节地数据,因此该内存空间的大小为Y字节(按数组定义dat[0]、dat[1]、……、dat[Y-1]用于存储Y字节的数据);并且设置第一变量X1存储第一设备所存储数据的字节数,设置第二变量X2存储第二设备所存储数据的字节数。
具体实施时,所述步骤S100还包括:
步骤S111、第一变量及第二变量在初始化或复位时均置为零。
在初始化或复位时X1、X2均置零。在需要删除第一设备的数据时,只需将X1置零;在需要删除第二设备的数据时,只需将X2置零。
进一步的实施例中,步骤S200中当第一设备检测到第一数据时,将第一数据存储以内存空间的起始地址开始,由低地址向高地址连续存储具体包括步骤:
步骤S211、当第一设备检测到第一数据时,获取本次要存储的第一数据的字节数记为Z1,内存空间中第一变量记为X1,第二变量记为X2,判断X1+X2+Z1是否大于或等于Y;
步骤S212、如果X1+X2+Z1大于或等于Y,则提示用户存储空间不足数据无法存储;
步骤S213、如果X1+X2+Z1小于Y,则将Z1字节数据依次存储在dat[X1]至dat[X1+Z1-1],存储结束后X1=X1+Z1。
具体实施时,获取本次需要存储的数据的字节数Z1,由缓存满判断模块来判断X1+X2+Z1是否大于或等于Y,如果是则说明存储空间不足该数据无法存储;否则将Z1字节数据依次存储在dat[X1]至dat[X1+Z1-1],存储结束后X1=X1+Z1。
进一步的实施例中,步骤S200中第二设备检测到第二数据时,将第二数据存储以内存空间的结束地址开始,从高地址向低地址连续存储具体包括步骤:
步骤S221、当第二设备检测到第二数据时,获取本次要存储的第二数据的字节数记为Z2,内存空间中第一变量记为X1,第二变量记为X2,判断X1+X2+Z2是否大于或等于Y;
步骤S222、如果X1+X2+Z2大于或等于Y,则提示用户存储空间不足数据无法存储;
步骤S223、如果X1+X2+Z2小于Y,则将Z2字节数据依次存储在dat[Y-X2-1]至dat[Y-X2-Z2],存储结束后X2=X2+Z2。
具体实施时,获取本次需要存储的数据的字节数Z2,由缓存满判断模块来判断X1+X2+Z2是否大于或等于Y3,如果是则说明存储空间不足该数据无法存储;否则将Z2字节数据依次存储在dat[Y-X2-1]至dat[Y-X2-Z2],存储结束后X2=X2+Z2。
在需要读取先前第一设备的数据时,执行以下步骤:譬如要读取Z1字节数据,则读取dat[X1-1]至dat[X1-Z1],存储结束后X1=X1-Z1。在需要读取先前第二设备的数据时,执行以下步骤:譬如要读取Z2字节数据,则读取dat[Y-X2]至dat[Y-X2+Z2-1],存储结束后X2=X2-Z2。这里需要说明的内存空间实际为栈,因为栈中的数据读取后即删除,所以以上有存储结束后X1=X1-Z1,存储结束后X2=X2-Z2的操作。
由以上方法实施例可知,本发明提供了一种基于移动终端的缓存共享方法,所述方法通过预先建立一块连续的内存空间用于第一设备与第二设备所检测到的数据的临时存储;第一设备的数据存储以所述内存空间的起始地址开始,由低地址向高地址连续存储;第二设备的数据存储以所述内存空间的结束地址开始,由高地址向低地址连续存储。从而提高移动终端内存利用效率,达到保证***稳定运行。
在示例性实施例中,装置可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供了一种基于移动终端的缓存共享***的较佳实施例的功能原理框图,如图2所示,其中,***包括:
内存开辟模块100,用于预先在移动终端中建立一块连续的内存空间用于第一设备与第二设备所检测到的数据的临时存储;具体如上方法实施例所述。
检测与存储模块200,用于当第一设备检测到第一数据时,将第一数据存储以内存空间的起始地址开始,由低地址向高地址连续存储;当第二设备检测到第二数据时,将第二数据存储以内存空间的结束地址开始,从高地址向低地址连续存储;具体如上方法实施例所述。
所述的基于移动终端的缓存共享***,其中,所述内存开辟模块具体包括:
内存空间设置单元,用于预先在移动终端建立一块连续的内存空间,用数组dat[Y]表示,每个数组元素存储一个字节的数据,内存空间大小为Y字节,其中Y为自然数;具体如上方法实施例所述。
数据存储变量设置单元,用于设置第一变量用于存储第一设备检测到的数据的字节数,设置第二变量用于存储第二设备所检测到的数据的字节数;具体如上方法实施例所述。
所述的基于移动终端的缓存共享***,其中,所述内存开辟模块具体包括:
变量置零单元,用于第一变量及第二变量在初始化或复位时均置为零;具体如上方法实施例所述。
所述的基于移动终端的缓存共享***,其中,所述检测与存储模块具体包括:
第一检测与获取单元,用于当第一设备检测到第一数据时,获取本次要存储的第一数据的字节数记为Z1,内存空间中第一变量记为X1,第二变量记为X2,判断X1+X2+Z1是否大于或等于Y;具体如上方法实施例所述。
第一提示单元,用于如果X1+X2+Z1大于或等于Y,则提示用户存储空间不足数据无法存储;具体如上方法实施例所述。
第一控制单元,用于如果X1+X2+Z1小于Y,则控制将Z1字节数据依次存储在dat[X1]至dat[X1+Z1-1],存储结束后X1=X1+Z1;具体如上方法实施例所述。
所述的基于移动终端的缓存共享***,其中,所述检测与存储模块还包括:
第二检测与获取单元,用于当第二设备检测到第二数据时,获取本次要存储的第二数据的字节数记为Z2,内存空间中第一变量记为X1,第二变量记为X2,判断X1+X2+Z2是否大于或等于Y;具体如上方法实施例所述。
第二提示单元,用于如果X1+X2+Z2大于或等于Y,则提示用户存储空间不足数据无法存储;具体如上方法实施例所述。
第二控制单元,用于如果X1+X2+Z2小于Y,则控制将Z2字节数据依次存储在dat[Y-X2-1]至dat[Y-X2-Z2],存储结束后X2=X2+Z2;具体如上方法实施例所述。
综上所述,本发明提供了一种基于移动终端的缓存共享方法及***,方法包括:预先在移动终端中建立一块连续的内存空间用于第一设备与第二设备所检测到的数据的临时存储;当第一设备检测到第一数据时,将第一数据存储以内存空间的起始地址开始,由低地址向高地址连续存储;当第二设备检测到第二数据时,将第二数据存储以内存空间的结束地址开始,从高地址向低地址连续存储。本发明可提高移动终端内存利用效率,保证***稳定运行,提高移动终端的使用寿命。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。