掌桥专利:专业的专利平台
掌桥专利
首页

电子装置和使用该电子装置的存储器管理方法

文献发布时间:2024-01-17 01:26:37


电子装置和使用该电子装置的存储器管理方法

技术领域

本公开的某些实施例涉及电子装置和用于管理使用该电子装置的存储器的方法。

背景技术

当电子装置在有限的存储器容量内执行许多功能时,可能会出现存储器不足的情况。例如,当存储器的剩余容量变得小于特定量时,电子装置可以提供通知。该通知可以通知用户需要释放存储器的可用空间。为了释放存储器中的空间,用户可以删除存储在电子装置中的文件、包、包的数据和缓存文件。

发明内容

技术问题

随着应用包的安装,可能会创建工件。即使一些工件长时间不使用,似乎也没有办法删除它们。此外,仅当存储器的剩余容量小于或等于指定容量时,才提供需要释放存储器可用空间的通知。由于没有提供用于确保可用存储空间的差异操作(备份自最近一次完全备份以来的所有改变),不仅输入或输出处理被延迟,而且电子装置的可用性可能退化。

根据本公开的某些实施例的电子装置可以基于存储器的剩余容量小于指定比来阻止使用应用的配置文件的编译,或者可以选择性地删除由编译创建的工件。

根据本公开的某些实施例的电子装置可以在存储器的剩余容量大于或等于指定容量时通过编译从其删除了工件的包,或者通过使用应用的配置文件重新编译,来恢复被删除的工件。

技术方案

根据某些实施例,一种电子装置包括:存储器;以及可操作地耦合到存储器的处理器,其中处理器被配置成:识别存储器的剩余容量,以及当存储器的剩余容量小于存储器的总容量的指定比时,阻止使用应用的配置文件进行编译,或者删除通过使用应用的配置文件进行编译而创建的工件。

根据某些实施例,一种用于管理电子装置的存储器的方法包括:识别存储器的剩余容量;以及当确定存储器的剩余容量小于存储器的总容量的指定比时,阻止使用应用的配置文件的编译,或者删除通过使用应用的配置文件执行编译而创建的工件。

有益效果

根据本公开的某些实施例的电子装置基于存储器的剩余容量,阻止使用应用的配置文件的编译或者通过选择性地删除通过编译生成的工件。前述不仅系统地确保了存储器的可用空间,而且防止了由于存储器的可用空间的限制而可能发生的输入或输出性能退化。

根据本公开的某些实施例的电子装置,当确保存储器的剩余容量大于或等于指定容量时,通过编译已经从其删除了工件的包,或者通过经由使用应用的配置文件重新编译恢复删除的工件,可以防止使用应用时的性能下降。

附图说明

图1是示出根据本公开的某些实施例的网络环境中的电子装置的框图。

图2是示出根据本公开的某些实施例的电子装置的框图。

图3是示出根据本公开的某些实施例的基于存储器的剩余容量来管理存储器的方法的流程图。

图4是根据某些实施例的用于解释图3的操作315的流程图。

图5是根据某些实施例的用于解释图4的操作440的流程图。

图6是示出根据某些实施例的基于存储器的剩余容量来管理存储器的方法的流程图。

具体实施方式

图1是示出根据各种实施例的网络环境100中的电子装置101的框图。

参照图1,网络环境100中的电子装置101可经由第一网络198(例如,短距离无线通信网络)与电子装置102进行通信,或者经由第二网络199(例如,长距离无线通信网络)与电子装置104或服务器108中的至少一个进行通信。根据实施例,电子装置101可经由服务器108与电子装置104进行通信。根据实施例,电子装置101可包括处理器120、存储器130、输入模块150、声音输出模块155、显示模块160、音频模块170、传感器模块176、接口177、连接端178、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、用户识别模块(SIM)196或天线模块197。在一些实施例中,可从电子装置101中省略上述部件中的至少一个(例如,连接端178),或者可将一个或更多个其它部件添加到电子装置101中。在一些实施例中,可将上述部件中的一些部件(例如,传感器模块176、相机模块180或天线模块197)实现为单个集成部件(例如,显示模块160)。

处理器120可运行例如软件(例如,程序140)来控制电子装置101的与处理器120连接的至少一个其它部件(例如,硬件部件或软件部件),并可执行各种数据处理或计算。根据一个实施例,作为所述数据处理或计算的至少部分,处理器120可将从另一部件(例如,传感器模块176或通信模块190)接收到的命令或数据存储到易失性存储器132中,对存储在易失性存储器132中的命令或数据进行处理,并将结果数据存储在非易失性存储器134中。根据实施例,处理器120可包括主处理器121(例如,中央处理器(CPU)或应用处理器(AP))或者与主处理器121在操作上独立的或者相结合的辅助处理器123(例如,图形处理单元(GPU)、神经处理单元(NPU)、图像信号处理器(ISP)、传感器中枢处理器或通信处理器(CP))。例如,当电子装置101包括主处理器121和辅助处理器123时,辅助处理器123可被适配为比主处理器121耗电更少,或者被适配为专用于特定的功能。可将辅助处理器123实现为与主处理器121分离,或者实现为主处理器121的部分。

在主处理器121处于未激活(例如,睡眠)状态时,辅助处理器123(而非主处理器121)可控制与电子装置101的部件之中的至少一个部件(例如,显示模块160、传感器模块176或通信模块190)相关的功能或状态中的至少一些,或者在主处理器121处于激活状态(例如,运行应用)时,辅助处理器123可与主处理器121一起来控制与电子装置101的部件之中的至少一个部件(例如,显示模块160、传感器模块176或通信模块190)相关的功能或状态中的至少一些。根据实施例,可将辅助处理器123(例如,图像信号处理器或通信处理器)实现为在功能上与辅助处理器123相关的另一部件(例如,相机模块180或通信模块190)的部分。根据实施例,辅助处理器123(例如,神经处理单元)可包括专用于人工智能模型处理的硬件结构。可通过机器学习来生成人工智能模型。例如,可通过人工智能被执行之处的电子装置101或经由单独的服务器(例如,服务器108)来执行这样的学习。学习算法可包括但不限于例如监督学习、无监督学习、半监督学习或强化学习。人工智能模型可包括多个人工神经网络层。人工神经网络可以是深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)、受限玻尔兹曼机(RBM)、深度置信网络(DBN)、双向循环深度神经网络(BRDNN)或深度Q网络或其两个或更多个的组合,但不限于此。另外地或可选地,人工智能模型可包括除了硬件结构以外的软件结构。

存储器130可存储由电子装置101的至少一个部件(例如,处理器120或传感器模块176)使用的各种数据。所述各种数据可包括例如软件(例如,程序140)以及针对与其相关的命令的输入数据或输出数据。存储器130可包括易失性存储器132或非易失性存储器134。

可将程序140作为软件存储在存储器130中,并且程序140可包括例如操作系统(OS)142、中间件144或应用146。

输入模块150可从电子装置101的外部(例如,用户)接收将由电子装置101的其它部件(例如,处理器120)使用的命令或数据。输入模块150可包括例如麦克风、鼠标、键盘、键(例如,按钮)或数字笔(例如,手写笔)。

声音输出模块155可将声音信号输出到电子装置101的外部。声音输出模块155可包括例如扬声器或接收器。扬声器可用于诸如播放多媒体或播放唱片的通用目的。接收器可用于接收呼入呼叫。根据实施例,可将接收器实现为与扬声器分离,或实现为扬声器的部分。

显示模块160可向电子装置101的外部(例如,用户)视觉地提供信息。显示装置160可包括例如显示器、全息装置或投影仪以及用于控制显示器、全息装置和投影仪中的相应一个的控制电路。根据实施例,显示模块160可包括被适配为检测触摸的触摸传感器或被适配为测量由触摸引起的力的强度的压力传感器。

音频模块170可将声音转换为电信号,反之亦可。根据实施例,音频模块170可经由输入模块150获得声音,或者经由声音输出模块155或与电子装置101直接(例如,有线地)连接或无线连接的外部电子装置(例如,电子装置102)的耳机输出声音。

传感器模块176可检测电子装置101的操作状态(例如,功率或温度)或电子装置101外部的环境状态(例如,用户的状态),然后生成与检测到的状态相应的电信号或数据值。根据实施例,传感器模块176可包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁性传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(IR)传感器、生物特征传感器、温度传感器、湿度传感器或照度传感器。

接口177可支持将用来使电子装置101与外部电子装置(例如,电子装置102)直接(例如,有线地)或无线连接的一个或更多个特定协议。根据实施例,接口177可包括例如高清晰度多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。

连接端178可包括连接器,其中,电子装置101可经由所述连接器与外部电子装置(例如,电子装置102)物理连接。根据实施例,连接端178可包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。

触觉模块179可将电信号转换为可被用户经由他的触觉或动觉识别的机械刺激(例如,振动或运动)或电刺激。根据实施例,触觉模块179可包括例如电机、压电元件或电刺激器。

相机模块180可捕获静止图像或运动图像。根据实施例,相机模块180可包括一个或更多个透镜、图像传感器、图像信号处理器或闪光灯。

电力管理模块188可管理对电子装置101的供电。根据实施例,可将电力管理模块188实现为例如电力管理集成电路(PMIC)的至少部分。

电池189可对电子装置101的至少一个部件供电。根据实施例,电池189可包括例如不可再充电的原电池、可再充电的蓄电池、或燃料电池。

通信模块190可支持在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立直接(例如,有线)通信信道或无线通信信道,并经由建立的通信信道执行通信。通信模块190可包括能够与处理器120(例如,应用处理器(AP))独立操作的一个或更多个通信处理器,并支持直接(例如,有线)通信或无线通信。根据实施例,通信模块190可包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(GNSS)通信模块)或有线通信模块194(例如,局域网(LAN)通信模块或电力线通信(PLC)模块)。这些通信模块中的相应一个可经由第一网络198(例如,短距离通信网络,诸如蓝牙、无线保真(Wi-Fi)直连或红外数据协会(IrDA))或第二网络199(例如,长距离通信网络,诸如传统蜂窝网络、5G网络、下一代通信网络、互联网或计算机网络(例如,LAN或广域网(WAN)))与外部电子装置进行通信。可将这些各种类型的通信模块实现为单个部件(例如,单个芯片),或可将这些各种类型的通信模块实现为彼此分离的多个部件(例如,多个芯片)。无线通信模块192可使用存储在用户识别模块196中的用户信息(例如,国际移动用户识别码(IMSI))识别并验证通信网络(诸如第一网络198或第二网络199)中的电子装置101。

无线通信模块192可支持在4G网络之后的5G网络以及下一代通信技术(例如新无线电(NR)接入技术)。NR接入技术可支持增强型移动宽带(eMBB)、大规模机器类型通信(mMTC)或超可靠低延时通信(URLLC)。无线通信模块192可支持高频带(例如,毫米波带)以实现例如高数据传输速率。无线通信模块192可支持用于确保高频带上的性能的各种技术,诸如例如波束成形、大规模多输入多输出(大规模MIMO)、全维MIMO(FD-MIMO)、阵列天线、模拟波束成形或大规模天线。无线通信模块192可支持在电子装置101、外部电子装置(例如,电子装置104)或网络系统(例如,第二网络199)中指定的各种要求。根据实施例,无线通信模块192可支持用于实现eMBB的峰值数据速率(例如,20Gbps或更大)、用于实现mMTC的丢失覆盖(例如,164dB或更小)或者用于实现URLLC的U平面延迟(例如,对于下行链路(DL)和上行链路(UL)中的每一个为0.5ms或更小,或者1ms或更小的往返)。

天线模块197可将信号或电力发送到电子装置101的外部(例如,外部电子装置)或者从电子装置101的外部(例如,外部电子装置)接收信号或电力。根据实施例,天线模块197可包括天线,所述天线包括辐射元件,所述辐射元件由形成在基底(例如,印刷电路板(PCB))中或形成在基底上的导电材料或导电图案构成。根据实施例,天线模块197可包括多个天线(例如,阵列天线)。在这种情况下,可由例如通信模块190(例如,无线通信模块192)从所述多个天线中选择适合于在通信网络(诸如第一网络198或第二网络199)中使用的通信方案的至少一个天线。随后可经由所选择的至少一个天线在通信模块190和外部电子装置之间发送或接收信号或电力。根据实施例,除了辐射元件之外的另外的组件(例如,射频集成电路(RFIC))可附加地形成为天线模块197的一部分。

根据各种实施例,天线模块197可形成毫米波天线模块。根据实施例,毫米波天线模块可包括印刷电路板、射频集成电路(RFIC)和多个天线(例如,阵列天线),其中,RFIC设置在印刷电路板的第一表面(例如,底表面)上,或与第一表面相邻并且能够支持指定的高频带(例如,毫米波带),所述多个天线设置在印刷电路板的第二表面(例如,顶部表面或侧表面)上,或与第二表面相邻并且能够发送或接收指定高频带的信号。

上述部件中的至少一些可经由外设间通信方案(例如,总线、通用输入输出(GPIO)、串行外设接口(SPI)或移动工业处理器接口(MIPI))相互连接并在它们之间通信地传送信号(例如,命令或数据)。

根据实施例,可经由与第二网络199连接的服务器108在电子装置101和外部电子装置104之间发送或接收命令或数据。电子装置102或电子装置104中的每一个可以是与电子装置101相同类型的装置,或者是与电子装置101不同类型的装置。根据实施例,将在电子装置101运行的全部操作或一些操作可在外部电子装置102、外部电子装置104或服务器108中的一个或更多个运行。例如,如果电子装置101应该自动执行功能或服务或者应该响应于来自用户或另一装置的请求执行功能或服务,则电子装置101可请求所述一个或更多个外部电子装置执行所述功能或服务中的至少部分,而不是运行所述功能或服务,或者电子装置101除了运行所述功能或服务以外,还可请求所述一个或更多个外部电子装置执行所述功能或服务中的至少部分。接收到所述请求的所述一个或更多个外部电子装置可执行所述功能或服务中的所请求的所述至少部分,或者执行与所述请求相关的另外功能或另外服务,并将执行的结果传送到电子装置101。电子装置101可在对所述结果进行进一步处理的情况下或者在不对所述结果进行进一步处理的情况下将所述结果提供作为对所述请求的至少部分答复。为此,可使用例如云计算技术、分布式计算技术、移动边缘计算(MEC)技术或客户机-服务器计算技术。电子装置101可使用例如分布式计算或移动边缘计算来提供超低延迟服务。在另一实施例中,外部电子装置104可包括物联网(IoT)装置。服务器108可以是使用机器学习和/或神经网络的智能服务器。根据实施例,外部电子装置104或服务器108可被包括在第二网络199中。电子装置101可应用于基于5G通信技术或IoT相关技术的智能服务(例如,智能家居、智能城市、智能汽车或医疗保健)。

图2是示出根据某些实施例的电子装置201的框图200。

