多进程内存处理方法及装置、计算机装置及可读存储介质与流程

文档序号:14797075发布日期:2018-06-29 20:01阅读:150来源:国知局

本发明涉及内存管理技术领域,尤其涉及一种多进程内存处理方法及装置、计算机装置及可读存储介质。



背景技术:

本部分旨在为权利要求书及具体实施方式中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

在终端设备中,出于成本的考虑,系统内存非常有限,当系统在较大的负载下运行的时候,容易出现系统内存不足的情况。一般情况下,在系统内存不足时,系统会将一部分内存回收掉或者压缩并搬运到zram区域(下文统称为内存处理),从而腾出更多的物理内存。然而,这部分被处理的内存是非连续的、零乱的,且不按照进程的归属分类,即被处理的这部分内存有可能属于单个进程,也有可能属于多个进程,系统会根据内存分配的先后顺序进行处理。这种做法的不足之处在于,有时候会造成操作系统应用的进程被回收掉,导致终端设备无法正常的运行的缺陷,例如,被处理的内存有可能正好是前台进程的内存,这样就会出现正在使用的前台进程被强行关闭,用户需要重新加载这块内存的内容,导致用户的使用体验大打折扣。



技术实现要素:

鉴于此,有必要提供一种多进程内存处理方法及装置、计算机装置及计算机可读存储介质,以优先处理不活跃的进程内存,以确保终端的正常运行,并提高用户使用体验。

本发明实施例一方面提供一种多进程内存处理方法,应用于终端中。所述多进程内存处理方法包括:

确定所述终端的各个进程的活跃度;

依据所述活跃度将各个进程按顺序压入进程栈中,其中,活跃度最低的进程位于栈底,活跃度最高的进程位于栈顶;

在接收到内存处理请求时,从所述进程栈的栈底开始对所述进程栈中的部分或全部进程进行内存处理,直到释放预定的内存释放量。

进一步的,本发明实施例提供的上述多进程内存处理方法中,所述从所述进程栈的栈底开始对所述进程栈中的部分或全部进程进行内存处理包括:

从所述栈底往所述栈顶的方向按顺序对所述进程栈中的部分或全部进程逐个进行内存处理。

进一步的,本发明实施例提供的上述多进程内存处理方法中,所述多进程内存处理方法还包括:

学习多次释放不同的内存量对所述终端系统的影响,最终确定出最优的内存量作为所述预定的内存释放量。

进一步的,本发明实施例提供的上述多进程内存处理方法中,所述学习多次释放不同的内存量对所述终端系统的影响,最终确定出最优的内存量作为所述预定的内存释放量具体包括:

在多次释放不同的内存量后,分别监测一预设时间阈值内系统的掉帧率,其中,所述掉帧率是指在所述预设时间阈值内系统需要显示的图像帧数与系统实际显示的图像帧数之差占所述系统需要显示的图像帧数的比值;

确定各个掉帧率对应的系统显示性能参数;

从多个所述掉帧率中确定出数值较小的掉帧率,且所述数值较小的掉帧率对应的系统显示性能参数在预设的合理参数范围内;

将所述数值较小的掉帧率对应的内存量作为所述预定的内存释放量。

进一步的,本发明实施例提供的上述多进程内存处理方法中,所述确定所述终端的各个进程的活跃度包括:

实时监控所述终端的各个进程的使用状态;以及

依据各个进程的使用状态确定各个进程的活跃度。

进一步的,本发明实施例提供的上述多进程内存处理方法中,所述多进程内存处理方法还包括:

依据各个进程的使用状态更新各个进程的活跃度;以及

依据更新后的活跃度更新各个进程在所述进程栈中的位置。

本发明实施例另一方面还提供一种多进程内存处理装置,应用于终端中。所述多进程内存处理装置包括:

分析模块,用于确定所述终端的各个进程的活跃度;

排序模块,用于依据所述活跃度将各个进程按顺序压入进程栈中,其中,活跃度最低的进程位于栈底,活跃度最高的进程位于栈顶;

内存处理模块,用于在接收到内存处理请求时,从所述进程栈的栈底开始对所述进程栈中的部分或全部进程进行内存处理,直到释放预定的内存释放量。

