CN112631608A - 编译方法、装置、终端及存储介质 - Google Patents

编译方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN112631608A
CN112631608A CN202110008343.2A CN202110008343A CN112631608A CN 112631608 A CN112631608 A CN 112631608A CN 202110008343 A CN202110008343 A CN 202110008343A CN 112631608 A CN112631608 A CN 112631608A
Authority
CN
China
Prior art keywords
terminal
application program
compiling
updated
hotspot
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.)
Pending
Application number
CN202110008343.2A
Other languages
English (en)
Inventor
张金山
韩冰天
丛国华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110008343.2A priority Critical patent/CN112631608A/zh
Publication of CN112631608A publication Critical patent/CN112631608A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

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

Abstract

本公开涉及一种编译方法、装置、终端及存储介质。本公开提供的编译方法包括:在终端的系统更新前,创建应用程序的热点描述文件的备份文件,热点描述文件用于记录应用程序的热点代码;在系统更新后,当终端处于目标运行状态时,基于备份文件对目标应用程序的热点代码进行编译,以生成本机代码。根据本公开的提供的编译方法,可以避免热点描述文件因系统更新被删除而导致无法及时编译,且无需等待至终端处于充电且空闲状态时才编译热点代码,进而可以在系统更新后及时提升应用程序的运行性能。

Description

编译方法、装置、终端及存储介质
技术领域
本公开涉及计算机技术领域,具体涉及一种编译方法、装置、终端及存储介质。
背景技术
安卓系统可以记录应用程序的执行过程中使用频繁的代码,即热点代码,并当终端处于充电且空闲(idle)状态时针对热点代码进行编译以生成本机代码,这样在下次使用中会提高应用程序的性能。
然而,一方面,当手机通过空中下载技术(Over-the-Air,OTA)下载远程服务器上的更新包对系统进行版本更新时,记录热点代码的文件以及基于热点代码生成的本机代码会被删除,需要等到更新后的手机再次处于充电且空闲状态时才能重新对热点代码进行编译;另一方面,随着电池技术的发展,电池容量越来越大且充电速度越来快,越来越少的用户对手机进行整晚充电,导致手机进入充电且空闲状态的情况降低,容易使热点代码无法得到及时编译,进而影响应用程序的性能。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
根据本公开的一个或多个实施例,提供了一种编译方法,包括:
在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;
在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
根据本公开的一个或多个实施例,提供了一种基于编译装置,包括:
备份单元,用于在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;
编译单元,用于在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
根据本公开的一个或多个实施例,提供了一种移动终端,其特征在于,所述移动终端包括:
至少一个存储器和至少一个处理器;
其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器所存储的程序代码以执行根据本公开的一个或多个实施例提供的编译方法。
根据本公开的一个或多个实施例,提供了一种非暂态计算机存储介质,所述非暂态计算机存储介质存储有程序代码,当所述程序代码在计算机设备上运行时,使得所述计算机设备执行根据本公开的一个或多个实施例提供的编译方法。
根据本公开的一个或多个实施例提供的编译方法,通过在系统更新前为应用的热点描述文件创建备份文件,并在系统更新后当终端处于目标运行状态时,基于备份文件对目标应用的热点代码进行编译以生成本机代码,从而可以避免热点描述文件因系统更新被删除而导致无法及时编译,且无需等待至终端处于充电且空闲状态时才编译热点代码,进而可以在系统更新后及时提升应用程序的运行性能。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开一实施例提供的编译方法的流程图;
图2为本公开另一实施例提供的编译方法的流程图;
图3为本公开一实施例提供的编译装置的示例性结构示意图
图4为用来实现本公开实施例的终端设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。术语“响应于”以及有关的术语是指一个信号或事件被另一个信号或事件影响到某个程度,但不一定是完全地或直接地受到影响。如果事件x“响应于”事件y而发生,则x可以直接或间接地响应于y。例如,y的出现最终可能导致x的出现,但可能存在其它中间事件和/或条件。在其它情形中,y可能不一定导致x的出现,并且即使y尚未发生,x也可能发生。此外,术语“响应于”还可以意味着“至少部分地响应于”。术语“确定”广泛涵盖各种各样的动作,可包括演算、计算、处理、推导、调研、查找(例如,在表、数据库或其他数据结构中查找)、探明、和类似动作,还可包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)和类似动作,以及解析、选择、选取、建立和类似动作等等。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面,首先对本公开涉及到的几个技术术语进行解释说明。
1、热点代码(Hot Spot Code)
热点代码可以指在应用程序启动或使用过程中,被执行的次数超过预设的阈值的代码,包括但不限于函数、方法、代码块、类等。例如,在客户端(Client)模式下,安卓系统将执行次数超过1500次的代码作为热点代码;在服务器(Server)模式下,安卓系统将执行次数超过10000次的代码作为热点代码。
2、本机代码(Native Code)
本机代码是计算机编程代码,编译用来运行一个特殊的处理器(如英特尔x86级的处理器)和它的特殊指令集。本机代码为已被编译为特定于处理器的机器码的代码,可以直接被虚拟机执行。
3、预先编译或AOT编译(Ahead-of-time compilation)
预先编译是指将更高级编程语言(如C或C++)或中间代码(如Java字节码或.NETFramework通用中间语言(CIL)代码),转换为本机代码,以生成可以本机执行的二进制文件的行为。在程序执行期间对中间代码进行编译(如即时编译,Just-in-time compilation)可能会降低应用程序的性能,而预先编译通过在执行之前而不是在执行期间发生而消除了对该步骤的需要。
图1示出了基于本公开的一个或多个实施例提供的编译方法100,编译方法100包括步骤S101-步骤S102:
步骤S101:在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录应用程序的热点代码。
示例性地,热点描述文件为profile文件,其用于记录某一应用程序的热点代码,可以用来进行profile-guide编译。
在一些实施中,创建的备份文件可以根据预设的存储路径存储于本地指定的文件夹内,或存储于云端服务器中,以使备份文件不在系统更新过程中被删除。
需要说明的是,在本实施例中,可以对终端内安装的所有的应用程序的热点描述文件进行备份,也可以对一个或多个指定的应用程序热点描述文件进行备份,本公开在此不做限制。
步骤S102:在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
示例性地,可以采用AOT编译将dex文件中作为热点代码dalvik字节码(dalvikbytecode)编译为处理器可识别执行的汇编指令,即本机代码(Native Code)。
在一些实施例中,目标运行状态可以是终端出厂前被预先指定的运行状态,且可以根据用户的指令或远程服务器的指令进行实时更新或修改。
在一些实施例中,可以基于预设的存储路径从本地获取备份文件或者从云端服务器下载备份文件至本地。
在一些实施例中,所述目标运行状态为所述终端的屏幕处于灭屏状态、所述终端的电量不小于预设的电量阈值且所述终端的CPU占用率不大于预设的占用率阈值。在本实施例中,当终端同时满足下述三个条件触发对热点代码的编译:终端的屏幕处于灭屏状态、电量不小于预设的电量阈值和CPU占用率不大于预设的占用率。一方面,当终端处于上述目标运行状态时对热点代码进行编译不会影响终端的使用性能,编译过程对用户无感;另一方面,终端进入上述目标运行状态的概率高于终端处于充电且空闲状态的概率,从而可以使目标应用程序的热点代码及时被编译为本机代码。
这样,根据本公开的一个或多个实施例提供的编译方法,通过在系统更新前为应用的热点描述文件创建备份文件,并在系统更新后当终端处于目标运行状态时,基于备份文件对目标应用的热点代码进行编译以生成本机代码,从而可以避免热点描述文件因系统更新被删除而导致无法及时编译,且无需等待至终端处于充电且空闲状态时才编译热点代码,进而可以在系统更新后及时提升应用程序的运行性能。
在一些实施例中,所述目标应用程序基于以下至少一个来确定:应用程序的使用次数、应用程序的使用时长、应用程序的安装时间、应用程序是否被启动过。
在一些实施例中,目标应用程序可以通过下述步骤确定:
步骤A1:基于应用程序的使用次数和/或使用时长确定第一应用集合;
步骤A2:基于安装时间不大于预设的时间阈值的应用程序确定第二应用集合;
步骤A3:基于所述第一应用集合和所述第二应用集合的并集确定所述目标应用。
示例性地,可以基于应用程序的使用次数和/或使用时长对终端内的应用程序进行排序,并从中确定出N个用户最常使用的应用程序;基于应用程序的安装时间对应用程序进行排序,从中确定出M个最近安装的应用程序;排除重复的应用程序以得到数量不超过(N+M)个目标应用程序。
根据本公开的一个多个实施例提供的编译方法,在终端处于目标运行状态时,仅对用户经常使用和最近安装的应用程序的热点代码进行编译,一方面,可以防止编译的应用程序数量过多导致终端电量消耗过大以及CPU负载较高;另一方面,可以使用户接下来可能会使用的应用及时得到编译。
在一些实施例中,所述方法还包括:在所述系统更新后,保存所述备份文件至对应的应用程序的目录中,以用于对对应的应用程序的热点代码的编译。通过在系统更新后将备份文件保存至对应的应用程序的目录下,可以便于终端基于该备份文件对对应的应用程序的热点代码进行编辑。
参考图2,图2示出了基于本公开的另一实施例提供的编译方法200,编译方法200包括步骤S201-步骤S206:
步骤S201:在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;
步骤S202:在所述系统更新后,保存所述备份文件至对应的应用程序的目录中,并基于具有热点描述文件的应用程序确定第三应用集合;
步骤S203:基于应用程序的使用次数和/或使用时长确定第一应用集合;
步骤S204:基于安装时间不大于预设的时间阈值的应用程序确定第二应用集合;
步骤S205:将所述第一应用集合和所述第二应用集合的并集与第三应用集合取交集,以得到目标应用集合;其中,目标应用集合可以包括一个或多个待编译的目标应用程序。
步骤S206:当所述终端的屏幕处于灭屏状态、所述终端的电量不小于预设的电量阈值且所述终端的CPU占用率不大于预设的占用率阈值时,基于所述备份文件逐个对目标应用集合中的目标应用程序的热点代码进行编译,以生成本机代码。
这样,根据本公开的一个或多个实施例提供的编译方法,通过在系统更新前为应用的热点描述文件创建备份文件,并基于应用的使用次数和/或使用时长、安装时间以及是否具有热点描述文件确定目标应用集合,并在系统更新后当终端的屏幕处于灭屏状态、电量不小于预设的电量阈值且CPU占用率不大于预设的占用率阈值时,基于备份的热点描述文件逐个对目标应用集合中的目标应用的热点代码进行编译以生成本机代码,从而可以避免热点描述文件因系统更新被删除而导致无法及时编译,且无需等待至终端处于充电且空闲状态时才编译热点代码,进而可以在系统更新后及时提升应用程序的运行性能。
对应地,图3示出了基于本公开的一个或多个实施例提供的编译装置300,包括:
备份单元301,用于在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;
编译单元302,用于在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
根据本公开的一个或多个实施例提供的编译装置,通过在系统更新前为应用的热点描述文件创建备份文件,并在系统更新后当终端处于目标运行状态时,基于备份文件对目标应用的热点代码进行编译以生成本机代码,从而可以避免热点描述文件因系统更新被删除而导致无法及时编译,且无需等待至终端处于充电且空闲状态时才编译热点代码,进而可以在系统更新后及时提升应用程序的运行性能。在一些实施例中,所述目标运行状态为所述终端的屏幕处于灭屏状态、所述终端的电量不小于预设的电量阈值且所述终端的CPU占用率不大于预设的占用率阈值。在本实施例中,当终端同时满足下述三个条件触发对热点代码的编译:终端的屏幕处于灭屏状态、电量不小于预设的电量阈值和CPU占用率不大于预设的占用率。一方面,当终端处于上述目标运行状态时对热点代码进行编译不会影响终端的使用性能,编译过程对用户无感;另一方面,终端进入上述目标运行状态的概率高于终端处于充电且空闲状态的概率,从而可以使目标应用程序的热点代码及时被编译为本机代码。
在一些实施例中,所述目标应用程序基于以下至少一个来确定:应用程序的使用次数、应用程序的使用时长、应用程序的安装时间、应用程序是否被启动过。
在一些实施例中,装置300还包括:
第一应用确定单元,用于基于应用程序的使用次数和/或使用时长确定第一应用集合;
第二应用确定单元,用于基于安装时间不大于预设的时间阈值的应用程序确定第二应用集合;
目标应用确定单元,用于基于所述第一应用集合和所述第二应用集合的并集确定所述目标应用。
示例性地,第一应用确定单元可以基于应用程序的使用次数和/或使用时长对终端内的应用程序进行排序,并从中确定出N个用户最常使用的应用程序;第二应用确定单元可以基于应用程序的安装时间对应用程序进行排序,从中确定出M个最近安装的应用程序;目标应用确定单元可以排除重复的应用程序以得到数量不超过(N+M)个目标应用程序。
这样,根据本公开的一个多个实施例提供的编译装置,在终端处于目标运行状态时,仅对用户经常使用和最近安装的应用程序的热点代码进行编译,一方面,可以防止编译的应用程序数量过多导致终端电量消耗过大以及CPU负载较高;另一方面,可以使用户接下来可能会使用的应用及时得到编译。
在一些实施例中,装置300还包括:
保存单元,用于在所述系统更新后,保存所述备份文件至对应的应用程序的目录中,以用于对对应的应用程序的热点代码的编译。通过在系统更新后将备份文件保存至对应的应用程序的目录下,可以便于终端基于该备份文件对对应的应用程序的热点代码进行编辑。
对于装置的实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离模块说明的模块可以是或者也可以不是分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应地,根据本公开的一个或多个实施例,提供了一种终端设备,包括:
至少一个存储器和至少一个处理器;
其中,存储器用于存储程序代码,处理器用于调用存储器所存储的程序代码以执行根据本公开一个或多个实施例提供的编译方法。
下面参考图4,其示出了适于用来实现本公开实施例的移动终端400的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如电视、智慧大屏、手机、电脑、电子阅读器、PDA(个人数字助理)、PAD(平板电脑)等。图4示出的终端仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,终端设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM403中,还存储有终端设备400操作所需的各种程序和数据。处理装置401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许终端设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的终端设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperTextTransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,adhoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端设备执行时,使得该终端设备:在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机设备上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,备份单元还可以被描述为“用于在终端的系统更新前,创建应用程序的热点描述文件的备份文件的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。根据本公开的一个或多个实施例,提供了一种编译方法,包括:在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
根据本公开的一个或多个实施例,所述目标运行状态包括:所述终端的屏幕处于灭屏状态、所述终端的电量不小于预设的电量阈值且所述终端的CPU占用率不大于预设的占用率阈值。
根据本公开的一个或多个实施例,所述目标应用程序基于以下至少一个来确定:应用程序的使用次数、应用程序的使用时长、应用程序的安装时间、应用程序是否被启动过。
根据本公开的一个或多个实施例提供的编译方法,还包括:基于应用程序的使用次数和/或使用时长确定第一应用集合;基于安装时间不大于预设的时间阈值的应用程序确定第二应用集合;基于所述第二应用集合和所述第三应用集合的并集确定所述目标应用。
根据本公开的一个或多个实施例提供的编译方法,还包括:在所述系统更新后,保存所述备份文件至对应的应用程序的目录中。
根据本公开的一个或多个实施例,提供了一种编译装置,其特征在于,包括:备份单元,用于在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;编译单元,用于在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
根据本公开的一个或多个实施例,提供了一种终端,其特征在于,所述移动终端包括:至少一个存储器和至少一个处理器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器所存储的程序代码以执行根据本公开的一个或多个实施例的编译方法。
根据本公开的一个或多个实施例,提供了一种非暂态计算机存储介质,其特征在于,所述非暂态计算机存储介质存储有程序代码,当所述程序代码在计算机设备上运行时,使得所述计算机设备执行根据本公开的一个或多个实施例的编译方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (8)

1.一种编译方法,其特征在于,包括:
在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;
在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
2.如权利要求1所述的编译方法,其特征在于,所述目标运行状态包括:
所述终端的屏幕处于灭屏状态、所述终端的电量不小于预设的电量阈值且所述终端的CPU占用率不大于预设的占用率阈值。
3.如权利要求2所述的编译方法,其特征在于,
所述目标应用程序基于以下至少一个来确定:应用程序的使用次数、应用程序的使用时长、应用程序的安装时间、应用程序是否被启动过。
4.如权利要求2所述的编译方法,其特征在于,还包括:
基于应用程序的使用次数和/或使用时长确定第一应用集合;
基于安装时间不大于预设的时间阈值的应用程序确定第二应用集合;
基于所述第二应用集合和所述第三应用集合的并集确定所述目标应用。
5.如权利要求1所述的编译方法,其特征在于,还包括:
在所述系统更新后,保存所述备份文件至对应的应用程序的目录中。
6.一种编译装置,其特征在于,包括:
备份单元,用于在终端的系统更新前,创建应用程序的热点描述文件的备份文件,所述热点描述文件用于记录所述应用程序的热点代码;
编译单元,用于在所述系统更新后,当所述终端处于目标运行状态时,基于所述备份文件对目标应用程序的热点代码进行编译,以生成本机代码。
7.一种终端,其特征在于,所述移动终端包括:
至少一个存储器和至少一个处理器;
其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器所存储的程序代码以执行权利要求1至5中任一项所述的编译方法。
8.一种非暂态计算机存储介质,其特征在于,
所述非暂态计算机存储介质存储有程序代码,当所述程序代码在计算机设备上运行时,使得所述计算机设备执行权利要求1至5中任一项所述的编译方法。
CN202110008343.2A 2021-01-05 2021-01-05 编译方法、装置、终端及存储介质 Pending CN112631608A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110008343.2A CN112631608A (zh) 2021-01-05 2021-01-05 编译方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110008343.2A CN112631608A (zh) 2021-01-05 2021-01-05 编译方法、装置、终端及存储介质

Publications (1)

Publication Number Publication Date
CN112631608A true CN112631608A (zh) 2021-04-09

Family

ID=75290668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110008343.2A Pending CN112631608A (zh) 2021-01-05 2021-01-05 编译方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN112631608A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116382702A (zh) * 2023-06-06 2023-07-04 湖南天河国云科技有限公司 智能合约热点探测方法、装置、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761107A (zh) * 2014-02-13 2014-04-30 福建星网视易信息系统有限公司 软件包定制的装置及方法
CN106027602A (zh) * 2016-04-29 2016-10-12 乐视控股(北京)有限公司 应用程序的云端备份、还原方法及终端备份、还原装置
CN108388431A (zh) * 2018-02-13 2018-08-10 广东欧珀移动通信有限公司 应用程序热更新的控制方法、装置、存储介质及移动终端
CN110609689A (zh) * 2019-08-23 2019-12-24 北京安云世纪科技有限公司 一种应用的安装运行方法及装置
CN111061484A (zh) * 2019-11-28 2020-04-24 Oppo广东移动通信有限公司 代码编译方法、装置、服务器、用户终端及可读介质
CN111158735A (zh) * 2019-12-05 2020-05-15 青岛海信移动通信技术股份有限公司 一种热补丁文件处理方法及通信终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761107A (zh) * 2014-02-13 2014-04-30 福建星网视易信息系统有限公司 软件包定制的装置及方法
CN106027602A (zh) * 2016-04-29 2016-10-12 乐视控股(北京)有限公司 应用程序的云端备份、还原方法及终端备份、还原装置
CN108388431A (zh) * 2018-02-13 2018-08-10 广东欧珀移动通信有限公司 应用程序热更新的控制方法、装置、存储介质及移动终端
CN110609689A (zh) * 2019-08-23 2019-12-24 北京安云世纪科技有限公司 一种应用的安装运行方法及装置
CN111061484A (zh) * 2019-11-28 2020-04-24 Oppo广东移动通信有限公司 代码编译方法、装置、服务器、用户终端及可读介质
CN111158735A (zh) * 2019-12-05 2020-05-15 青岛海信移动通信技术股份有限公司 一种热补丁文件处理方法及通信终端

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116382702A (zh) * 2023-06-06 2023-07-04 湖南天河国云科技有限公司 智能合约热点探测方法、装置、电子设备和存储介质
CN116382702B (zh) * 2023-06-06 2023-08-18 湖南天河国云科技有限公司 智能合约热点探测方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN112965761B (zh) 一种数据处理方法、系统、电子设备及存储介质
CN111274503B (zh) 数据处理的方法、装置、电子设备及计算机可读介质
CN111782304B (zh) 分页加载数据逻辑控制方法、装置、计算机设备及介质
CN112395253B (zh) 索引文件生成方法、终端设备、电子设备及介质
CN111666516A (zh) 页面加载方法、装置、电子设备及存储介质
EP4296849A1 (en) Accelerating application and sub-package installations
CN111857720B (zh) 用户界面状态信息的生成方法、装置、电子设备及介质
CN104636154A (zh) 应用程序安装方法及装置
CN111258800A (zh) 一种页面处理方法、装置和电子设备
WO2024099274A1 (zh) 数据处理方法、设备和存储介质
CN108989383B (zh) 数据处理方法和客户端
CN112631608A (zh) 编译方法、装置、终端及存储介质
CN113918659A (zh) 数据操作方法、装置、存储介质及电子设备
CN112631609B (zh) 编译方法、装置、终端及存储介质
CN115336237A (zh) 远程存储的文件的预测性供应
CN111581930A (zh) 在线表格数据处理方法、装置、电子设备和可读介质
CN116679930A (zh) 一种前端项目的构建方法、装置、电子设备及存储介质
CN113391882B (zh) 虚拟机内存管理方法、装置、存储介质及电子设备
CN111459893B (zh) 文件处理方法、装置和电子设备
CN114090069A (zh) 应用程序安装包文件处理方法及电子设备
CN113342270A (zh) 卷卸载方法、装置和电子设备
CN112910855A (zh) 一种样例报文处理方法及装置
CN111209042A (zh) 一种建立函数栈的方法、装置、介质和电子设备
CN111562913B (zh) 视图组件的预创建方法、装置、设备及计算机可读介质
CN115080059B (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