参考图2,电子装置201(例如,图1的电子装置101)可以包括通信电路210(例如,图1的通信模块190)、存储器220(例如,图1中的存储器130)、触摸屏显示器230(例如,图1的显示模块160)和处理器240(例如,图1的处理器120)。

通信电路210(例如,图1的通信模块190)可以与外部电子装置(例如,图1的电子装置102和104、服务器108)建立通信信道,并且与外部电子装置一起,它可以支持发送和接收各种数据。

在一个实施例中,在处理器240的控制下,通信电路210可以从服务器(例如,应用商店)接收(或下载)更新文件(例如,安装文件(例如,apk(安卓应用包)文件))。

存储器220(例如,图1的存储器130)可以存储用于基于存储器220的剩余容量有区别地执行不同操作以确保存储器220的可用空间的指令。存储器220可以存储用于当存储器220的剩余容量被确保在指定比或更大比时执行不同操作以恢复差异删除的工件的指令。

触摸屏显示器230(例如,图1的显示模块160)可以被整体配置为包括显示器231和触摸面板233。

在一个实施例中,在处理器240的控制下,触摸屏显示器230可以显示用户界面。用户界面可以包括需要释放存储器220的可用空间的通知。

处理器240(例如,图1的处理器120)可以包括例如微控制器单元(MCU),并且可以通过驱动操作系统(OS)或嵌入式软件程序来控制连接到处理器240的多个硬件组件。处理器240可以根据例如存储在存储器220中的指令(例如,图1的程序140)来控制多个硬件组件。

处理器240可以识别(例如,检查)存储器220的剩余容量。例如,处理器240可以通过存储管理器241接收与存储器220的可用容量的比相对应的容量信息。

处理器240可以基于检测到删除指定时间间隔或工件的请求来识别存储器220的剩余容量。工件可以包括诸如*的本地文件(或本地代码)诸如*.vdex、*.odex、或*.oat或应用类信息的初始化镜像,诸如*.art。

处理器240可以识别存储器220的剩余容量与存储器的总容量之比是否小于指定比。指定比可以包括可用容量在存储器220的总容量当中的比。指定比可以是多个指定比。

当存储器220的剩余容量小于指定比时,处理器240可以阻止使用应用的配置文件的编译,或者它可以通过使用应用的配置文件执行编译来删除所创建的工件。例如,如果确认存储器220的剩余容量在第一指定比和第二指定比之间,则处理器240可以阻止通过后台管理器243执行的、使用应用的配置文件的编译。

当存储器220的剩余容量在第二指定比和第三指定比之间时,处理器240删除工件。处理器240通过包管理器245识别路径。该路径是更新完成时由未使用的系统包生成的工件所在的路径。处理器240可以删除位于路径中的工件。

当确认存储器220的剩余容量小于第三指定比时,处理器240可以识别安装在电子装置201中的应用包的列表。处理器240可以通过包管理器245识别该列表。处理器240可以通过活动管理器247识别在指定时间段内未使用的应用包。处理器240可以删除通过使用在指定时间段内未使用的应用包的配置文件来执行编译而生成的工件。

处理器240确定(例如,识别、检查)存储器220的剩余容量是否大于或等于指定比。基于对指定比或更多比的确认,它可以通过编译从其删除了工件的包,或者通过使用应用的配置文件重新编译,来恢复被删除的工件。

例如,如果确定存储器220的剩余容量大于或等于第三指定比,则处理器240可以编译从其中删除了工件的包。如果存储器220的剩余容量被确定为大于或等于第二指定比,则处理器240可以通过使用应用的配置文件的重新编译来恢复被删除的工件。

图3是根据某些实施例的用于解释基于存储器220的剩余容量来管理存储器220的方法的流程图300。

参考图3,在操作305中,电子装置(例如,图2的电子装置201)的处理器(例如,图2的处理器240)可以识别(例如,检查)存储器(例如,存储器220)的剩余容量。

根据某些实施例的上述操作305的识别存储器220的剩余容量的操作可以在指定的时间间隔执行。但并不局限于此。例如,基于检测到请求删除通过使用应用的配置文件进行编译而生成的工件的输入(例如,请求执行删除工件的服务的输入),处理器240可在上述操作305中执行操作以识别存储器220的剩余容量。

在某些实施例中,工件可以包括本地文件(或本地代码),诸如以下之一或二者*.vdex、*.odex、或*.oat和应用类的初始化镜像信息,诸如*.art。

在一个实施例中,基于应用更新,处理器240可以通过通信电路(例如,图2的通信电路210)从服务器(例如,应用商店)接收(或下载)更新文件(例如,安装文件(例如,apk(安卓应用包)文件))。例如,可以用特定的编程语言(例如,Java语言)开发应用,并且可以通过软件开发密钥(SDK)创建资源文件(例如,Java源代码、布局xml文件、镜像文件、音频文件、动画、菜单、样式和颜色)作为更新文件(例如,apk文件)。更新文件指示安卓包,并且扩展名可以表示为“.apk”。例如,一个apk文件可以表示一个应用,并且可以是安装在电子装置201中的文件。

