CN111338636B - 内核预处理方法、内核预处理装置及电子设备 - Google Patents
内核预处理方法、内核预处理装置及电子设备 Download PDFInfo
- Publication number
- CN111338636B CN111338636B CN202010108565.7A CN202010108565A CN111338636B CN 111338636 B CN111338636 B CN 111338636B CN 202010108565 A CN202010108565 A CN 202010108565A CN 111338636 B CN111338636 B CN 111338636B
- Authority
- CN
- China
- Prior art keywords
- preprocessing
- application program
- kernel
- terminal equipment
- value
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本公开是关于一种内核预处理方法及装置、电子设备和计算机可读存储介质。其中,内核预处理方法应用于终端设备,内核预处理方法包括:监测终端设备的系统是否处于预处理触发状态;当系统处于预处理触发状态时,基于预处理注册表,确定预处理触发状态对应的应用程序;判断应用程序对应的内核数据是否需要进行预处理;若内核数据需要进行预处理,则对内核数据的代码进行编译;并基于编译后的代码对内核数据的参数进行调整。通过系统在满足预处理触发状态时启动对内核数据算子代码编译和参数调整,使得开放运算语言驱动升级后的第一次的算子计算性能大大提高,免去了应用程序启动时的等待时间,并且也降低了对终端设备资源的争夺,提高了用户体验。
Description
技术领域
本公开涉及音频处理技术领域,尤其涉及一种内核预处理方法、内核预处理装置、电子设备和计算机可读存储介质。
背景技术
图形处理器(Graphics Processing Unit,GPU)等高性能计算中涉及多种计算内核,每种内核函数在不同输入或者设备上效率差异巨大,需要进行代码的预先编译、以及依据输入信息和设备算力动态调整内核函数的相关参数,以实现最优调度。而对于如手机等,终端设备移动设备,由于设备众多,很难提前针对所有设备全部进行调优。当安卓系统的开放运算语言(Open Computing Language,OPENCL)驱动升级后,这些内核的算子(kernel)需要重新编译、参数需要重新调优,导致应用程序(Application,APP)启动时需要耗费大量时间,非常影响用户体验。
发明内容
为克服相关技术中存在的问题,本公开提供一种内核预处理方法、内核预处理装置、电子设备和计算机可读存储介质。
根据本公开实施例的第一方面,提供一种内核预处理方法,应用于终端设备,方法包括:监测终端设备的系统是否处于预处理触发状态;当系统处于预处理触发状态时,基于预处理注册表,确定预处理触发状态对应的应用程序;判断应用程序对应的内核数据是否需要进行预处理;若内核数据需要进行预处理,则对内核数据的代码进行编译;并基于编译后的代码对内核数据的参数进行调整。
在一实施例中,方法还包括:向系统的预处理注册表提交应用程序的标识、以及应用程序对应的预处理触发状态。
在一实施例中,在以下任一情况时,向系统的预处理注册表提交应用程序的标识、以及应用程序对应的预处理触发状态:应用程序在系统完成安装时、应用程序首次启动时、应用程序完成版本更新时、或接收到应用程序对应的服务端发送的启用指令时。
在一实施例中,方法还包括:在以下任一情况时,删除系统的预处理注册表中应用程序的标识、以及应用程序对应的预处理触发状态:应用程序在系统中被删除时、或接收到应用程序对应的服务端发送的停用指令时。
在一实施例中,应用程序包括目标函数值,且目标函数值的初始值为第一值;判断应用程序对应的内核数据是否需要进行预处理,包括:检测应用程序的目标函数值是否为第一值;在目标函数值为第一值时确定内核数据需要进行预处理;在目标函数值为第二值时检测系统是否已升级:并且在检测到系统已升级时,确定内核数据需要进行预处理;在对内核数据的代码进行编译之后,内核预处理方法还包括:将目标函数值更新为第二值。
在一实施例中,预处理触发状态包括以下至少一种:终端设备处于闲置状态、终端设备处于充电状态、终端设备当前电量大于预设阈值的状态、终端设备处于预设网络条件的状态、应用程序距离前次进行预处理的时间超过预设时长的状态。
根据本公开实施例的第二方面,提供一种内核预处理装置,应用于终端设备,装置包括:监测单元,用于监测终端设备的系统是否处于预处理触发状态;确定单元,用于当系统处于预处理触发状态时,基于预处理注册表,确定预处理触发状态对应的应用程序;判断单元,用于判断应用程序对应的内核数据是否需要进行预处理;预处理单元,用于当内核数据需要进行预处理时,对内核数据的代码进行编译;并用于基于编译后的代码对内核数据的参数进行调整。
在一实施例中,装置还包括:注册单元,用于向系统的预处理注册表提交应用程序的标识、以及应用程序对应的预处理触发状态。
在一实施例中,在以下任一情况时,注册单元用于向系统的预处理注册表提交应用程序的标识、以及应用程序对应的预处理触发状态:应用程序在系统完成安装时、应用程序首次启动时、应用程序完成版本更新时、或接收到应用程序对应的服务端发送的启用指令时。
在一实施例中,注册单元还用于:在以下任一情况时,删除系统的预处理注册表中应用程序的标识、以及应用程序对应的预处理触发状态:应用程序在系统中被删除时、或接收到应用程序对应的服务端发送的停用指令时。
在一实施例中,应用程序包括目标函数值,且目标函数值的初始值为第一值;判断单元用于:检测应用程序的目标函数值是否为第一值;在目标函数值为第一值时,确定内核数据需要进行预处理;在目标函数值为第二值时,通过升级检测单元检测系统是否已升级:并且在检测到系统已升级时,确定内核数据需要进行预处理;装置还包括:函数更新单元,用于在对内核数据的代码进行编译之后,将目标函数值更新为第二值。
在一实施例中,预处理触发状态包括以下至少一种:终端设备处于闲置状态、终端设备处于充电状态、终端设备当前电量大于预设阈值的状态、终端设备处于预设网络条件的状态、应用程序距离前次进行预处理的时间超过预设时长的状态。
根据本公开实施例的第三方面,提供一种电子设备,包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行第一方面的内核预处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,存储有指令,指令被处理器执行时,执行第一方面的内核预处理方法。
本公开的实施例提供的技术方案可以包括以下有益效果:通过系统在满足预处理触发状态时启动对内核数据算子(kernel)代码编译和参数调整,使得开放运算语言(OpenComputing Language,OPENCL)驱动升级后的第一次的算子计算性能大大提高,免去了应用程序启动时的等待时间,并且也降低了对终端设备资源的争夺,提高了用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种内核数据更新方法的流程示意图;
图2是根据一示例性实施例示出的另一种内核数据更新方法的流程示意图;
图3是根据一示例性实施例示出的一种内核数据更新装置的示意框图;
图4是根据一示例性实施例示出的另一种内核数据更新装置的示意框图;
图5是根据一示例性实施例示出的一种装置的示意框图。
图6是根据一示例性实施例示出的一种电子装置的示意框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
目前一些技术中,有些应用程序与系统绑定,并能与系统一起进行升级,如高通的神经网络处理引擎(Snapdragon Neural Processing Engine SDK,SNPE),会在检测到开放运算语言(Open Computing Language,OPENCL)驱动升级时,便会编译算子(kernel)代码并调整内核参数,然后随系统升级将SNPE一起进行更新。该方案虽然可以解决重新编译和参数调整的调优问题,但只能对与手机厂商合作的软件才能实现,对于更广泛的第三方软件,由于无法随系统升级一起发布,也无从知道系统升级的时间点,因此不能解决问题。
在另一些技术中,采用了在应用程序第一次运行或者开放运算语言驱动升级后的第一次运行的初始化时对算子代码进行编译和参数调整,还有的框架为了提升速度,只进行代码编译,不进行参数调整(这样会降低性能)。该方案在应用程序启动后需要等待很久的运行时间,并且每次系统升级后启动应用程序都需要进行等待,极大影响用户体验。
而本公开为解决上述问题,提供一种内核预处理方法10,该方法可以用于多种终端设备,如手机、平板电脑等,参见图1,内核预处理方法10包括步骤S11-S15,以下详细说明:
步骤S11,监测终端设备的系统是否处于预处理触发状态。
监测系统的当前状态是否处于预处理触发状态,避免内核数据的更新影响用户的正常使用,也避免占用过多系统资源或增加过多终端设备的功耗。
在一些实施例中,预处理触发状态可以包括以下至少一种:终端设备处于闲置状态、终端设备处于充电状态、终端设备当前电量大于预设阈值的状态、终端设备处于预设网络条件的状态、应用程序距离前次进行预处理的时间超过预设时长的状态。根据实际设置,预处理触发状态可以是上述多个状态中的一个,也可以是多个状态中几个的组合状态。
其中,终端设备处于闲置状态可以指当前终端设备的屏幕处于息屏的状态并持续一段时间,终端设备处于闲置状态时,一般是用户目前没有使用终端设备,此时进行预处理不会因占用系统资源而导致影响用户使用,避免对计算资源的争夺。。
其中,终端设备处于充电状态可以是终端铜设备当前正通过有线或无线的方式进行充电;终端设备当前电量大于预设阈值的状态可以是当前电量大于总电量的50%或其他预设阈值。在终端设备处于充电或电量大于预设阈值时,此时进行内核预处理能够避免或减小对终端设备电量损耗的影响,以免在预处理过程中断电。
其中,终端设备处于预设网络条件的状态中的预设网络条件,可以是通过任一形式联通网络,即当前终端设备的网络状态处于:JobInfo.NETWORK_TYPE_ANY,即任意一种网络联通,如通过蜂窝网络或连接了WiFi;预设网络条件也可以是终端设备的目前通过非蜂窝网络进行的联通,即网络状态处于:JobInfo.NETWORK_TYPE_UNMETERED,即当前终端设备通过其他方式进行了联网,从而能够保证终端设备数据传输的速率、稳定,也避免了预处理中数据传输的流量传输成本。
其中,应用程序距离前次进行预处理的时间超过预设时长的状态,可以是设置一预设时长,由于一个应用程序距离前次预处理的时间已经有很长时间的情况下,再次运行时往往都需要进行预处理,为了避免一个应用程序一直未进行更新,设置一预设时长,当检测到应用程序距离前次预处理的时间已经超过预设时长后,即对该应用程序进行预处理。
步骤S12,当系统处于预处理触发状态时,基于预处理注册表,确定预处理触发状态对应的应用程序。
在监测到系统处于预处理触发状态后,可以通过系统的预处理注册表确定当前的预处理触发状态对应的应用程序。其中,预处理注册表中记录了注册的应用程序和与应用程序对应的预处理触发状态,根据当前系统的预处理触发状态,可以找到对应的应用程序。
步骤S13,判断应用程序对应的内核数据是否需要进行预处理。
在系统处于预处理触发状态,并且根据预处理注册表确定了应用程序后,判断应用程序对应的内核数据是否需要进行预处理。若判断不需要进行预处理,则不执行操作,若需要预处理,则可以执行步骤S14和步骤S15。
步骤S14,若内核数据需要进行预处理,则对内核数据的代码进行编译。
在系统处于预处理触发状态的情况下,如判断对应的应用程序内核数据需要进行预处理,则可以即刻启动对内核数据的算子代码进行编译,从而保证了在下次应用程序启动时可以直接运行。
步骤S15,基于编译后的代码对内核数据的参数进行调整。
在算子代码重新进行了编译后,系统进一步的基于编译后的代码对内核的参数进行调整,使得内核能够满足当前算子代码的需求并实现最好的性能。
通过上述实施例,能够在系统处于条件状态的情况下,对内核数据进行预处理,免除应用程序在启动时算子代码编译和参数调整的时间,使得开放运算语言驱动升级后的第一次的算子计算性能大大提高,极大地提高了用户体验。
在一实施例中,如图2所示,内核预处理方法10还可以包括:步骤S16,向系统的预处理注册表提交应用程序的标识、以及应用程序对应的预处理触发状态。
安卓(Android)系统为应用程序(APP)提供的任务调度器(JobScheduler)机制,能够使得系统根据注册的条件和操作,在满足条件时自动触发相应的操作。因此,应用程序可以向系统的任务调度器(JobScheduler)进行注册,其中建立一预处理注册表,注册的内容包括提交应用程序的标识,如应用程序名称或其他能够指向该应用程序的标识,注册的内容还需要提交该应用程序对应的预处理触发状态,使得能够通过预处理注册表中的内容,基于预处理条件状态能够确定需要执行的应用程序。还可以提交在满足预处理触发状态后需要对该应用程序执行的操作,如步骤S14等。系统基于在任务调度器的注册,在监测到系统处于预处理触发状态时做进一步的判断和更新。
其中,在一些实施例中,可以在在以下任一情况时,执行步骤S16:应用程序在系统完成安装时、应用程序首次启动时、应用程序完成版本更新时、或接收到应用程序对应的服务端发送的启用指令时。应用程序可以在安装、首次启动、以及每次版本更新完成时进行注册,或更新注册表中的信息,也可以根据应用程序对应的服务端发送的指令,进行注册或更新注册表中的信息。
在一实施例中,内核预处理方法10还可以包括:在以下任一情况时,删除系统的预处理注册表中应用程序的标识、以及应用程序对应的预处理触发状态:应用程序在系统中被删除时、或接收到应用程序对应的服务端发送的停用指令时。本实施例中,在应用程序已经删除的情况下,在预处理注册表中相应的信息已无存在意义,并且如果留存可能会导致在再次初选预处理触发状态的情况下的系统错误,应用程序删除时,及时的删除预处理注册表中的相应信息能够保证系统的稳定,并且解决系统空间。在另一些情况下,接收到应用程序对应的服务端发送的停用指令,指令关闭对该应用程序的预处理功能,在这种情况下,也将该应用程序对应的信息从预处理注册表中删除,使得在下次初选预处理触发状态时,系统遍历预处理注册表不会再次确定该应用程序,也就相应的不会对该应用程序对应的内核数据进行预处理。通过上述在预处理注册表中提交或删除应用程序相关信息的方式,能够方便的开启或关闭内核预处理的功能。
在一实施例中,应用程序设置有目标函数的目标函数值,可以基于目标函数值判断是否需要更新,目标函数值初始值为第一值,如false;在检测到目标函数值为第一值时,确定内核数据需要进行预处理;在检测到目标函数值为第二值时,如true,需要进一步判断系统是否已升级,在检测到系统已经过升级时,确认内核数据需要进行预处理。根据上述判断方式得到的判断结果,如果需要进行预处理,则进一步执行前述步骤S14对算子代码进行编译。并且,在对算子代码进行编译后,将目标函数值更新为第二值。通过本实施例的方式,能够方便高效的判断内核数据是否在系统升级后以完成更新,即是否处于需要进行预处理的情况。
基于同一个发明构思,图3示出了一种内核预处理装置100,可以应用于终端设备,如图3所示,内核预处理装置100包括:监测单元110,用于监测终端设备的系统是否处于预处理触发状态;确定单元120,用于当系统处于预处理触发状态时,基于预处理注册表,确定预处理触发状态对应的应用程序;判断单元130,用于判断应用程序对应的内核数据是否需要进行预处理;预处理单元140,用于当内核数据需要进行预处理时,对内核数据的代码进行编译;并用于基于编译后的代码对内核数据的参数进行调整。
在一实施例中,如图4所示,内核预处理装置100还包括:注册单元150,用于向系统的预处理注册表提交应用程序的标识、以及应用程序对应的预处理触发状态。
在一实施例中,在以下任一情况时,注册单元150用于向系统的预处理注册表提交应用程序的标识、以及应用程序对应的预处理触发状态:应用程序在系统完成安装时、应用程序首次启动时、应用程序完成版本更新时、或接收到应用程序对应的服务端发送的启用指令时。
在一实施例中,注册单元150还用于:在以下任一情况时,删除系统的预处理注册表中应用程序的标识、以及应用程序对应的预处理触发状态:应用程序在系统中被删除时、或接收到应用程序对应的服务端发送的停用指令时。
在一实施例中,应用程序包括目标函数值,且目标函数值的初始值为第一值;判断单元130用于:检测应用程序的目标函数值是否为第一值;在目标函数值为第一值时,确定内核数据需要进行预处理;在目标函数值为第二值时,通过升级检测单元检测系统是否已升级:并且在检测到系统已升级时,确定内核数据需要进行预处理;内核预处理装置100还包括:函数更新单元(图未示出),用于在对内核数据的代码进行编译之后,将目标函数值更新为第二值。
在一实施例中,预处理触发状态包括以下至少一种:终端设备处于闲置状态、终端设备处于充电状态、终端设备当前电量大于预设阈值的状态、终端设备处于预设网络条件的状态、应用程序距离前次进行预处理的时间超过预设时长的状态。
关于上述实施例中的内核预处理装置100,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的前述任一实施例装置的示意框图。例如,装置200可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置200可以包括以下一个或多个组件:处理组件202,存储器204,电源组件206,多媒体组件208,音频组件210,输入/输出(I/O)的接口212,传感器组件214,以及通信组件216。
处理组件202通常控制装置200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件202可以包括一个或多个处理器220来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件202可以包括一个或多个模块,便于处理组件202和其他组件之间的交互。例如,处理组件202可以包括多媒体模块,以方便多媒体组件208和处理组件202之间的交互。
存储器204被配置为存储各种类型的数据以支持在装置200的操作。这些数据的示例包括用于在装置200上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件206为装置200的各种组件提供电力。电源组件206可以包括电源管理系统,一个或多个电源,及其他与为装置200生成、管理和分配电力相关联的组件。
多媒体组件208包括在所述装置200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件208包括一个前置摄像头和/或后置摄像头。当设备200处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件210被配置为输出和/或输入音频信号。例如,音频组件210包括一个麦克风(MIC),当装置200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器204或经由通信组件216发送。在一些实施例中,音频组件210还包括一个扬声器,用于输出音频信号。
I/O接口212为处理组件202和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件214包括一个或多个传感器,用于为装置200提供各个方面的状态评估。例如,传感器组件214可以检测到装置200的打开/关闭状态,组件的相对定位,例如所述组件为装置200的显示器和小键盘,传感器组件214还可以检测装置200或装置200一个组件的位置改变,用户与装置200接触的存在或不存在,装置200方位或加速/减速和装置200的温度变化。传感器组件214可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件214还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件214还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件216被配置为便于装置300和其他设备之间有线或无线方式的通信。装置200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件216经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器204,上述指令可由装置200的处理器220执行以完成上述方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图6是根据一示例性实施例示出的一种电子装置300的框图。例如,装置300可以被提供为一服务器。参照图6,装置300包括处理组件322,其进一步包括一个或多个处理器,以及由存储器342所代表的存储器资源,用于存储可由处理组件322的执行的指令,例如应用程序。存储器342中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件322被配置为执行指令,以执行上述方法。
装置300还可以包括一个电源组件326被配置为执行装置300的电源管理,一个有线或无线网络接口350被配置为将装置300连接到网络,和一个输入输出(I/O)接口358。装置300可以操作基于存储在存储器342的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (12)
1.一种内核预处理方法,其特征在于,应用于终端设备,所述方法包括:
监测所述终端设备的系统是否处于预处理触发状态,所述预处理触发状态包括以下至少一种:终端设备处于闲置状态、终端设备处于充电状态、终端设备当前电量大于预设阈值的状态、终端设备处于预设网络条件的状态、应用程序距离前次进行预处理的时间超过预设时长的状态;
当所述系统处于所述预处理触发状态时,基于预处理注册表,确定所述预处理触发状态对应的应用程序;
判断所述应用程序对应的内核数据是否需要进行预处理;
若所述内核数据需要进行预处理,则对所述内核数据的代码进行编译;并
基于编译后的代码对所述内核数据的参数进行调整;
所述应用程序包括目标函数值,且所述目标函数值的初始值为第一值;
所述判断所述应用程序对应的内核数据是否需要进行预处理,包括:
检测所述应用程序的目标函数值是否为所述第一值;
在所述目标函数值为所述第一值时,确定所述内核数据需要进行预处理;
在所述目标函数值为第二值时,检测所述系统是否已升级,并且在检测到所述系统已升级时,确定所述内核数据需要进行预处理;
在所述对所述内核数据的代码进行编译之后,所述内核预处理方法还包括:将所述目标函数值更新为所述第二值。
2.根据权利要求1所述的内核预处理方法,其特征在于,所述方法还包括:
向所述系统的所述预处理注册表提交所述应用程序的标识、以及所述应用程序对应的所述预处理触发状态。
3.根据权利要求2所述的内核预处理方法,其特征在于,在以下任一情况时,向所述系统的所述预处理注册表提交所述应用程序的标识、以及所述应用程序对应的所述预处理触发状态:
所述应用程序在所述系统完成安装时、所述应用程序首次启动时、所述应用程序完成版本更新时、或接收到所述应用程序对应的服务端发送的启用指令时。
4.根据权利要求2所述的内核预处理方法,其特征在于,所述方法还包括:
在以下任一情况时,删除所述系统的所述预处理注册表中所述应用程序的标识、以及所述应用程序对应的所述预处理触发状态:
所述应用程序在所述系统中被删除时、或接收到所述应用程序对应的服务端发送的停用指令时。
5.根据权利要求1至4任一项所述的内核预处理方法,其特征在于,所述预处理触发状态包括以下至少一种:
所述终端设备处于闲置状态、所述终端设备处于充电状态、所述终端设备当前电量大于预设阈值的状态、所述终端设备处于预设网络条件的状态、所述应用程序距离前次进行预处理的时间超过预设时长的状态。
6.一种内核预处理装置,其特征在于,应用于终端设备,所述装置包括:
监测单元,用于监测所述终端设备的系统是否处于预处理触发状态,所述预处理触发状态包括以下至少一种:终端设备处于闲置状态、终端设备处于充电状态、终端设备当前电量大于预设阈值的状态、终端设备处于预设网络条件的状态、应用程序距离前次进行预处理的时间超过预设时长的状态;
确定单元,用于当所述系统处于所述预处理触发状态时,基于预处理注册表,确定所述预处理触发状态对应的应用程序;
判断单元,用于判断所述应用程序对应的内核数据是否需要进行预处理;
预处理单元,用于当所述内核数据需要进行预处理时,对所述内核数据的代码进行编译;并用于基于编译后的代码对所述内核数据的参数进行调整;
所述应用程序包括目标函数值,且所述目标函数值的初始值为第一值;
所述判断单元用于:检测所述应用程序的目标函数值是否为所述第一值;在所述目标函数值为所述第一值时,确定所述内核数据需要进行预处理;在所述目标函数值为第二值时,通过升级检测单元检测所述系统是否已升级:并且在检测到所述系统已升级时,确定所述内核数据需要进行预处理;
所述装置还包括:函数更新单元,用于在所述对所述内核数据的代码进行编译之后,将所述目标函数值更新为所述第二值。
7.根据权利要求6所述的内核预处理装置,其特征在于,所述装置还包括:
注册单元,用于向所述系统的所述预处理注册表提交所述应用程序的标识、以及所述应用程序对应的所述预处理触发状态。
8.根据权利要求7所述的内核预处理装置,其特征在于,在以下任一情况时,所述注册单元用于向所述系统的所述预处理注册表提交所述应用程序的标识、以及所述应用程序对应的所述预处理触发状态:
所述应用程序在所述系统完成安装时、所述应用程序首次启动时、所述应用程序完成版本更新时、或接收到所述应用程序对应的服务端发送的启用指令时。
9.根据权利要求7所述的内核预处理装置,其特征在于,所述注册单元还用于:
在以下任一情况时,删除所述系统的所述预处理注册表中所述应用程序的标识、以及所述应用程序对应的所述预处理触发状态:
所述应用程序在所述系统中被删除时、或接收到所述应用程序对应的服务端发送的停用指令时。
10.根据权利要求6至9任一项所述的内核预处理装置,其特征在于,所述预处理触发状态包括以下至少一种:所述终端设备处于闲置状态、所述终端设备处于充电状态、所述终端设备当前电量大于预设阈值的状态、所述终端设备处于预设网络条件的状态、所述应用程序距离前次进行预处理的时间超过预设时长的状态。
11.一种电子设备,其特征在于,包括:
存储器,用于存储指令;以及
处理器,用于调用所述存储器存储的指令执行如权利要求1至5中任一项所述的内核预处理方法。
12.一种计算机可读存储介质,其特征在于,存储有指令,所述指令被处理器执行时,执行如权利要求1至5中任一项所述的内核预处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010108565.7A CN111338636B (zh) | 2020-02-21 | 2020-02-21 | 内核预处理方法、内核预处理装置及电子设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010108565.7A CN111338636B (zh) | 2020-02-21 | 2020-02-21 | 内核预处理方法、内核预处理装置及电子设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111338636A CN111338636A (zh) | 2020-06-26 |
| CN111338636B true CN111338636B (zh) | 2023-09-26 |
Family
ID=71181831
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010108565.7A Active CN111338636B (zh) | 2020-02-21 | 2020-02-21 | 内核预处理方法、内核预处理装置及电子设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111338636B (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3096224A1 (en) * | 2015-05-22 | 2016-11-23 | Xiaomi Inc. | Method and apparatus for processing application installation package |
| CN107748680A (zh) * | 2017-09-28 | 2018-03-02 | 努比亚技术有限公司 | 一种内核配置方法、终端及计算机可读存储介质 |
| CN108388431A (zh) * | 2018-02-13 | 2018-08-10 | 广东欧珀移动通信有限公司 | 应用程序热更新的控制方法、装置、存储介质及移动终端 |
| CN109933381A (zh) * | 2019-03-06 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 一种内核的加载方法及装置 |
| CN110569106A (zh) * | 2019-08-27 | 2019-12-13 | Oppo广东移动通信有限公司 | 代码加载方法、装置、电子设备及计算机可读介质 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180285139A1 (en) * | 2017-04-02 | 2018-10-04 | vEyE Security Ltd. | Hypervisor-based containers |
-
2020
- 2020-02-21 CN CN202010108565.7A patent/CN111338636B/zh active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3096224A1 (en) * | 2015-05-22 | 2016-11-23 | Xiaomi Inc. | Method and apparatus for processing application installation package |
| CN107748680A (zh) * | 2017-09-28 | 2018-03-02 | 努比亚技术有限公司 | 一种内核配置方法、终端及计算机可读存储介质 |
| CN108388431A (zh) * | 2018-02-13 | 2018-08-10 | 广东欧珀移动通信有限公司 | 应用程序热更新的控制方法、装置、存储介质及移动终端 |
| CN109933381A (zh) * | 2019-03-06 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 一种内核的加载方法及装置 |
| CN110569106A (zh) * | 2019-08-27 | 2019-12-13 | Oppo广东移动通信有限公司 | 代码加载方法、装置、电子设备及计算机可读介质 |
Non-Patent Citations (2)
| Title |
|---|
| 余颖,董旭源,高宏.C/S模式管理信息系统实现自动升级和维护的方法.佳木斯大学学报(自然科学版).2005,(第02期),全文. * |
| 蒋煦 ; 张慧翔 ; 慕德俊 ; .一种动态监测安卓应用程序的方法.西北工业大学学报.2016,(第06期),全文. * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111338636A (zh) | 2020-06-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3096224B1 (en) | Method and apparatus for processing application installation package | |
| EP3168745B1 (en) | Method, device and system for application updating | |
| EP2991275B1 (en) | Making router management application compatible with router firmware | |
| US20170060566A1 (en) | Method and device for installing plug-in of smart device | |
| US9870239B2 (en) | Method and device for running application program | |
| EP3112979B1 (en) | Method and device for waking up mcu | |
| CN111371837A (zh) | 功能提示方法、功能提示装置及存储介质 | |
| CN111597106A (zh) | 一种埋点管理方法及装置 | |
| CN105930151A (zh) | 应用程序的编译方法、装置及终端 | |
| CN109901886B (zh) | 页面语言切换方法、系统、装置和计算机可读存储介质 | |
| CN106528113A (zh) | 文件编译方法及装置 | |
| CN112214254A (zh) | 加速应用程序启动的方法及装置、以及电子设备 | |
| CN112181406B (zh) | 一种渲染引擎的共享方法和装置 | |
| CN114489706A (zh) | 升级方法、装置及存储介质 | |
| US11269699B2 (en) | Method and device for processing an application | |
| CN112083981B (zh) | 一种页面视图组件的创建方法和装置 | |
| CN112083841B (zh) | 信息输入方法、装置和存储介质 | |
| CN111338636B (zh) | 内核预处理方法、内核预处理装置及电子设备 | |
| CN107819871B (zh) | 应用状态确定方法及装置 | |
| CN108182096A (zh) | 运行优化方法及系统、计算机可读存储介质 | |
| CN112214252B (zh) | 一种信息扩展方法、装置和电子设备 | |
| CN106844074A (zh) | 更新应用程序的方法和装置 | |
| CN112256274A (zh) | 应用程序的处理方法、装置及存储介质 | |
| CN111767063A (zh) | 应用程序的资源更新方法、装置及设备 | |
| CN110990073B (zh) | 一种验证应用程序的定制需求的方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| CB02 | Change of applicant information |
Address after: 100085 unit C, building C, lin66, Zhufang Road, Qinghe, Haidian District, Beijing Applicant after: Beijing Xiaomi pinecone Electronic Co.,Ltd. Address before: 100085 unit C, building C, lin66, Zhufang Road, Qinghe, Haidian District, Beijing Applicant before: BEIJING PINECONE ELECTRONICS Co.,Ltd. |
|
| CB02 | Change of applicant information | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |