[go: up one dir, main page]

CN115437783B - 一种查杀方法、电子设备及可读存储介质 - Google Patents

一种查杀方法、电子设备及可读存储介质 Download PDF

Info

Publication number
CN115437783B
CN115437783B CN202210986404.7A CN202210986404A CN115437783B CN 115437783 B CN115437783 B CN 115437783B CN 202210986404 A CN202210986404 A CN 202210986404A CN 115437783 B CN115437783 B CN 115437783B
Authority
CN
China
Prior art keywords
memory
application
electronic device
threshold
size
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
Application number
CN202210986404.7A
Other languages
English (en)
Other versions
CN115437783A (zh
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.)
Honor Device Co Ltd
Original Assignee
Honor Device Co 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210986404.7A priority Critical patent/CN115437783B/zh
Publication of CN115437783A publication Critical patent/CN115437783A/zh
Application granted granted Critical
Publication of CN115437783B publication Critical patent/CN115437783B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种查杀方法、电子设备及可读存储介质,涉及设备系统技术领域;该方法可以通过学习同一应用在历史启动时的内存占用大小,得到下次启动时的内存所需大小,从而将内存所需大小作为下次启动时的查杀依据,通过该方法可以得到同一应用启动时较为合理的内存占用大小,从而预先能够对后台运行的应用程序进行查杀,提高应用程序的启动的速度;另外,还可以设置应用启动时在不同阶段设置不同的查杀水线,例如,在顶部Activity启动结束之前,选择较高的查杀水线,在顶部Activity启动结束之后,选择较低的查杀水线;从而通过较高的查杀水线杀死后台的进程,从而在应用启动过程中使得内存剩余空间较大,提高应用启动速度。

Description