在一个实施例中。*.vdex可以包括前述应用的更新文件(例如,apk(安卓应用包))的未压缩字节码(例如,dex码)。*.odex或者.oat之一或两者可以包括用于在上述应用的更新文件(例如安装文件(例如apk))的可执行文件(例如,.dex)中定义的方法的编译(例如,提前AOT编译)代码。此外,*.art可以包括在前述应用的更新文件(例如,apk)中可执行文件(例如,dex)中列出的一些字符串和类的ART(安卓运行时间)内部表示。

在操作310中,处理器240可以识别(例如,确定)存储器220的剩余容量是否小于指定比。例如,处理器240可以将指定比作为参数发送给存储管理器(例如,图2的存储管理器241)。存储管理器241可以将对应于指定比的存储器220的容量信息发送到处理器240。处理器240可以识别存储器220的剩余容量是否小于与从存储管理器241接收的指定比相对应的存储器220的容量。

指定比可以包括可用容量在存储器220的总容量中的比。指定比可以是多个指定比。多个指定比可以包括第一指定比、第二指定比和第三指定比。但并不局限于此。

第一指定比可以大于第二指定比,并且第二指定比可以大于第三指定比。例如,第一指定比可以表示存储器220的总容量当中的可用容量是8%的情况。第二指定比可以是5%。第三个规定的比是1%。前述内容是通过示例而非限制的方式提供的。

第一至第三指定比可以由制造商预先确定,或者可以是可变的设置。

第一指定比到第三指定比的数值是为了便于解释,并且它们不限于前述比的数值。

在操作315,基于存储器220的剩余容量小于指定比的识别,处理器240可以阻止使用应用的配置文件执行编译,或者删除通过使用应用的配置文件执行编译而创建的工件。

例如,如果确认存储器220的剩余容量在第一指定比(例如,8%)和第二指定比(例如,5%)之间(或者小于第一指定比,但是大于第二指定比),则处理器240可以阻止使用应用的配置文件的编译。通过阻止使用应用的配置文件的编译的执行,可以防止工件的生成。

作为另一示例,如果确认存储器220的剩余容量在第二指定比(例如,5%)和第三指定比(例如,1%)之间(或者小于第二指定比,但是大于第三指定比),则处理器240可以删除通过使用应用的配置文件执行编译而生成的工件。例如,可以通过执行应用更新来生成工件;并且,当更新完成时,用于应用更新的系统包可能不被使用。当更新完成时,处理器240可以删除由未使用的系统包生成的工件。

作为另一示例,如果确认存储器220的剩余容量小于第三指定比(例如,1%),则处理器240可以获得安装在电子装置201中的应用包的列表。处理器240可以从获取的列表中删除通过使用满足指定条件的应用包的配置文件执行编译而生成的工件。例如,满足指定条件的应用可以包括在指定时间段内未使用的应用。这可以基于应用图标是否存在、与应用的使用相关的事件是否发生以及应用支持的功能是否被激活来确定。

结合根据某些实施例的上述图3的操作315,将参考稍后描述的图4来描述某些实施例。

图4是根据某些实施例的用于解释图3的操作315的流程图400。

参考图4,在操作405中,电子装置(例如,图2的电子装置201)的处理器(例如,图2的处理器240)可以确定(例如,识别)存储器220的剩余容量是否在第一指定比和第二指定比之间(或者小于第一指定比,但是大于第二指定比)。根据某些实施例,第一指定比可以是存储器220总容量的8%,第二指定比可以是5%。前述内容是通过示例而非限制的方式提供的。

如果存储器220的剩余容量在第一指定比和第二指定比之间(例如,操作405中的是),则处理器240在操作410中可以识别频繁使用的应用的方法的配置文件。例如,处理器240可以通过后台管理器(例如,图2的后台管理器243)识别频繁使用的应用的方法的配置文件。

在实施例中,在操作415中,处理器240可以阻止使用频繁使用的应用的配置文件的编译。

根据某些实施例的阻止编译执行的操作可以包括基于更新的配置文件阻止编译执行的操作。例如,处理器240的后台管理器243可以使用在后台中的基于用户使用电子装置201时生成的配置文件的指定的转换器工具(例如,dex2oat工具)来编译应用包中的可执行文件(例如,.dex文件)。一个工件(例如,.oat或.art文件之一或两者)可以通过编译重新生成,应用的性能可能会取决于编译的方法或类之一或两者而异。例如,后台dex优化可能会创建当满足jobscheduler中指定的条件(例如,充电、空闲状态或每天一次)时被优化的新的.oat和.art文件。通过运行时间,处理器240使用新配置文件的指定编译方法(例如,提前时间(AOT)编译),可以创建本地代码(例如,*.odex或*.oat之一或两者)和初始化镜像(例如,*.art)获取应用类信息。在一个实施例中,本地代码可以代表字节码的编译的代码,并且它可以包括编译的机器代码。

在某些实施例中,处理器240可以阻止可以由上述后台管理器243执行的、基于应用的配置文件的编译的执行。由于使用上述应用的配置文件的编译被阻止,所以可能不会生成编译的工件。由于没有通过编译生成工件,所以可以确保存储器220的可用空间。