进一步的,在本发明实施例提供的上述多进程内存处理装置中,所述内存处理模块在从所述进程栈的栈底开始对所述进程栈中的部分或全部进程进行内存处理时,具体用于:

从所述栈底往所述栈顶的方向按顺序对所述进程栈中的部分或全部进程逐个进行内存处理。

进一步的,在本发明实施例提供的上述多进程内存处理装置中,所述多进程内存处理装置还包括学习模块,所述学习模块用于学习多次释放不同的内存量对所述终端系统的影响,最终确定出最优的内存量作为所述预定的内存释放量。

进一步的,在本发明实施例提供的上述多进程内存处理装置中,所述学习模块具体用于:

在多次释放不同的内存量后,分别监测一预设时间阈值内系统的掉帧率,其中,所述掉帧率是指在所述预设时间阈值内系统需要显示的帧数与系统实际显示的图像帧数之差占所述系统需要显示的图像帧数的比值;

确定各个掉帧率对应的系统显示性能参数;

从多个所述掉帧率中确定出数值较小的掉帧率,且所述数值较小的掉帧率对应的系统显示性能参数在预设的合理参数范围内;

将所述数值较小的掉帧率对应的内存量作为所述预定的内存释放量。

进一步的,在本发明实施例提供的上述多进程内存处理装置中,所述多进程内存处理装置还包括监测模块,所述监测模块用于实时监控所述终端的各个进程的使用状态;以及

所述分析模块具体用于依据各个进程的使用状态确定各个进程的活跃度。

本发明实施例再一方面还提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述任一所述多进程内存处理方法的步骤。

本发明实施例又一方面还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述多进程内存处理方法的步骤。

本发明提供的多进程内存处理方法引入多进程内存处理机制,根据进程的活跃度对进程进行内存处理,从而能够优先处理不活跃的进程内存,使得操作系统应用的进程不会被自动回收掉,也保证前台进程的内存一直存在物理内存中不被处理,以确保终端的正常运行,并提高用户使用体验。

附图说明

为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施方式提供的多进程内存处理方法的流程图。

图2是本发明一实施方式提供的进程栈的示意图。

图3是本发明一实施方式提供的多进程内存处理装置的结构示意图。

图4是本发明一实施方式提供的终端的结构示意图。

主要元件符号说明

终端 1

多进程内存处理装置 10

分析模块 11

排序模块 12

内存处理模块 13

监测模块 14

学习模块 15

处理器 20

存储器 30

计算机程序 40

进程栈 51

进程 521、522、523

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施方式及实施方式中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。

图1是本发明一实施方式提供的多进程内存处理方法的流程图,所述多进程内存处理方法应用于终端。所述终端可以是例如智能手机、笔记本电脑、台式/平板电脑等具有运行应用程序功能的计算机设备。应说明的是,本发明实施方式的所述多进程内存处理方法并不限于图1所示的流程图中的步骤及顺序。根据不同的需求,所示流程图中的步骤可以增加、移除、或者改变顺序。

如图1所示,所述多进程内存处理方法可以包括以下步骤:

步骤101,确定所述终端的各个进程的活跃度。

可以理解,进程的活跃度与其使用状态相关,相比之下,长时间没有被使用过的进程或正处于休眠状态的后台进程的活跃度较低,最近被使用过的进程或正在被使用的前台进程的活跃度较高。

在本实施方式中,所述步骤101具体包括:

实时监控所述终端的各个进程的使用状态,例如被用户操作使用的信息;以及

依据各个进程的使用状态确定各个进程的活跃度。

步骤102,依据所述活跃度将各个进程按顺序压入进程栈中,其中,活跃度最低的进程位于栈底,活跃度最高的进程位于栈顶。

例如图2所示,在进程栈51中,位于栈底的进程521代表的是最不活跃的进程,而位于栈顶的进程522代表的是最活跃的进程,例如前台应用,位于栈底与栈顶之间的进程523代表的是上一次被使用过的应用。

具体地,在本实施方式中,可将所述进程栈中的每个进程都设定一个活跃度数值,处于栈底的进程的活跃度数值为0,往上一个加1,以此类推,处于栈顶的进程的活跃度数值是最大的。也就是说,数值越大,越活跃。

