CN113886060B - 压缩内存的方法和装置 - Google Patents
压缩内存的方法和装置 Download PDFInfo
- Publication number
- CN113886060B CN113886060B CN202110594335.0A CN202110594335A CN113886060B CN 113886060 B CN113886060 B CN 113886060B CN 202110594335 A CN202110594335 A CN 202110594335A CN 113886060 B CN113886060 B CN 113886060B
- Authority
- CN
- China
- Prior art keywords
- app
- time
- state
- weight
- foreground
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供了一种压缩内存的方法和装置,能够避免对活跃的APP进行内存压缩,从而减小内存压缩总量和电子设备的功耗。该方法包括:监控APP的状态,APP的状态包括前台状态、后台状态和冷冻状态;当检测到APP的状态发生变化时,根据第一前台权重和第二前台权重更新APP的分数,其中,第一前台权重为APP从后台状态切换至前台状态的权重,第二前台权重为APP从冷冻状态切换至前台状态的权重,APP的分数与第一前台权重负相关,并且,APP的分数与所述第二前台权重负相关;确定APP的分数的次序;当内存低于第一阈值时,根据APP的分数的次序确定是否对APP进行内存压缩。
Description
技术领域
本申请涉及存储领域,具体涉及一种压缩内存的方法和装置。
背景技术
内存(memory)是电子设备的组成部分,当电子设备运行应用程序(application,APP)时,与APP运行相关的数据可以暂时存放在内存中,等待处理器调用。若内存资源不足,则处理器可能需要等待一段时间才能获取APP运行所需的数据,因此,内存资源的使用情况与APP运行情况(如启动速率)存在关联关系。
为了提高内存资源利用率,需要对内存资源的使用情况进行管理。一种管理内存资源的方法是基于可用内存的大小调整内存,例如,当可用内存小于预设值时,处理器可以压缩处于后台状态或者冷冻状态的APP的内存,以满足APP对内存资源的需求。但是,如果上述APP选取不当,可能导致活跃的APP的内存被压缩,最终导致内存压缩总量增加以及电子设备的功耗上升。因此,如何避免对活跃的APP进行内存压缩是当前需要解决的问题。
发明内容
本申请提供了一种压缩内存的方法和装置,能够避免对活跃的APP进行内存压缩,从而减小内存压缩总量和电子设备的功耗。
第一方面,提供了一种压缩内存的方法,包括:监控APP的状态,所述APP的状态包括前台状态、后台状态和冷冻状态;当检测到所述APP的状态发生变化时,根据第一前台权重和第二前台权重更新所述APP的分数,其中,所述第一前台权重为所述APP从所述后台状态切换至所述前台状态的权重,所述第二前台权重为所述APP从所述冷冻状态切换至所述前台状态的权重,所述APP的分数与所述第一前台权重负相关,并且,所述APP的分数与所述第二前台权重负相关;确定所述APP的分数的次序;当内存低于第一阈值时,根据所述APP的分数的次序确定是否对所述APP进行内存压缩。
第一前台权重和第二前台权重反映了APP的活跃度。当第一前台权重和第二前台权重较高时,说明APP的活跃度较高,此时APP的分数较低,分数次序也较低(对应的内存压缩优先级降低),从而减小了活跃度较高的APP被内存压缩的概率;当第一前台权重和第二前台权重较低时,说明APP的活跃度较低,此时APP的分数较高,分数次序也较高(对应的内存压缩优先级提高),从而提高了活跃度较低的APP被内存压缩的概率。因此,上述方法能够使电子设备选择合适的APP进行压缩,避免因APP选择不当导致内存压缩总量增加以及电子设备的功耗上升。
可选地,所述根据第一前台权重和第二前台权重更新所述APP的分数,包括:根据所述第一前台权重、所述第二前台权重、冷冻权重和解冻权重更新所述APP的分数,其中,所述APP的分数与所述冷冻权重负相关,并且,所述APP的分数与所述解冻权重负相关。
冷冻权重是APP从后台状态向冷冻状态切换的权重,解冻权重是APP从冷冻状态向后台状态切换的权重,这两个权重从另外两个维度反映了APP的活跃度,同时基于第一前台权重、第二前台权重、冷冻权重和解冻权重确定APP的分数,使得APP的分数更准确地反映了APP的活跃度。
可选地,所述第一前台权重、所述第二前台权重、所述冷冻权重和所述解冻权重为固定权重。
固定权重能够减小电子设备更新APP分数时的计算量,从而减小电子设备的功耗。
可选地,所述根据第一前台权重和第二前台权重更新所述APP的分数,包括:根据所述APP在N个时段内的第一前台权重确定所述APP的后台总分,所述后台总分与所述N个时段内的第一前台权重的和负相关,所述N为大于1的正整数;根据所述APP在所述N个时段内的第二前台权重确定所述APP的冷冻总分,所述冷冻总分与所述N个时段内的第二前台权重的和负相关;根据所述后台总分与所述冷冻总分更新所述APP的分数,所述APP的分数与所述后台总分与所述冷冻总分的和正相关。
通过多个时段的第一前台权重和第二前台权重更新APP的分数,能够避免偶然事件导致APP的分数剧烈变动,从而避免因APP的分数剧烈变动导致的内存压缩总量增加以及电子设备的功耗上升。
可选地,所述N个时段包括第一时段,当所述APP在所述第一时段内的第一时刻从所述后台状态切换至所述前台状态时,所述第一时刻的第一前台权重与第一参考时刻到所述第一时刻的时长负相关,其中,所述第一参考时刻为所述第一时段的起始时刻,或者,所述第一参考时刻为所述APP上一次从所述后台状态切换至所述前台状态的时刻;当所述APP在所述第一时段内未从所述后台状态切换至所述前台状态时,所述第一时段的第一前台权重与所述第一时段的时长负相关。
当APP在第一时段从后台状态切换至前台状态时,说明APP的活跃度升高,此时需要减小后台总分以降低APP的内存压缩优先级。第一前台权重与第一参考时刻到第一时刻的时长负相关,使得较早切换至前台状态的APP能够获得较高的第一前台权重,从而得到更低的后台总分,进而降低了活跃度较高的APP的内存压缩优先级。
当APP在第一时段未从后台状态切换至前台状态时,说明APP的活跃度较低,此时需要增大后台总分以提高APP的内存压缩优先级。第一前台权重与第一时段的时长负相关,使得长时间未切换至前台状态的APP能够获得更低的第一前台权重,从而得到更高的冷冻总分,进而提高了活跃度较低的APP的内存压缩优先级。
可选地,所述N个时段包括第一时段,当所述APP在所述第一时段内的第二时刻从所述冷冻状态切换至所述前台状态时,所述第一时刻的第二前台权重与第二参考时刻到所述第二时刻的时长负相关,其中,所述第二参考时刻为所述第一时段的起始时刻,或者,所述第二参考时刻为所述APP上一次从所述冷冻状态切换至所述前台状态的时刻;当所述APP在所述第一时段内未从所述后台状态切换至所述前台状态时,所述第一时段的第二前台权重与所述第一时段的时长负相关。
当APP在第一时段从冷冻状态切换至前台状态时,说明APP的活跃度升高,此时需要减小冷冻总分以降低APP的内存压缩优先级。第二前台权重与第二参考时刻到第二时刻的时长负相关,使得较早切换至前台状态的APP能够获得较高的第二前台权重,从而得到更低的冷冻总分,进而降低了活跃度较高的APP的内存压缩优先级。
当APP在第一时段未从冷冻状态切换至前台状态时,说明APP的活跃度较低,此时需要增大冷冻总分以提高APP的内存压缩优先级。第二前台权重与第一时段的时长负相关,使得长时间未切换至前台状态的APP能够获得更低的第二前台权重,从而得到更高的冷冻总分,进而提高了活跃度较低的APP的内存压缩优先级。
可选地,所述根据所述APP在N个时段内的第一前台权重确定所述APP的后台总分,包括:根据所述APP在所述N个时段内的第一前台权重和冷冻权重确定所述后台总分,所述后台总分与所述N个时段内的冷冻权重的和负相关。
冷冻权重是APP从后台状态向冷冻状态切换的权重,从另一个维度反映了APP的活跃度,同时基于第一前台权重和冷冻权重确定APP的后台总分,使得后台总分更准确地反映了APP的活跃度。
可选地,所述N个时段包括第一时段,当所述APP在所述第一时段内的第三时刻从所述后台状态切换至所述冷冻状态时,所述第三时刻的冷冻权重与第三参考时刻到所述第三时刻的时长负相关,其中,所述第三参考时刻为所述第一时段的起始时刻,或者,所述第三参考时刻为所述APP上一次从所述后台状态切换至所述冷冻状态的时刻;当所述APP在所述第一时段内未从所述后台状态切换至所述冷冻状态时,所述第一时段的冷冻权重与所述第一时段的时长负相关。
当APP在第一时段从后台状态切换至冷冻状态时,说明APP的活跃度降低,此时需要减小后台总分以降低APP的内存压缩优先级。冷冻权重与第三参考时刻到第三时刻的时长负相关,使得较早进入冷冻状态的APP能够获得较高的冷冻权重,从而得到更低的后台总分,进而降低了活跃度较低的APP的内存压缩优先级。
当APP在第一时段未从后台状态切换至冷冻状态时,说明APP的活跃度较高,此时需要减小后台总分以降低APP的内存压缩优先级。第一时段的冷冻权重与第一时段的时长负相关,使得长时间未进入冷冻状态的APP能够获得更小的冷冻权重,从而得到更高的后台总分,进而降低了活跃度较高的APP的内存压缩优先级。
可选地,所述根据所述APP在所述N个时段内的第二前台权重确定所述APP的冷冻总分,包括:根据所述APP在所述N个时段内的第二前台权重和解冻权重确定所述后台总分,所述冷冻总分与所述N个时段内的解冻权重的和负相关。
解冻权重是APP从冷冻状态向后台状态切换的权重,从另一个维度反映了APP的活跃度,同时基于第二前台权重和解冻权重确定APP的后台总分,使得后台总分更准确地反映了APP的活跃度。
可选地,所述N个时段包括第一时段,当所述APP在所述第一时段内的第四时刻从所述冷冻状态切换至所述后台状态时,所述第四时刻的解冻权重与第四参考时刻到所述第四时刻的时长负相关,其中,所述第四参考时刻为所述第一时段的起始时刻,或者,所述第四参考时刻为所述APP上一次从所述冷冻状态切换至所述后台状态的时刻;当所述APP在所述第一时段内未从所述冷冻状态切换至所述后台状态时,所述第一时段的解冻权重与所述第一时段的时长负相关。
当APP在第一时段从冷冻状态切换至后台状态时,说明APP的活跃度升高,此时需要减小冷冻总分以降低APP的内存压缩优先级。解冻权重与第一参考时刻到第一时刻的时长负相关,使得较早解冻的APP能够获得较高的解冻权重,从而得到更低的冷冻总分,进而降低了活跃度较高的APP的内存压缩优先级。
当APP在第一时段未从冷冻状态切换至后台状态时,说明APP的活跃度较低,此时需要增大冷冻总分以提高APP的内存压缩优先级。解冻权重与第一时段的时长负相关,使得长时间未解冻的APP能够获得更低的解冻权重,从而得到更高的冷冻总分,进而提高了活跃度较低的APP的内存压缩优先级。
可选地,所述N为大于1的正整数,所述N个时段的首个时段为时段1,所述N个时段的最后一个时段为时段N,所述方法还包括:获取所述APP在时段2至时段N+1之间的冷冻权重、解冻权重、第一前台权重和第二前台权重,其中,所述时段2为所述时段1之后且与所述时段1相邻的时段,所述时段N+1为所述时段N之后且与所述时段N相邻的时段;根据所述时段2至所述时段N+1之间的冷冻权重和第一前台权重确定所述APP的更新的后台总分,所述更新的后台总分与所述时段2至所述时段N+1之间的冷冻权重的和负相关,并且,所述更新的后台总分与所述时段2至所述时段N+1之间的第一前台权重的和负相关;根据所述时段2至所述时段N+1之间的解冻权重和第二前台权重确定所述APP的更新的冷冻总分,所述更新的冷冻总分与所述时段2至所述时段N+1之间的解冻权重的和负相关,并且,所述更新的冷冻总分与所述时段2至所述时段N+1之间的第二前台权重的和负相关;根据所述更新的后台总分和所述更新的冷冻总分确定所述APP的更新的内存压缩优先级,所述更新的内存压缩优先级与所述更新的后台总分正相关,并且,所述更新的内存压缩优先级与所述更新的冷冻总分正相关。
在上述实施例中,运行APP的电子设备总是采集最近N个时段的冷冻权重、解冻权重、第一前台权重和第二前台权重,并根据这些权重更新后台总分和冷冻总分,能够得到反映APP最新状态的后台总分和冷冻总分,电子设备根据上述后台总分和冷冻总分能够选择合适的APP进行压缩,避免因APP选择不当导致内存压缩总量增加以及电子设备的功耗上升。此外,通过多个时段的冷冻权重、解冻权重、第一前台权重和第二前台权重计算后台总分和冷冻总分,能够避免后台总分和冷冻总分剧烈变动导致的内存压缩总量增加以及电子设备的功耗上升。
第二方面,提供了一种压缩内存的装置,包括用于执行第一方面中任一种方法的单元。该装置可以是终端设备,也可以是终端设备内的芯片。该装置可以包括输入单元和处理单元。
当该装置是终端设备时,该处理单元可以是处理器,该输入单元可以是通信接口;该终端设备还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端设备执行第一方面中的任一种方法。
当该装置是终端设备内的芯片时,该处理单元可以是芯片内部的处理单元,该输入单元可以是输出接口、管脚或电路等;该芯片还可以包括存储器,该存储器可以是该芯片内的存储器(例如,寄存器、缓存等),也可以是位于该芯片外部的存储器(例如,只读存储器、随机存取存储器等);该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该芯片执行第一方面中的任一种方法。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被压缩内存的装置运行时,使得该装置执行第一方面中的任一种方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被压缩内存的装置运行时,使得该装置执行第一方面中的任一种方法。
附图说明
图1是一种适用于本申请的装置的硬件系统的示意图;
图2是一种适用于本申请的装置的软件系统的示意图;
图3是一种适用于本申请的内存压缩系统的示意图;
图4是本申请提供的一种APP的状态切换示意图;
图5是本申请提供的一种分数变化示意图;
图6是本申请提供的另一种分数变化示意图;
图7是本申请提供的内存压缩方法的示意图;
图8是本申请提供的一种APP从后台状态切换至前台状态的示意图;
图9是本申请提供的内存压缩方法的另一示意图;
图10是本申请提供的一种冷冻总分和后台总分的示意图;
图11是本申请提供的一种权重函数的示意图;
图12是本申请提供的另一种权重函数的示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
图1示出了一种适用于本申请的装置的硬件结构。
装置100可以是手机、智慧屏、平板电脑、可穿戴电子设备、车载电子设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、投影仪等等,本申请实施例对装置100的具体类型不作任何限制。
装置100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
需要说明的是,图1所示的结构并不构成对装置100的具体限定。在本申请另一些实施例中,装置100可以包括比图1所示的部件更多或更少的部件,或者,装置100可以包括图1所示的部件中某些部件的组合,或者,装置100可以包括图1所示的部件中某些部件的子部件。图1示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元。例如,处理器110可以包括以下处理单元中的至少一个:应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphics processing unit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、神经网络处理器(neural-network processing unit,NPU)。其中,不同的处理单元可以是独立的器件,也可以是集成的器件。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。例如,处理器110可以包括以下接口中的至少一个:内部集成电路(inter-integrated circuit,I2C)接口、内部集成电路音频(inter-integrated circuit sound,I2S)接口、脉冲编码调制(pulse codemodulation,PCM)接口、通用异步接收传输器(universal asynchronous receiver/transmitter,UART)接口、移动产业处理器接口(mobile industry processor interface,MIPI)、通用输入输出(general-purpose input/output,GPIO)接口、SIM接口、USB接口。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K、充电器、闪光灯、摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现装置100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194和摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI)、显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现装置100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现装置100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号接口,也可被配置为数据信号接口。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194、无线通信模块160、音频模块170和传感器模块180。GPIO接口还可以被配置为I2C接口、I2S接口、UART接口或MIPI接口。
USB接口130是符合USB标准规范的接口,例如可以是迷你(Mini)USB接口、微型(Micro)USB接口或C型USB(USB Type C)接口。USB接口130可以用于连接充电器为装置100充电,也可以用于装置100与外围设备之间传输数据,还可以用于连接耳机以通过耳机播放音频。USB接口130还可以用于连接其他装置100,例如AR设备。
图1所示的各模块间的连接关系只是示意性说明,并不构成对装置100的各模块间的连接关系的限定。可选地,装置100的各模块也可以采用上述实施例中多种连接方式的组合。
充电管理模块140用于从充电器接收电力。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的电流。在一些无线充电的实施例中,充电管理模块140可以通过装置100的无线充电线圈接收电磁波(电流路径如虚线所示)。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为装置100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量、电池循环次数和电池健康状态(例如,漏电、阻抗)等参数。可选地,电源管理模块141可以设置于处理器110中,或者,电源管理模块141和充电管理模块140可以设置于同一个器件中。
装置100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等器件实现。
天线1和天线2用于发射和接收电磁波信号。装置100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在装置100上的无线通信的解决方案,例如下列方案中的至少一个:第二代(2th generation,2G)移动通信解决方案、第三代(3thgeneration,3G)移动通信解决方案、第四代(4th generation,5G)移动通信解决方案、第五代(5th generation,5G)移动通信解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波和放大等处理,随后传送至调制解调处理器进行解调。移动通信模块150还可以放大经调制解调处理器调制后的信号,放大后的该信号经天线1转变为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(例如,扬声器170A、受话器170B)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
与移动通信模块150类似,无线通信模块160也可以提供应用在装置100上的无线通信解决方案,例如下列方案中的至少一个:无线局域网(wireless local areanetworks,WLAN)、蓝牙(bluetooth,BT)、蓝牙低功耗(bluetooth low energy,BLE)、超宽带(ultra wide band,UWB)、全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近场通信(near field communication,NFC)、红外(infrared,IR)技术。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,并将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频和放大,该信号经天线2转变为电磁波辐射出去。
在一些实施例中,装置100的天线1和移动通信模块150耦合,装置100的天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络和其他电子设备通信。该无线通信技术可以包括以下通信技术中的至少一个:全球移动通讯系统(globalsystem for mobile communications,GSM),通用分组无线服务(general packet radioservice,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-divisioncode division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,IR技术。该GNSS可以包括以下定位技术中的至少一个:全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigationsatellite system,GLONASS),北斗卫星导航系统(beidou navigation satellitesystem,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS),星基增强系统(satellite based augmentation systems,SBAS)。
装置100可以通过GPU、显示屏194以及应用处理器实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194可以用于显示图像或视频。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)、有源矩阵有机发光二极体(active-matrix organic light-emitting diode,AMOLED)、柔性发光二极管(flex light-emitting diode,FLED)、迷你发光二极管(mini light-emitting diode,Mini LED)、微型发光二极管(micro light-emitting diode,Micro LED)、微型OLED(Micro OLED)或量子点发光二极管(quantum dotlight emitting diodes,QLED)。在一些实施例中,装置100可以包括1个或N个显示屏194,N为大于1的正整数。
装置100可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP可以对图像的噪点、亮度和色彩进行算法优化,ISP还可以优化拍摄场景的曝光和色温等参数。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的红绿蓝(red green blue,RGB),YUV等格式的图像信号。在一些实施例中,装置100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当装置100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。装置100可以支持一种或多种视频编解码器。这样,装置100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1、MPEG2、MPEG3和MPEG4。
NPU是一种借鉴生物神经网络结构的处理器,例如借鉴人脑神经元之间传递模式对输入信息快速处理,还可以不断地自学习。通过NPU可以实现装置100的智能认知等功能,例如:图像识别、人脸识别、语音识别和文本理解。
外部存储器接口120可以用于连接外部存储卡,例如安全数码(secure digital,SD)卡,实现扩展装置100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能(例如,声音播放功能和图像播放功能)所需的应用程序。存储数据区可存储装置100使用过程中所创建的数据(例如,音频数据和电话本)。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如:至少一个磁盘存储器件、闪存器件和通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令和/或存储在设置于处理器中的存储器的指令,执行装置100的各种处理方法。
装置100可以通过音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D以及应用处理器等实现音频功能,例如,音乐播放和录音。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也可以用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170或者音频模块170的部分功能模块可以设置于处理器110中。
扬声器170A,也称为喇叭,用于将音频电信号转换为声音信号。装置100可以通过扬声器170A收听音乐或免提通话。
受话器170B,也称为听筒,用于将音频电信号转换成声音信号。当用户使用装置100接听电话或语音信息时,可以通过将受话器170B靠近耳朵接听语音。
麦克风170C,也称为话筒或传声器,用于将声音信号转换为电信号。当用户拨打电话或发送语音信息时,可以通过靠近麦克风170C发声将声音信号输入麦克风170C。装置100可以设置至少一个麦克风170C。在另一些实施例中,装置100可以设置两个麦克风170C,以实现降噪功能。在另一些实施例中,装置100还可以设置三个、四个或更多麦克风170C,以实现识别声音来源和定向录音等功能。处理器110可以对麦克风170C输出的电信号进行处理,例如,音频模块170与无线通信模块160可以通过PCM接口耦合,麦克风170C将环境声音转换为电信号(如PCM信号)后,通过PCM接口将该电信号传输至处理器110;从处理器110对该电信号进行音量分析和频率分析,确定环境声音的音量和频率。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动装置100平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,例如可以是电阻式压力传感器、电感式压力传感器或电容式压力传感器。电容式压力传感器可以是包括至少两个具有导电材料的平行板,当力作用于压力传感器180A,电极之间的电容改变,装置100根据电容的变化确定压力的强度。当触摸操作作用于显示屏194时,装置100根据压力传感器180A检测所述触摸操作。装置100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令;当触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定装置100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定装置100围绕三个轴(即,x轴、y轴和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。例如,当快门被按下时,陀螺仪传感器180B检测装置100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消装置100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航和体感游戏等场景。
气压传感器180C用于测量气压。在一些实施例中,装置100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。装置100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当装置100是翻盖机时,装置100可以根据磁传感器180D检测翻盖的开合。装置100可以根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测装置100在各个方向上(一般为x轴、y轴和z轴)加速度的大小。当装置100静止时可检测出重力的大小及方向。加速度传感器180E还可以用于识别装置100的姿态,作为横竖屏切换和计步器等应用程序的输入参数。
距离传感器180F用于测量距离。装置100可以通过红外或激光测量距离。在一些实施例中,例如在拍摄场景中,装置100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(light-emitting diode,LED)和光检测器,例如,光电二极管。LED可以是红外LED。装置100通过LED向外发射红外光。装置100使用光电二极管检测来自附近物体的红外反射光。当检测到反射光时,装置100可以确定附近存在物体。当检测不到反射光时,装置100可以确定附近没有物体。装置100可以利用接近光传感器180G检测用户是否手持装置100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式或口袋模式的自动解锁与自动锁屏。
环境光传感器180L用于感知环境光亮度。装置100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测装置100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。装置100可以利用采集的指纹特性实现解锁、访问应用锁、拍照和接听来电等功能。
温度传感器180J用于检测温度。在一些实施例中,装置100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,装置100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,装置100对电池142加热,以避免低温导致装置100异常关机。在其他一些实施例中,当温度低于又一阈值时,装置100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称为触控器件。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,触摸屏也称为触控屏。触摸传感器180K用于检测作用于其上或其附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于装置100的表面,并且与显示屏194设置于不同的位置。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键和音量键。按键190可以是机械按键,也可以是触摸式按键。装置100可以接收按键输入信号,实现于案件输入信号相关的功能。
马达191可以产生振动。马达191可以用于来电提示,也可以用于触摸反馈。马达191可以对作用于不同应用程序的触摸操作产生不同的振动反馈效果。对于作用于显示屏194的不同区域的触摸操作,马达191也可产生不同的振动反馈效果。不同的应用场景(例如,时间提醒、接收信息、闹钟和游戏)可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态和电量变化,也可以用于指示消息、未接来电和通知。
SIM卡接口195用于连接SIM卡。SIM卡可以插入SIM卡接口195实现与装置100的接触,也可以从SIM卡接口195拔出实现与装置100的分离。装置100可以支持1个或N个SIM卡接口,N为大于1的正整数。同一个SIM卡接口195可以同时插入多张卡,所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容外部存储卡。装置100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,装置100采用嵌入式SIM(embedded-SIM,eSIM)卡,eSIM卡可以嵌在装置100中,不能和装置100分离。
上文详细描述了装置100的硬件系统,下面介绍装置100的软件系统。软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构或云架构,本申请实施例以分层架构为例,示例性地描述装置100的软件系统。
如图2所示,采用分层架构的软件系统分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,软件系统可以分为四层,从上至下分别为应用程序层、应用程序框架层、安卓运行时(Android Runtime)和系统库、以及内核层。
应用程序层可以包括相机、图库、日历、通话、地图、导航、WLAN、蓝牙、音乐、视频、短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用程序编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预定义的函数。
例如,应用程序框架层包括窗口管理器、内容提供器、视图系统、电话管理器、资源管理器和通知管理器。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕和截取屏幕。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、以及电话簿。
视图系统包括可视控件,例如显示文字的控件和显示图片的控件。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成,例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供装置100的通信功能,例如通话状态(接通或挂断)的管理。
资源管理器为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件和视频文件。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于下载完成告知和消息提醒。通知管理器还可以管理以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知。通知管理器还可以管理以对话窗口形式出现在屏幕上的通知,例如在状态栏提示文本信息、发出提示音、电子设备振动以及指示灯闪烁。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理、堆栈管理、线程管理、安全和异常的管理、以及垃圾回收等功能。
系统库可以包括多个功能模块,例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:针对嵌入式系统的开放图形库(opengraphics library for embedded systems,OpenGL ES)和2D图形引擎(例如:skia图形库(skia graphics library,SGL))。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D图层和3D图层的融合。
媒体库支持多种音频格式的回放和录制、多种视频格式回放和录制以及静态图像文件。媒体库可以支持多种音视频编码格式,例如:MPEG4、H.264、动态图像专家组音频层面3(moving picture experts group audio layer III,MP3)、高级音频编码(advancedaudio coding,AAC)、自适应多码率(adaptive multi-rate,AMR)、联合图像专家组(jointphotographic experts group,JPG)和便携式网络图形(portable network graphics,PNG)。
三维图形处理库可以用于实现三维图形绘图、图像渲染、合成和图层处理。
二维图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动、音频驱动和传感器驱动等驱动模块。
下面结合显示拍照场景,示例性说明装置100的软件系统和硬件系统的工作流程。
当用户在触摸传感器180K上进行触摸操作时,相应的硬件中断被发送至内核层,内核层将触摸操作加工成原始输入事件,原始输入事件例如包括触摸坐标和触摸操作的时间戳等信息。原始输入事件被存储在内核层,应用程序框架层从内核层获取原始输入事件,识别出原始输入事件对应的控件,并通知该控件对应的应用程序(application,APP)。例如,上述触摸操作为单击操作,上述控件对应的APP为相机APP,相机APP被单击操作唤醒后,可以通过API调用内核层的摄像头驱动,通过摄像头驱动控制摄像头193进行拍摄。
下面以装置100为例介绍本申请提供的压缩内存的方法。
装置100在内存较低的情况下,会关闭一些优先级较低的进程以便于有足够的内存运行优先级较高的进程,而APP保活要求尽可能地保留APP的进程,为了满足装置100的内存需求和APP的保活需求,可以对APP的部分匿名页和文件页进行压缩后存储在磁盘上(即,压缩转存),这样可以在减小APP的内存占用的同时保留APP的进程。
内存压缩以及内存解压缩需要消耗计算资源和电量,若装置100对一个活跃的APP(即,用户使用频率较高的APP)进行了内存压缩,则不久之后装置100需要对该APP进行内存解压缩,频繁的内存压缩和内存解压缩会导致装置100的电量消耗过快。因此,需要选择不活跃的APP进行内存压缩。
APP的状态反映了APP的活跃度,例如,前台状态的APP的活跃度大于后台状态的APP的活跃度,后台状态的APP的活跃度大于冷冻状态的APP的活跃度,其中,前台状态、后台状态和冷冻状态的一种可选的含义如下:前台状态指的是在显示屏194上显示APP界面的APP的状态;后台状态指的是未在显示屏194上显示APP界面、APP进程存在并且APP进程在处理器110中运行的APP的状态;冷冻状态指的是未在显示屏194上显示APP界面、APP进程存在并且APP进程未在处理器110中运行的APP的状态。
APP的状态仅反映了APP在当前时刻的活跃度,但是对APP进行内存压缩需要考虑APP在一段时间内的活跃度。可以统计APP在一段时间内的状态切换次数,基于状态切换次数确定APP的各个状态的得分,可以根据各个状态的得分确定了APP在一段时间内的活跃度。
图3是一种适用于本申请的内存压缩系统的示意图。
图3所示的N个APP可以是社交、视频、音频和购物等不同类型的APP,用户可以打开该N个APP的状态监控权限,以便于状态监控服务监控各个APP的状态变化。
各个APP的状态变化例如是:从前台状态切换至后台状态、从前台状态切换至冷冻状态、从后台状态切换至前台状态、从后台状态切换至冷冻状态、从冷冻状态切换至后台状态以及从冷冻状态切换至前台状态。
打分服务可以从状态监控服务获取一段时间内各个APP的状态变化数据,随后基于该数据计算APP在该段时间内的分数。
状态监控服务和打分服务都属于系统层的进程,随着时间的推移,状态监控服务收集各个APP最新的状态变化数据,打分服务也根据各个APP最新的状态变化数据更新各个APP在一段时间内的分数,并将更新的分数传递给打分管理模块,由打分管理模块对各个APP的分数进行排序,其中,APP的分数越高表示该APP的活跃度越低(也可以设置分数越低表示APP的活跃度越低)。
内存压缩模块通过内存监控模块检测到内存不足时,触发APP的内存压缩和转存流程。内存压缩模块从打分管理模块获取分数最高的APP(即,活跃度最低的APP)的标识,并对该APP进行内存压缩和转存;若可用内存仍不满足要求,内存压缩模块再从打分管理模块获取分数次高的APP的标识,并对该APP进行内存压缩和转存,直至可用内存满足要求停止内存压缩。
一种为APP打分的方法是采集APP在一段时间内的状态变化次数,并基于状态变化次数计算APP在各个状态的得分,并根据APP在各个状态的得分确定是否对该APP进行内存压缩。例如,打分服务可以根据公式(1)和公式(2)对APP进行打分。
分数1=常量1-冷冻次数*权重 (1);
分数2=常量2-解冻次数*权重 (2);
上述冷冻次数指的是APP在一段时间内从后台状态切换至冷冻状态的次数,分数1为APP在后台状态的得分;上述解冻次数指的是APP在一段时间内从冷冻状态切换至后台状态的次数,分数2为APP在冷冻状态的得分。由于APP处于前台时不会被压缩内存,因此,APP在前台状态的分数始终为0。打分管理模块基于分数1和分数2的和确定APP的排序,分数1和分数2的和最高的APP的内存最先被压缩。
状态监控服务可以根据图4确定APP的冷冻次数和解冻次数。在两个相邻的前台状态之间,APP从后台状态切换至冷冻状态的行为发生了2次,因此,APP在该段时间内的冷冻次数为2;APP从冷冻状态切换至后台状态的行为发生了1次,因此,APP在该段时间内的解冻次数为1。
图4中,APP每次切换到前台状态时,冷冻次数和解冻次数的计数都会被清零,原因是APP处于冷冻状态一段时间后该APP的进程被杀,这会导致活跃的APP和不活跃的APP无法被区分。下面结合图5和图6说明这种情况。
图5和图6是两个APP的状态切换示意图。
图5中,APP1多次在前台状态、后台状态和冷冻状态之间切换,每次APP1切换到前台状态时,APP1的分数都被清零,从而导致APP1的分数反复到达1000。图6中,APP2从冷冻状态切换至后台状态,又从后台状态切换至冷冻状态,APP2的分数同样是反复到达1000。由此可见,虽然APP1和APP2的活跃度不同,但是通过公式(1)和公式(2)不能区分出这两个APP的活跃度,这可能导致活跃度较高的APP1的内存被压缩,出现APP1的内存数据频繁被压缩和解压缩的数据乒乓效应,增加了总压缩量和功耗。此外,公式(1)和公式(2)未考虑活跃时段的因素,例如,在5min内,APP从后台状态切换至前台状态10次,与APP从后台状态切换至前台状态1次的意义是一样的,均表示APP在5min内比较活跃,不应该对APP进行内存压缩。
下面介绍本申请提供的内存压缩方法,能够避免对活跃的APP进行内存压缩。
图7是本申请提供的内存压缩方法的一个实施例。
系统层的状态监控服务通过获取APP触发的事件来监控APP的状态变化,并将反映状态变化的事件转发至系统层的打分服务,触发打分服务更新总分,该过程即基于状态变化事件更新总分的过程,打分服务将更新后的总分发送至内核层的打分管理模块。
打分服务也可以基于定时事件的触发更新总分,当打分服务被定时事件触发时,获取状态切换对应的权重(即,单次状态切换的分数),该权重可以是固定的权重,也可以是随时间变化的权重。
例如,用户在图8所示的界面上点击处于后台状态的APP1,APP1从后台状态切换至前台状态。当打分服务获取APP从后台状态切换至前台状态的事件时,触发算法计算当前时刻从后台状态切换至前台状态的权重;随后,当打分服务被定时事件触发时,获取上述后台状态切换至冷冻状态的权重,并根据该权重更新总分;最后将更新后的总分发送至打分管理模块。
如前所述,除了后台状态与冷冻状态之间的切换外,后台状态与前台状态之间的切换、以及冷冻状态与前台状态之间的切换也反映了APP的活跃度的变化,打分服务在计算APP的分数时也需要考虑后面两种切换情况。
下面结合图9介绍本申请提供的内存压缩方法的另一实施例。
如图9所示,方法900包括:
S910,监控应用程序的状态变化。
装置100开始监控应用程序的状态变化。例如,装置100可以通过图3或图7所示的系统层中的状态监控服务监控应用层的应用程序。应用程序的状态变化可以包括前台状态和后台状态之间的切换、前台状态和冷冻状态之间的切换、后台状态和冷冻状态之间的切换等。其中,前台状态和后台状态之间的切换可以指从前台状态切换到后台状态,或者从后台状态切换到前台状态;前台状态和冷冻状态之间的切换可以指从前台状态切换至冷冻状态,或者从后台状态切换至前台状态;后台状态和冷冻状态之间的切换可以指从后台状态切换至冷冻状态,或者从冷冻状态切换至后台状态。本申请实施例对应用程序的状态变化不做具体限定。
可以理解的是,终端设备可以监控在运行的所有应用程序的状态,也可以只监控部分应用程序,也可以监控所有已安装的应用程序。本申请实施例对监控的应用程序的数量和类型不做限定。
S920,当检测到应用程序的状态发生变化,根据打分策略更新应用程序的分数。
装置100当检测到应用程序的状态发生变化,可以根据状态变化的情况和打分策略,更新状态发生变化的应用程序的分数。
例如,用户在图8所示的界面上点击处于后台状态的APP1,APP1从后台状态切换至前台状态,装置100通过图7所示的系统层中的状态监控服务检测到APP1的状态发生变化,将该状态变化关联的事件发送系统层的打分服务;打分服务接收到该事件后,确定APP1从后台状态切换至前台状态,根据打分策略更新APP1的分数。
下面介绍本申请实施例提供的打分策略。
在一些实施例中,可以通过以下公式给应用程序打分。
后台总分=常量1–冷冻次数*冷冻权重–第一前台次数*第一前台权重 (3);
冷冻总分=常量2–解冻次数*解冻权重–第二前台次数*第二前台权重 (4)。
公式(3)和公式(4)是上述打分策略的一个示例,其中,冷冻次数指的是APP在一段时间内从后台状态切换至冷冻状态的次数,第一前台次数指的是APP在一段时间内从后台状态切换至前台状态的次数,解冻次数指的是APP在一段时间内从冷冻状态切换至后台状态的次数,第二前台次数指的是APP在一段时间内从冷冻状态切换至前台状态的次数。
常量1和常量2的关系如图10所示。由于APP在冷冻状态的活跃度低于在后台状态的活跃度,常量2大于常量1,以提高冷冻状态的APP的内存压缩优先级。
下面,分别介绍公式(3)和公式(4)中次数和权重的计算方式。
1、次数的计算方式。
次数可以以一个预设周期的方式进行统计,该预设周期可以是服务器设置并发送给装置100的,也可以是装置100根据用户的使用习惯设置的;此外,该预设周期可以是固定的,也可以是动态调整的,本申请实施例对预设周期的时长和设置方式不做限定。例如周期可以是24小时,也可以是10小时等。
示例性的,状态监控服务可以以24小时为一个周期统计一个APP的冷冻次数、第一前台次数、解冻次数和第二前台次数,可选地,该周期也可以是10小时或半小时,本申请实施例对次数统计周期的时长不做限定。
例如,状态监控服务监控一个APP的状态时,首先读取该APP的使用频率信息,若未读取到使用频率信息,则认为该APP是首次使用,将冷冻次数、第一前台次数、解冻次数和第二前台次数均设置为0;随后,该APP每发生一次状态切换,状态监控服务将对应的次数加1,在24小时后统计该APP的冷冻次数、第一前台次数、解冻次数和第二前台次数,以便于打分服务根据这些次数和公式(3)、公式(4)计算APP的分数。
在一些实施例中,当APP在短时间内从后台状态(或冷冻状态)切换到前台状态1次或多次时,状态监控服务可以将该时段内的第一前台次数和第二前台次数统计为1。例如,可以将5min划为一个时段,无论APP在5min内从冷冻状态切换至前台状态1次还是10次,也无论APP每次在前台状态停留多长时间,状态监控服务均将该5min内的第二前台次数确定为1次。
从压缩和转存的角度看,APP在短时间内从后台状态(或冷冻状态)切换到前台状态1次或多次对应的活跃度是相同的,均反映了用户在该时段内使用该APP的意愿增大,因此,这种计算方式也能反应用户的真实意愿,同时也减少统计数量。
类似地,当APP在5min内从后台状态切换到冷冻状态1次或多次时,状态监控服务可以将该时段内的冷冻次数统计为1;当APP在5min内从冷冻状态切换到后台状态1次或多次时,状态监控服务可以将该时段内的解冻次数统计为1。
状态监控服务对APP进行了24个小时的状态切换次数统计后,可以继续统计该APP的状态切换次数,为了平滑数据,状态监控服务可以采用滑窗的方式对统计数据进行过滤。
表1示出了采用滑窗方式对第一前台次数进行过滤的示例。
表1
表1中,第一行的各个数字表示各个时段的序号,每个时段的时长为5min。
首次使用的APP的第一前台权重的初始值为0。在时段1(第一个5min时段)内,APP未出现从后台状态切换至前台状态的情况,则时段1内该APP的第一前台次数为0,如表1中第二行第二列所示。
在时段2(第二个5min时段)内,APP出现从后台状态切换至前台状态的情况,根据前文所述的统计方法,无论时段2内APP从后台状态切换至前台状态多少次,时段2内该APP的第一前台次数为1,如表1中第二行第三列所示。
以此类推,在24小时结束时,打分服务共获取288个数值,并根据该288个数值确定24小时内APP从后台状态切换至前台状态的总次数(即,第一前台次数的当前统计结果),并结合公式(3)确定该APP的后台总分。
在24小时后第一个5min结束时,打分服务进行24小时后的第一次统计,打分服务获取时段289内APP从后台状态切换至前台状态的次数,并丢弃时段1内从后台状态切换至前台状态的次数,基于时段2至时段289内的数据确定APP当前从后台状态切换至前台状态的总次数,并结合公式(3)更新该APP的后台总分。
依此类推,在24小时后第二个5min结束时,打分服务进行24小时后的第二次统计,打分服务基于时段3至时段290内的数据确定APP的第一前台次数的当前统计结果,并结合公式(3)更新该APP的后台总分。在24小时后的第三个5min结束时,打分服务进行24小时后的第三次统计,打分服务基于时段4至时段291内的数据确定APP的第一前台次数的当前统计结果,并结合公式(3)更新该APP的后台总分。在24小时后的第四个5min结束时,打分服务进行24小时后的第四次统计,打分服务基于时段4至时段292内的数据确定APP的第一前台次数的当前统计结果,并结合公式(3)更新该APP的后台总分。
第二前台次数、冷冻次数和解冻次数的滑窗统计方式与表1类似,不再赘述。下面介绍公式(3)和公式(4)中各个权重的计算方式。
2、权重的计算方式。
公式(3)和公式(4)中,各个权重可以相同,也可以不同。例如,对于一个APP,该APP的解冻权重和冷冻权重可以相同,也可以不同,当冷冻权重和解冻权重相同时,冷冻总分和后台总分的分数区间如图10所示。
可选地,打分服务可以对不同的APP采用不同的权重,例如,即时通讯类APP需要及时接收消息,尽可能地避免被压缩内存,因此,打分服务可以将即时通讯类APP的各个权重值设置为较大的数值,这样,即时通讯类APP会取得较低后台总分和冷冻总分,从而降低了内存压缩优先级。
需要说明的是,公式(3)和公式(4)中,对于同类型的状态切换,每次状态切换的权重是相同的,例如,APP从后台状态切换至冷冻状态10次,该10次状态切换的冷冻权重是相同的。
可选地,对于同类型的状态切换,每次状态切换的权重可以是不同的,在这种情况下,公式(3)和公式(4)不再适用,打分服务可以利用公式(5)和公式(6)计算APP的分数。
后台总分=常量1–Σ冷冻权重–Σ第一前台权重 (5);
冷冻总分=常量2–Σ解冻权重–Σ第二前台权重 (6)。
公式(5)和公式(6)中,Σ表示对1个或多个权重进行加法运算,其中,各个权重可以是存储在装置100本地的值,也可以是装置100从服务器获取的值,本申请对打分服务获取各个权重的具体方式不做限定。
打分服务在根据公式(5)和公式(6)计算分数时,可以按照表1所示的滑窗统计方法在24小时内统计到100个冷冻权重和80个第一前台权重,该100个冷冻权重的数值各不相同,该80个第一前台权重的数值也各不相同,打分服务可以利用常量1减去该100个冷冻权重的和以及该80个第一前台权重的和,从而得到后台总分。
由此可见,公式(5)和公式(3)的本质是相同的,只是由于各个冷冻权重(或第一前台权重)的值不同,无法利用公式(3)中“次数*权重”的形式计算后台总分。类似地,公式(6)和公式(5)的本质也是相同的。
下面以APP从冷冻状态切换至后台状态为例,介绍公式(5)和公式(6)中解冻权重的计算方法。
例如,装置100通过图7所示的系统层中的状态监控服务检测到APP的状态发生变化,将该状态变化关联的事件发送系统层的打分服务;打分服务接收到事件后,基于“冷冻切后台”事件是否发生确定解冻权重的计算方法。
2.1、“冷冻切后台”事件发生。
当APP在第一时段(例如,表1中的一个时段)内的第一时刻从冷冻状态切换至后台状态(即,解冻)时,第一时刻的解冻权重与第一参考时刻到第一时刻的时长负相关,解冻权重与时长的关系如图11所示,其中,第一参考时刻为第一时段的起始时刻,或者,第一参考时刻为APP上一次从冷冻状态切换至后台状态的时刻。
图11中,时刻0为第一参考时刻,若当前未发生解冻,则时刻0是第一时段的起始时刻;若当前已发生过解冻,则时刻0是第一时段内上一次解冻的时刻。
图11中解冻权重与第一时刻的关系可以用公式(7)表示。
cur0=K–a*t2 (7)。
cur0代表第一时刻的解冻权重,t代表第一时刻到第一参考时刻的时长,K和a是常数。
由公式(7)可知,解冻事件发生的时间越早(t越小),解冻权重越大(cur0越大);解冻事件发生的时间越晚(t越大),解冻权重越小(cur0越小);因此,解冻权重与第一参考时刻到第一时刻的时长负相关。
当APP在第一时刻从冷冻状态切换至后台状态时,说明APP的活跃度升高,此时需要减小冷冻总分以降低APP的内存压缩优先级。若APP在图11中的时刻3从冷冻状态切换至后台状态,则t=3,打分服务可以根据公式(7)和t=3确定当前解冻权重cur0为4.5;若APP在时刻5从冷冻状态切换至后台状态,则t=5,打分服务可以根据公式(7)和t=5确定当前解冻权重cur0为3.5。
公式(7)是打分服务计算解冻权重的一个示例,在满足cur0与t负相关的前提下,本申请对计算cur0的公式不做具体限定。
第一时刻的解冻权重与第一参考时刻到第一时刻的时长负相关,使得较早解冻的APP能够获得较高的解冻权重,从而得到更低的冷冻总分,进而降低了活跃度较高的APP的内存压缩优先级。
2.2、“冷冻切后台”事件未发生。
当APP在第一时段(例如,表1中的一个时段)内未从冷冻状态切换至后台状态时,第一时段的解冻权重与第一时段的时长负相关,解冻权重与时长的关系如图12所示。
时刻0是第一时段的起始时刻,图12中解冻权重与第一时刻的关系可以用公式(8)表示。
cur1=–a*t2 (8);
cur1代表第一时段的解冻权重,t代表第一时段的时长,a是常数。
由公式(8)可知,第一时段越短(t越小),解冻权重越大(cur1越大);第一时段越长(t越大),解冻权重越小(cur1越小);因此,解冻权重与第一时刻的时长负相关。
以第一时段的时长为5min为例,若APP在第一时段内未解冻,则t=5,打分服务根据公式(8)和t=5确定APP在第一时段的解冻权重cur1为-1.5。
公式(8)是打分服务计算解冻权重的一个示例,在满足cur1与t负相关的前提下,本申请对计算cur1的公式不做具体限定。
当APP在第一时段内未从冷冻状态切换至后台状态时,说明APP的活跃度较低,此时需要增大冷冻总分以提高APP的内存压缩优先级。第一时段的解冻权重与第一时段的时长负相关,使得长时间未解冻的APP能够获得更低的解冻权重,从而得到更高的冷冻总分,进而提高了活跃度较低的APP的内存压缩优先级。
类似地,当打分服务计算冷冻权重、第一前台权重和第二前台权重时,可以利用图11和图12所示的函数进行计算,不再赘述。
可选地,打分服务根据公式(3)和公式(4)获得APP的分数后,或者,打分服务根据公式(5)和公式(6)获得APP的分数后,可以每隔一段时间将APP的分数清零,例如,打分服务可以每隔24个小时将APP的分数清零,并重新计算APP的分数。
打分服务计算得到APP的分数后,可以执行下列步骤。
S930,根据应用程序的分数对应用程序进行排序。
装置100更新应用程序的分数后,可以对所有在排序的应用程序进行重排序。例如,假设当前正在排序的应用程序是APP1,APP2和APP3。当APP3的分数更新后,装置100可以将APP1,APP2和APP3的顺序进行重新排序。
S940,当内存低于第一阈值,根据应用程序的分数确定是否对应用程序进行内存压缩。
例如,装置100通过图7所示的系统层中的打分服务计算得到图8所示的APP1的后台总分和冷冻总分,将这两个分数发送至内核层的打分管理模块;打分管理模块计算后台总分和冷冻总分的和,将后台总分和冷冻总分的和作为APP1的最终得分;随后,打分管理模块对多个APP(包括APP1)的最终得分进行排序,该多个APP的内存得分反映了该多个APP的内存压缩优先级。
当图3所示的内核层的内存监控模块检测到装置100的内存低于第一阈值时,内存监控模块向内核层的内存压缩模块发送内存不足的指示信息,触发内存压缩模块从打分管理模块获取各个APP的最终得分,并根据各个APP的最终得分确定优先压缩内存的APP。
例如,APP1的最终得分是多个APP中的最高分,内存压缩模块先压缩APP1的内存数据(如匿名页和文件页),并将压缩后的内存数据存储在磁盘上;若APP1的内存数据被压缩转存后,装置100的内存仍低于第一阈值,则内存压缩模块再从多个APP中选择最终得分从高到低排名第二的APP进行内存压缩,直至装置100的内存大于或等于第一阈值为止。
由此可见,APP的最终得分越高,APP的压缩优先级越高;APP的最终得分越低,APP的压缩优先级越低。APP的得分越高,越容易被装置100压缩。即,APP的最终得分与APP的压缩优先级正相关。
综上所述,图9所示的方法中,后台总分包含APP的第一前台权重,反映了APP从后台状态切换至前台状态的频率;冷冻总分包含APP的第二前台权重,反映了APP从冷冻状态切换至前台状态的频率。当后台总分和冷冻总分较高时,说明APP切换至前台的频率较高,即,APP的活跃度较高,此时APP的内存压缩优先级较低,从而减小了活跃度较高的APP被内存压缩的概率;当后台总分和冷冻总分较低时,说明APP切换至前台的频率较低,即,APP的活跃度较低,此时APP的内存压缩优先级较高,从而提高了活跃度较低的APP被内存压缩的概率。因此,图9所示的方法能够使装置100选择合适的APP进行压缩,避免因APP选择不当导致内存压缩总量增加以及功耗上升。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现本申请中任一方法实施例所述的方法。
该计算机程序产品可以存储在存储器中,经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质可以是易失性存储器或非易失性存储器,或者,可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (5)
1.一种压缩内存的方法,其特征在于,包括:
监控应用程序APP的状态,所述APP的状态包括前台状态、后台状态和冷冻状态;
当检测到所述APP的状态发生变化时,根据第一前台权重和第二前台权重更新所述APP的分数,其中,所述第一前台权重为所述APP从所述后台状态切换至所述前台状态的权重,所述第二前台权重为所述APP从所述冷冻状态切换至所述前台状态的权重,所述APP的分数与所述第一前台权重负相关,并且,所述APP的分数与所述第二前台权重负相关;
确定所述APP的分数的次序;
当内存低于第一阈值时,根据所述APP的分数的次序确定是否对所述APP进行内存压缩,其中,所述次序越高,所述APP的压缩优先级越高;
其中,
所述根据第一前台权重和第二前台权重更新所述APP的分数,包括:
根据所述APP在N个时段内的第一前台权重和冷冻权重确定所述APP的后台总分,所述后台总分与所述N个时段内的第一前台权重的和负相关,所述后台总分与所述N个时段内的冷冻权重的和负相关,所述N为大于1的正整数;
根据所述APP在所述N个时段内的第二前台权重和解冻权重确定所述APP的冷冻总分,所述冷冻总分与所述N个时段内的第二前台权重的和负相关,所述冷冻总分与所述N个时段内的解冻权重的和负相关;
根据所述后台总分与所述冷冻总分更新所述APP的分数,所述APP的分数与所述后台总分与所述冷冻总分的和正相关;
其中,所述N个时段包括第一时段,
当所述APP在所述第一时段内的第一时刻从所述后台状态切换至所述前台状态时,所述第一时刻的第一前台权重与第一参考时刻到所述第一时刻的时长负相关,其中,所述第一参考时刻为所述第一时段的起始时刻,或者,所述第一参考时刻为所述APP上一次从所述后台状态切换至所述前台状态的时刻;
当所述APP在所述第一时段内未从所述后台状态切换至所述前台状态时,所述第一时段的第一前台权重与所述第一时段的时长负相关;
当所述APP在所述第一时段内的第二时刻从所述冷冻状态切换至所述前台状态时,所述第二时刻的第二前台权重与第二参考时刻到所述第二时刻的时长负相关,其中,所述第二参考时刻为所述第一时段的起始时刻,或者,所述第二参考时刻为所述APP上一次从所述冷冻状态切换至所述前台状态的时刻;
当所述APP在所述第一时段内未从所述后台状态切换至所述前台状态时,所述第一时段的第二前台权重与所述第一时段的时长负相关;
当所述APP在所述第一时段内的第三时刻从所述后台状态切换至所述冷冻状态时,所述第三时刻的冷冻权重与第三参考时刻到所述第三时刻的时长负相关,其中,所述第三参考时刻为所述第一时段的起始时刻,或者,所述第三参考时刻为所述APP上一次从所述后台状态切换至所述冷冻状态的时刻;
当所述APP在所述第一时段内未从所述后台状态切换至所述冷冻状态时,所述第一时段的冷冻权重与所述第一时段的时长负相关;
当所述APP在所述第一时段内的第四时刻从所述冷冻状态切换至所述后台状态时,所述第四时刻的解冻权重与第四参考时刻到所述第四时刻的时长负相关,其中,所述第四参考时刻为所述第一时段的起始时刻,或者,所述第四参考时刻为所述APP上一次从所述冷冻状态切换至所述后台状态的时刻;
当所述APP在所述第一时段内未从所述冷冻状态切换至所述后台状态时,所述第一时段的解冻权重与所述第一时段的时长负相关。
2.根据权利要求1所述的方法,其特征在于,所述N个时段的首个时段为时段1,所述N个时段的最后一个时段为时段N,所述方法还包括:
获取所述APP在时段2至时段N+1之间的冷冻权重、解冻权重、第一前台权重和第二前台权重,其中,所述时段2为所述时段1之后且与所述时段1相邻的时段,所述时段N+1为所述时段N之后且与所述时段N相邻的时段;
根据所述时段2至所述时段N+1之间的冷冻权重和第一前台权重确定所述APP的更新的后台总分,所述更新的后台总分与所述时段2至所述时段N+1之间的冷冻权重的和负相关,并且,所述更新的后台总分与所述时段2至所述时段N+1之间的第一前台权重的和负相关;
根据所述时段2至所述时段N+1之间的解冻权重和第二前台权重确定所述APP的更新的冷冻总分,所述更新的冷冻总分与所述时段2至所述时段N+1之间的解冻权重的和负相关,并且,所述更新的冷冻总分与所述时段2至所述时段N+1之间的第二前台权重的和负相关;
根据所述更新的后台总分和所述更新的冷冻总分确定所述APP的更新的内存压缩优先级,所述更新的内存压缩优先级与所述更新的后台总分正相关,并且,所述更新的内存压缩优先级与所述更新的冷冻总分正相关。
3.一种压缩内存的装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器耦合,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述装置执行权利要求1或2所述的方法。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1或2所述的方法。
5.一种芯片,其特征在于,包括处理器,当所述处理器执行指令时,所述处理器执行如权利要求1或2所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110594335.0A CN113886060B (zh) | 2021-05-28 | 2021-05-28 | 压缩内存的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110594335.0A CN113886060B (zh) | 2021-05-28 | 2021-05-28 | 压缩内存的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113886060A CN113886060A (zh) | 2022-01-04 |
CN113886060B true CN113886060B (zh) | 2022-09-23 |
Family
ID=79010136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110594335.0A Active CN113886060B (zh) | 2021-05-28 | 2021-05-28 | 压缩内存的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886060B (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701025B (zh) * | 2015-12-31 | 2019-07-23 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN105468426A (zh) * | 2016-01-05 | 2016-04-06 | 珠海市魅族科技有限公司 | 一种应用冻结的方法及终端 |
CN105975348A (zh) * | 2016-05-31 | 2016-09-28 | 宇龙计算机通信科技(深圳)有限公司 | 一种内存优化方法、优化装置以及终端 |
CN106201708A (zh) * | 2016-06-29 | 2016-12-07 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序的冻结方法、应用程序的冻结装置和终端 |
CN106484472B (zh) * | 2016-09-29 | 2021-06-15 | 华为技术有限公司 | 一种内存回收方法及终端 |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN109992393A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 应用处理方法和装置、电子设备、计算机可读存储介质 |
US10587284B2 (en) * | 2018-04-09 | 2020-03-10 | International Business Machines Corporation | Multi-mode compression acceleration |
CN108932163A (zh) * | 2018-06-15 | 2018-12-04 | 奇酷互联网络科技(深圳)有限公司 | 内存管理方法、装置、可读存储介质及终端 |
CN111367828B (zh) * | 2020-02-27 | 2023-10-20 | Oppo广东移动通信有限公司 | 内存压缩方法、装置、终端及存储介质 |
-
2021
- 2021-05-28 CN CN202110594335.0A patent/CN113886060B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113886060A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766036B (zh) | 消息处理方法及电子设备 | |
CN112789651B (zh) | 一种应用于终端的频率调整方法、装置及电子设备 | |
CN113542839B (zh) | 电子设备的投屏方法和电子设备 | |
CN113722058B (zh) | 一种资源调用方法及电子设备 | |
CN113704205B (zh) | 日志存储的方法、芯片、电子设备和可读存储介质 | |
WO2021258814A1 (zh) | 视频合成方法、装置、电子设备及存储介质 | |
WO2021159746A1 (zh) | 文件共享方法、系统及相关设备 | |
CN112947947A (zh) | 安装包的下载方法、分发方法、终端设备、服务器及系统 | |
CN112516590A (zh) | 一种帧率识别方法及电子设备 | |
CN113805797A (zh) | 网络资源的处理方法、电子设备及计算机可读存储介质 | |
CN113703894A (zh) | 通知消息的显示方法和显示装置 | |
CN110609650B (zh) | 一种应用状态切换方法及终端设备 | |
CN112835610A (zh) | 一种构建应用程序资源包的方法、构建装置及终端设备 | |
CN115119048A (zh) | 一种视频流处理方法及电子设备 | |
CN114828098B (zh) | 数据传输方法和电子设备 | |
CN113886060B (zh) | 压缩内存的方法和装置 | |
CN113542574A (zh) | 变焦下的拍摄预览方法、终端、存储介质及电子设备 | |
CN112346831A (zh) | 管理异常应用的方法和装置 | |
CN116055859B (zh) | 图像处理方法和电子设备 | |
CN114020186B (zh) | 健康数据的显示方法和显示装置 | |
CN113254409B (zh) | 文件共享方法、系统及相关设备 | |
CN116048629B (zh) | 系统服务切换方法及控制装置、电子设备和存储介质 | |
CN116048831B (zh) | 一种目标信号处理方法和电子设备 | |
CN116723384B (zh) | 进程的控制方法、电子设备及可读存储介质 | |
CN116703689B (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 |