一种查杀方法、电子设备及可读存储介质
技术领域
本申请涉及设备系统技术领域,尤其涉及一种查杀方法、电子设备及可读存储介质。
背景技术
随着电子设备的功能越来越强大,电子设备中运行的应用程序所需的内存空间越来越大,同时,为了快速打开应用程序,可以在用户结束使用应用程序时,将该应用程序退回到后台运行,后台运行的应用程序也会占用内存空间。
目前,可以设置查杀水线,在内存剩余空间小于或等于查杀水线的情况下,杀死后台运行的应用程序。然而,在新启动一个应用程序时,通常会需要消耗大量内存,在应用启动过程中。由于新启动的应用消耗内存空间导致内存剩余空间小于或等于查杀水线的情况下,再查杀后台运行的应用程序,将导致应用启动过程较慢。
发明内容
本申请提供一种查杀方法、电子设备及可读存储介质,可以提高应用的启动速度。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种查杀方法,包括:
电子设备监听到第一事件,第一事件与第一应用的启动相关;
电子设备获取第一应用在启动时的内存所需大小,内存所需大小由第一应用历史启动时的内存占用大小确定;
若电子设备的内存剩余空间和内存所需大小的差值小于或等于第一阈值,则电子设备对后台运行的应用程序进行查杀。
本申请中,在监听到与第一应用的启动相关的事件之后,可以获取第一应用历史启动时的内存占用大小,从而基于该历史启动时的内存占用大小确定本次启动时的内存所需大小,然后在内存剩余空间和内存所需大小的差值小于或等于第一阈值时,对后台运行的应用程序的进程查杀,以释放内存空间;在内存空间较大的情况下,系统分配给正在启动的应用程序的资源较多,从而能够提高第一应用的启动速度。
作为本申请第一方面的一种实现方式,该方法还包括:
电子设备监听到第二事件,第二事件与第一应用在启动时内存占用大小是否稳定相关;
电子设备对第一应用的内存占用大小进行采样,获得多个采样数据;
电子设备根据多个采样数据,得到第一应用本次启动时的内存占用大小,存储第一应用本次启动时的内存占用大小,第一应用本次启动时的内存占用大小用于确定第一应用下次启动时的内存所需大小。
本申请中,在第一应用启动时的内存占用大小稳定之后,可以对内存占用大小进行采样,然而,在第一应用下次启动时,本次启动时的内存占用大小可以作为下次启动时的内存所需大小的依据,从而可以通过学习的方法确定第一应用启动时的内存所需大小,避免查杀过多影响其他应用程序的保活,或者由于查杀过少导致启动过程中触发查杀水线后再查杀,影响启动速度。
作为本申请第一方面的另一种实现方式,电子设备根据多个采样数据,得到第一应用本次启动时的内存占用大小,包括:
电子设备计算多个采样数据的数据特征值,第一应用本次启动时的内存占用大小为多个采样数据的数据特征值。
作为本申请第一方面的另一种实现方式,电子设备计算多个采样数据的数据特征值包括:
电子设备将多个采样数据去除最大值和最小值,得到多个筛选数据;
电子设备计算多个筛选数据的数据特征值,多个采样数据的数据特征值为多个筛选数据的数据特征值。
本申请中,为避免启动过程中出现异常,或者采样时间设置的不合理,可以将多个采样数据中的最大值和最小值删除之后,再计算数据特征值,从而获得较为精确的内存占用大小。
作为本申请第一方面的另一种实现方式,电子设备计算多个筛选数据的数据特征值之前,该方法还包括:
电子设备计算多个筛选数据的标准差;
电子设备确定多个筛选数据的标准差小于第一值。
本申请中,经过测试发现应用在正常启动时,内存占用大小会趋于稳定,所以,为避免采集应用启动异常时的内存占用大小,可以计算筛选数据的标准差,基于该标准差确定数据集中的筛选数据才会得到本次启动时的内存占用大小,从而得到有效合理的内存占用大小,才能为后续启动提供有效合理的内存所需大小。
作为本申请第一方面的另一种实现方式,电子设备存储第一应用本次启动时的内存占用大小之后,该方法还包括:
电子设备获取属于第一应用的最晚存储的多个内存占用大小;
电子设备对多个内存占用大小进行滑动窗口滤波,得到多个内存占用大小的平均值,多个内存占用大小的平均值为第一应用下次启动时的内存所需大小。
本申请中,采用滑动窗口滤波的方式计算多个内存占用大小的平均值,使得多次计算得到的内存所需大小的平滑度较高,避免每次计算的内存所需大小的波动较大。
作为本申请第一方面的另一种实现方式,电子设备对多个内存占用大小进行滑动窗口滤波之前,该方法还包括:
电子设备确定多个内存占用大小的数量大于或等于5个。
本申请中,滑动窗口滤波的方式需要至少存在5个数据,所以,需要在实际应用中限定最晚存储的多个内存占用大小的数量大于或等于5。
作为本申请第一方面的另一种实现方式,该方法还包括:
电子设备确定多个内存占用大小的数量小于5个;
电子设备计算多个内存占用大小的平均值。
本申请中,在第一应用启动的次数或者获得的有效的内存占用大小的次数小于5时,可以采用直接计算平均值的方式确定第一应用下次启动时的内存所需大小。
作为本申请第一方面的另一种实现方式,第一事件包括:第一应用的开始启动的事件;第二事件包括:第一应用的顶部Activity启动完成的事件。
本申请中,为了在第一应用启动时能够及时查杀后台运行的应用程序,可以设置判断是否查杀的触发事件为第一应用开始启动时,为了能够获得稳定的采样数据,可以设置开始采样的触发事件为第一应用的顶部Activity启动完成之后。
作为本申请第一方面的另一种实现方式,电子设备监听到第二事件之后,该方法还包括:
若电子设备的内存剩余空间小于或等于第二阈值,则电子设备对后台运行的应用程序进行查杀,其中,第二阈值小于或等于第一阈值。
本申请中,在第一应用启动完成后,还需要根据内存剩余空间以及查杀水线(例如,第二阈值),确定是否为后台运行的其他应用程序进行查杀。
当然,实际应用中,第一应用启动完成前和启动完成后的查杀水线可以相同,也可以不同。例如,可以设置启动完成前的查杀水线大于启动完成后的查杀水线,使得启动过程中内存剩余空间较大,启动结束后内存剩余空间可以较小,即提升了应用程序的启动速度,又在启动结束后,提高其他应用程序的保活需求。
作为本申请第一方面的另一种实现方式,第二阈值小于第一阈值;
电子设备的查杀阈值包括第一级阈值和第二级阈值,第二级阈值高于第一级阈值,第二级阈值包括第一阈值和第二阈值,第一级阈值包括第三阈值和第四阈值;
若电子设备的内存剩余空间和内存所需大小的差值小于或等于第一阈值,则电子设备对后台运行的应用程序进行查杀,包括:
若电子设备的内存剩余空间和内存所需大小的差值小于或等于第一阈值,且大于第三阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若电子设备的内存剩余空间和内存所需大小的差值小于或等于第三阈值,则电子设备对后台运行的第一类应用程序和第二类应用程序进行查杀,第二类应用程序的保活需求大于第一类应用程序的保活需求。
本申请中,还可以设置多级查杀水线,从而根据内存剩余空间和多级查杀查杀水线的关系确定内存剩余空间较低时,优先杀死保活需求较低的应用程序;在内存剩余空间很低时,可以杀死保活需求较高的应用程序,在应用的快速启动和后台应用程序的保活之间平衡。
作为本申请第一方面的另一种实现方式,若电子设备的内存剩余空间小于或等于第二阈值,则电子设备对后台运行的应用程序进行查杀,包括:
若电子设备的内存剩余空间小于或等于第二阈值,且大于第四阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若电子设备的内存剩余空间小于或等于第四阈值,则电子设备对后台运行的第一类应用程序和第二类应用程序进行查杀,第四阈值小于第三阈值。
当然,在应用启动之后,也可以采用多级查杀水线,以在应用的快速运行和后台应用程序的保活之间平衡。
作为本申请第一方面的另一种实现方式,在电子设备获取第一应用在启动时的内存所需大小之前,该方法还包括:
电子设备确定电子设备中存储有第一应用的内存所需大小,其中,第二阈值等于第一阈值。
作为本申请第一方面的另一种实现方式,该方法还包括:
电子设备监听到第一事件;
电子设备确定电子设备中未存储第一应用的内存所需大小;
电子设备获取第一应用的内存设置大小,第一应用的内存设置大小为预先预估的第一应用启动时的内存消耗大小,第二阈值小于第一阈值,电子设备的查杀阈值包括第一级阈值和第二级阈值,第二级阈值高于第一级阈值,第二级阈值包括第一阈值和第二阈值,第一级阈值包括第三阈值和第四阈值;
若电子设备的内存剩余空间和内存设置大小的差值小于或等于第一阈值,且大于第三阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若电子设备的内存剩余空间和内存设置大小的差值小于或等于第三阈值,则电子设备对后台运行的第一类应用程序和第二类应用程序进行查杀,第二类应用程序的保活需求大于第一类应用程序的保活需求。
本申请中,可以设置在学习到内存所需大小的应用程序启动时采用学习到的内存所需大小判断是否需要查杀,并在需要查杀时及时查杀,及时释放内存,从而提高应用程序的启动速度。
也可以在未学习到内存所需大小的应用程序启动时采用启动过程中和启动完成后不同的查杀水线的方式,使得在启动过程中内存剩余空间较高,以提高应用程序启动的速度。
当然,也可以将两种方式同时应用在应用程序启动过程中和运行过程中,即可以设置在学习到内存所需大小的应用程序启动时采用学习到的内存所需大小判断是否需要查杀,并在需要查杀时及时查杀,及时释放内存,从而提高应用程序的启动速度,同时在判断是否需要查杀时,在启动过程中采用较高的查杀水线,在启动结束后采用较低的查杀水线。
提供了多样化的应用方式。
作为本申请第一方面的另一种实现方式,该方法还包括:
电子设备监听到第二事件之后,若电子设备的内存剩余空间小于或等于第二阈值,且大于第四阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若电子设备的内存剩余空间小于或等于第四阈值,则电子设备对后台运行的第一类应用程序和第二类应用程序进行查杀,第四阈值小于第三阈值。
第二方面,提供一种电子设备,包括处理器,处理器用于运行存储器中存储的计算机程序,实现本申请第一方面任一项的方法。
第三方面,提供一种芯片系统,包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本申请第一方面任一项的方法。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被一个或多个处理器执行时实现本申请第一方面任一项的方法。
第五方面,本申请提供了一种计算机程序产品,当计算机程序产品在设备上运行时,使得设备执行本申请第一方面任一项的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的一种应用启动过程中的内存剩余空间的变化示意图;
图3为本申请实施例提供的另一种应用启动过程中内存剩余空间的变化示意图;
图4为本申请实施例提供的一种查杀方法的技术架构示意图;
图5为本申请实施例提供的一种查杀方法的时序图;
图6为本申请实施例提供的一种应用启动过程中的内存占用大小的变化示意图;
图7为本申请实施例提供的另一种查杀方法的时序图;
图8为本申请实施例提供的一种应用启动结束前后查杀水线的变化示意图;
图9为本申请实施例提供的另一种查杀方法的流程示意图;
图10为本申请实施例提供的另一种查杀方法的时序图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”、“第四”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的查杀方法,可以适用于平板电脑、手机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备。本申请实施例对电子设备的具体类型不作限定。
图1示出了一种电子设备的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,摄像头193,显示屏194,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,触摸传感器180K等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)。
此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信号转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了监听语音信息,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
本申请实施例并未特别限定一种查杀方法的执行主体的具体结构,只要可以通过运行记录有本申请实施例的一种查杀方法的代码,以根据本申请实施例提供的一种查杀方法进行处理即可。例如,本申请实施例提供的一种查杀方法的执行主体可以是电子设备中能够调用程序并执行程序的功能模块,或者为应用于电子设备中的处理装置,例如,芯片。
电子设备的内存中可以运行一个或多个应用程序。在一个新的应用程序启动时,通常需要消耗大量内存,在电子设备的内存剩余空间较小时,为了保证该新的应用程序正常启动或快速启动,可以杀死电子设备的内存中当前正在运行的部分或全部其他应用程序(进程),以释放内存空间。系统杀死电子设备的内存中正在运行的部分或全部其他应用程序(进程)的过程可以记为系统查杀应用程序的过程。
在实际应用中,可以设置查杀水线。该查杀水线可以作为系统查杀应用程序的依据。例如,若内存剩余空间小于或等于查杀水线,则电子设备需要对内存中运行的应用程序(进程)进行查杀,以杀死内存中运行的部分或全部应用程序来释放内存,使得释放后的内存的剩余空间大于查杀水线。若内存剩余空间大于查杀水线,则电子设备不触发对内存中当前正在运行的应用程序的查杀。
由于不同应用程序的保活需求可能不同,因此,可以将系统中的应用程序分为至少两大类:保活需求高的应用程序和保活需求低的应用程序;将查杀水线分为两级查杀水线:一级查杀水线和二级查杀水线。二级查杀水线大于一级查杀水线。作为示例,二级查杀水线为1000MB,一级查杀水线为600MB。
当内存剩余空间小于或等于二级查杀水线、且大于一级查杀水线时,可以杀死保活需求低的应用程序,释放内存空间;当内存剩余空间小于或等于一级查杀水线时,可以杀死保活需求高的应用程序,释放内存空间。这种方式,可以在内存剩余空间较低(小于或等于二级查杀水线、且大于一级查杀水线)时,优先杀死保活需求低的应用程序,保活需求高的应用程序可以继续在后台运行;在内存剩余空间非常低(小于或等于一级查杀水线)时,为了系统正常运行,可以杀死保活需求高的应用程序。从而在后台正在运行的应用程序的保活和新启动的应用程序快速启动之间得到平衡。
当然,上述实施例仅用于举例,实际应用中,还可以设置一类应用程序为系统运行期间持续保活的应用程序。还可以设置多级查杀水线,对应的设置更多类别保活需求的应用程序。
在一些中低端电子设备中,为了提高后台应用程序的保活率,通常会将该查杀水线设置的较低,导致本来就不大的内存中运行较多的应用程序。而内存剩余空间越小,系统资源越紧张,分配到每个进程的资源将越少,对于单个进程的处理速度将越慢;所以,较常出现应用程序启动过程较慢的现象。
即使高端电子设备的配置较高,内存空间较大,然而,一些应用程序随着版本升级,启动和运行时占用内存越来越高,也会出现内存剩余空间较小的情况,所以,也会出现应用程序启动过程较慢的现象。
并且,在应用程序的启动过程中,内存被消耗到小于或等于查杀水线时,系统才会开始对内存中正在运行的其他应用程序进行查杀,导致查杀过程滞后,该应用程序启动过程也较慢。
另外,一些对内存消耗较大应用程序启动时,系统可能也无法确定正在启动的应用程序在启动过程中需要多少内存空间,导致系统查杀不及时,内存剩余空间也可能较小,也会出现应用启动过程较慢的现象。具体可参照图2所示的内存消耗较大的应用程序启动时内存变化示意图,该图示中的时间值仅用于表示时间变化,并不表示绝对意义上的时间值。
如图2所示,在时间0到时间6之间,该应用程序启动,逐渐消耗内存,内存剩余空间逐渐变小。
在时间6时,内存剩余空间降低至1000MB(二级查杀水线),此时,系统开始对后台运行的保活需求较低的应用程序进行查杀,以回收内存。
在6-12之间,系统一边回收内存,新启动的应用程序一边消耗内存;其中,回收内存大于消耗内存,则内存剩余空间将变大,回收内存小于消耗内存,内存剩余空间将变小。然而,内存剩余空间处于一级查杀水线(600MB)和二级查杀水线之间。
在12时,内存剩余空间降低(回收内存小于消耗内存)至一级查杀水线,此时,系统可以对后台运行的保活需求较高的应用程序进行查杀以回收内存。当然,当内存剩余空间降低至一级查杀水线之后,若后台仍然存在保活需求较低的应用程序,则可以优先查杀保活需求较低的应用程序。
在12时之后,系统一边回收内存,新启动的应用程序一边消耗内存,同样,回收内存大于消耗内存,则内存剩余空间将变大,回收内存小于消耗内存,内存剩余空间将变小。随着系统查杀的过程,内存剩余空间将越来越大,直至大于二级查杀水线。
通过该图示可以理解,随着时间推移,系统并不确定该应用程序启动过程所需的内存大小(是否会触及二级查杀水线和一级查杀水线),只是在确定内存剩余空间小于或等于二级查杀水线时,查杀一部分应用程序,若随着时间推移,查杀的应用程序还是不够的情况下,内存剩余空间将降低至(或小于)一级查杀水线,此时,继续查杀一部分应用程序。这种系统不能及时查杀,导致新启动的应用程序在启动过程中内存剩余空间降低至低于一级查杀水线,也会导致新启动的应用程序启动过慢的现象。
为了解决该问题,可以为启动过程中消耗内存较大的应用程序设置内存所需大小,在该应用程序启动时,系统杀死内存中后台运行的部分或全部应用程序,以将内存查杀到大于该内存所需大小,然而,这种方式经常导致多杀,影响后台应用的保活率。具体可参照图3所示的设置了内存所需大小的应用程序启动时内存变化示意图,该图示中的时间值仅用于表示时间变化,并不表示绝对意义上的时间值。
如图3所示,在应用程序启动过程中,内存剩余空间还未触及二级查杀水线,系统开始杀死后台正在运行的其他应用程序,以确保系统的内存剩余空间大于或等于最佳内存剩余空间。然而,实际上这种方式会导致多杀后台运行的应用程序,影响后台应用程序的保活率。
鉴于此,本申请实施例提供一种查杀方法,对不同应用启动时的内存占用大小进行监测,然后将该应用启动时的内存占用大小作为该应用后续启动时所需内存大小的依据,在该应用后续启动时,系统基于该应用的内存所需大小进行查杀。
参见图4,为本申请实施例提供的一种查杀方法的技术架构图。
电子设备的系统结构中存在应用层、Java框架层、原生框架层、内核层和硬件层。该技术架构图中仅示出与本申请实施例相关的层级结构,在实际应用中,还可以包括其他层级结构或者与本申请实施例划分不同的层级结构。
应用层存在多个应用程序,例如,应用程序1、应用程序2……应用程序N。这些应用程序可以为关闭状态、后台运行状态、前台运行状态等。应用程序在这些状态之间可以切换,例如,一个应用程序被启动之后,可以由关闭状态切换为前台运行状态。
Java框架层存在应用状态模块、内存管理模块。应用状态模块用于管理各个应用程序的状态。内存管理模块用于和其他模块配合实现本申请实施例提供的查杀方法。例如,内存管理模块可以实现对应用程序的状态的监听,在应用程序启动过程中识别该应用程序的内存占用大小,同一应用在后续再次启动时,将识别的内存占用大小作为该同一应用的内存所需大小的依据,从而在内存剩余空间较小时触发对后台正在运行的应用程序的查杀。
内存管理模块包括状态监听模块、内存大小识别模块和应用查杀处理模块。
状态监听模块用于从应用状态模块获取应用程序的状态;
内存大小识别模块用于在应用程序启动过程中识别该应用程序占用内存大小,并将该占用内存大小作为该应用程序后续启动时的内存所需大小的依据;
应用查杀处理模块用于在应用启动时基于该应用的内存所需大小判断内存剩余空间将触及查杀水线的情况下,触发对后台应用程序的查杀。
原生框架层存在文件模块。文件模块用于将内存大小识别模块识别的内存占用大小(或内存所需大小)生成文件。
内核层存在内存信息模块和文件读写模块。内存信息模块用于向内存大小识别模块提供内存当前剩余空间和应用启动过程中的内存占用大小;文件读写模块,用于将根据内存占用大小(或内存所需大小)生成的文件写入存储器或者从存储器读出。
硬件层存在存储器,该存储器用于存储内存占用大小(或内存所需大小)所在的文件。
基于该技术架构,可以实现如图5所示的查杀方法。
S101,状态监听模块监听应用的状态变化信息。
其中,应用的状态变化信息可以在Java框架层的应用状态模块获取到。
S102,状态监听模块监听到应用2(应用层中的任一应用程序)开始启动后,向内存大小识别模块发送启动信息,该启动信息携带当前开始启动的应用2的唯一标识,该启动信息用于指示内存大小识别模块对当前正在启动的应用2在启动过程中的内存占用大小进行采样。
S105,内存大小识别模块对当前正在启动的应用2在启动过程中的内存占用大小进行采样,获得内存占用大小的采样数据。
其中,内存大小识别模块可以从内核层的内存信息模块获取应用2启动过程中的内存占用大小的采样数据。
在实际应用中,可以在接收到启动信息之后,以预设的时间间隔(预设的采样周期)从内存信息模块获取应用2的内存占用大小的采样数据。
为了获得更精确的内存占用大小的采样数据,可以参照应用启动过程中的内存占用大小变化的示意图,具体可参照图6。
如图6所示,一个应用在启动的过程中,内存占用大小会逐渐变大,然后趋于稳定。通过测试多个应用的启动过程,发现内存占用大小会在应用的topActivity启动完成2s之内稳定。例如,图6中的应用在第1s之后内存占用大小开始稳定。
其中,topActivity为应用启动完成后,属于该应用的最顶部的界面(不包括广告页、空白页、过渡页等)对应的Activity。
本申请中,采样获得的内存占用大小为应用启动过程中需要占用的内存大小,也为下次启动时内存所需大小的依据,所以将重点对应用启动过程中内存占用大小稳定后的内存占用大小进行采样。为了避免采集到较多干扰的采样数据(例如,内存占用大小稳定之前的数据),可以在应用的topActivity完成启动之后再开始进行采样。
作为示例,可以在应用的topActivity完成启动之后(或者完成启动2s之后),以预设的时间间隔(例如,0.05s、0.1s、0.2s等)采集该应用的内存占用大小。
当然,开始以预设的时间间隔采集该应用的内存占用大小的触发条件或时间节点等不做限制,重点是在内存占用大小稳定之后开始采集。
鉴于上述描述,本申请实施例可以设置:内存大小识别模块在接收到应用2的topActivity完成启动之后,再开始对应用2的内存占用大小进行采样。
即在步骤S105之前,还包括步骤:
S103,状态监听模块监听应用2的topActivity启动结束的信息。
S104,状态监听模块监听到应用2的topActivity启动结束的信息之后,向内存大小识别模块发送topActivity启动结束的信息,该topActivity启动结束的信息也可以携带应用2的唯一标识。
另外,频繁采集内存占用大小也会增加CPU负担,因此,可以设置采集n次(例如,5次、6次、7次等)数据后停止采集。
S106,内存大小识别模块根据采样数据得到应用2本次启动过程中内存占用大小。
本申请中,在采样获得多个采样数据之后,可以将多个采样数据的数据特征值作为应用2本次启动过程中的内存占用大小。
作为示例,可以将多个采样数据中的平均值作为本次启动过程的内存占用大小;也可以将采样数据中的最大值作为本次启动过程中的内存占用大小;还可以将多个采样数据去除一个最大值和一个最小值之后剩余的采样数据的平均值作为本次启动过程中的内存占用大小;还可以将多个采样数据去除部分采样数据(例如,明显错误的点,偏离趋势的点等)后剩余的采样数据的平均值或最大值作为本次启动过程中的内存占用大小。
当然,该数据特征值还可以为多个采样数据的中位数、众数等,本申请实施例对得到n个采样数据的数据特征值的方式不做限定。
本申请实施例中计算的内存占用大小用于在后续同一应用启动时作为内存所需大小,为了避免数据不准确,可以在计算数据特征值的采样数据比较集中的情况下,才认为属于有效的数据特征值。其中,计算数据特征值的采样数据可以为扣除异常数据之后的数据,或者扣除最大值和最小值之后的数据。
作为示例,首先将n次采样数据去除一个最大值和一个最小值,然后计算n-2次数据(去除最大值和最小值之后的数据)的标准差,在标准差小于阈值的情况下,认为n-2次数据为有效的数据,再计算n-2次数据的平均值(中位数、众数、最大值等)。将该平均值(中位数、众数、最大值等)作为本次启动时的内存占用大小。否则,认为本次启动过程采集的数据为无效数据,丢弃。
作为另一示例,首先将n次采样数据去除3个异常数据,然后,计算n-3次数据(去除3个异常数据之后的数据)的标准差,在标准差小于阈值的情况下,认为n-3次数据为有效的数据,再计算n-3次数据的平均值(中位数、众数、最大值等)。将该平均值(中位数、众数、最大值等)作为本次启动时的内存占用大小。否则,认为本次启动过程采集的数据为无效数据,丢弃。
S107,内存大小识别模块将计算得到的应用2本次启动时的内存占用大小存储在存储器中。具体存储过程可以参照图4所示的技术架构中的相关描述,在此不再赘述。
通过上述方式,可以将应用本次启动过程的内存占用大小存储在存储器中,在同一应用下次启动时,可以从存储器读取该内存占用大小作为下次启动时的内存所需大小的依据。
如前所述,根据应用启动过程中的采样数据得到的内存占用大小可以作为同一应用在后续启动时内存所需大小的依据。所以,应用启动过程中,不仅需要执行S101至S107得到本次启动时的内存占用大小的流程,还需要执行将存储的历史内存占用大小作为本次启动时的内存所需大小的依据以进行查杀的流程。
鉴于此,本申请实施例可以将S101至S107作为应用2第1次启动(或还未得到有效的历史内存占用大小)时执行的流程,由于不存在存储的历史内存占用大小,所以,只需要采样获得启动时的内存占用大小,而未执行将内存占用大小作为内存所需大小的依据进行查杀的流程。
为了更清楚的理解本申请实施例提供的查杀方式,可以参照步骤S108至步骤S118,为同一应用下一次启动时的查杀流程。
S108,状态监听模块监听应用的状态变化信息。
该步骤可以参照步骤S101的描述,在此不再赘述。
S109,状态监听模块监听到应用2(应用层中的任一应用程序)开始启动后,向内存大小识别模块发送启动信息,该启动信息携带当前开始启动的应用2的唯一标识。
该启动信息用于指示内存大小识别模块对当前正在启动的应用2在启动过程中的内存占用大小进行采样。该启动信息还用于指示内存大小识别模块基于存储器存储的应用2的历史内存占用大小以及内存剩余空间确定是否执行查杀流程。
其中,在监听到应用2启动之后,第一方面需要获取应用2历史启动时的内存占用大小作为本次启动时的内存所需大小,以确定是否对后台当前正在运行的应用程序进行查杀,该方面可以参照步骤S110至S113。
第二方面还需要对应用2本次启动过程中的内存占用大小进行采样,以将本次启动过程中的内存占用大小作为应用2下次启动时是否进行查杀的依据,该方面可以参照步骤S114至S118,其中,S114至S118和S103至步骤S107相同。
在实际应用中,内存占用大小的采样通常在topActivity完成启动之后,而为了避免影响本次启动过程,查杀工作越早越好,所以,虽然如前所述的两方面流程可以同时执行,然而,实际应用中,第一方面可能会优先于第二方面执行。当然,具体执行先后顺序(以及完成顺序)是根据系统内部处理的结果,并不是具体的设定。
S110,内存大小识别模块从存储器获取存储的应用2的历史启动过程中的内存占用大小。
本申请实施例中,可以利用同一应用上一次启动时的内存占用大小作为本次启动时内存所需大小,当然,在上一次启动时的采样数据为无效数据丢弃的情况下,也可以利用上上次启动时的内存占用大小作为本次启动时的内存所需大小,即可以将同一应用对应的最晚存储(有效数据的情况下才会存储)的内存占用大小作为本次启动时的内存所需大小。
本申请实施例中,若存储器中仅存储了应用2历史1次的内存占用大小,则可以将历史1次的内存占用大小作为应用2本次启动时的内存所需大小。当然,实际应用中,也可以依据实际情况,将历史1次的内存占用大小加上或乘以一个常数(预先设置的正数、负数、大于1的数或小于1的数)得到的值作为本次启动时的内存所需大小。
S111,内存大小识别模块从内存信息模块获取内存剩余空间。
S112,内存大小识别模块将内存占用大小作为内存所需大小,和内存剩余空间发送给应用查杀处理模块。
S113,应用查杀处理模块根据内存所需大小、内存剩余空间和查杀水线,确定是否对后台的应用程序进行查杀。在本申请实施例中,在当前内存剩余空间减去内存所需大小后仍然大于查杀水线的情况下,则不需要对后台的应用程序进行查杀,在当前内存剩余空间减去内存所需大小后小于或等于查杀水线的情况下,需要对后台的应用程序进行查杀。
需要说明,此时的查杀水线可以为二级查杀水线,也可以为一级查杀水线。
如前所述,二级查杀水线和一级查杀水线的设置可以提高一些保活需求较高的应用程序的保活率,所以,在当前内存剩余空间减去内存所需大小后小于或等于二级查杀水线、且当前内存剩余空间减去内存所需大小后大于一级查杀水线的情况下,需要杀死后台运行的保活需求低的应用程序,释放内存空间。在当前内存剩余空间减去内存所需大小后小于或等于一级查杀水线的情况下,可以杀死后台运行的保活需求高的应用程序,当然,查杀时优先杀死后台运行的保活需求低的应用程序。
作为一个示例,二级查杀水线为1000MB,一级查杀水线为600MB,内存剩余空间为1200MB,应用启动的内存所需大小为500MB。则在当前内存剩余空间(1200MB)减去内存所需大小(500MB)后小于或等于二级查杀水线(1000MB)、且当前内存剩余空间(1200MB)减去内存所需大小(500MB)后大于一级查杀水线(600MB)的情况下,需要杀死后台运行的保活需求低的应用程序,释放内存空间。
即若不查杀的情况下,该应用启动过程中,内存剩余空间将降低至700MB,该应用启动过程中内存剩余空间(700MB)小于二级查杀水线(1000MB)、且大于一级查杀水线(600MB),所以,需要进行查杀,可以杀死后台运行的保活需求较低的应用程序。
应用启动过程中内存剩余空间(700MB)和二级查杀水线(1000MB)的差值还有300MB,所以,需要至少查杀释放300MB的内存空间。
S114,状态监听模块监听应用2的topActivity启动结束的信息。
S115,状态监听模块监听到应用2的topActivity启动结束的信息之后,向内存大小识别模块发送topActivity启动结束的信息,该topActivity启动结束的信息也可以携带应用2的唯一标识。
S116,内存大小识别模块对当前正在启动的应用2在启动过程中的内存占用大小进行采样,获得内存占用大小的采样数据。
S117,内存大小识别模块根据采样数据得到应用2本次启动过程中内存占用大小。
S118,内存大小识别模块将计算得到的应用2本次启动时的内存占用大小存储在存储器中。
如前所述,在存储器仅存储同一应用的一个历史内存占用大小的情况下,将该内存占用大小作为本次内存所需大小。在存储器存储同一应用的多个历史内存占用大小的情况下,可以基于多个历史内存占用大小计算本次启动时的内存所需大小。
作为另一示例,基于历史上最晚存储的M次启动时的内存占用大小的数据特征值作为本次启动时内存所需大小。
例如,若应用2本次启动为第j次启动,且存储器存储了多个内存占用大小,则可以选取最晚存储的M个内存占用大小的数据特征值作为本次启动时的内存所需大小。
其中,最晚存储的M个内存占用大小的数据特征值可以为最晚存储的M个内存占用大小的均值。由于存储的内存占用大小为验证过的有效数据,所以可以不再从最晚存储的M个内存占用大小中去除最大值和最小值。
当然,最晚存储的M个内存占用大小的数据特征值还可以为最晚存储的M个内存占用大小的加权平均值。计算最晚存储的M个内存占用大小的数据特征值时,还可以采用滑动窗口滤波算法。
滑动窗口滤波算法是在多个数据组成的数据队列中,设置宽度为定值(例如,4)的滑块,该滑块在该数据队列上从左到右(或者从右到左)进行滑动,在滑块位于数据队列的不同位置时,计算滑块内最左侧和最右侧的数据的差值,找到差值最小的两组(4个)数据,计算该两组(4)个数据的平均值。若采用该方法,则需要该数据队列中至少存在5个数据(5个内存占用大小)。因此,可以设置M为大于或等于5的值,在存储器存储的同一应用的内存占用大小的个数大于或等于M时,选取最晚存储的M个内存占用大小,并采用滑动窗口滤波算法计算平均值,得到本次启动时的内存所需大小;若在存储器存储的同一应用的内存占用大小的个数小于M时,选取存储的全部内存占用大小,若全部内存大小大于或等于5,则采用滑动窗口滤波算法计算平均值,得到本次启动时的内存所需大小;若全部内存大小小于5,则直接计算存储的该应用的全部内存占用大小的平均值。
通过该步骤可以理解,应用每次启动时会从存储器获取本应用历史启动时的内存占用大小,根据获取的一个或多个最晚存储的内存占用大小得到本次启动时的内存所需大小。在本次启动过程中的topActivity(顶部Activity)启动完成后,对本次启动过程中的内存占用大小进行采样,从而在采样的数据为有效数据的情况下,将本次得到的内存占用大小存储在存储器,以便下次启动时使用。
另外,还需要说明,应用的冷启动过程为从系统开始创建进程一直到启动完成,所以,应用的冷启动过程的内存占用大小相对稳定,所以,本申请实施例可以应用在应用的冷启动过程中。
如前所述,在应用每次启动过程中获取到采样数据之后,根据采样数据得到本次启动过程中的内存占用大小,将应用本次启动过程中的内存占用大小存储在存储器中;在应用下次启动时可以获取存储器中存储的该应用的最晚的多个内存占用大小,然后基于内存占用大小确定内存所需大小。然而,基于多个历史内存占用大小确定内存所需大小的过程需要消耗时间,若设置在监测到应用启动时或应用启动过程中,则不利于应用启动时的提前查杀(在内存占用大小稳定之前查杀,可以及时释放内存),有可能影响应用的启动过程。因此,本申请实施例还可以设置在应用每次启动过程中获取到采样数据之后(此时内存的topActivity已经启动完成,内存占用大小已经稳定),根据采样数据得到本次启动过程中的内存占用大小,将应用本次启动过程中的内存占用大小存储在存储器中;然后,获取存储器中该应用的存储最晚的多个内存占用大小,基于内存占用大小确定下次启动时的内存所需大小,将该内存所需大小存储在存储器中。在应用下次启动时可以从存储器直接获取内存所需大小,不再执行根据多个内存占用大小计算内存所需大小的过程,节省时间,可以在应用下次启动时提前查杀(在内存占用大小稳定之前查杀,可以及时释放内存),有利用应用的快速启动。参见图7,为本申请实施例提供的该另一查杀流程。
S201,状态监听模块监听应用的状态变化信息。
S202,状态监听模块监听到应用2(应用层中的任一应用程序,也可以记为第一应用)开始启动后,向内存大小识别模块发送启动信息,该启动信息携带当前开始启动的应用2的唯一标识。
需要说明,在实际应用中,应用2开始启动的信息可以为电子设备监听到的事件触发生成,该事件可以为从用户的启动应用2的操作到状态监听模块监听到应用2开始启动之间的任一事件。例如,该事件可以为用户点击系统桌面上应用2的图标的操作。为了便于区分,该事件可以记为第一事件。
S203,内存大小识别模块从存储器获取存储的应用2的历史启动过程中的内存所需大小。
S204,内存大小识别模块从内存信息模块获取内存剩余空间。
S205,内存大小识别模块将内存所需大小和内存剩余空间发送给应用查杀处理模块。
S206,应用查杀处理模块根据内存所需大小、内存剩余空间和查杀水线,确定是否对后台的应用程序进行查杀。
S207,状态监听模块监听应用2的topActivity启动结束的信息。
S208,状态监听模块监听到应用2的topActivity启动结束的信息之后,向内存大小识别模块发送topActivity启动结束的信息,该topActivity启动结束的信息也可以携带应用2的唯一标识。
S209,内存大小识别模块在接收到应用2的topActivity启动完成之后或第一时长后,内存大小识别模块对当前正在启动的应用2在启动过程中的内存占用大小进行采样,获得内存占用大小的采样数据。
需要说明,本申请实施例中,触发内存大小识别模块对当前正在启动的应用2在启动过程中的内存占用大小进行采样的事件可以记为第二事件,该第二事件可以为应用2的topActivity启动完成,还可以为计时器到应用2的topActivity启动完成后的第一时长。当然,实际应用中,第二事件为应用2启动时内存占用大小开始稳定或稳定之后的事件,所以,在实际应用中,若经过测试还可以以其他事件衡量应用2的内存占用大小已经稳定,则该其他事件也可以为第二事件。
S210,内存大小识别模块根据采样数据得到应用2本次启动过程中内存占用大小。
S211,内存大小识别模块将应用2本次启动过程中的内存占用大小存储在存储器。
S212,内存大小识别模块从存储器获取应用2的最晚存储的M次内存占用大小。
S213,内存大小识别模块基于最晚存储的M次内存占用大小计算下次启动时的内存所需大小。
S214,内存大小识别模块将下次启动时的内存所需大小存储在存储器中。
在实际应用中,内存大小识别模块也可以在根据采样数据得到本次启动过程中的内存占用大小之后,先不存储本次启动过程中的内存占用大小,先获取存储器中最晚存储的本应用的M-1次内存占用大小,然后基于获取的M-1次内存占用大小和本次启动过程中的内存占用大小,计算下次启动时的内存所需大小;最后将下次启动时的内存所需大小和本次启动过程中的内存占用大小存储在存储器中,本申请实施例对具体实现方式不做限制。
需要说明,虽然步骤S203至步骤206描述的查杀过程在S209至S214描述的采样过程之前,然而,实际应用中,查杀过程和采样过程是独立的两个过程,可能存在时间上的交叉,例如,查杀过程还没结束,采样过程已经开始。
另外,本申请实施例中,无论是技术架构还是上述流程中的各个模块的划分可以重新划分,实际应用中,多个模块可以合并为一个模块,一个模块也可以拆分为多个模块。
另外,各个模块执行的步骤实现的功能也可以重新设置,实际应用中,上述实施例中在一个模块执行的步骤或者实现的功能也可以通过其他模块实现。
作为本申请另一实施例,查杀水线也是可以调节的。在实际应用中,为了提高用户体验,需要将应用的启动速度加快,所以,在应用的topActivity启动结束之前的查杀水线设置的较高,在应用的topActivity启动结束之后,再将查杀水线降低一定数值。即监测到应用开始启动,查杀水线调整为第一值,在监测到应用的topActivity启动完成,查杀水线调整为第二值,第一值大于第二值。通过设置应用启动时的查杀水线较高,可以使得应用启动过程中系统的内存剩余空间较多,系统不那么繁忙,有足够的资源分配给正在启动的应用,所以,可以提高应用启动的速度,进而提高用户体验。
当然,实际应用中,在存在多级查杀水线的情况下,可以将多级查杀水线均设置为应用启动过程中(topActivity启动结束之前)的查杀水线高于应用启动结束后(topActivity启动结束之后)的查杀水线。
作为示例,参见图8,可以设置应用的topActivity启动结束之前的二级查杀水线为1200MB,应用的topActivity启动结束之后的二级查杀水线为1000MB,应用的topActivity启动结束之前的一级查杀水线为800MB,应用的topActivity启动结束之后的一级查杀水线为600MB。
基于上述示例可以理解,电子设备的查杀阈值(查杀水线)包括第一级阈值(一级查杀水线)和第二级阈值(二级查杀水线),第二级阈值高于第一级阈值,第二级阈值包括第一阈值和第二阈值,第一级阈值包括第三阈值和第四阈值。
在topActivity启动结束之前,若电子设备的内存剩余空间和内存所需大小的差值小于或等于第一阈值,且大于第三阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若电子设备的内存剩余空间和内存所需大小的差值小于或等于第三阈值,则电子设备对后台运行的第一类应用程序和第二类应用程序进行查杀,第二类应用程序的保活需求大于第一类应用程序的保活需求。
在topActivity启动结束之后,若电子设备的内存剩余空间小于或等于第二阈值,且大于第四阈值,则电子设备对后台运行的第一类应用程序进行查杀。
若电子设备的内存剩余空间小于或等于第四阈值,则电子设备对后台运行的第一类应用程序和第二类应用程序进行查杀,第四阈值小于第三阈值。
当然,上述数值仅用于举例,在实际应用中,还可以根据电子设备本身的内存设置更多级别的查杀水线,以及其他数值作为查杀水线。
在实际应用中,可以将应用的topActivty启动是否完成作为查杀水线调整的依据,当然,实际应用中,也可以将应用启动过程中的其他时间节点作为查杀水线调整的依据。
作为一个示例,该查杀方法可以参照图9所示的流程示意图。
在应用开始启动之后,电子设备获取内存剩余空间、启动的应用的内存所需大小和高值查杀水线;其中,该内存所需大小可以为预先为应用设置的启动时的内存所需大小,也可以为上述实施例中学习到的内存所需大小,例如,从存储器获取的应用的内存所需大小或者从存储器获取的最晚存储的应用的M个内存占用大小计算得到的内存所需大小。当只有一级查杀水线时,该高值查杀水线为应用的topActivty启动完成之前的查杀水线值,低值查杀水线为应用的topActivty启动完成之后的查杀水线值。当存在多级查杀水线时,高值查杀水线为应用的topActivty启动完成之前的每级查杀水线值,低值查杀水线为应用的topActivty启动完成之后的每级查杀水线值。例如,高值查杀水线为图8所示实施例中的1200MB(应用的topActivty启动完成之前的二级查杀水线)和800MB(应用的topActivty启动完成之前的一级查杀水线);低值查杀水线为图8所示实施例中的1000MB(应用的topActivty启动完成之后的二级查杀水线)和600MB(应用的topActivty启动完成之后的一级查杀水线)。
电子设备根据获取的内存剩余空间、内存所需大小和高值查杀水线确定是否会触发查杀;例如,在内存剩余空间减去内存所需大小小于或等于高值二级查杀水线(应用的topActivty启动完成之前的二级查杀水线)、且内存剩余空间减去内存所需大小大于高值一级查杀水线(应用的topActivty启动完成之前的一级查杀水线)的情况下,将会触发查杀,且查杀保活需求较低的应用程序。在内存剩余空间减去内存所需大小小于或等于高值一级查杀水线的情况下,将会触发查杀,且可以查杀保活需求较高的应用程序。
当然,在查杀过程中,也可以监测内存剩余空间是否大于高值查杀水线,若内存剩余空间大于高值查杀水线,则结束查杀;若内存剩余空间不大于高值查杀水线,则继续查杀。
在应用的topActivity启动完成之后,电子设备获取内存剩余空间和低值查杀水线。
电子设备判断内存剩余空间是否大于低值查杀水线,以确定是否会触发查杀。例如,在内存剩余空间小于或等于低值二级查杀水线(应用的topActivty启动完成之后的二级查杀水线)、且内存剩余空间大于低值一级查杀水线(应用的topActivty启动完成之后的一级查杀水线)的情况下,将会触发查杀,且查杀保活需求较低的应用程序。在内存剩余空间小于或等于低值一级查杀水线的情况下,将会触发查杀,且可以查杀保活需求较高的应用程序。
当然,在查杀过程中,也可以监测内存剩余空间是否大于低值查杀水线,若内存剩余空间大于低值查杀水线,则结束查杀;若内存剩余空间不大于低值查杀水线,则继续查杀。
在实际应用中,在监测到应用开始启动之后,若存储器存储了该应用的历史内存占用大小或根据历史内存占用大小确定的内存所需大小,则可以执行图5或图7所示的实施例。若存储器未存储该应用的历史内存占用大小或根据历史内存占用大小确定的内存所需大小,则可以获取为该应用设置的内存设置大小(预先预估的所述第一应用启动时的内存消耗大小),并执行图9所示的实施例。
当然,实际应用中,也可以同时执行图5或图7中的一个实施例以及图9所示的实施例。即在存储器存储了该应用的历史内存占用大小或根据历史内存占用大小确定的内存所需大小的情况下,将内存所需大小作为查杀的依据,同时,执行应用的topActivity启动完成前后不同查杀水线的方案。也可以理解为,内存剩余空间、内存所需大小和高值查杀水线一起作为应用的topActivity启动完成前的查杀依据;内存剩余空间和低值查杀水线一起作为应用的topActivity启动完成后的查杀依据。
作为本申请另一实施例,参照图10所示的查杀方法的时序图。
S401,状态监听模块监听应用的状态变化信息。
S402,状态监听模块监听到应用2(应用层中的任一应用程序)开始启动后,向内存大小识别模块发送启动信息,该启动信息携带当前开始启动的应用2的唯一标识。
S403,内存大小识别模块从存储器获取存储的应用2的历史启动过程中的内存所需大小。
S404,内存大小识别模块从内存信息模块获取内存剩余空间。
S405,内存大小识别模块将内存所需大小和内存剩余空间发送给应用查杀处理模块。
S406,应用查杀处理模块根据内存所需大小、内存剩余空间和高值查杀水线,确定是否对后台的应用程序进行查杀。需要说明,查杀水线也可以存储在存储器中,还可以设置在应用查杀处理模块的应用程序中。若设置在存储器中,内存大小识别模块可以获取该查杀水线后发送给应用查杀处理模块,应用查杀处理模块也可以直接从存储器获取该查杀水线。
在实际应用中,可以通过应用查杀处理模块指示其他模块执行查杀操作,例如,向其他模块发送查杀指令,以指示其他模块进行查杀操作。
S407,状态监听模块监听应用2的topActivity启动结束的信息。
S408,状态监听模块监听到应用2的topActivity启动结束的信息之后,向内存大小识别模块发送topActivity启动结束的信息,该topActivity启动结束的信息也可以携带应用2的唯一标识。
S409,内存大小识别模块接收到启动结束信息之后,从内存信息模块获取内存剩余空间。
S410,内存大小识别模块向应用查杀处理模块发送内存剩余空间。
S411,应用查杀处理模块基于内存剩余空间和低值查杀水线判断是否触发查杀。
当然,触发查杀的情况下,将开始查杀。
S412,内存大小识别模块在接收到应用2的topActivity启动结束的信息后的第一时长,对应用2的内存占用大小进行采样,获得采样数据。
S413,内存大小识别模块根据采样数据得到应用2本次启动过程中内存占用大小。
S414,内存大小识别模块将应用2本次启动过程中的内存占用大小存储在存储器。
S415,内存大小识别模块从存储器获取应用2的最晚存储的M个内存占用大小;
S416,内存大小识别模块基于最晚存储的M个内存占用大小计算下次启动时的内存所需大小。
S417,内存大小识别模块将应用2下次启动时的内存所需大小存储在存储器中。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备可实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到第一设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实施例还提供了一种芯片系统,芯片系统包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本申请任一方法实施例的步骤。芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (16)

