CN109358955A - 进程管理方法和装置 - Google Patents

进程管理方法和装置 Download PDF

Info

Publication number
CN109358955A
CN109358955A CN201811135180.9A CN201811135180A CN109358955A CN 109358955 A CN109358955 A CN 109358955A CN 201811135180 A CN201811135180 A CN 201811135180A CN 109358955 A CN109358955 A CN 109358955A
Authority
CN
China
Prior art keywords
application program
operation information
processes
identification code
multiple processes
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
Application number
CN201811135180.9A
Other languages
English (en)
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201811135180.9A priority Critical patent/CN109358955A/zh
Publication of CN109358955A publication Critical patent/CN109358955A/zh
Pending legal-status Critical Current

Links

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开提供了一种进程管理方法,该方法应用于电子设备,包括:获取至少一个应用程序对应的多个进程的运行信息,该至少一个应用程序处于后台运行状态;根据多个进程的运行信息,确定多个进程中满足预设条件的至少一个第一进程;以及关闭至少一个第一进程,其中,每个应用程序对应至少两个进程,该至少两个进程中包括不满足预设条件的第二进程。本公开还提供了一种进程管理装置。

Description

进程管理方法和装置
技术领域
本公开涉及一种进程管理方法和装置。
背景技术
随着电子技术的快速发展,电子设备能否高效利用内存是影响用户体验的一个重要参数。
在实现本公开的过程中,发明人发现现有技术中至少存在如下问题:现有的内存清理方案中,通常依赖于用户操作进行内存清理,则存在清理不及时的缺陷,且用户往往是在感觉到电子设备系统卡顿时才进行清理,从而使得用户体验差;而对于自动清理内存的方案,在通过关闭进程释放内存时,往往会停止后台运行的应用程序对应的所有进程,则会导致应用程序的基本功能(例如定位功能等)无法正常运行。
发明内容
本公开的一个方面提供了一种能够关闭应用程序部分进程的进程管理方法,该方法应用于电子设备,包括:获取至少一个应用程序对应的多个进程的运行信息,该至少一个应用程序处于后台运行状态;根据多个进程的运行信息,确定多个进程中满足预设条件的至少一个第一进程;以及关闭至少一个第一进程,其中,每个应用程序对应至少两个进程,至少两个进程中包括不满足预设条件的第二进程。
可选地,在获取至少一个应用程序对应的多个进程的运行信息之前,上述进程管理方法还包括:监听电子设备切换前台运行应用程序的操作,以及在监听到电子设备完成切换前台运行应用程序的操作的情况下,获取至少一个应用程序对应的多个进程的运行信息。
可选地,上述获取至少一个应用程序对应的多个进程的运行信息包括:获取电子设备的所有进程的运行信息;获取处于前台运行状态的应用程序的标识码;以及根据处于前台运行状态的应用程序的标识码,确定所有进程的运行信息中,处于后台运行状态的所有应用程序对应的多个进程的运行信息。
可选地,上述获取至少一个应用程序对应的多个进程的运行信息还包括:确定处于后台运行状态的所有应用程序中,处于后台运行状态的时间超过预设时间的第一应用程序;以及确定第一应用程序对应的多个进程的运行信息。
可选地,上述根据多个进程的运行信息,确定多个进程中满足预设条件的至少一个第一进程包括:根据多个进程的进程名,自多个进程中确定进程名与对应的应用程序的标识码相同的至少一个进程,其中,进程的运行信息包括:进程名、以及对应的应用程序的标识码,每个应用程序对应的至少两个进程包括:进程名与对应的应用程序的标识码相同的一个进程。
可选地,上述根据多个进程的运行信息,确定多个进程中满足预设条件的至少一个第一进程还包括:根据进程名与对应的应用程序的标识码相同的至少一个进程的优先级,确定优先级低于预设优先级的至少一个进程为第一进程,其中,进程的运行信息还包括:进程的优先级。
本公开的另一个方面提供了一种进程管理装置,应用于电子设备,该装置包括:运行信息获取模块,用于获取至少一个应用程序对应的多个进程的运行信息,该至少一个应用程序处于后台运行状态;进程确定模块,用于根据多个进程的运行信息,确定多个进程中满足预设条件的至少一个第一进程;以及进程控制模块,用于关闭至少一个第一进程,其中,每个应用程序对应至少两个进程,该至少两个进程中包括不满足预设条件的第二进程。
可选地,上述进程管理装置还包括监听模块,用于监听电子设备切换前台运行应用程序的操作;上述运行信息获取模块在监听模块监听到电子设备完成切换前台运行应用程序的操作的情况下,获取至少一个应用程序对应的多个进程的运行信息。
可选地,上述运行信息获取模块包括:运行信息获取子模块,用于获取电子设备的所有进程的运行信息;标识码获取子模块,用于获取处于前台运行状态的应用程序的标识码;以及第一运行信息确定子模块,用于根据处于前台运行状态的应用程序的标识码,确定所有进程的运行信息中,处于后台运行状态的所有应用程序对应的多个进程的运行信息。
可选地,上述运行信息获取模块还包括:第一应用程序确定子模块,用于确定处于后台运行状态的所有应用程序中,处于后台运行状态的时间超过预设时间的第一应用程序;以及第二运行信息确定子模块,用于确定第一应用程序对应的多个进程的运行信息。
可选地,上述进程确定模块包括第一进程确定子模块,用于根据多个进程的进程名,自多个进程中确定进程名与对应的应用程序的标识码相同的至少一个进程,其中,进程的运行信息包括:进程名、以及对应的应用程序的标识码,每个应用程序对应的至少两个进程包括:进程名与对应的应用程序的标识码相同的一个进程。
可选地,上述进程确定模块还包括第二进程确定子模块,用于根据进程名与对应的应用程序的标识码相同的至少一个进程的优先级,确定优先级低于预设优先级的至少一个进程为第一进程,其中,进程的运行信息还包括:进程的优先级。
本公开的另一个方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一个方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的进程管理方法和装置的应用场景;
图2A示意性示出了根据本公开实施例的进程管理方法的流程图;
图2B示意性示出了根据本公开实施例的获取至少一个应用程序对应的多个进程的运行信息的流程图;
图3示意性示出了根据本公开另一实施例的获取至少一个应用程序对应的多个进程的运行信息的流程图;
图4示意性示出了根据本公开实施例的确定多个进程中第一进程的流程图;
图5示意性示出了根据本公开另一实施例的进程管理方法的流程图;
图6A-图6C示意性示出了根据本公开实施例的进程管理装置的结构框图;
图7示意性示出了根据本公开实施例的适于实现进程管理装置的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种能够关闭应用程序的部分进程的进程管理方法和装置。该方法包括:获取至少一个应用程序对应的多个进程的运行信息,该至少一个应用程序处于后台运行状态;根据多个进程的运行信息,确定多个进程中满足预设条件的至少一个第一进程;以及关闭至少一个第一进程,其中,每个应用程序对应至少两个进程,该至少两个进程中包括不满足预设条件的第二进程。
以此方式,根据本公开的实施例,在关闭对应有至少两个进程的、处于后台运行状态的应用程序时,可以仅杀掉满足预设条件的第一进程,而保留不满足预设条件的第二进程,相较于现有技术中在关闭应用程序时,会将应用程序对应的所有进程全部杀掉的技术方案,能够在清理内存的同时,保证应用程序的基本功能的正常运行,从而能够在一定程度上提高用户体验。
图1示意性示出了根据本公开实施例的进程管理方法和装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景包括电子设备100,该电子设备100可以是具有显示屏并且支持安装有各种应用程序的电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、相机、移动医疗设备、便携式多媒体播放器等。
该电子设备100的显示屏显示有处于前台运行状态的应用程序110的显示页面,该电子设备100还具有至少一个处于后台运行状态的应用程序120。其中,处于后台运行状态的应用程序例如可以是在当前时刻的之前时刻处于前台运行状态的应用程序。其中,应用程序110和/应用程序120例如可以为购物类应用程序、网页浏览器应用程序、搜索类应用程序、即时通信工具、邮箱客户端和/或社交平台软件等,如图1所示,本公开实施例中应用程序120例如为四个,分别为“照相机”、“游戏”、“百度”和“图库”(仅为示例)。
其中,前台运行状态的应用程序110是当前时刻呈现给用户视觉和基本操作的应用程序,后台运行状态的应用程序120是当前时刻虽然未呈现给用户视觉和基本操作,但是有数据在运行的应用程序。
如图1所示,应用程序110和应用程序120中的每一个例如可以对应有至少两个进程,该至少两个进程具体例如可以至少包括有第一进程和第二进程,其中第一进程可以是负责UI(User Interface,用户界面)显示的进程,该第一进程通常占用有大量内存;第二进程可以是后台服务的进程,其可以保证应用程序的基本功能的正常运行。
现有技术中,在对内存做清理时,通常会将图1中处于后台运行状态的应用程序120对应的所有进程全部关闭,而本公开的进程管理方法,可以根据预设条件区分第一进程和第二进程,且在对内存做清理时,仅将多个应用程序120对应的进程中部分或/全部的第一进程杀掉,而保留第二进程,从而可以在有效清理内存的前提下,保证应用程序的基本功能的正常运行。
需要说明的是,此处杀掉确定的满足预设条件的第一进程,并不会影响用户在使用电子设备的分屏功能,或者在想要便捷的切换应用程序时,第一进程对应的应用程序的页面的显示,也就是说即使杀掉第一进程,也可以保证历史记录的正常显示。
需要说明的是,本公开实施例所提供的进程管理方法一般可以由电子设备100执行。相应地,本公开实施例所提供的进程管理装置一般可以设置于电子设备100中。
应该理解,图1中的电子设备的类型、处于前台运行状态的应用程序的类型和数目,以及处于后台运行状态的应用程序的类型和数目仅仅是示意性的。根据实现需要,本公开实施例的进程管理方法可以应用于任意类型的电子设备,处于前/后台运行状态的应用程序可以为任意类型的应用程序,且可以具有任意的数目。
图2A示意性示出了根据本公开实施例的进程管理方法的流程图;图2B示意性示出了根据本公开实施例的获取至少一个应用程序对应的多个进程的运行信息的流程图。
如图2A所示,该进程管理方法应用于电子设备,具体可以包括操作S210-操作S230。
在操作S210,获取至少一个应用程序对应的多个进程的运行信息,该至少一个应用程序处于后台运行状态。
其中,该至少一个应用程序具体例如可以是参考图1描述的应用程序120,该至少一个应用程序处于后台运行状态具体是指:处于运行状态,但是在电子设备的显示屏上未呈现用户视觉和基本操作的应用程序。该至少一个应用程序例如可以是在当前时刻的之前时刻处于前台运行状态,但当前时刻处于最小化状态的应用程序;或者,其中前台运行状态例如可以是用户通过双击鼠标的操作或者触摸操作后,应用程序打开后的状态,而在用户点击“最小化”按钮、敲击“ESC”按键、或者点击“返回”按键后,该应用程序则由前台运行状态更改为后台运行状态。
根据本公开的实施例,至少一个应用程序对应有至少两个进程,其中的进程是应用程序与其使用的数据在处理器上顺序执行时发生的活动,是应用程序在一个数据集合上的运行过程。上述至少两个进程至少包括图1描述的第一进程和第二进程,即满足预设条件的第一进程和不满足预设条件的第二进程。其中的第一进程具体例如可以是负责UI显示的进程,或者优先级低的进程等,第二进程具体例如可以是负责后台服务的进程、或者优先级高的进程。
根据本公开的实施例,如图2B所示,该操作S210具体可以包括操作S211-操作S213。
在操作S211,获取电子设备的所有进程的运行信息;在操作S212,获取处于前台运行状态的应用程序的标识码;以及在操作S213,根据处于前台运行状态的应用程序的标识码,确定所有进程的运行信息中,处于后台运行状态的所有应用程序对应的多个进程的运行信息。
根据本公开的实施例,上述操作S211具体可以是:遍历所有正在运行的进程,并通过进程信息获取方法,获取遍历得到的所有正在运行的进程的运行信息,其中的进程信息获取方法例如可以是调用ProcessInfo对象、或者使用Create Toolhelp32Snapshot等,该获取方法具体例如可以通过由Java语言、C++语言等封装的功能模块实现。
根据本公开的实施例,获取的进程的运行信息例如可以包括:对应的应用程序的参数(例如可以包括该应用程序的标识码、应用程序的状态、应用程序的版本等)、进程标识符、进程名、进程优先级、进程所在系统的主机名、操作系统名和/或操作系统版本等信息。
根据本公开的实施例,应用程序的标识码具体例如可以是应用程序的包名,上述操作S212具体例如可以是:先获取当前运行的所有应用程序的包名,然后通过应用程序的管理器确定当前运行的所有应用程序中处于前台运行状态的应用程序,则该管理器确定的处于前台运行状态的应用程序的包名即为操作S212获取的标识码。可以理解的是,上述操作S212的具体实现方式仅作为示例以利于理解本公开,本公开对此不作限定。
根据本公开的实施例,上述操作S213具体例如可以是筛选操作,具体包括:自操作S211获取的所有运行信息中,筛选掉所有进程中,对应的应用程序的包名为操作S212确定的包名的进程的运行信息,则剩余的运行信息即为处于后台运行状态的所有应用程序对应的多个进程的运行信息。
根据本公开的实施例,上述操作S210例如还可以是:先执行操作S212,然后将操作S212获取的处于前台运行状态的应用程序的标识码作为过滤条件,再通过进程信息获取方法获取符合过滤条件的所有进程的运行信息,则得到的即为处于后台运行状态的所有应用程序对应的多个进程的运行信息。
在操作S220,根据多个进程的运行信息,确定多个进程中满足预设条件的至少一个第一进程。
根据本公开的实施例,考虑到应用程序对应的UI进程的进程名通常采用应用程序的标识码(即包名),即每个应用程序对应的至少两个进程包括有进程名与对应的应用程序的标识码相同的一个进程,因此此处的预设条件具体例如可以是进程名与对应的应用程序的标识码相同,则上述的操作S220具体可以是,根据多个进程的进程名,自所述多个进程中确定进程名与对应的应用程序的标识码相同的至少一个进程,相应的,获取的进程的运行信息中必定包括进程的进程名,及进程对应的应用程序的标识码。
根据本公开的实施例,考虑到应用程序对应的UI进程的优先级通常较低,因此此处的预设条件具体例如可以是优先级低于预设优先级,该预设优先级例如可以是用户根据经验设定的。上述的操作S220具体例如还可以是:对每个应用程序对应的至少两个进程按优先级排序,自该至少两个进程中确定优先级最低的进程,相应的,获取的进程的运行信息中必定包括进程的优先级。
根据本公开的实施例,考虑到应用程序对应的UI进程占用的内存通常较大,因此此处的预设条件具体例如可以是占用内存高于预设内存,该预设内存例如可以是用户根据经验设定的。上述的操作S220具体例如还可以是:对每个应用程序对应的至少两个进程按占用内存大小排序,自该至少两个进程中确定占用内存最大的进程,相应的,获取的进程的运行信息中必定包括进程占用内存量。
可以理解的是,上述预设条件仅作为实例以利于理解本公开,本公开对该预设条件不作限定,例如该预设条件还可以包括上述两个或多个条件的组合,且该两个或多个条件所占比重相同或不同,例如该预设条件可以是进程名与对应的应用程序的标识码相同,且优先级低于预设优先级等。
在操作S230,关闭至少一个第一进程。
根据本公开的实施例,该操作S230例如可以根据现有技术中杀掉进程的方法来杀掉操作S220确定的第一进程。具体例如可以采用现有的方式:System.exit(0)或Process.killProcess(Process.myPid())等,本公开对此不再赘述。
综上可知,本公开实施例的进程管理方法,考虑到目前主流的应用程序基本上都是采用多进程框架实现的,因此可以在内存清理时,根据该进程管理方法仅关闭满足预设条件的第一进程,而保留用于保证应用程序的基本功能的第二进程,从而使得本申请的进程管理方法,不仅能够释放不必要的内存,还可以同时保证与第二进程对应的服务进程的正常运行,并因此可以在一定程度上提高用户体验。
图3示意性示出了根据本公开另一实施例的获取至少一个应用程序对应的多个进程的运行信息的流程图。
如图3所示,本公开实施例中获取至少一个应用程序对应的多个进程的运行信息除了参考图2B描述的操作S211-操作S213之外,还包括在操作S213之后执行的操作S214-操作S215。
考虑到用户可能随时会使用转换到后台运行状态的时间较短的应用程序(例如用户频繁切换前台运行的应用程序),而用户可能不会再使用到转换到后台运行状态的时间较长的应用程序,因此,在操作S214,还可以确定处于后台运行状态的所有应用程序中,处于后台运行状态的时间超过预设时间的第一应用程序;以及在操作S215,确定第一应用程序对应的多个进程的运行信息。
其中,上述操作S214具体可以为:先获取电子设备的系统记录的处于后台运行状态的所有应用程序的运行状态由前台运行状态更改为后台运行状态的时刻,然后根据各应用程序的运行状态更改为后台运行状态的时刻及当前时刻,计算得到各应用程序处于后台运行状态的时间,然后再自所有处于后台运行状态的应用程序中,筛选得到处于后台运行状态的时间超过预设时间的应用程序作为第一应用程序。其中,预设时间例如可以由用户根据经验设定,根据本公开的实施例,该预设时间例如还可以自动根据用户使用电子设备的习惯进行调整,以使得该进程管理方法可以根据用户习惯进行进程管理,提高用户体验。
其中,上述操作S215即为:自操作S213确定的处于后台运行状态的所有应用程序对应的多个进程的运行信息中,筛选得到操作S214确定的第一应用程序对应的运行信息。
根据本公开的实施例,该获取至少一个应用程序对应的多个进程的运行信息具体还可以先通过操作S212及操作S214确定第一应用程序,然后再将操作S214确定的第一应用程序的标识码作为过滤条件,通过进程信息获取方法直接获取第一应用程序对应的多个进程的运行信息。
综上可知,本公开实施例的进程管理方法,在获取至少一个应用程序对应的多个进程的运行信息时,同时考虑应用程序转换到后台运行状态的时间,从而筛选到后台运行状态的时间超过预设时间的第一应用程序的运行信息,并以该筛选得到的运行信息确定第一进程,可以使得最终关闭的第一进程为用户短时间内不再使用的应用程序对应的进程,而保留用户短时间内再次使用的应用程序对应的进程,可以避免用户短时间内再次使用应用程序时,需要再次启动进程而导致的应用程序响应时间较长的缺陷,并因此可以提高用户体验。
图4示意性示出了根据本公开实施例的确定多个进程中第一进程的流程图。
如图4所示,该确定第一进程具体可以包括操作S221-操作S222。
在操作S221,根据多个进程的进程名,自多个进程中确定进程名与对应的应用程序的标识码相同的至少一个进程;在操作S222,根据进程名与对应的应用程序的标识码相同的至少一个进程的优先级,确定优先级低于预设优先级的至少一个进程为第一进程,相应的,进程的运行信息包括有进程名、进程对应的应用程序的标识码及进程的优先级。
考虑到应用程序对应的UI进程的进程名通常为应用程序的标识码,因此先自多个进程中筛选得到进程名与对应的应用程序的标识码相同的进程,从而得到至少一个应用程序对应的UI进程;再者,考虑到一些UI进程中包括有一些用于实现应用程序基本功能的线程,而包括有用于实现应用程序基本功能的线程的进程的优先级通常较高,因此,再根据至少一个进程的优先级确定关闭后不会影响应用程序基本功能的进程作为待关闭的第一进程。
综上可知,通过本公开实施例的确定第一进程的方法,可以进一步的保证确定的第一进程为不涉及到应用程序基本功能的进程,从而可以在保证释放不必要的内存的前提下,尽可能的保证后台应用的服务进程的正常运行,保证应用程序的基本功能的正常运行,提高用户体验。
图5示意性示出了根据本公开另一实施例的进程管理方法的流程图。
如图5所示,该实施例的进程管理方法包括操作S210-操作S230,及操作S510。
其中,操作S510在操作S210-操作S230之前执行,操作S210-操作S230与参考图2描述的操作类似,区别仅在于,操作S210-操作S230的执行根据操作S510的监听结果进行。
其中,在操作S510,监听电子设备切换前台运行应用程序的操作;而操作S210-操作S230在操作S510中监听到电子设备完成切换前台运行应用程序的操作的情况下执行。
根据本公开的实施例,上述操作S510具体例如可以是:监听电子设备中安装的各应用程序的运行状态(例如还可以仅监听运行的应用程序的运行状态),在监听到某个应用程序的运行状态由前台运行状态更改为后台运行状态的情况下,执行操作S210-操作S230。
根据本公开的实施例,上述操作S510具体例如可以是:监听用户点击“返回主页面”或“显示桌面”等按键的操作,在监听到用户点击相应按键后,执行操作S210-操作S230。
可以理解的是,上述操作S510的实现方法仅作为实例以利于理解本公开,本公开对此不作限定,该操作S510例如可以通过采用现有技术中能够判断应用程序进入后台,或者切换到前台的方法中的任意方法来实现。
考虑到现有技术中,往往是在内存紧张时才进行内存清理,因此存在清理不及时,用户体验差的缺陷,而本公开实施例通过监听电子设备切换前台运行应用程序的操作,只要在仅在后台运行的应用程序发生变化的情况下,就自动进行内存清理,从而能够有效地避免上述现有技术中的缺陷,并因此可以对内存进行及时清理,使得电子设备中应用程序的运行更流畅,从而提高用户体验。
图6A-图6C示意性示出了根据本公开实施例的进程管理装置的结构框图,其中,图6B示意性示出了进程管理装置中运行信息获取模块的结构框图;图6C示意性示出了进程管理装置中进程确定模块的结构框图。
如图6A所示,进程管理装置600包括运行信息获取模块610、进程确定模块620和进程控制模块630。
其中,运行信息获取模块610用于获取至少一个应用程序对应的多个进程的运行信息,该至少一个应用程序处于后台运行状态。根据本公开的实施例,该运行信息获取模块610例如可以用于执行参考图2A描述的操作S210,在此不再赘述。
根据本公开的实施例,如图6B所示,该运行信息获取模块610例如可以包括运行信息获取子模块611、标识码获取子模块612及第一运行信息确定子模块613,其中,运行信息获取子模块611用于获取电子设备的所有进程的运行信息;标识码获取子模块612用于获取处于前台运行状态的应用程序的标识码;第一运行信息确定子模块613用于根据处于前台运行状态的应用程序的标识码,确定所有进程的运行信息中,处于后台运行状态的所有应用程序对应的多个进程的运行信息。根据本公开的实施例,运行信息获取子模块611、标识码获取子模块612及第一运行信息确定子模块613例如可以分别用于执行参考图2B描述的操作S211-操作S213,在此不再赘述。
根据本公开的实施例,如图6B所示,该运行信息获取模块610例如还可以包括第一应用程序确定子模块614和第二运行信息确定子模块615。其中,第一应用程序确定子模块614用于确定处于后台运行状态的所有应用程序中,处于后台运行状态的时间超过预设时间的第一应用程序;第二运行信息确定子模块615用于确定第一应用程序对应的多个进行的运行信息。根据本公开的实施例,第一应用程序确定子模块614和第二运行信息确定子模块615例如可以分别用于执行参考图3描述的操作S214-操作S215,在此不再赘述。
其中,进程确定模块620用于根据多个进程的运行信息,确定多个进程中满足预设条件的至少一个第一进程,其中,每个应用程序对应至少两个进程,该至少两个进程中还包括不满足预设条件的第二进程。根据本公开的实施例,该进程确定模块620例如可以用于执行参考图2A描述的操作S220,在此不再赘述。
根据本公开的实施例,如图6C所示,进程确定模块620例如可以包括第一进程确定子模块621,用于根据多个进程的进程名,自多个进程中确定进程名与对应的应用程序的标识码相同的至少一个进程,其中,进程的运行信息包括:进程名、以及对应的应用程序的标识码,每个应用程序对应的至少两个进程包括:进程名与对应的应用程序的标识码相同的一个进程。根据本公开的实施例,该第一进程确定子模块621例如可以用于执行参考图4描述的操作S221,在此不再赘述。
根据本公开的实施例,如图6C所示,进程确定模块620例如还可以包括第二进程确定子模块622,用于根据进程名与对应的应用程序的标识码相同的至少一个进程的优先级,确定优先级低于预设优先级的至少一个进程为所述第一进程,其中,进程的运行信息还包括:进程的优先级。根据本公开的实施例,该第二进程确定子模块622例如可以用于执行参考图4描述的操作S222,在此不再赘述。
其中,进程控制模块630用于关闭至少一个第一进程。根据本公开的实施例,该进程控制模块630例如可以用于执行参考图2A描述的操作S230,在此不再赘述。
根据本公开的实施例,如图6A所示,该进程管理装置600例如还可以包括监听模块640,用于监听电子设备切换前台运行应用程序的操作,运行信息获取模块610在监听模块640监听到电子设备完成切换前台运行应用程序的操作的情况下,获取至少一个应用程序对应的多个进程的运行信息。根据本公开的实施例,监听模块640例如可以用于执行参考图5描述的操作S510,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,运行信息获取模块610、进程确定模块620、进程控制模块630、监听模块640、运行信息获取子模块611、标识码获取子模块612、第一运行信息确定子模块613、第一应用程序确定子模块614、第二运行信息确定子模块615、第一进程确定子模块621以及第二进程确定子模块622中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,运行信息获取模块610、进程确定模块620、进程控制模块630、监听模块640、运行信息获取子模块611、标识码获取子模块612、第一运行信息确定子模块613、第一应用程序确定子模块614、第二运行信息确定子模块615、第一进程确定子模块621以及第二进程确定子模块622中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及同件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,运行信息获取模块610、进程确定模块620、进程控制模块630、监听模块640、运行信息获取子模块611、标识码获取子模块612、第一运行信息确定子模块613、第一应用程序确定子模块614、第二运行信息确定子模块615、第一进程确定子模块621以及第二进程确定子模块622中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示意性示出了根据本公开实施例的适于实现进程管理装置的计算机系统的方框图。图7示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括处理器710和计算机可读存储介质720。该系统700可以执行根据本公开实施例的方法。
具体地,处理器710例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器710还可以包括用于缓存用途的板载存储器。处理器710可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质720,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质720可以包括计算机程序721,该计算机程序721可以包括代码/计算机可执行指令,其在由处理器710执行时使得处理器710执行根据本公开实施例的方法或其任何变形。
计算机程序721可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序721中的代码可以包括一个或多个程序模块,例如包括721A、模块721B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器710执行时,使得处理器710可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,运行信息获取模块610、进程确定模块620、进程控制模块630、监听模块640、运行信息获取子模块611、标识码获取子模块612、第一运行信息确定子模块613、第一应用程序确定子模块614、第二运行信息确定子模块615、第一进程确定子模块621以及第二进程确定子模块622中的至少一个可以实现为参考图7描述的计算机程序模块,其在被处理器710执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (10)

1.一种进程管理方法,应用于电子设备,包括:
获取至少一个应用程序对应的多个进程的运行信息,所述至少一个应用程序处于后台运行状态;
根据所述多个进程的运行信息,确定所述多个进程中满足预设条件的至少一个第一进程;以及
关闭所述至少一个第一进程,
其中,每个应用程序对应至少两个进程,所述至少两个进程中包括不满足预设条件的第二进程。
2.根据权利要求1所述的方法,其中,在获取至少一个应用程序对应的多个进程的运行信息之前,所述方法还包括:
监听所述电子设备切换前台运行应用程序的操作;以及
在监听到所述电子设备完成切换前台运行应用程序的操作的情况下,获取所述至少一个应用程序对应的多个进程的运行信息。
3.根据权利要求1所述的方法,其中,所述获取至少一个应用程序对应的多个进程的运行信息包括:
获取所述电子设备的所有进程的运行信息;
获取处于前台运行状态的应用程序的标识码;以及
根据所述处于前台运行状态的应用程序的标识码,确定所有进程的运行信息中,处于后台运行状态的所有应用程序对应的多个进程的运行信息。
4.根据权利要求3所述的方法,其中,所述获取至少一个应用程序对应的多个进程的运行信息还包括:
确定处于后台运行状态的所有应用程序中,处于后台运行状态的时间超过预设时间的第一应用程序;以及
确定第一应用程序对应的多个进程的运行信息。
5.根据权利要求1所述的方法,其中,根据所述多个进程的运行信息,确定所述多个进程中满足预设条件的至少一个第一进程包括:
根据所述多个进程的进程名,自所述多个进程中确定进程名与对应的应用程序的标识码相同的至少一个进程,
其中,进程的运行信息包括:进程名、以及对应的应用程序的标识码,每个应用程序对应的至少两个进程包括:进程名与对应的应用程序的标识码相同的一个进程。
6.根据权利要求5所述的方法,其中,根据所述多个进程的运行信息,确定所述多个进程中满足预设条件的至少一个第一进程还包括:
根据进程名与对应的应用程序的标识码相同的所述至少一个进程的优先级,确定优先级低于预设优先级的至少一个进程为所述第一进程,
其中,所述进程的运行信息还包括:进程的优先级。
7.一种进程管理装置,应用于电子设备,包括:
运行信息获取模块,用于获取至少一个应用程序对应的多个进程的运行信息,所述至少一个应用程序处于后台运行状态;
进程确定模块,用于根据所述多个进程的运行信息,确定所述多个进程中满足预设条件的至少一个第一进程;以及
进程控制模块,用于关闭所述至少一个第一进程,
其中,每个应用程序对应至少两个进程,所述至少两个进程中包括不满足预设条件的第二进程。
8.根据权利要求7所述的装置,还包括:
监听模块,用于监听所述电子设备切换前台运行应用程序的操作;
所述运行信息获取模块:在所述监听模块监听到所述电子设备完成切换前台运行应用程序的操作的情况下,获取所述至少一个应用程序对应的多个进程的运行信息;并且/或者
所述运行信息获取模块包括:
运行信息获取子模块,用于获取所述电子设备的所有进程的运行信息;
标识码获取子模块,用于获取处于前台运行状态的应用程序的标识码;以及
第一运行信息确定子模块,用于根据所述处于前台运行状态的应用程序的标识码,确定所有进程的运行信息中,处于后台运行状态的所有应用程序对应的多个进程的运行信息;并且/或者
所述进程确定模块包括:第一进程确定子模块,用于根据所述多个进程的进程名,自所述多个进程中确定进程名与对应的应用程序的标识码相同的至少一个进程,其中,进程的运行信息包括:进程名、以及对应的应用程序的标识码,每个应用程序对应的至少两个进程包括:进程名与对应的应用程序的标识码相同的一个进程。
9.根据权利要求8所述的装置,其中,所述运行信息获取模块还包括:
第一应用程序确定子模块,用于确定处于后台运行状态的所有应用程序中,处于后台运行状态的时间超过预设时间的第一应用程序;以及
第二运行信息确定子模块,用于确定第一应用程序对应的多个进程的运行信息。
10.根据权利要求8所述的装置,其中,所述进程确定模块还包括:
第二进程确定子模块,用于根据进程名与对应的应用程序的标识码相同的所述至少一个进程的优先级,确定优先级低于预设优先级的至少一个进程为所述第一进程,
其中,所述进程的运行信息还包括:进程的优先级。
CN201811135180.9A 2018-09-27 2018-09-27 进程管理方法和装置 Pending CN109358955A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811135180.9A CN109358955A (zh) 2018-09-27 2018-09-27 进程管理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811135180.9A CN109358955A (zh) 2018-09-27 2018-09-27 进程管理方法和装置

Publications (1)

Publication Number Publication Date
CN109358955A true CN109358955A (zh) 2019-02-19

Family

ID=65347961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811135180.9A Pending CN109358955A (zh) 2018-09-27 2018-09-27 进程管理方法和装置

Country Status (1)

Country Link
CN (1) CN109358955A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377362A (zh) * 2019-07-17 2019-10-25 北京字节跳动网络技术有限公司 清理应用程序的方法、装置、终端及存储介质
CN113326106A (zh) * 2020-02-28 2021-08-31 华为技术有限公司 一种应用管理方法及装置
CN114968551A (zh) * 2022-03-10 2022-08-30 中移互联网有限公司 一种进程管理的方法、装置、电子设备及存储介质
CN115836280A (zh) * 2020-09-21 2023-03-21 华为技术有限公司 进程管控的方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092700A (zh) * 2013-02-01 2013-05-08 华为终端有限公司 内存清理方法、装置和终端设备
CN103544063A (zh) * 2013-09-30 2014-01-29 三星电子(中国)研发中心 应用于安卓平台的进程清除方法和装置
CN104252389A (zh) * 2013-06-27 2014-12-31 腾讯科技(深圳)有限公司 应用程序运行方法、系统及应用程序
CN105279098A (zh) * 2014-07-22 2016-01-27 中兴通讯股份有限公司 内存的清理方法及装置
CN106354562A (zh) * 2016-08-25 2017-01-25 上海传英信息技术有限公司 内存清理系统和内存清理方法
CN107368177A (zh) * 2017-07-25 2017-11-21 上海传英信息技术有限公司 一种用于智能设备的省电方法及省电装置
US20180018158A1 (en) * 2016-07-13 2018-01-18 At&T Mobility Ii Llc Automated Device Memory Clean Up Mechanism
CN107608785A (zh) * 2017-08-15 2018-01-19 深圳天珑无线科技有限公司 进程管理方法、移动终端及可读储存介质
CN108205498A (zh) * 2017-08-01 2018-06-26 珠海市魅族科技有限公司 内存回收方法及装置、计算机装置及计算机可读存储介质
CN108228472A (zh) * 2017-08-14 2018-06-29 珠海市魅族科技有限公司 终端设备控制方法及装置、终端设备及计算机可读存储介质
CN108228341A (zh) * 2017-08-07 2018-06-29 珠海市魅族科技有限公司 内存回收方法及装置、终端设备及计算机可读存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092700A (zh) * 2013-02-01 2013-05-08 华为终端有限公司 内存清理方法、装置和终端设备
CN104252389A (zh) * 2013-06-27 2014-12-31 腾讯科技(深圳)有限公司 应用程序运行方法、系统及应用程序
CN103544063A (zh) * 2013-09-30 2014-01-29 三星电子(中国)研发中心 应用于安卓平台的进程清除方法和装置
CN105279098A (zh) * 2014-07-22 2016-01-27 中兴通讯股份有限公司 内存的清理方法及装置
US20180018158A1 (en) * 2016-07-13 2018-01-18 At&T Mobility Ii Llc Automated Device Memory Clean Up Mechanism
CN106354562A (zh) * 2016-08-25 2017-01-25 上海传英信息技术有限公司 内存清理系统和内存清理方法
CN107368177A (zh) * 2017-07-25 2017-11-21 上海传英信息技术有限公司 一种用于智能设备的省电方法及省电装置
CN108205498A (zh) * 2017-08-01 2018-06-26 珠海市魅族科技有限公司 内存回收方法及装置、计算机装置及计算机可读存储介质
CN108228341A (zh) * 2017-08-07 2018-06-29 珠海市魅族科技有限公司 内存回收方法及装置、终端设备及计算机可读存储介质
CN108228472A (zh) * 2017-08-14 2018-06-29 珠海市魅族科技有限公司 终端设备控制方法及装置、终端设备及计算机可读存储介质
CN107608785A (zh) * 2017-08-15 2018-01-19 深圳天珑无线科技有限公司 进程管理方法、移动终端及可读储存介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377362A (zh) * 2019-07-17 2019-10-25 北京字节跳动网络技术有限公司 清理应用程序的方法、装置、终端及存储介质
CN113326106A (zh) * 2020-02-28 2021-08-31 华为技术有限公司 一种应用管理方法及装置
CN115836280A (zh) * 2020-09-21 2023-03-21 华为技术有限公司 进程管控的方法和装置
CN114968551A (zh) * 2022-03-10 2022-08-30 中移互联网有限公司 一种进程管理的方法、装置、电子设备及存储介质
CN114968551B (zh) * 2022-03-10 2023-09-19 中移互联网有限公司 一种进程管理的方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109358955A (zh) 进程管理方法和装置
US20200226751A1 (en) Surgical workflow and activity detection based on surgical videos
CN106779088B (zh) 执行机器学习流程的方法及系统
US9063565B2 (en) Automated avatar creation and interaction in a virtual world
DE102017121758A1 (de) Intelligente Assistenz für wiederholte Aktionen
EP2383715A2 (en) Virtual laboratory smart agent
CN105122236A (zh) 使用动态可视化控制应用跟踪
CN105122257A (zh) 用于动态显示跟踪器数据的转换函数插入
Roda Human attention and its implications for human–computer interaction
DE112013003258T5 (de) Anmeldung unter Verwendung eines synthetischen Fingerabdruckbildes und Fingerabdruck-Erfassungssystems
DE102016124419A1 (de) Gestenbasierte steuerung einer benutzerschnittstelle
CN110060767A (zh) 一种洗手的监控方法、装置、设备及存储介质
CN105122216A (zh) 具有时间序列数据的力导向图
CN104731446B (zh) 基于提示的斑点修复技术
JP2019121360A (ja) 機械学習に基づくコンテキスト認識会話型エージェントのためのシステム及び方法、コンテキスト認識ジャーナリングの方法、システム、プログラム、コンピュータ装置
CN109298821A (zh) 一种智能终端的应用程序图标管理方法及装置
CN106095660B (zh) 应用的质量监控方法及装置
CN110262919A (zh) 异常数据分析方法、装置、设备与计算机可读存储介质
DE112018006727T5 (de) Elektronische vorrichtung zur verbindung von musik mit fotografie und steuerungsverfahren dafür
CN109598775A (zh) 一种动态图像合成方法、装置、终端和存储介质
CN106687900A (zh) 可采取动作的项切换器视图
CN107544736A (zh) 医学图像处理方法及设备
CN106569949A (zh) 用于执行测试用例的方法和装置
CN107707980A (zh) 播放页面分层系统、指定播放器的扩展方法、介质及设备
CN109688344A (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