例如,当系统开机后,用户打开第一个应用App1时,这个应用APP1会被压入栈中,这时栈中只有一个应用APP,即应用APP1,这时应用App1的活跃度数值是0,也是当前栈中数值最大的,即应用App1是最活跃的。当用户回到桌面打开第二个应用APP2时,这个应用APP2就会被压入栈中并处于应用App1之上,这时应用APP2的活跃度数值等于应用App1的活跃度数值加1,即0+1=1,这时应用App2成为最活跃的应用。当用户再次回到桌面打开第三个应用APP3时,应用APP3的活跃度数值就是2,应用APP3成为最活跃的应用,而应用App1成为最不活跃的应用,应用App2的活跃度就处于应用App1的活跃度与应用App3的活跃度之间。

可以理解,在本实施方式中,所述多进程内存处理方法还可包括:

依据各个进程的使用状态更新各个进程的活跃度;以及

依据更新后的活跃度更新各个进程在所述进程栈中的位置。

步骤103,在接收到内存处理请求时,从所述进程栈的栈底开始对所述进程栈中的部分或全部进程进行内存处理,直到释放预定的内存释放量。

在本发明中,所述内存处理包括但不限于:通过杀进程的方式回收内存、通过cgroup(control groups)方式监控内存、通过冻结进程的方式停止回收的使用、通过kswapd的方式回收内存、通过压缩到zram的方式处理内存、通过KSM(Kernel Shared Memory或Kernel Samepage Merging,即共享内存或相同页内存合并技术)的方式合并内存。其中,cgroup是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等)的机制,kswapd是linux中用于页面回收的内核线程。

在本实施方式中,所述从所述进程栈的栈底开始对所述进程栈中的部分或全部进程进行内存处理包括:

从所述栈底往所述栈顶的方向按顺序对所述进程栈中的部分或全部进程逐个进行内存处理。

在本实施方式中,所述多进程内存处理方法还包括:学习多次释放不同的内存量对所述终端系统的影响,最终确定出最优的内存量作为所述预定的内存释放量。

具体地,所述多进程内存处理方法包括:

在多次释放不同的内存量后,分别监测一预设时间阈值内系统的掉帧率,其中,所述掉帧率是指在所述预设时间阈值内系统需要显示的图像帧数与系统实际显示的图像帧数之差占所述系统需要显示的图像帧数的比值;

确定各个掉帧率对应的系统显示性能参数;

从多个所述掉帧率中确定出数值较小的掉帧率,且所述数值较小的掉帧率对应的系统显示性能参数在预设的合理参数范围内;

将所述数值较小的掉帧率对应的内存量作为所述预定的内存释放量。

可以理解,释放的内存量越多,系统显示会越流畅。然而,释放的内存量与掉帧率之间呈正比的关系,即释放的内存量越多,掉帧率越大,从而影响用户的视觉效果,因此,需要确定出一个合理的内存释放量作为所述预定的内存释放量。

可以理解,所述合理的内存释放量的确定过程是一个动态调整的过程。例如,可先设定一个释放的初始内存量,例如100M,并监测其对应的掉帧率,若在后续的第二次释放300M的内存量,对应的掉帧率为20%,第三次释放200M的内存量,对应的掉帧率为5%,那么在第四次时可再降低释放的内存量,直到对应的掉帧率降到合理的范围(例如2%~4%)。当掉帧率降到合理的范围时,可根据对应的系统显示性能参数再动态微调释放的内存量,直到掉帧率较小,且其对应的系统显示性能参数在预设的合理参数范围内,最后将动态调整获得的较小的掉帧率对应的内存量作为所述预定的内存释放量。

本发明提供的多进程内存处理方法引入多进程内存处理机制,根据进程的活跃度对进程进行内存处理,从而能够优先处理不活跃的进程内存,使得操作系统应用的进程不会被自动回收掉,也保证前台进程的内存一直存在物理内存中不被处理,以确保终端的正常运行,并提高用户使用体验。

图3是本发明一实施方式提供的多进程内存处理装置的结构示意图,所述多进程内存处理装置应用于终端。所述多进程内存处理装置可以包括一个或多个模块,所述一个或多个模块被存储在终端的存储器中并被配置成由一个或多个处理器(本实施方式为一个处理器)执行,以完成本发明。例如,参阅图3所示,多进程内存处理装置10可以包括分析模块11、排序模块12、内存处理模块13、监测模块14以及学习模块15。本发明实施例所称的模块可以是完成一特定功能的程序段,比程序更适合于描述软件在处理器中的执行过程。

可以理解的是,对应于上述多进程内存处理方法中的各实施方式,所述多进程内存处理装置10可以包括图3中所示的各功能模块中的一部分或全部,各模块11~15的功能将在以下具体介绍。需要说明的是,以上多进程内存处理方法的各实施方式中相同的名词相关名词及其具体的解释说明也可以适用于以下对各模块11~15的功能介绍。为节省篇幅及避免重复起见,在此就不再赘述。

所述分析模块11用于确定所述终端的各个进程的活跃度。

可以理解,进程的活跃度与其使用状态相关,相比之下,长时间没有被使用过的进程或正处于休眠状态的后台进程的活跃度较低,最近被使用过的进程或正在被使用的前台进程的活跃度较高。

在本实施方式中,所述监测模块14用于实时监控所述终端的各个进程的使用状态,例如被用户操作使用的信息。

所述分析模块11具体用于依据各个进程的使用状态确定各个进程的活跃度。

所述排序模块12用于依据所述活跃度将各个进程按顺序压入进程栈中,其中,活跃度最低的进程位于栈底,活跃度最高的进程位于栈顶。

例如图2所示,在进程栈51中,位于栈底的进程521代表的是最不活跃的进程,而位于栈顶的进程522代表的是最活跃的进程,例如前台应用,位于栈底与栈顶之间的进程523代表的是上一次被使用过的应用。

具体地,在本实施方式中,所述排序模块12可将所述进程栈中的每个进程都设定一个活跃度数值,处于栈底的进程的活跃度数值为0,往上一个加1,以此类推,处于栈顶的进程的活跃度数值是最大的。也就是说,数值越大,越活跃。

例如,当系统开机后,用户打开第一个应用App1时,这个应用APP1会被压入栈中,这时栈中只有一个应用APP,即应用APP1,这时应用App1的活跃度数值是0,也是当前栈中数值最大的,即应用App1是最活跃的。当用户回到桌面打开第二个应用APP2时,这个应用APP2就会被压入栈中并处于应用App1之上,这时应用APP2的活跃度数值等于应用App1的活跃度数值加1,即0+1=1,这时应用App2成为最活跃的应用。当用户再次回到桌面打开第三个应用APP3时,应用APP3的活跃度数值就是2,应用APP3成为最活跃的应用,而应用App1成为最不活跃的应用,应用App2的活跃度就处于应用App1的活跃度与应用App3的活跃度之间。

可以理解,在本实施方式中,所述分析模块11还可用于依据各个进程的使用状态更新各个进程的活跃度。

所述排序模块12还可用于依据更新后的活跃度更新各个进程在所述进程栈中的位置。

所述内存处理模块13用于在接收到内存处理请求时,从所述进程栈的栈底开始对所述进程栈中的部分或全部进程进行内存处理,直到释放预定的内存释放量。

在本发明中,所述内存处理包括但不限于:通过杀进程的方式回收内存、通过cgroup(control groups)方式监控内存、通过冻结进程的方式停止回收的使用、通过kswapd的方式回收内存、通过压缩到zram的方式处理内存、通过KSM(Kernel Shared Memory或Kernel Samepage Merging,即共享内存或相同页内存合并技术)的方式合并内存。其中,cgroup是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等)的机制,kswapd是linux中用于页面回收的内核线程。

在本实施方式中,所述内存处理模块在从所述进程栈的栈底开始对所述进程栈中的部分或全部进程进行内存处理时,具体用于从所述栈底往所述栈顶的方向按顺序对所述进程栈中的部分或全部进程逐个进行内存处理。

在本实施方式中,所述学习模块15用于学习多次内存处理操作释放的不同内存量对所述终端系统的影响,最终确定出最优的内存量作为所述预定的内存释放量。

在本实施方式中,所述学习模块15具体用于:

在多次释放不同的内存量后,分别监测一预设时间阈值内系统的掉帧率,其中,所述掉帧率是指在所述预设时间阈值内系统需要显示的图像帧数与系统实际显示的图像帧数之差占所述系统需要显示的图像帧数的比值;

确定各个掉帧率对应的系统显示性能参数;

从多个所述掉帧率中确定出数值较小的掉帧率,且所述数值较小的掉帧率对应的系统显示性能参数在预设的合理参数范围内;

将所述数值较小的掉帧率对应的内存量作为所述预定的内存释放量。

可以理解,释放的内存量越多,系统显示会越流畅。然而,释放的内存量与掉帧率之间呈正比的关系,即释放的内存量越多,掉帧率越大,从而影响用户的视觉效果,因此,需要确定出一个合理的内存释放量作为所述预定的内存释放量。

可以理解,所述合理的内存释放量的确定过程是一个动态调整的过程。例如,可先设定一个释放的初始内存量,例如100M,并监测其对应的掉帧率,若在后续的第二次释放300M的内存量,对应的掉帧率为20%,第三次释放200M的内存量,对应的掉帧率为5%,那么在第四次时可再降低释放的内存量,直到对应的掉帧率降到合理的范围(例如2%~4%)。当掉帧率降到合理的范围时,可根据对应的系统显示性能参数再动态微调释放的内存量,直到掉帧率较小,且其对应的系统显示性能参数在预设的合理参数范围内,最后将动态调整获得的较小的掉帧率对应的内存量作为所述预定的内存释放量。

本发明提供的多进程内存处理装置引入多进程内存处理机制,根据进程的活跃度对进程进行内存处理,从而能够优先处理不活跃的进程内存,使得操作系统应用的进程不会被自动回收掉,也保证前台进程的内存一直存在物理内存中不被处理,以确保终端的正常运行,并提高用户使用体验。

本发明实施例还提供一种计算机装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施方式中所述的多进程内存处理方法的步骤。

图4是本发明一实施方式提供的终端的示意图。如图4所示,终端1包括:处理器20、存储器30以及存储在所述存储器30中并可在所述处理器20上运行的计算机程序40(例如多进程内存处理程序)。所述处理器20执行所述计算机程序40时实现上述各个多进程内存处理方法实施方式中的步骤,例如图1所示的步骤101~103。所述处理器20执行所述计算机程序40时实现上述各装置实施方式中各模块/单元,例如模块11~15的功能。

示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器30中,并由所述处理器20执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序40在所述终端1中的执行过程。例如,所述计算机程序40可以被分割成图3中的分析模块11、排序模块12、内存处理模块13、监测模块14以及学习模块15,各模块11~15的具体功能请参见前面的具体介绍,为节省篇幅及避免重复起见,在此就不再赘述。

所述终端1可以是智能手机、笔记本电脑、台式/平板电脑、个人数字助理等具有运行应用程序功能的计算机设备。本领域技术人员可以理解,所述示意图4仅仅是终端1的示例,并不构成对终端1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端1还可以包括输入输出设备、网络接入设备、总线等。

所称处理器20可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器20也可以是任何常规的处理器等,所述处理器20是所述多进程内存处理装置10/所述终端1的控制中心,利用各种接口和线路连接整个多进程内存处理装置10/终端1的各个部分。

所述存储器30用于存储所述计算机程序40和/或模块/单元,所述处理器20通过运行或执行存储在所述存储器30内的计算机程序和/或模块/单元,以及调用存储在所述存储器30内的数据,实现所述多进程内存处理装置10/终端1的各种功能。所述存储器30可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1的使用所创建的数据(比如音频数据,电话本,应用上述多进程内存处理方法而设置、获取的数据等)等。此外,所述存储器30可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施方式中所述的多进程内存处理方法的步骤。

所述多进程内存处理装置10/终端1/计算机装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施方式方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施方式的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

在本发明所提供的几个具体实施方式中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的终端实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

另外,在本发明各个实施例中的各功能模块可以集成在相同处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在相同模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明实施例不限于上述示范性实施例的细节,而且在不背离本发明实施例的精神或基本特征的情况下,能够以其他的具体形式实现本发明实施例。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明实施例的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明实施例内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统、装置或终端权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1