1.一种查杀方法,其特征在于,包括:
电子设备监听到第一事件,所述第一事件与第一应用的启动相关;
所述电子设备获取所述第一应用在启动时的内存所需大小,所述内存所需大小由所述第一应用历史启动时的内存占用大小确定;
若所述电子设备的内存剩余空间和所述内存所需大小的差值小于或等于第一阈值,则电子设备对后台运行的应用程序进行查杀;
所述电子设备监听到第二事件,所述第二事件与所述第一应用在启动时内存占用大小是否稳定相关;
若所述电子设备的内存剩余空间小于或等于第二阈值,则电子设备对后台运行的应用程序进行查杀,所述第二阈值小于所述第一阈值;
其中,所述若所述电子设备的内存剩余空间和所述内存所需大小的差值小于或等于第一阈值,则所述电子设备对后台运行的应用程序进行查杀,包括:
若所述电子设备的内存剩余空间和所述内存所需大小的差值小于或等于第一阈值,且大于第三阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若所述电子设备的内存剩余空间和所述内存所需大小的差值小于或等于所述第三阈值,则所述电子设备对后台运行的第一类应用程序和第二类应用程序进行查杀,所述第二类应用程序的保活需求大于第一类应用程序的保活需求。
2.如权利要求1所述的方法,其特征在于,所述电子设备监听到第二事件之后,所述方法还包括:
所述电子设备对所述第一应用的内存占用大小进行采样,获得多个采样数据;
所述电子设备根据所述多个采样数据,得到所述第一应用本次启动时的内存占用大小,存储所述第一应用本次启动时的内存占用大小,所述第一应用本次启动时的内存占用大小用于确定所述第一应用下次启动时的内存所需大小。
3.如权利要求2所述的方法,其特征在于,所述电子设备根据所述多个采样数据,得到所述第一应用本次启动时的内存占用大小,包括:
所述电子设备计算所述多个采样数据的数据特征值,所述第一应用本次启动时的内存占用大小为所述多个采样数据的数据特征值。
4.如权利要求3所述的方法,其特征在于,所述电子设备计算所述多个采样数据的数据特征值包括:
所述电子设备将所述多个采样数据去除最大值和最小值,得到多个筛选数据;
所述电子设备计算所述多个筛选数据的数据特征值,所述多个采样数据的数据特征值为所述多个筛选数据的数据特征值。
5.如权利要求4所述的方法,其特征在于,所述电子设备计算所述多个筛选数据的数据特征值之前,所述方法还包括:
所述电子设备计算所述多个筛选数据的标准差;
所述电子设备确定所述多个筛选数据的标准差小于第一值。
6.如权利要求2所述的方法,其特征在于,所述电子设备存储所述第一应用本次启动时的内存占用大小之后,所述方法还包括:
所述电子设备获取属于所述第一应用的最晚存储的多个内存占用大小;
所述电子设备对所述多个内存占用大小进行滑动窗口滤波,得到所述多个内存占用大小的平均值,所述多个内存占用大小的平均值为所述第一应用下次启动时的内存所需大小。
7.如权利要求6所述的方法,其特征在于,所述电子设备对所述多个内存占用大小进行滑动窗口滤波之前,所述方法还包括:
所述电子设备确定所述多个内存占用大小的数量大于或等于5个。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述电子设备确定所述多个内存占用大小的数量小于5个;
所述电子设备计算所述多个内存占用大小的平均值。
9.如权利要求1至8任一项所述的方法,其特征在于,所述第一事件包括:所述第一应用的开始启动的事件;所述第二事件包括:所述第一应用的顶部Activity启动完成的事件。
10.如权利要求1所述的方法,其特征在于,
所述电子设备的查杀阈值包括第一级阈值和第二级阈值,所述第二级阈值高于所述第一级阈值,所述第二级阈值包括所述第一阈值和所述第二阈值,所述第一级阈值包括第三阈值和第四阈值。
11.如权利要求10所述的方法,其特征在于,若所述电子设备的内存剩余空间小于或等于第二阈值,则电子设备对后台运行的应用程序进行查杀,包括:
若所述电子设备的内存剩余空间小于或等于所述第二阈值,且大于所述第四阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若所述电子设备的内存剩余空间小于或等于所述第四阈值,则所述电子设备对后台运行的所述第一类应用程序和所述第二类应用程序进行查杀,所述第四阈值小于所述第三阈值。
12.如权利要求1所述的方法,其特征在于,在所述电子设备获取所述第一应用在启动时的内存所需大小之前,所述方法还包括:
所述电子设备确定所述电子设备中存储有所述第一应用的内存所需大小。
13.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述电子设备监听到第一事件;
所述电子设备确定所述电子设备中未存储所述第一应用的内存所需大小;
所述电子设备获取所述第一应用的内存设置大小,所述第一应用的内存设置大小为预先预估的所述第一应用启动时的内存消耗大小,所述第二阈值小于所述第一阈值,所述电子设备的查杀阈值包括第一级阈值和第二级阈值,所述第二级阈值高于所述第一级阈值,所述第二级阈值包括所述第一阈值和所述第二阈值,所述第一级阈值包括第三阈值和第四阈值;
若所述电子设备的内存剩余空间和所述内存设置大小的差值小于或等于所述第一阈值,且大于所述第三阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若所述电子设备的内存剩余空间和所述内存设置大小的差值小于或等于所述第三阈值,则所述电子设备对后台运行的第一类应用程序和第二类应用程序进行查杀,所述第二类应用程序的保活需求大于第一类应用程序的保活需求。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
所述电子设备监听到所述第二事件之后,若所述电子设备的内存剩余空间小于或等于所述第二阈值,且大于所述第四阈值,则电子设备对后台运行的第一类应用程序进行查杀;
若所述电子设备的内存剩余空间小于或等于所述第四阈值,则所述电子设备对后台运行的所述第一类应用程序和所述第二类应用程序进行查杀,所述第四阈值小于所述第三阈值。
15.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于运行存储器中存储的计算机程序,以使得所述电子设备实现如权利要求1至14任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现如权利要求1至14任一项所述的方法。
CN202210986404.7A 2022-08-17 2022-08-17 一种查杀方法、电子设备及可读存储介质 Active CN115437783B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210986404.7A CN115437783B (zh) 2022-08-17 2022-08-17 一种查杀方法、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210986404.7A CN115437783B (zh) 2022-08-17 2022-08-17 一种查杀方法、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN115437783A CN115437783A (zh) 2022-12-06
CN115437783B true CN115437783B (zh) 2023-08-04