阻止编译的操作可以包括当电子装置201重启时阻止对被删除的应用包执行编译的操作。例如,当电子装置201重启时,处理器240可以阻止可以通过后台管理器243执行的、基于配置文件的编译。通过阻止使用应用的配置文件的编译的执行,可以防止工件的生成。

在某些实施例中,当安装应用时,可以对其进行设置,使得可以通过使用应用的配置文件执行编译来生成工件,直到指定的容量(例如,500MB)。

在一个实施例中,如果存储器220的剩余容量不在第一指定比和第二指定比之间(例如,操作405中的否),则在操作420中,处理器240可以确定(例如,识别)存储器220的剩余容量是否在第二指定比和第三指定比之间(小于第二指定比,但是高于第三指定比)。根据某些实施例,第二指定比可以是5%,第三指定比可以是1%。前述内容是以示例而非限制的方式提供的。

如果存储器220的剩余容量在第二指定比和第三指定比之间(例如,操作420中的是),则在操作425中,处理器240可以识别未使用以执行更新的系统包的路径。处理器240可以通过包管理器(例如,图2的包管理器245)识别更新的系统包的设置安装路径(例如,/data/dalvik-cache),以便删除基于更新的系统包生成的工件。

在操作430中,处理器240可以删除通过编译位于确认路径中的系统包而生成的工件。例如,处理器240可以删除位于通过包管理器245确认的安装路径(例如,/data/dalvik-cache)中的工件(例如,odex、vdex或art之一或两者)。

当更新完成时,可以不使用用于应用更新的系统包,并且可以通过删除由未使用的系统包生成的工件来确保存储器220的可用空间。

当存储器220的剩余容量不在第二指定比和第三指定比之间时(例如,在操作420中为否),则在操作435中,处理器240可以确定(例如,识别)存储器220的剩余容量是否小于第三指定比。

如果存储器220的剩余容量小于第三指定比(例如,操作435中的是),则在操作440中,处理器240可以基于安装在电子装置201中的应用包的列表来识别在指定时间段内未使用的至少一个应用包。

处理器240可以通过包管理器245接收安装在电子装置201中的应用包的列表。处理器240可以从应用包列表中识别满足指定条件的应用。例如,基于应用图标是否存在(例如,应用可执行图标存在于主屏幕或菜单屏幕中之一或两者上),与应用的使用相关的事件是否发生,或者应用是否被设置为指定功能,满足指定条件的应用可以包括在指定时间段(例如,32天)内未被使用的应用。

当应用图标存在时,处理器240可以识别与应用的使用相关的事件是否发生。例如,当通过活动管理器(例如,图2的活动管理器247)检测到与应用的使用相关的事件的发生时,处理器240可以记录应用的使用时间。处理器240可以基于记录的应用的使用时间来识别应用的使用时间。

当应用图标存在时,处理器240可以识别该应用是否被设置为指定功能。例如,处理器240注册观察者,并且当应用被设置为指定功能时,记录观察者以识别应用的使用时间。例如,当应用被设置为移动装置管理(MDM)功能、辅助服务或默认应用时,处理器240可以确定应用被设置为指定功能。当应用被设置为壁纸功能或启动器功能之一或两者时,处理器240可以确定应用被设置为指定功能。

在一个实施例中,例如,当与应用的使用相关的事件在指定的时间段内没有发生并且应用没有被设置为指定功能的状态被维持了指定的时间段时,处理器240可以将对应的应用确定为未使用的应用。

当应用图标不存在时,处理器240可以识别应用组件的记录在包管理器245中的最后使用时间。处理器240可以基于最后使用时间将在指定时间段(例如,32天)内未使用的应用确定为未使用的应用。

结合根据某些实施例的上述图4的操作440,将参考稍后描述的图5来描述某些实施例。

在操作445中,处理器240可以识别在指定时间段内未使用的至少一个应用包的信息。关于应用包的信息可以包括应用包的安装路径或指令集架构(例如,32位、64位)的信息中的之一或两者。

在操作450中,处理器240可以基于关于在指定时间段内未使用的至少一个应用包的信息,删除通过使用未使用的至少一个应用包执行编译而生成的工件。例如,处理器240可以基于应用包的安装路径和关于指令集结构的信息,删除位于相应路径中的工件(例如,odex、vdex或art之一或两者)。

在某些实施例中,尽管未示出,但是处理器240可以防止包括在阻止列表中的应用包的工件被删除。例如,阻止列表可以位于系统空间中,并且可以包括预加载应用。

在某些实施例中,尽管未示出,但是处理器240生成包括在使用电子装置201时影响性能的应用的列表,并且它可以防止列表中包括的应用包的工件被删除。

在某些实施例中,基于存储器220的剩余容量,可以系统地确保存储器220的可用空间,例如,通过执行阻止使用应用的配置文件的编译的执行的操作,或者通过执行删除通过使用应用的配置文件的编译的执行而生成的工件的操作。

图5是根据某些实施例的用于解释图4的操作440的流程图500。

参考图5,在操作505中,电子装置(例如,图2的电子装置201)的处理器(例如,图2的处理器240)可以确定应用图标是否存在。例如,处理器240可以识别应用图标是否存在于电子装置201的主屏幕或菜单屏幕中之一或两者上。

如果应用图标存在(例如,操作505中的是),则处理器240可以在操作510期间识别应用未使用的时间段。

例如,处理器240可以识别与应用的使用相关的事件是否发生。例如,与应用的使用相关的事件包括应用执行事件(例如,基于选择应用图标的输入执行应用的事件)、使用应用的共享事件(例如,基于选择共享按钮的输入通过应用共享内容)、弹出消息事件(例如,用于通过吐司消息(toast message)输出通知或消息之一或两者的事件)、以及用于安装应用的窗口小部件的事件。处理器240可以基于与应用的使用相关的事件是否发生来识别应用的未使用的时间段。

处理器240可以识别应用是否被设置为指定功能。例如,当应用被设置为移动装置管理(MDM)功能、辅助服务或默认应用时,处理器240可以确定应用被设置为指定功能。当应用被设置为壁纸功能或启动器功能之一或两者时,处理器240可以确定应用被设置为指定功能。处理器240可以基于应用是否被设置为指定功能来识别应用的未使用的时间段。

在操作515中,处理器240可以识别应用的未使用的时间段是否超过指定时间段(例如,32天)。例如,处理器240可以识别与应用的使用相关的事件没有发生的时间段是否超过指定时间段,以及应用没有被设置为指定功能的时间段是否超过指定时间段。

当应用的未使用的时间段超过指定时间段时(例如,操作515中的是),在操作520中,处理器240可以将应用添加到要删除的工件的列表中。例如,处理器240将在指定时间段内不使用的应用添加到列表中以删除工件;并且,基于关于在上述图4的操作445和450的指定时间段内未被使用的至少一个应用包的信息,它可以删除通过使用未被使用的至少一个应用包执行编译而生成的工件。

当应用的未使用的时间段没有超过指定时间段时(例如,操作515中的否),处理器240可以执行操作510,用于识别应用的未使用的时间段。本公开不限于这样的实施例。例如,当应用的未使用的时间段没有超过指定时间段时(例如,操作515中的否),处理器240可以结束该过程。

如果应用图标不存在(例如,在操作505中为否),则在操作525中,处理器240可以识别构成应用包的应用组件最后被使用的时间。例如,在应用没有图标的情况下,它可能由另一个应用执行,或者可以在使用指定功能时隐式执行。在这种情况下,处理器240可以识别应用组件(例如,构成包的构建块)的记录在包管理器(例如,图2的包管理器245)中的最后使用时间。

在实施例中,在操作530中,处理器240可以基于最后使用应用组件的时间来识别应用组件的未使用的时间段。在操作535中,处理器240可以识别应用组件的未使用的时间段是否超过指定时间段。

在实施例中,当应用组件的未使用的时间段超过指定时间段时(例如,操作535中的是),处理器240可以在操作520中将应用添加到要删除的工件的列表。

在实施例中,当应用组件的未使用的时间段没有超过指定时间段时(例如,操作535中的否),处理器240可以执行操作530,以基于应用组件的使用时间来识别应用组件的未使用的时间段。本公开不限于这样的实施例。例如,应用组件的未使用的时间段没有超过指定时间段(例如,操作535中的否),处理器240可以结束该过程。

图6是根据某些实施例的用于解释基于存储器220的剩余容量来管理存储器220的方法的流程图600。

根据某些实施例的图6的操作可以是上述图4的操作450的附加操作。

参考图6,在操作605中,电子装置(例如,图2的电子装置201)的处理器(例如,图2的处理器240)识别(例如,检查)存储器(例如,图2的存储器220)的剩余容量;并且,在操作610中,它可以识别(例如,确定)存储器220的剩余容量是否大于或等于指定比。

在某些实施例中,如图3所示,指定比可以包括可用容量在存储器220的总容量中的比。指定比可以包括多个指定比,诸如第一指定比(例如,8%)、第二指定比(例如,5%)和第三指定比(例如,1%)。前述内容是通过示例而非限制的方式提供的。

在实施例中,在操作615中,基于存储器220的剩余容量大于或等于指定比的识别,处理器240可以通过编译从其删除了工件的包或者通过使用应用的配置文件重新编译来恢复被删除的工件。

例如,如果存储器220的剩余容量被识别为大于或等于第三指定比,则处理器240可以编译从其删除了工件的包。可以生成编译包的工件。在某些实施例中,当确保存储器220的剩余容量大于或等于第三指定比时,支持立即编译已经从中删除了工件的包,并且可以避免使用应用时性能退化的结果。

作为另一示例,如果确认存储器220的剩余容量大于或等于第二指定比,则处理器240可以使用应用的配置文件通过重新编译来恢复被删除的工件。例如,处理器240可以基于Java代码文件和应用的配置文件来执行重新编译。处理器240可以通过执行重新编译来恢复被删除的工件。在这种情况下,处理器240可以恢复应用使用点。

