发布信息

电子装置和管理电子装置的存储器的方法与流程 专利技术说明

作者:admin      2023-07-20 08:39:25     380



计算;推算;计数设备的制造及其应用技术1.以下实施例涉及电子装置和管理电子装置的存储器的方法。背景技术:2.当终端的存储空间不足时,终端的整体性能可能会根据存储空间的状态而下降。因此,需要根据存储空间的状态抢先确保空闲存储空间,并且可能需要使终端的性能下降减到最低程度。3.可能需要一种在监测终端的存储状态的同时,通过依据要执行的对象改变对象的编译方案来确保存储空间并使性能下降减到最低程度的方法。技术实现要素:4.技术问题5.使用即时(jit)和提前编译的组合来生成在运行时加载的包的编译工件文件。要编译的包的运行时性能和编译工件文件的大小可以根据编译过滤器的类型而变化,这是编译的属性之一。6.包的性能可以根据编译工件文件而变化,并且当终端的存储空间不足时,终端的整体性能也可能下降。7.根据终端的存储空间的状态,可能需要抢先确保空闲存储空间。8.技术方案9.根据各种实施例,一种电子装置可以包括:至少一个处理器;以及存储器,所述存储器被配置为存储将由所述处理器执行的指令。其中,所述处理器可以被配置为:监测关于所述存储器的存储空间的信息和由所述处理器执行的多个对象的使用历史;基于所述信息或所述使用历史中的至少一者或两者,在所述多个对象中确定其编译方案将被改变的目标对象;以及通过改变所述目标对象的编译方案来增加所述存储器的空闲存储空间。10.根据各种实施例,一种电子装置可以包括:至少一个处理器;以及存储器,所述存储器被配置为存储将由所述处理器执行的指令。其中,所述处理器可以被配置为:监测关于所述存储器的存储空间的信息;基于由所述处理器执行的多个对象,生成包括所述多个对象中的至少一些对象的对象列表;以及通过改变所述对象列表中包括的至少一个对象的编译方案来增加所述存储器的空闲存储空间。11.根据各种实施例,一种管理电子装置的存储器的方法可以包括:监测关于所述存储器的存储空间的信息和由所述电子装置执行的多个对象的使用历史;基于所述信息和所述使用历史,在所述多个对象中确定其编译方案将被改变的目标对象;以及通过改变所述目标对象的编译方案来增加所述存储器的空闲存储空间。12.发明的有益效果13.根据各种实施例,电子装置可以根据存储器的存储空间的状态来确定对象的重要性,并且可以通过分阶段地改变对象的编译方案来确保存储器的空闲存储空间,同时保持电子装置的性能。14.根据各种实施例,电子装置可以通过减小编译工件文件(其在存储空间不足的情况下不能被用户任意减小)的大小来确保空闲存储空间。15.根据各种实施例,电子装置可以通过根据存储空间的状态分阶段地改变编译方案并在用户体验到迟缓之前抢先确保空闲存储空间来增强用户体验。附图说明16.图1是根据各种实施例的网络环境中的电子装置的框图。17.图2是示出根据各种实施例的管理电子装置的存储器的操作的示图。18.图3是根据各种实施例的监测存储器的存储空间的操作的示例。19.图4是根据各种实施例的监测存储器的存储空间的操作的另一示例。20.图5是示出根据各种实施例的管理电子装置的存储器的操作的流程图。21.图6示出了根据各种实施例的提高电子装置的电子装置性能的操作。22.图7是示出根据各种实施例的电子装置的操作的流程图。具体实施方式23.图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)。24.处理器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的部分。25.在主处理器121处于未激活(例如,睡眠)状态时,辅助处理器123可控制与电子装置101(而非主处理器121)的组件之中的至少一个组件(例如,显示模块160、传感器模块176或通信模块190)相关的功能或状态中的至少一些,或者在主处理器121处于激活状态(例如,运行应用)时,辅助处理器123可与主处理器121一起来控制与电子装置101的组件之中的至少一个组件(例如,显示模块160、传感器模块176或通信模块190)相关的功能或状态中的至少一些。根据实施例,可以将辅助处理器123(例如,isp或cp)实现为在功能上与辅助处理器123相关的另一部件(例如,相机模块180或通信模块190)的部分。根据实施例,辅助处理器123(例如,npu)可以包括为人工智能(ai)模型处理指定的硬件结构。ai模型可以通过机器学习来生成。这种学习可以例如由执行ai的电子装置101或经由单独的服务器(例如,服务器108)来执行。学习算法可以包括但不限于例如监督学习、无监督学习、半监督学习或强化学习。ai模型可以包括多个人工神经网络层。人工神经网络可以包括例如深度神经网络(dnn)、卷积神经网络(cnn)、递归神经网络(rnn)、受限玻尔兹曼机器(rbm)、深度信念网络(dbn)、双向递归深度神经网络(brdnn)、深度q网络或其中两种或更多种的组合,但不限于此。ai模型可以附加地或替代地包括除硬件结构之外的软件结构。26.存储器130可以存储由电子装置101的至少一个组件(例如,处理器120或传感器模块176)使用的各种数据。各种数据可以包括例如软件(例如,程序140)和与其相关的命令的输入数据或输出数据。存储器130可以包括易失性存储器132或非易失性存储器134。27.可以将程序140作为软件存储在存储器130中,并且程序140可以包括例如操作系统(os)142、中间件144或应用146。28.输入模块150可以从电子装置101的外部(例如,用户)接收将由电子装置101的另一组件(例如,处理器120)使用的命令或数据。输入模块150可以包括例如麦克风、鼠标、键盘、按键(例如按钮)或数字笔(例如手写笔)。29.声音输出模块155可以向电子装置101的外部输出声音信号。声音输出模块155可以包括例如扬声器或接收器。扬声器可以用于诸如播放多媒体或播放录音的通用目的。该接收器可以用于接收呼入。根据实施例,可以将接收器实现为与扬声器分离,或实现为扬声器的部分。30.显示模块160可以向电子装置101的外部(例如,用户)可视地提供信息。显示模块160可以包括例如显示器、全息装置或投影仪以及控制显示器、全息装置和投影仪中相应一者的控制电路。根据实施例,显示模块160可以包括适于感测触摸的触摸传感器,或者适于测量由触摸引起的力的强度的压力传感器。31.音频模块170可以将声音转换成电信号,反之亦可。根据实施例,音频模块170可以经由输入模块150获得声音,或者经由声音输出模块155或与电子装置101直接或无线连接的外部电子装置(例如,诸如扬声器或耳机的电子装置102)输出声音。32.传感器模块176可以检测电子装置101的操作状态(例如,功率或温度)或电子装置101外部的环境状态(例如,用户的状态),然后生成与检测到的状态相应的电信号或数据值。根据实施例,传感器模块176可以包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁性传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(ir)传感器、生物计量传感器、温度传感器、湿度传感器或照度传感器。33.接口177可支持将用来使电子装置101与外部电子装置(例如,电子装置102)直接(例如,通过有线)或无线连接的一个或更多个特定协议。根据实施例,接口177可以包括例如高清晰度多媒体接口(hdmi)、通用串行总线(usb)接口、安全数字(sd)卡接口或音频接口。34.连接端178可以包括连接器,其中,电子装置101可以经由该连接器与外部电子装置(例如,电子装置102)物理地连接。根据实施例,连接端178可包括例如hdmi连接器、usb连接器、sd卡连接器或音频连接器(例如,耳机连接器)。35.触觉模块179可以将电信号转换成可被用户经由他的触觉或动觉识别的机械刺激(例如,振动或运动)或电刺激。根据实施例,触觉模块179可以包括例如电机、压电元件或电刺激器。36.相机模块180可捕获静止图像和运动图像。根据实施例,相机模块180可包括一个或更多个透镜、图像传感器、isp或闪光灯。37.电力管理模块188可以管理对电子装置101的供电。根据实施例,电力管理模块188可以被实现为例如电力管理集成电路(pmic)的至少一部分。38.电池189可以向电子装置101的至少一个组件供电。根据实施例,电池189可以包括例如不可再充电的原电池、可再充电的蓄电池、或燃料电池。39.通信模块190可以支持在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立直接(例如,有线)通信信道或无线通信信道,并经由建立的通信信道执行通信。通信模块190可包括能够与处理器120(例如,应用处理器(ap))独立操作的一个或更多个cp,并支持直接(例如,有线)通信或无线通信。根据实施例,通信模块190可以包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(gnss)通信模块)或有线通信模块194(例如,局域网(lan)通信模块、或电力线通信(plc)模块)。这些通信模块中对应的一个可以经由第一网络198(例如,诸如bluetoothtm、无线保真(wi-fi)direct或红外数据协会(irda)的短距离通信网络)或第二网络199(例如,诸如传统蜂窝网络、5g网络、下一代通信网络、互联网或计算机网络(例如,lan或广域网(wan))的长距离通信网络)与外部电子装置104进行通信。可以将这些各种类型的通信模块实现为单个组件(例如,单个芯片),或可以将这些各种类型的通信模块实现为彼此分离的多个组件(例如,多个芯片)。无线通信模块192可使用存储在sim 196中的用户信息(例如,国际移动用户识别码(imsi))识别并验证通信网络(诸如第一网络198或第二网络199)中的电子装置101。40.无线通信模块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或更低的往返)。41.天线模块197可以将信号或电力发送到电子装置101的外部(例如,外部电子装置)或者从电子装置101的外部(例如,外部电子装置)接收信号或电力。根据实施例,天线模块197可以包括天线,该天线包括辐射元件,该辐射元件包括形成在基底(例如,印刷电路板(pcb))中或形成在基底上的导电材料或导电图案。根据实施例,天线模块197可以包括多个天线(例如,阵列天线)。在此情况下,可由例如通信模块190从所述多个天线中选择适合于在通信网络(诸如第一网络198或第二网络199)中使用的通信方案的至少一个天线。可以经由至少一个选择的天线在通信模块190与外部电子装置之间发送或接收信号或电力。根据实施例,除了辐射元件之外的另外的组件(例如,射频集成电路(rfic))可附加地形成为天线模块197的一部分。42.根据实施例,天线模块197可以形成毫米波天线模块。根据实施例,毫米波天线模块可以包括pcb、设置在pcb的第一表面(例如,底表面)上或者与第一表面相邻并且能够支持指定高频带(例如,毫米波带)的rfic、以及设置在pcb的第二表面(例如,顶表面或者侧表面)上或者与第二表面相邻并且能够发送或者接收指定高频带的信号的多个天线(例如,阵列天线)。43.上述组件中的至少一些可经由外设间通信方案(例如,总线、通用输入输出(gpio)、串行外设接口(spi)或移动工业处理器接口(mipi))相互连接并在其之间通信地传送信号(例如,命令或数据)。44.根据实施例,可经由与第二网络199连接的服务器108在电子装置101与外部电子装置104之间发送或接收命令或数据。电子装置102和电子装置104中的每一者可以是与电子装置101相同类型的装置,或者是与电子装置101不同类型的装置。根据实施例,要由电子装置101执行的所有或一些操作可以在一个或更多个外部电子装置(例如,外部电子装置102和104,以及服务器108)上执行。例如,如果电子装置101需要自动执行功能或服务或者应该响应于来自用户或另一装置的请求执行功能或服务,则电子装置101可请求该一个或更多个外部电子装置执行该功能或服务中的至少部分,而不是运行该功能或服务,或者电子装置101除了运行该功能或服务以外,还可请求该一个或更多个外部电子装置执行该功能或服务中的至少部分。接收到所述请求的所述一个或更多个外部电子装置可执行所述功能或服务中的所请求的所述至少部分,或者执行与所述请求相关的另外功能或另外服务,并且可以将执行的结果传送到电子装置101。电子装置101可在对该结果进行进一步处理的情况下或者在不对该结果进行进一步处理的情况下将该结果提供作为对该请求的至少部分答复。为此,例如,可以使用云计算技术、分布式计算技术、移动边缘计算(mec)技术或客户端-服务器计算技术。电子装置101可以使用例如分布式计算或mec来提供超低延迟服务。在另一个实施例中,外部电子装置104可以包括物联网(iot)装置。服务器108可以是使用机器学习和/或神经网络的智能服务器。根据实施例,外部电子装置104或服务器108可以包括在第二网络199中。电子装置101可以应用于基于5g通信技术或物联网相关技术的智能服务(例如,智能家居、智慧城市、智能汽车或医疗保健)。45.图2是示出根据各种实施例的管理电子装置的存储器的操作的示图。46.参考图2,根据各种实施例,电子装置(例如,图1的电子装置101)可以包括至少一个处理器120和存储器130,该存储器130存储有要由处理器120执行的指令。47.根据各种实施例,当存储器130的存储空间不足时,根据存储介质(例如,存储器130)的规格,输入/输出(i/o)处理可能变慢并变得迟缓。在此情况下,处理器120可以确保存储器130的空闲存储空间,以使电子装置101的整体性能正常化。处理器120可以通过改变用户不可见的文件的编译方案并执行重新编译来增加空闲存储空间。例如,处理器120可以通过改变对象的编译方案来减小编译工件文件的大小并增加空闲存储空间。因此,处理器120可以有效地确保存储器130的空闲存储空间,同时使电子装置101的性能下降最小化。48.根据各种实施例,处理器120可以从存储器130接收关于存储空间的信息,并在由处理器120执行的多个对象中确定其编译方案将被改变的目标对象。对象可以包括由处理器120执行的服务、包或程序(例如,图1的程序140)。例如,该对象可以包括应用(例如,图1的应用146)和该应用的包。该应用的包可以包括可执行文件。49.根据各种实施例,处理器120可以改变目标对象的编译方案,然后通过执行重新编译来生成重新编译的文件。处理器120可以通过将重新编译的文件发送到存储器130来增加空闲存储空间。处理器120可以将重新编译的文件发送到存储器130,并通过更新利用现有方法编译的文件来增加空闲存储空间。50.根据各种实施例,处理器120可以监测关于存储器130的存储空间的信息和由处理器120执行的多个对象的使用历史。关于存储空间的信息可包括存储器130的空闲存储空间与总存储空间的比率以及存储器130的空闲存储空间的大小。多个对象的使用历史可以包括多个对象未被使用的时段。51.根据各种实施例,处理器120可以基于关于存储空间的信息或多个对象的使用历史中的至少一者或两者,在多个对象中确定其编译方案将被改变的目标对象。52.根据各种实施例,处理器120可以基于存储器130的空闲存储空间,在多个对象中确定在第一时段期间未被使用的对象为第一目标对象。处理器120可以将在比第一时段短的第二时段期间未被使用的对象确定为第二目标对象。例如,第一时段可以是30天,第二时段可以是15天。53.根据各种实施例,处理器120可以基于存储器130的空闲存储空间,在多个对象中确定在显示器上没有图标的对象为目标对象。54.根据各种实施例,处理器120可以基于存储器130的空闲存储空间将多个对象中的所有对象确定为目标对象。当存储器130的空闲存储空间与总存储空间的比率小于比率阈值(例如,图5的第二阈值)时,处理器120可以将多个对象中的所有对象确定为目标对象。当存储器130的空闲存储空间与存储空间的比率小于比率阈值时,处理器120可以通过改变多个对象中的所有对象的编译方案来增加空闲存储空间。例如,比率阈值可以是2%。55.根据各种实施例,处理器120可以基于由处理器120执行的多个对象的使用历史来生成包括多个对象中的至少一些对象的对象列表。56.根据各种实施例,处理器120可以通过改变目标对象的编译方案来增加存储器130的空闲存储空间。当存储器130的空闲存储空间小于大小阈值(例如,图5的第一阈值)时,处理器120可以通过改变尚未被改变的对象的编译方案来增加空闲存储空间。大小阈值可以是由电子装置101预先确定的值。例如,大小阈值可以是500兆字节(mb)。57.根据各种实施例,处理器120可以通过基于关于存储器130的存储空间的信息改变对象列表中包括的至少一个对象的编译方案来增加存储器130的空闲空间。处理器120可以生成第一对象列表以包括多个对象中的在第一时段期间未被使用的对象。处理器120可以生成第二对象列表以包括多个对象中的在比第一时段短的第二时段期间未被使用的对象。58.根据各种实施例,处理器120可以生成第三对象列表以包括多个对象中的在显示器上没有图标的对象。59.根据各种实施例,处理器120可以将目标对象的编译过滤器降级。处理器120可以通过基于降级后的编译过滤器对目标对象进行重新编译来增加空闲存储空间。处理器120可以通过考虑电子装置101的状态来指定在后台执行重新编译的ap核心,从而使性能的下降最小化。60.根据各种实施例,处理器120可以基于存储器130的空闲存储空间与总存储空间的比率来确定其编译方案将被改变的对象列表。处理器120可以通过改变所确定的对象列表中包括的对象的编译方案来增加空闲存储空间。61.根据各种实施例,处理器120可以确定电子装置101是否在使用中,并且当电子装置101不在使用中时,处理器120可以通过改变目标对象的编译方案来增加存储器130的空闲存储空间。改变目标对象的编译方案的操作可以在后台执行。62.图3和图4是根据各种实施例的监测存储器的存储空间的操作的示例。63.参考图3和图4,根据各种实施例,处理器(例如,图1的处理器120)可以监测关于存储器(例如,图1的存储器130)的存储空间的信息。处理器120可以监测存储器130的存储空间不足的状态310。处理器120可以通过存储服务330监测关于存储器130的存储空间的信息。64.根据各种实施例,存储服务330可以通过监测存储器130检测到存储空间不足的状态。存储服务330可以向运行时(runtime)350发送消息(例如,意图)。在计算机科学中,运行时350可以是正在执行计算机程序时的操作。运行时350可以包括运行时库,该运行时库指示由预定编译器或虚拟机用来管理以计算机语言编写的程序的基本代码的库或程序。例如,运行时350可以包括android运行时(art)、java虚拟机(jvm)或dalvik vm。65.根据各种实施例,运行时350可以使用各种方案来执行编译。运行时350可以使用即时(jit)方案、提前(aot)方案或者jit方案和aot方案的混合组合来执行编译。例如,art可以通过由作为jit方案和aot方案的混合的dex2oat工具执行编译来生成在运行时加载的对象的编译工件文件。66.根据各种实施例,jit方案可以是在适当的时间执行编译方案。在jit方案中,当在执行用于加载类别的解释器方案的同时检测到重复执行时,可以运行jit编译器来提高执行速度。在jit方案中,本机代码可以被非常快速地执行,并且由于存储器被缓存,所以当执行重复调用时,可以使性能最大化。在jit方案中,由于编译为本机代码是在运行时执行的,因此可以缩短安装时间。67.根据各种实施例,aot方案可以是将源代码转换成本地代码、在安装对象时存储本机代码、以及在执行对象时读取本地代码的方案。在aot方案中,由于在安装对象时转换代码,因此与在第一次执行对象时转换代码的方案相比,可以通过减少第一次执行对象的时间来提高速度。68.根据各种实施例,处理器120可以使用jit方案和aot方案的混合组合来执行编译。处理器120可使用jit方案首次安装对象,以减少安装时间和所需的存储容量,并可以通过解释器根据用户模式存储简档。在存储简档之后,作业调度器启动aot后台服务守护程序,并且当满足预定条件时,处理器120可以生成通过在后台编译来编译的代码(例如,oat文件)。当驱动对象时,处理器120可以直接使用在编译的art运行时中编译的代码,而不用通过解释器。69.根据各种实施例,处理器120可以监测存储空间不足的状态410。处理器120可以通过存储空间监测服务430来监测存储器130的存储空间。存储空间监测服务430可以监测存储空间不足的状态410。存储空间监测服务430可以向运行时450发送消息(例如,意图)。70.图5是示出根据各种实施例的管理电子装置的存储器的操作的流程图。图5的操作510至560可以顺序地执行,但是不一定要顺序地执行。例如,操作510至560可以以不同的顺序执行,并且至少两个操作可以并行地执行。71.参考图5,根据各种实施例,处理器(例如,图1的处理器120)可以监测关于存储器(例如,图1的存储器130)的存储空间的信息和由处理器120执行的多个对象的使用历史。72.根据各种实施例,处理器120可以通过运行时510和对象管理器520来监测对象。运行时510可以向对象管理器520发送对对象列表的请求。对象管理器520可以通过监测多个对象来生成需要被优化的对象的对象列表,并将生成的对象列表发送到运行时510。73.根据各种实施例,对象管理器520可以生成第一对象列表以包括多个对象中的在第一时段期间未被使用的对象,并生成第二对象列表以包括多个对象中的在比第一时段短的第二时段期间未被使用的对象。例如,第一时段可以是30天,第二时段可以是15天。74.根据各种实施例,对象管理器520可以生成第三对象列表以包括多个对象中的在显示器上没有图标的对象。75.根据各种实施例,处理器120可以监测关于存储器130的存储空间的信息。处理器120可以通过监测来检测存储空间不足的状态。当检测到存储空间不足的状态时,在操作530中,处理器120可以暂停后台编译。例如,处理器120可以暂停后台dexopt(后台dex优化)。处理器120可以暂停后台dexopt,直到确保存储器130的空闲存储空间达到预定的存储容量。76.根据各种实施例,后台dexopt可以是基于当电子装置(例如,图1的电子装置101)被使用时生成的简档,使用dex2oat工具在后台编译android应用包(apk)中的dex文件的过程。处理器120可以通过后台dexopt执行编译来重新生成编译工件文件。77.根据各种实施例,编译工件文件可以包括.vdex、.odex、.oat或.art文件。.vdex文件可以包括apk的未压缩代码和附加元数据。.odex和/或.oat文件可以包括apk中定义的方案的aot编译代码。.art文件可以包括apk的.dex中列出的一些字符串和类别的内部表示。例如,处理器120可以通过后台dexopt重新生成.oat文件或.art文件。78.根据各种实施例,对象的性能可以根据编译方案或类别而变化。后台dexopt可以由作业调度器执行。79.根据各种实施例,在操作540中,处理器120可以确定空闲存储空间是否大于或等于第一阈值。例如,处理器120可以确定空闲存储空间是否大于或等于500mb。80.根据各种实施例,在操作550中,当空闲存储空间大于或等于第一阈值时,处理器120可以改变对象列表的对象的编译方案。当电子装置101不在使用中时,处理器120可以在后台改变对象列表中包括的对象的编译方案。81.根据各种实施例,当空闲空间大于或等于第一阈值时,处理器120可以基于生成的对象列表分阶段地修改对象的编译方案。处理器120可以将编译方案将被改变的目标对象的编译过滤器降级,并通过基于所降级的编译过滤器对目标对象进行重新编译来增加空闲存储空间。例如,处理器120可以通过对编译过滤器进行降级并执行重新编译,将对象的空闲存储空间增加100到200mb的空闲存储空间。82.根据各种实施例,处理器120可以在运行时(例如,art)使用dex2oat工具编译dex文件。处理器120可以通过改变编译过滤器(或编译过滤器选项)来改变编译方案。表1中示出了编译过滤器的类型。83.[表1][0084]编译过滤器描述从apk运行使用apk中的dex文件执行对象提取只解压apk中的dex文件,并将其复制到预定的路径验证只运行dex代码验证加快运行dex代码验证并优化一些dex指令速度简档运行dex代码验证并对简档中的方案进行aot编译速度运行dex代码验证并对所有方案进行aot编译[0085]根据各种实施例,表1可以按照降级到升级的编译过滤器的顺序列出编译过滤器。换句话说,对编译过滤器进行降级可能意味着编译过滤器的类型被改变为在表1中相对较高的行中列出的编译过滤器。[0086]根据各种实施例,根据编译过滤器的类型,通过dex2oat工具编译的对象的运行时性能可以变化,并且所生成的编译工件文件(例如.odex文件或.art文件)的大小可以变化。编译工件文件的大小可以根据对象的类型而变化,并且大小的范围可以从0mb到数百mb。处理器120可以通过改变编译过滤器的类型来防止由于存储器130的存储空间不足而导致的电子装置101的性能下降。[0087]根据各种实施例,处理器120可以通过基于对象的重要性生成对象列表,以及通过根据存储器130的空闲存储空间的大小分阶段地改变编译过滤器的类型以确保空闲存储空间,来使性能下降最小化。[0088]根据各种实施例,处理器120可以通过对编译过滤器进行降级来改变编译方案。处理器120可以通过对编译过滤器进行降级并执行重新编译来重新生成编译工件文件。由于重新生成的编译工件文件具有比重新编译之前的编译工件文件更小的容量,所以存储器130的空闲存储空间可以增加。[0089]根据各种实施例,处理器120可以根据存储器130的空闲存储空间与总存储空间的比率来改变包括在不同对象列表中的对象的编译方案。当电子装置101不在使用中时,可以在后台改变对象列表中包括的对象的编译方案。[0090]根据各种实施例,当存储器130的空闲存储空间与总存储空间的比率小于第一比率时,处理器120可以改变包括在第一对象列表中的对象的编译方案。例如,当空闲存储空间与总存储空间的比率小于5%时,在操作551中,处理器120可以改变30天内未使用的对象的编译方案。[0091]根据各种实施例,当存储器130的空闲存储空间与总存储空间的比率小于第二比率时,处理器120可以改变包括在第三对象列表中的对象的编译方案。例如,当空闲存储空间与总存储空间的比率小于4%时,在操作553中,处理器120可以改变没有图标的对象的编译方案。[0092]根据各种实施例,当存储器130的空闲存储空间与总存储空间的比率小于第三比率时,处理器120可以改变包括在第二对象列表中的对象的编译方案。例如,当空闲存储空间与总存储空间的比率小于3%时,在操作555中,处理器120可以改变15天内未使用的对象的编译方案。[0093]根据各种实施例,当存储器130的空闲存储空间与总存储空间的比率小于第四比率(例如,图2的第二阈值)时,处理器120可以编译所有对象的方案。所有对象可以包括未包括在第一对象列表、第二对象列表和第三对象列表中的对象。例如,当空闲存储空间与总存储空间的比率小于2%时,在操作557中,处理器120可以改变所有对象(或者未包括在第一对象列表、第二对象列表和第三对象列表中的对象)的编译方案。[0094]根据各种实施例,当存储器130的空闲存储空间小于第一阈值时,在操作560中,处理器120可以在后台改变尚未被改变的对象的编译方案。当存储器130的空闲存储空间小于第一阈值时,处理器120可以通过改变尚未被改变的对象的编译方案来增加空闲存储空间。处理器120可以在前台对其中编译方案尚未被改变的对象的编译方案执行改变的操作。[0095]根据各种实施例,处理器120可以通过根据存储器130的空闲存储空间的状态分阶段地改变对象列表的对象的编译方案来确保存储器130的空闲存储空间,而无需电子装置101的用户的单独控制。处理器120可以延迟频繁使用的对象的编译方案被降级的时间点,以防止用户频繁使用的对象的性能下降,从而提高用户体验。[0096]图6示出了根据各种实施例的提高电子装置的电子装置性能的操作。[0097]参考图6,根据各种实施例,当存储器610(例如,图1的存储器130)的空闲存储空间达到预定值或更大时,处理器(例如,图1的处理器120)可以恢复其中编译方案已经被改变的对象的编译方案。当存储器610的空闲存储空间与总存储空间的比率达到预定值或更大时,处理器120可以恢复编译方案。[0098]根据各种实施例,运行时630可以从存储器610接收关于空闲存储空间的信息。运行时630可以确定存储器610的空闲存储空间与总存储空间的比率是否大于或等于预定值。例如,预定值可以是10%。[0099]根据各种实施例,当空闲存储空间与总存储空间的比率达到预定值或更大时,处理器120可以改变或恢复对象的编译方案。例如,当存储器610的空闲存储空间与总存储空间的比率为10%或更大时,在操作650中,处理器120可以通过运行时630改变(或恢复)所有对象的编译方案。当电子装置(例如,图1的电子装置101)不在使用中时,编译方案的恢复可以在后台执行。[0100]根据各种实施例,当存储器610的空闲存储空间与总存储空间的比率达到预定值或更大时,处理器120可以通过对所降级的编译过滤器进行升级来重新编译所降级的编译过滤器。表2可以根据编译过滤器的类型示出编译工件文件的大小。[0101][表2][0102][0103]根据各种实施例,处理器120可以通过将编译过滤器的类型从“验证”恢复到“速度简档”并执行重新编译来提高对象的性能。表3可以示出当用“速度简档”执行编译时对象的进入时间和可用存储空间的大小,表4可以示出当用“验证”执行编译时对象的进入时间和可用存储空间的大小。[0104][表3][0105]项目 重新进入计数25.2平均进入速度401ms平均可用存储器3101mb平均空闲存储器663mb平均缓存存储器2437mb平均交换使用存储器1039mb[0106][表4][0107][0108]根据各种实施例,当存储器610的空闲存储空间不足时,处理器120可以通过对编译过滤器进行降级来防止电子装置101变得迟缓,并且当空闲存储空间充足时,处理器120可以恢复编译过滤器。因此,可以提高对象的性能,并且可以稳定地保证电子装置101和对象的性能。[0109]图7是示出根据各种实施例的电子装置的操作的流程图。图7的操作710至750可以顺序地执行,但是不一定要顺序地执行。例如,操作710至750可以以不同的顺序执行,并且至少两个操作可以并行地执行。[0110]参考图7,根据各种实施例,在操作710中,处理器(例如,图1的处理器120)可以监测关于存储器(例如,图1的存储器130)的存储空间的信息和由电子装置执行的多个对象的使用历史。关于存储空间的信息可包括存储器130的空闲存储空间与总存储空间的比率以及存储器130的空闲存储空间的大小。多个对象的使用历史可以包括多个对象未被使用的时段。[0111]根据各种实施例,在操作730中,处理器120可以基于关于存储空间的信息和多个对象的使用历史,在多个对象中确定其编译方案将被改变的目标对象。处理器120可以基于存储器130的空闲存储空间,将多个对象中的在第一时段期间未被使用的对象确定为第一目标对象,并将在比第一时段短的第二时段期间未被使用的对象确定为第二目标对象。处理器120可以基于存储器130的空闲存储空间,将多个对象中的在显示器上没有图标的对象确定为目标对象。处理器120可以基于存储器130的空闲存储空间将多个对象中的所有对象确定为目标对象。当存储器130的空闲存储空间与存储空间的比率小于第二阈值时,处理器120可以将多个对象中的所有对象确定为目标对象。[0112]根据各种实施例,处理器120可以基于由处理器120执行的多个对象的使用历史来生成包括多个对象中的至少一些对象的对象列表。处理器120可以生成第一对象列表以包括多个对象中的在第一时段期间未被使用的对象,并生成第二对象列表以包括多个对象中的在比第一时段短的第二时段期间未被使用的对象。处理器120可以生成第三对象列表以包括多个对象中的在显示器上没有图标的对象。[0113]根据各种实施例,在操作750中,处理器120可以通过改变目标对象的编译方案来增加存储器130的空闲空间。处理器120可以通过对目标对象的编译过滤器进行降级并基于所降级的编译过滤器对目标对象进行重新编译来增加空闲存储空间。[0114]根据各种实施例,处理器120可以基于存储器130的空闲存储空间与总存储空间的比率来确定其编译方案将被改变的对象列表,并通过改变所确定的对象列表中包括的对象的编译方案来增加空闲存储空间。[0115]根据各种实施例,处理器120可以确定电子装置是否在使用中,并且当电子装置不在使用中时,处理器120可以通过改变目标对象的编译方案来增加空闲存储空间。改变目标对象的编译方案的操作可以在后台执行。[0116]根据各种实施例,当存储器130的空闲存储空间小于第一阈值时,处理器120可以通过改变其中编译方案尚未被改变的对象的编译方案来增加空闲存储空间。[0117]根据各种实施例,电子装置(例如,图1的电子装置101)可以包括至少一个处理器(例如,图1的处理器120)和被配置成存储要由处理器执行的指令的存储器(例如,图1的存储器130),其中处理器可以检测关于存储器的存储空间的信息和由处理器执行的多个对象的使用历史,基于信息或使用历史中的至少一者或两者,在多个对象中确定其编译方案将被改变的目标对象,并通过改变目标对象的编译方案来增加存储器的空闲存储空间。[0118]根据各种实施例,该信息可以包括存储器的空闲存储空间与总存储空间的比率以及存储器的空闲存储空间的大小,并且该使用历史可以包括多个对象未被使用的时段。[0119]根据各种实施例,当存储器的空闲存储空间小于第一阈值时,处理器可以通过改变其中编译方案尚未被改变的对象的编译方案来增加空闲存储空间。[0120]根据各种实施例,处理器可以基于存储器的空闲存储空间将多个对象中的在第一时段期间未被使用的对象确定为第一目标对象,并将在比第一时段短的第二时段期间未被使用的对象确定为第二目标对象。[0121]根据各种实施例,处理器可以基于存储器的空闲存储空间将多个对象中在显示器上没有图标的对象确定为目标对象。[0122]根据各种实施例,处理器可以基于存储器的空闲存储空间将多个对象中的所有对象确定为目标对象。[0123]根据各种实施例,当存储器的空闲存储空间与存储空间的比率小于第二阈值时,处理器可以将多个对象中的所有对象确定为目标对象。[0124]根据各种实施例,处理器可以通过将目标对象的编译过滤器进行降级并基于所降级的编译过滤器对目标对象进行重新编译来增加空闲存储空间。[0125]根据各种实施例,处理器可以确定电子装置是否在使用中,并且当电子装置不在使用中时,处理器可以通过改变目标对象的编译方案来增加空闲存储空间。[0126]根据各种实施例,改变目标对象的编译方案的操作可以在后台执行。[0127]根据各种实施例,电子装置(例如,图1的电子装置101)可以包括至少一个处理器(例如,图1的处理器120)和被配置成存储要由处理器执行的指令的存储器(例如,图1的存储器130),其中处理器可以:监测关于存储器的存储空间的信息;基于由处理器执行的多个对象的使用历史来,生成包括多个对象中的至少一些对象的对象列表,以及通过基于该信息改变对象列表中包括的至少一个对象的编译方案来增加存储器的空闲存储空间。[0128]根据各种实施例,该信息可以包括存储器的空闲存储空间与总存储空间的比率以及存储器的空闲存储空间的大小,并且该使用历史可以包括多个对象未被使用的时段。[0129]根据各种实施例,当存储器的空闲存储空间小于第一阈值时,处理器可以通过改变其中编译方案尚未被改变的对象的编译方案来增加空闲存储空间。[0130]根据各种实施例,处理器可以生成第一对象列表以包括多个对象中的在第一时段期间未被使用的对象,并且生成第二对象列表以包括多个对象中的在比第一时段短的第二时段期间未被使用的对象。[0131]根据各种实施例,处理器可以生成第三对象列表以包括多个对象中的在显示器上没有图标的对象。[0132]根据各种实施例,处理器可以基于存储器的空闲存储空间与总存储空间的比率来确定其编译方案将被改变的对象列表,并通过改变所确定的对象列表中包括的对象的编译方案来增加空闲存储空间。[0133]根据各种实施例,当该比率小于第二阈值时,处理器可以通过改变多个对象中的所有对象的编译方案来增加空闲存储空间。[0134]根据各种实施例,处理器可以将至少一个对象的编译过滤器降级,并通过基于降级后的编译过滤器对至少一个对象进行重新编译来增加空闲存储空间。[0135]根据各种实施例,处理器可以确定电子装置是否在使用中,并且当电子装置不在使用中时,处理器可以通过改变至少一个对象的编译方案来增加空闲存储空间。[0136]根据各种实施例,一种管理电子装置(例如,图1的电子装置101)的存储器(例如,图1的存储器130)的方法可以包括:监测关于存储器的存储空间的信息和由电子装置执行的多个对象的使用历史;基于该信息和使用历史在多个对象中确定其编译方案将被改变的目标对象;以及通过改变目标对象的编译方案来增加存储器的空闲存储空间。[0137]根据各种实施例的电子装置可以是各种类型的电子装置之一。电子装置可以包括例如便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、便携式医疗装置、相机、可穿戴装置或家用电器装置。根据本公开的实施例,电子装置不限于以上所述的那些电子装置。[0138]应该理解的是,本公开的各种实施例以及其中使用的术语并不意图将在此阐述的技术特征限制于具体实施例,而是包括针对相应实施例的各种改变、等同形式或替换形式。结合附图的描述,相同的附图标记可用于相同或相关的组件。将理解的是,与术语相应的单数形式的名词可以包括一个或更多个事物,除非相关上下文另有明确指示。如这里所使用的“a或b”、“a和b中的至少一者”、“a或b中的至少一者”、“a、b或c中的至少一者”以及“a、b或c中的至少一者”,其中的每一者可以包括在相应的一个短语中一起列出的任何一个项目,或者其所有可能的组合。诸如“第1”、“第2”、“第一”或“第二”之类的术语可以简单地用于将该组件与所讨论的其他组件区分开,并且不在其他方面(例如,重要性或顺序)限制该组件。将理解的是,在使用了术语“可操作地”或“通信地”的情况下或者在不使用术语“可操作地”或“通信地”的情况下,如果一元件(例如,第一元件)被称为“与另一元件(例如,第二元件)耦接”、“耦接到另一元件(例如,第二元件)”、“与另一元件(例如,第二元件)连接”或“连接到另一元件(例如,第二元件)”,则意味着该一元件可与该另一元件直接(例如,通过有线)耦接、与该另一元件无线地耦接、或经由第三元件与该另一元件耦接。[0139]如结合本公开的实施例所使用的,术语“模块”可以包括以硬件、软件或固件实现的单元,并可以与其他术语(例如,“逻辑”、“逻辑区块”、“部分”或“电路”)可互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成组件或者是该单个集成组件的最小单元或部分。例如,根据实施例,可以以专用集成电路(asic)的形式来实现模块。[0140]可将在此阐述的各种实施例实现为包括存储在存储介质(例如,内部存储器136或外部存储器138)中的可由机器(例如,电子装置101)读取的一个或更多个指令的软件(例如,程序140)。例如,机器(例如,电子装置101)的处理器(例如,处理器120)可以调用存储在存储介质中的一个或更多个指令中的至少一个指令并执行该至少一个指令。这使得该机器能够操作用于根据所调用的至少一个指令执行至少一个功能。该一个或更多个指令可以包括由编译器生成的代码或能够由解释器运行的代码。可以以非暂时性存储介质的形式来提供机器可读存储介质。本文中,术语“非暂时性”仅意味着该存储介质是有形装置,并且不包括信号(例如,电磁波),但是该术语并不在数据被半永久性地存储在存储介质中与数据被临时存储在存储介质中之间进行区分。[0141]根据实施例,可以在计算机程序产品中包括和提供根据本公开的实施例的方法。计算机程序产品可作为产品在销售者与购买者之间进行交易。可以以机器可读存储介质(例如,紧凑盘只读存储器(cd-rom))的形式来发布计算机程序产品,或者可经由应用商店(例如,playstoretm)在线发布(例如,下载或上传)计算机程序产品,或者可直接在两个用户装置(例如,智能电话)之间分发(例如,下载或上传)计算机程序产品。如果是在线发布的,则计算机程序产品中的至少部分可以是临时产生的,或者可将计算机程序产品中的至少部分至少临时存储在机器可读存储介质(诸如制造商的服务器、应用商店的服务器或转发服务器的存储器)中。[0142]根据各种实施例,上述组件中的每个组件(例如,模块或程序)可以包括单个实体或多个实体,并且多个实体中的一些实体可以分开地设置在不同的组件中。根据各种实施例,可以省略一个或更多个上述组件或操作,或者可以添加一个或更多个其他组件或操作。替代地或附加地,多个组件(例如,模块或程序)可以集成到单个组件中。在此情况下,该集成组件可仍旧按照与该多个组件中的相应一个组件在集成之前执行一个或更多个功能相同或相同的方式,执行该多个组件中的每一个组件的该一个或更多个功能。根据各种实施例,由模块、程序或另一组件所执行的操作可顺序地、并行地、重复地或以启发式方式来执行,或者该操作中的一个或更多个操作可按照不同的顺序来执行或被省略,或者可添加一个或更多个其他操作。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部