Family

ID=84241705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210986404.7A Active CN115437783B (zh) 2022-08-17 2022-08-17 一种查杀方法、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN115437783B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824673A (zh) * 2016-03-21 2016-08-03 乐视网信息技术(北京)股份有限公司 一种应用程序的运行方法和装置
CN110221921A (zh) * 2019-06-13 2019-09-10 深圳Tcl新技术有限公司 内存管理方法、终端及计算机可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102946486A (zh) * 2012-11-20 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的后台应用自动清理方法及手机
CN105975348A (zh) * 2016-05-31 2016-09-28 宇龙计算机通信科技(深圳)有限公司 一种内存优化方法、优化装置以及终端
CN107766128B (zh) * 2016-08-17 2021-01-29 华为技术有限公司 一种启动应用的方法及装置
CN106528216A (zh) * 2016-10-26 2017-03-22 深圳市金立通信设备有限公司 一种启动应用程序的方法及终端
CN107346285A (zh) * 2017-05-26 2017-11-14 郑州云海信息技术有限公司 一种内存泄露检测方法及装置
CN112363841B (zh) * 2020-11-27 2022-11-04 Oppo(重庆)智能科技有限公司 应用进程的查杀方法、装置、电子设备及存储介质
CN115809139A (zh) * 2021-06-16 2023-03-17 荣耀终端有限公司 内存管理的方法及电子设备
CN113626203B (zh) * 2021-08-27 2024-02-13 广东九联科技股份有限公司 用于安卓系统的内存环境实时优化方法及系统
CN113986559B (zh) * 2021-12-24 2022-06-24 荣耀终端有限公司 内存管理方法和相关装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824673A (zh) * 2016-03-21 2016-08-03 乐视网信息技术(北京)股份有限公司 一种应用程序的运行方法和装置
CN110221921A (zh) * 2019-06-13 2019-09-10 深圳Tcl新技术有限公司 内存管理方法、终端及计算机可读存储介质