在某些实施例中,当应用的配置文件不存在时,处理器240可以使用Java代码文件将应用恢复到应用被安装的时间点。

在另一实施例中,当确认存储器220的剩余容量大于或等于第三指定比时,处理器240可以基于Java代码文件进行编译,以仅恢复应用的基本功能。如果确认存储器220的剩余容量大于或等于大于第三指定比的第二指定比,则处理器240可以基于应用的配置文件进行编译,并将应用恢复到使用点。

在某些实施例中,当存储器220的剩余容量被确保在指定比或更高时,处理器240执行用于恢复差异删除的产品的操作。例如,可以通过编译从其中删除了工件的包或者通过使用应用的配置文件执行重新编译来防止应用的性能退化。

根据各种实施例的电子装置可以是各种类型的电子装置之一。电子装置可包括例如便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、便携式医疗装置、相机、可穿戴装置或家用电器。根据本公开的实施例,电子装置不限于以上所述的那些电子装置。

应该理解的是,本公开的各种实施例以及其中使用的术语并不意图将在此阐述的技术特征限制于具体实施例,而是包括针对相应实施例的各种改变、等同形式或替换形式。对于附图的描述,相似的参考标号可用来指代相似或相关的元件。将理解的是,与术语相应的单数形式的名词可包括一个或更多个事物,除非相关上下文另有明确指示。如这里所使用的,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的短语中的每一个短语可包括在与所述多个短语中的相应一个短语中一起列举出的项的任意一项或所有可能组合。如这里所使用的,诸如“第1”和“第2”或者“第一”和“第二”的术语可用于将相应部件与另一部件进行简单区分,并且不在其它方面(例如,重要性或顺序)限制所述部件。将理解的是,在使用了术语“可操作地”或“通信地”的情况下或者在不使用术语“可操作地”或“通信地”的情况下,如果一元件(例如,第一元件)被称为“与另一元件(例如,第二元件)结合”、“结合到另一元件(例如,第二元件)”、“与另一元件(例如,第二元件)连接”或“连接到另一元件(例如,第二元件)”,则意味着所述一元件可与所述另一元件直接(例如,有线地)连接、与所述另一元件无线连接、或经由第三元件与所述另一元件连接。

如与本公开的各种实施例关联使用的,术语“模块”可包括以硬件、软件或固件实现的单元,并可与其他术语(例如,“逻辑”、“逻辑块”、“部分”或“电路”)可互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成部件或者是该单个集成部件的最小单元或部分。例如,根据实施例,可以以专用集成电路(ASIC)的形式来实现模块。

可将在此阐述的各种实施例实现为包括存储在存储介质(例如,内部存储器136或外部存储器138)中的可由机器(例如,电子装置101)读取的一个或更多个指令的软件(例如,程序140)。例如,在处理器的控制下,所述机器(例如,电子装置101)的处理器(例如,处理器120)可在使用或无需使用一个或更多个其它部件的情况下调用存储在存储介质中的所述一个或更多个指令中的至少一个指令并运行所述至少一个指令。这使得所述机器能够操作用于根据所调用的至少一个指令执行至少一个功能。所述一个或更多个指令可包括由编译器生成的代码或能够由解释器运行的代码。可以以非暂时性存储介质的形式来提供机器可读存储介质。其中,术语“非暂时性”仅意味着所述存储介质是有形装置,并且不包括信号(例如,电磁波),但是该术语并不在数据被半永久性地存储在存储介质中与数据被临时存储在存储介质中之间进行区分。

根据实施例,可在计算机程序产品中包括和提供根据本公开的各种实施例的方法。计算机程序产品可作为产品在销售者和购买者之间进行交易。可以以机器可读存储介质(例如,紧凑盘只读存储器(CD-ROM))的形式来发布计算机程序产品,或者可经由应用商店(例如,Play StoreTM)在线发布(例如,下载或上传)计算机程序产品,或者可直接在两个用户装置(例如,智能电话)之间分发(例如,下载或上传)计算机程序产品。如果是在线发布的,则计算机程序产品中的至少部分可以是临时生成的,或者可将计算机程序产品中的至少部分至少临时存储在机器可读存储介质(诸如制造商的服务器、应用商店的服务器或转发服务器的存储器)中。

根据各种实施例,上述部件中的每个部件(例如,模块或程序)可包括单个实体或多个实体,并且多个实体中的一些实体可分离地设置在不同的部件中。根据各种实施例,可省略上述部件中的一个或更多个部件,或者可添加一个或更多个其它部件。可选择地或者另外地,可将多个部件(例如,模块或程序)集成为单个部件。在这种情况下,根据各种实施例,该集成部件可仍旧按照与所述多个部件中的相应一个部件在集成之前执行一个或更多个功能相同或相似的方式,执行所述多个部件中的每一个部件的所述一个或更多个功能。根据各种实施例,由模块、程序或另一部件所执行的操作可顺序地、并行地、重复地或以启发式方式来执行,或者所述操作中的一个或更多个操作可按照不同的顺序来运行或被省略,或者可添加一个或更多个其它操作。

技术分类

06120116217981