Also Published As

Publication number Publication date
CN115437783A (zh) 2022-12-06

Similar Documents

Publication Publication Date Title
US11244672B2 (en) Speech recognition method and apparatus, and storage medium
CN107122760A (zh) 指纹识别方法及相关产品
CN113448482B (zh) 触控屏的滑动响应控制方法及装置、电子设备
CN115858046B (zh) 一种预加载内存页的方法、电子设备及芯片系统
CN111273769B (zh) 一种设备控制方法、装置、电子设备及存储介质
CN105979566A (zh) 一种网络连接方法、装置及移动终端
CN115437783B (zh) 一种查杀方法、电子设备及可读存储介质
CN114968543A (zh) 文件页的处理方法及相关装置
CN116048679B (zh) 一种图层的处理方法、电子设备及可读存储介质
CN117135721B (zh) 网络接入方法及终端设备
CN111294470A (zh) 呼叫处理方法、装置、设备及存储介质
CN115562742B (zh) 应用启动方法、电子设备及可读存储介质
CN107154996B (zh) 来电拦截方法、装置、存储介质及终端
CN115878500A (zh) 内存回收方法、装置、电子设备及可读存储介质
CN116820734A (zh) 一种控制内存的方法和电子设备
CN110532748B (zh) 电池管理方法及相关产品
CN113011497A (zh) 图像比对方法和系统
CN115543470B (zh) 应用启动方法、电子设备及可读存储介质
CN116707050B (zh) 充放电次数记录方法、装置、电子设备及可读存储介质
CN110972166B (zh) 网络处理方法及装置、存储介质、终端设备
CN118450241B (zh) 图像处理方法及相关装置
CN116028265B (zh) 一种快照获取方法、电子设备及可读存储介质
CN116048196B (zh) 开合盖检测方法及相关装置
CN116700592B (zh) 一种单击操作的响应方法、电子设备及芯片系统
CN117707988A (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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Terminal Co.,Ltd.

Country or region after: China

Address before: 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong

Patentee before: Honor Device Co.,Ltd.

Country or region before: China