CN112988156A - 热点代码确定方法、装置、服务器以及存储介质 - Google Patents

热点代码确定方法、装置、服务器以及存储介质 Download PDF

Info

Publication number
CN112988156A
CN112988156A CN201911294378.6A CN201911294378A CN112988156A CN 112988156 A CN112988156 A CN 112988156A CN 201911294378 A CN201911294378 A CN 201911294378A CN 112988156 A CN112988156 A CN 112988156A
Authority
CN
China
Prior art keywords
path
jump
hot spot
paths
determining
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
CN201911294378.6A
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201911294378.6A priority Critical patent/CN112988156A/zh
Publication of CN112988156A publication Critical patent/CN112988156A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

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

热点代码确定方法、装置、服务器以及存储介质
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种热点代码确定方法、装置、服务器以及存储介质。
背景技术
电子设备,例如平板电脑、智能终端等,已经成为人们日常生活中最常用的消费型电子产品之一。人们通常于电子设备中安装各种应用程序,以满足不同的需求。在应用程序的使用中,通常将应用程序的使用频繁的方法或代码作为热点代码,并预先对热点代码编译为二进制机器码,编译得到的二进制机器码可以用于在下次运行应用程序时直接由处理器执行,从而提升应用程序的运行速度。但是,目前热点代码确定方式固定,依赖于即时运行的过程,因此,不便于热点代码的确定。
发明内容
鉴于上述问题,本申请提出了一种热点代码确定方法、装置、服务器以及存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种热点方法确定方法,所述方法包括:获取应用程序的多个活动组件;分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径;获取所述多个跳转路径中的每个跳转路径对应的权重;根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码。
第二方面,本申请实施例提供了一种热点代码确定装置,所述装置包括:活动组件获取模块,用于获取应用程序的多个活动组件;跳转路径获得模块,用于分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径;权重获取模块,用于获取所述多个跳转路径中的每个跳转路径对应的权重;热点代码确定模块,用于根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码。
第三方面,本申请实施例提供了一种服务器,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行上述方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法。
本申请实施例提供的热点代码确定方法、装置、服务器以及存储介质,获取应用程序的多个活动组件,分别获取多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径,获取多个跳转路径中的每个跳转路径对应的权重,根据每个跳转路径对应的权重确定热点路径,并将与热点路径相关的代码确定为热点代码,从而通过获取应用程序的各个活动组件对应的跳转路径对应的权重确定热点路径,并将与热点路径相关的代码确定为热点代码,从而提升热点代码确定的准确性,达到优化应用程序性能的目的。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了可用于本申请实施例提供的热点代码确定方法的一种应用环境示意图;
图2示出了可用于本申请实施例提供的热点代码确定方法的又一种应用环境示意图;
图3示出了本申请一个实施例提供的热点代码确定方法的流程示意图;
图4示出了本申请实施例提供的应用程序的活动组件的跳转关系图;
图5示出了本申请实施例提供的应用程序的活动组件的邻接链表图;
图6示出了本申请又一个实施例提供的热点代码确定方法的流程示意图;
图7示出了本申请再一个实施例提供的热点代码确定方法的流程示意图;
图8示出了本申请的图7所示的热点代码确定方法的步骤S330的流程示意图;
图9示出了本申请另一个实施例提供的热点代码确定方法的流程示意图;
图10示出了本申请又再一个实施例提供的热点代码确定方法的流程示意图;
图11示出了本申请实施例提供的热点代码确定装置的模块框图;
图12示出了本申请实施例用于执行根据本申请实施例的热点代码确定方法的服务器的框图;
图13示出了本申请实施例的用于保存或者携带实现根据本申请实施例的热点代码确定方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
其中,Java是运行在java虚拟机上的,通过解释执行方式运行,解释器将字节码一条一条翻译成机器码,特点是可以立即执行,节省内存,但是执行效率相对低下。当虚拟机发现某个方法或者代码块运行特别频繁时,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,可以把频繁执行的代码翻译成机器码,下一次执行时候可以直接执行而无需解释。
目前主要的热点代码确定方式有两种:一是基于采样的热点探测,采用这种方法的虚拟机会周期性地检查各个线程的栈顶,如果发现某个代码经常出现在栈顶,那么就是热点代码;二是基于计数器的热点探测,采用这种方法的虚拟机为每个代码建立计数器,统计代码的执行次数,如果执行次数超过一定阈值,就认为是热点代码。但是,目前的方案针对的是Java程序在虚拟机中执行时的表现,具体表现在某个代码或者某个代码块在虚拟机中执行次数,依赖于即时运行过程中。
针对上述问题,发明人经过长期的发现研究,并提出了本申请实施例提供的热点代码确定方法、装置、服务器以及存储介质,通过获取应用程序的各个活动组件对应的跳转路径对应的权重确定热点路径,并将与热点路径相关的代码确定为热点代码,从而提升热点代码确定的准确性,达到优化应用程序性能的目的。其中,具体的热点代码确定方法在后续的实施例中进行详细的说明。
下面将针对可用于本申请实施例提供的热点代码确定方法的环境示意图进行说明。
请参阅图1,图1示出了本申请实施例提供的应用场景的一种示意图,该应用场景包括:电子设备200以及服务器100。其中,电子设备200与服务器100通过网络进行通信。电子设备200可以与服务器100进行数据交互,以从服务器100获取应用程序的安装文件、配置文件等,或者发送应用程序的多个活动组件至服务器100。
请参阅图2,图2示出了本申请实施例提供的应用场景的又一种示意图,服务器100可以包括第一服务器110和第二服务器120。即该应用场景包括:电子设备200、第一服务器110以及第二服务器120。其中,电子设备200与第一服务器110之间进行数据交互,第一服务器110与第二服务器120之间也可以进行数据交互。第一服务器110可以用于处理电子设备200的请求、接收电子设备200的应用程序的多个活动组件,第二服务器120可以用于存储和管理应用程序的安装文件、配置文件等文件,当电子设备200从第一服务器110获取应用程序的文件时,第一服务器110可以从第二服务器120获取应用程序的文件,例如,获取安装文件、配置文件等,并将应用程序的文件发送至电子设备200,当电子设备200发送上传应用程序的多个活动组件时,第一服务器110可以接收电子设备200上传的应用程序的多个活动组件,并将应用程序的多个活动组件上传到第二服务器200。
当然,该服务器100还可以包括其他的服务器。例如,还可以包括第三服务器,第三服务器可以用于从用户的电子设备收集应用程序的多个活动组件,并将收集的应用程序的多个活动组件传输至第二服务器200进行整理和存储等;又例如,应用安装系统也还可以包括第四服务器,第四服务器可以用于存储和管理应用程序的安装文件等,该情况下,可以由第二服务器200存储和管理应用程序的配置文件,实现应用程序的安装文件与配置文件的单独进行管理和存储。
在一些实施方式中,上述的电子设备200可以为智能手机、平板电脑、电子书、智能手表等设备;第一服务器110、第二服务器120等服务器可以为传统服务器,也可以为云服务器,在此不做限定。
请参阅图3,图3示出了本申请一个实施例提供的热点代码确定方法的流程示意图。所述热点代码确定方法用于通过获取应用程序的各个活动组件对应的跳转路径对应的权重确定热点路径,并将与热点路径相关的代码确定为热点代码,从而提升热点代码确定的准确性,达到优化应用程序性能的目的。在具体的实施例中,所述热点代码确定方法应用于如图11所示的热点方法确定装置300以及配置有所述热点方法确定装置300的服务器100(图12)。下面将以服务器为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的服务器可以为云服务器,也可以为传统服务器等,在此不做限定。下面将针对图3所示的流程进行详细的阐述,所述热点代码确定方法具体可以包括以下步骤:
步骤S110:获取应用程序的多个活动组件。
活动组件(Activity)代表了一个具有用户界面的单一屏幕,如Java的窗口或者帧。Android的活动组件是ContextThemeWrapper类的子类。其中,应用程序可以包括一个或多个活动组件,可选地,在本实施例中,应用程序包括多个活动组件。
在一些实施方式中,服务器可以与安装有客户端的电子设备通信,并接收客户端上传的携带有应用程序的多个活动组件的消息,服务器对客户端上传的消息进行分析获得应用程序的多个活动组件。在另一些实施方式中,服务器可以获取该应用程序对应的安装包,并基于对安装包的分析获取该应用程序的多个活动组件。当然,在本实施例中,服务器还可以通过其他更多的方式获取应用程序的多个活动组件,在此不再赘述。
步骤S120:分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径。
在一些实施方式中,服务器在获取多个活动组件后,可以分别获取多个活动组件中的每个活动组件对应的跳转路径,并收集每个活动组件对应的跳转路径获得多个跳转路径。
其中,每个活动组件对应的跳转路径可以理解为与每个活动组件直接相关的跳转路径,即每个活动组件对应的跳转路径可以理解为每个活动组件可直接跳转到其他活动组件的跳转路径。例如,当应用程序包括活动组件1、活动组件2、活动组件3以及活动组件4时,且活动组件1可以通过跳转路径1跳转到活动组件2,且可以通过跳转路径4跳转到活动组件4,活动组件2可以通过跳转路径2跳转到活动组件3,活动组件3可以通过跳转路径3跳转到活动组件4时,可以确定与活动组件1直接相关的跳转路径包括跳转路径1和跳转路径4,即可以确定活动组件1对应的跳转路径包括跳转路径1和跳转路径4;可以确定与活动组件2直接相关的跳转路径包括跳转路径1和跳转路径2,即可以确定活动组件2对应的跳转路径包括跳转路径1和跳转路径2;可以确定与活动组件3直接相关的跳转路径包括跳转路径2和跳转路径3,即可以确定活动组件3对应的跳转路径包括跳转路径2和跳转路径3;可以确定与活动组件4直接相关的跳转路径包括跳转路径3和跳转路径4,即可以确定活动组件4对应的跳转路径包括跳转路径3和跳转路径4。进一步地,收集活动组件1对应的跳转路径1和跳转路径4,活动组件2对应的跳转路径1和跳转路径2,活动组件3对应的跳转路径2和跳转路径3以及活动组件4对应的跳转路径3和跳转路径4,获得多个跳转路径包括:跳转路径1、跳转路径2、跳转路径3以及跳转路径4。
其中,每个活动组件对应的跳转路径可以理解为每邻接的两个活动组件之间的跳转路径。例如,当应用程序包括活动组件1、活动组件2、活动组件3以及活动组件4时,且活动组件1邻接活动组件2和活动组件4,活动组件2邻接活动组件1和活动组件3,活动组件3邻接活动组件2和活动组件4,活动组件4邻接活动组件3和活动组件1,那么,活动组件1对应的跳转路径包括活动组件1与活动组件2之间的跳转路径1和活动组件1和活动组件4之间的跳转路径4;活动组件2对应的跳转路径包括活动组件2与活动组件1之间的跳转路径1和活动组件2和活动组件3之间的跳转路径2;活动组件3对应的跳转路径包括活动组件3与活动组件2之间的跳转路径2和活动组件3和活动组件4之间的跳转路径3;活动组件4对应的跳转路径包括活动组件4与活动组件3之间的跳转路径3和活动组件4和活动组件3之间的跳转路径4。进一步地,收集活动组件1和活动组件2之间的跳转路径1、活动组件2和活动组件3之间的跳转路径2、活动组件3和活动组件4之间的跳转路径3以及活动组件4和活动组件1之间的跳转路径4,获得多个跳转路径包括:跳转路径1、跳转路径2、跳转路径3以及跳转路径4。
步骤S130:获取所述多个跳转路径中的每个跳转路径对应的权重。
在本实施例中,服务器在获取多个跳转路径后,可以分别获取多个跳转路径中的每个跳转路径对应的权重。在一些实施方式中,多个跳转路径中的每个跳转路径对应的权重可以预先设置后存储在服务器或者存储在电子设备的本地,因此,服务器在获取多个跳转路径后,可以直接从服务器读取多个跳转路径中的每个跳转路径对应的权重,或者从电子设备请求多个跳转路径中的每个跳转路径对应的权重。在另一些实施方式中,多个跳转路径中的每个跳转路径对应的权重可以由服务器在获取到多个跳转路径后,根据应用程序的运行参数获取,在一些实施方式中,根据应用程序的运行参数获取可以包括:根据每个跳转路径对应的跳转次数获取、根据每个活动组件对应的打开次数获取、根据应用程序的功能描述信息获取等,在此不做限定。
在一些实施方式中,当多个跳转路径包括跳转路径1、跳转路径2、跳转路径3以及跳转路径4时,可以分别获取跳转路径1、跳转路径2、跳转路径3以及跳转路径4对应的权重,例如,跳转路径1对应的权重为80%,跳转路径2对应的权重为70%,跳转路径3对应的权重为50%,跳转路径4对应的权重为20%等,在此不做限定。
步骤S140:根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码。
在一些实施方式中,在获取多个跳转路径中的每个跳转路径对应的权重后,可以根据每个跳转路径对应的权重从多个跳转路径中确定热点路径,并将该热点路径相关的代码确定为热点代码,其中,与热点路径相关的代码可以包括该热点路径所用到的所有代码,从而可以不依赖应用程序的运行确定热点代码,以提升热点代码确定的灵活性和准确性。
在一些实施方式中,根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码可以包括:从所述多个跳转路径中获取权重大于权重阈值的热点路径,并将与所述热点路径相关的代码确定为热点代码。也就是说,服务器可以预先获取并存储有权重阈值,该权重阈值用于作为跳转路径对应的权重的判断依据,因此,在本实施例中,在获取多个跳转路径中的每个跳转路径对应的权重后,可以分别将每个跳转路径对应的权重与权重阈值进行比较,以判断每个跳转路径对应的权重是否大于权重阈值,其中,当跳转路径的权重大于权重阈值时,可以将该跳转路径确定为热点路径,并将与该跳转路径相关的代码确定为热点代码。
例如,当多个跳转路径包括跳转路径1、跳转路径2、跳转路径3以及跳转路径4时,且跳转路径1对应的权重为80%,跳转路径2对应的权重为70%,跳转路径3对应的权重为50%,跳转路径4对应的权重为20%时,若权重阈值为65%时,则由于跳转路径1对应的权重和跳转路径2对应的权重大于权重阈值,可以将跳转路径1和跳转路径2确定为热点路径,并将与跳转路径1相关的代码确定为热点代码,以及将与跳转路径2相关的代码确定为热点代码。
在一些实施方式中,根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码可以包括:按所述多个跳转路径中的每个跳转路径对应的权重从高到期的顺序对所述多个跳转路径进行排序,并将排序在指定排序位置之前的跳转路径确定为热点路径,并将与所述热点路径相关的代码确定为热点代码。也就是说,服务器可以预先获取并存储有指定排序位置,该指定排序位置用于作为多个跳转路径的排序的判断依据,因此,在本实施例中,在获取多个跳转路径中的每个跳转路径对应的权重后,可以按权重从高到低的顺序将多个跳转路径进行排序,以获取多个跳转路径中的每个跳转路径的排序位置,再将每个跳转路径的排序位置和指定排序位置进行比较,以判断每个跳转路径的排序位置是否在指定排序位置之前,其中,当跳转路径的排序位置在指定排序位置之前时,可以将该跳转路径确定为热点路径,并将与该跳转路径相关的代码确定为热点代码。
例如,当多个跳转路径包括跳转路径1、跳转路径2、跳转路径3以及跳转路径4时,且跳转路径1对应的权重为80%,跳转路径2对应的权重为70%,跳转路径3对应的权重为50%,跳转路径4对应的权重为20%时,若指定排序位置的排序位置3,则由于按权重从高到低的顺序对多个跳转路径进行排序后,跳转路径1和跳转路径2的排序位置在指定排序位置之前,可以将跳转路径1和跳转路径2确定为热点路径,并将与跳转路径1相关的代码确定为热点代码,以及将与跳转路径2相关的代码确定为热点代码。
在一些实施方式中,在获取应用程序的多个活动组件和多个跳转路径后,可以基于多个活动组件和多个跳转路径,创建G(V,E),其中,V表征多个活动组件的集合,E表示多个跳转路径的集合,G表征由多个活动组件和多个跳转路径组成的图形。如图4所示,0:main表示Activity 0、1:A表示Activity 1、2:B表示Activity 2、3:C表示Activity 3、4:D表示Activity 4。其中,0顶点表示应用程序的主界面Main Activity,可以点击跳转到Activity1和Activity 2,Activity 1可以点击跳转到Activity 0和Activity 3,Activity 2可以点击跳转到Activity 0和Activity 4,Activity 3可以点击跳转到Activity 1和Activity4,Activity4可以点击跳转到Activity 2和Activity 3。基于Activity为顶点的G(V,E),可以得到如图5所示的链表,于图5中,0表示Activity 0、1表示Activity 1、2表示Activity2、3表示Activity 3、4表示Activity 4。
在一些实施方式中,构建以Activity为顶点的跳转状态图,不同的Activity顶点连接的边的权重信息,可以在应用升级后进行复用,提高热点路径代码信息的挖掘效率。具体地,这里复用的是Activity的热点路径信息,一般来说,应用升级后,应用界面Activity之间的跳转路径大体相同,即界面之间的跳转关系是很大可能是不会变化的,在升级后,可以根据这个跳转关系快速寻找新版本后的热点信息。
本申请一个实施例提供的热点代码确定方法,获取应用程序的多个活动组件,分别获取多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径,获取多个跳转路径中的每个跳转路径对应的权重,根据每个跳转路径对应的权重确定热点路径,并将与热点路径相关的代码确定为热点代码,从而通过获取应用程序的各个活动组件对应的跳转路径对应的权重确定热点路径,并将与热点路径相关的代码确定为热点代码,从而提升热点代码确定的准确性,达到优化应用程序性能的目的。
请参阅图6,图6示出了本申请又一个实施例提供的热点代码确定方法的流程示意图。该方法应用于上述服务器,下面将针对图6所示的流程进行详细的阐述,所述热点代码确定方法具体可以包括以下步骤:
步骤S210:获取应用程序的多个活动组件。
步骤S220:分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径。
步骤S230:获取所述多个跳转路径中的每个跳转路径对应的权重。
步骤S240:从所述多个跳转路径中获取权重大于权重阈值的热点路径,并将与所述热点路径相关的代码确定为热点代码。
其中,步骤S210-步骤S240的具体描述请参阅步骤S210-步骤S240,在此不再赘述。
步骤S250:从所述多个活动组件中确定主界面活动组件。
在本实施例中,在获取多个活动组件后,可以从多个活动组件中确定主界面活动组件(Main Activity)。在一些实施方式中,可以预先设置多个活动组件与多个标识一一对应,那么,在获取多个活动组件后,可以分别获取多个活动组件中的每个活动组件对应的标识,并对标识进行识别,以从多个标识中获取用于标识主活动界面的标识,并将该标识对应的活动界面确定为主界面活动界面。例如,多个活动组件包括主界面活动组件、第一其他活动组件以及第二其他活动组件,且主界面活动组件对应标识A,第一其他活动组件对应标识B、第二其他活动组件对应标识C,则可以获取多个标识,并将标识A对应的活动组件确定为主界面活动组件。
步骤S260:获取从所述应用程序开始启动到所述主界面活动组件创建结束的启动路径,将所述启动路径确定为热点路径,以及将与所述启动路径相关的代码确定为热点代码。
在一些实施方式中,应用程序的启动主要分为两个部分,其一是系统创建进程,其二是应用程序启动,其中,系统创建进程是由系统自行完成的,与系统的性能相关,于本实施例中,主要是记录应用程序启动相关的代码,因此,可以获取从应用程序开始启动到主界面活动组件创建结束的启动路径,即可以获取从Application的on Create执行开始到应用程序的Main Activity创建结束的启动路径,其主要包括Activity的创建、加载布局、铺设屏幕以及初始绘制等。在一些实施方式中,在获取启动路径后,可以将启动路径确定为热点路径,并将该启动路径相关的代码确定为热点代码,其中,与启动路径相关的代码可以包括启动路径所用到的所有代码,从而可以不依赖应用程序的运行确定热点代码,以提升热点代码确定的灵活性和准确性。
步骤S270:生成包括所述热点代码的配置文件。
在一些实施方式中,在确定热点代码后,可以生成包括热点代码的profile配置文件,以通过配置文件记录热点代码,并形成可发送至客户端的格式,以便于热点代码的下发。
步骤S280:发送所述配置文件至客户端,所述配置文件用于指示所述客户端预先编译所述热点代码。
在一些实施方式中,在生成配置文件后,可以通过有线网络或无线网络将配置文件下发至客户端,以是指客户端预先编译该配置文件中的热点代码,例如,指示客户端通过JIT(Just-In-Time Compiler)预先编译配置文件中的热点代码,以优化应用程序的性能。
作为一种方式,该配置文件可以是记录热点代码的索引或标识的配置文件,即在确定热点代码后,可以生成与热点代码对应的索引或标识,再基于热点代码对应的索引或标识,生成包括该热点代码对应的索引或标识的配置文件。在一些实施方式中,服务器在生成包括热点代码对应的索引或标识的配置文件后,可以将配置文件和安装文件一起下发至客户端,其中,该安装文件中包括热点代码和非热点代码,则客户端在接收到配置文件和安装文件后,可以基于推送配置文件中的索引或标识,从安装文件中查找与索引或标识对应的热点代码,并将查找到的热点代码通过AOT预先编译。
本申请又一个实施例提供的热点代码确定方法,获取应用程序的多个活动组件,分别获取多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径,获取多个跳转路径中的每个跳转路径对应的权重,从多个跳转路径中获取权重大于权重阈值的热点路径,并将与热点路径相关的代码确定为热点代码。从多个活动组件中确定主界面活动组件,获取从应用程序开启启动到主界面活动组件创建结束的启动路径,将启动路径确定为热点路径,以及将与启动路径相关的代码确定为热点代码。生成包括热点代码的配置文件,发送配置文件至客户端,该配置文件用于指示客户端预先编译该热点代码。相较于图3所示的热点代码确定方法,在本实施例还在跳转路径的权重大于权重阈值时将该跳转路径确定为热点路径,以提升热点路径确定的准确性,并且本实施例还将应用程序的启动路径确定为热点路径,以提升应用程序的启动速度,另外,本实施例还生成包括热点代码的配置文件发送至客户端对热点代码提前编译,以提升应用程序的性能。
请参阅图7,图7示出了本申请再一个实施例提供的热点代码确定方法的流程示意图。该方法应用于上述服务器,下面将针对图7所示的流程进行详细的阐述,所述热点代码确定方法具体可以包括以下步骤:
步骤S310:获取应用程序的多个活动组件。
步骤S320:分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径。
其中,步骤S310-步骤S320的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S330:获取所述多个跳转路径中的每个跳转路径对应的跳转次数。
在一些实施方式中,在获得多个跳转路径后,可以分别获取多个跳转路径中的每个跳转路径对应的跳转次数。其中,在应用程序的使用过程中,可以记录每个跳转路径的跳转,并累计每个跳转路径的跳转次数,将累计获得的跳转路径的跳转次数确定为该跳转路径对应的跳转次数。
例如,当多个跳转路径包括跳转路径1、跳转路径2、跳转路径3以及跳转路径4时,可以分别获取跳转路径1对应的跳转次数、跳转路径2对应的跳转次数、跳转路径3对应的跳转次数以及跳转路径4对应的跳转次数。其中,从活动组件1跳转到活动组件4或者从活动组件4跳转到活动组件1均可以记录为跳转路径4的跳转次数,从活动组件1跳转到活动组件2或者从活动组件2跳转到活动组件1均可以记录为跳转路径1的跳转次数,在此不再赘述。
请参阅图8,图8示出了本申请的图7所示的热点代码确定方法的步骤S330的流程示意图,下面将针对图8所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S331:分别获取所述多个活动组件中的每个活动组件的打开次数。
在一些实施方式中,可以分别获取多个活动组件中的每个活动组件的打开次数。其中,在应用程序的使用过程中,可以记录每个活动组件的打开,并累计每个活动组件的打开次数,将累计获得的活动组件的打开次数确定为该活动组件的打开次数。例如,当多个活动组件包括活动组件1、活动组件2、活动组件3以及活动组件4时,可以分别获取活动组件1的打开次数、活动组件2的打开次数、活动组件3的打开次数以及活动组件4的打开次数。
步骤S332:基于所述多个活动组件中的每个活动组件的打开次数,获取所述多个跳转路径中的每个跳转路径对应的跳转次数。
在一些实施方式中,在获取多个活动组件中的每个活动组件的打开次数后,可以基于多个活动组件中的每个活动组件的打开次数,获取多个跳转路径中的每个跳转路径对应的跳转次数。其中,在本实施例中,活动组件的打开次数越多,表征应用程序跳转到该活动组件越频繁,该活动组件对应的跳转路径的跳转次数越多,活动组件的打开次数越少,表征应用程序跳转到该活动组件越稀少,该活动组件对应的跳转路径的跳转次数越少。
在一些实施方式中,可以基于每个活动组件的打开次数,预估每个活动组件对应的跳转次数,也可以基于每个活动组件的打开次数,计算每个活动组件对应的跳转次数,在此不做限定。
步骤S340:基于所述多个跳转路径中的每个跳转路径对应的跳转次数,获取所述多个跳转路径中的每个跳转路径对应的权重。
在一些实施方式中,在确定多个跳转路径中的每个跳转路径对应的跳转次数后,可以基于多个跳转路径中的每个跳转路径对应的跳转次数,获取多个跳转路径中的每个跳转路径对应的权重。其中,在本实施例中,跳转路径对应的跳转次数越多,表征应用程序使用该跳转路径越频繁,该跳转路径越有可能为热点路径,则该跳转路径对应的权重越大,跳转路径对应的跳转次数越少,表征应用程序使用该跳转路径越稀少,该跳转路径越不可能为热点路径,则该跳转路径对应的权重越小。
例如,跳转路径1对应的跳转次数为50次、跳转路径2对应的跳转次数为20次、跳转路径3对应的跳转次数为10次、跳转路径4对应的跳转次数为70次时,则可以设定为:跳转路径4对应的权重>跳转路径1对应的权重>跳转路径2对应的权重>跳转路径3对应的权重。
步骤S350:从所述多个跳转路径中获取权重大于权重阈值的热点路径,并将与所述热点路径相关的代码确定为热点代码。
其中,步骤S350的具体描述请参阅步骤S140,在此不再赘述。
本申请再一个实施例提供的热点代码确定方法,获取应用程序的多个活动组件,分别获取多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径,获取多个跳转路径中的每个跳转路径对应的跳转次数,基于多个跳转路径中的每个跳转路径对应的跳转次数,获取多个跳转路径中的每个跳转路径对应的权重,从多个跳转路径中获取权重大于权重阈值的热点路径,并将与热点路径相关的代码确定为热点代码。相较于图3所示的热点代码确定方法,在本实施例还在跳转路径的权重大于权重阈值时将该跳转路径确定为热点路径,以提升热点路径确定的准确性,另外,本实施例还根据每个跳转路径的跳转次数确定每个跳转路径对应的权重,以提升获取的权重的准确性。
请参阅图9,图9示出了本申请另一个实施例提供的热点代码确定方法的流程示意图。该方法应用于上述服务器,下面将针对图9所示的流程进行详细的阐述,所述热点代码确定方法具体可以包括以下步骤:
步骤S410:获取应用程序的多个活动组件。
步骤S420:分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径。
其中,步骤S410-步骤S420的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S430:获取所述应用程序的功能描述信息。
在本实施例中,可以获取应用程序的功能描述信息。作为一种方式,可以通过应用程序的“应用信息”或“应用标签”获取该应用程序的功能描述信息。作为另一种方式,可以获取应用商店中对于该应用程序的描述,将应用商店中对于该应用程序的描述确定为该应用程序的功能描述信息。例如,微信的功能描述信息包括:发语音、文本信息、图片等;朋友圈分享生活点滴;扫一扫;公众号等。
步骤S440:从所述多个活动组件中确定所述功能描述信息涉及的目标活动组件。
在一些实施方式中,在获取应用程序的功能描述信息之后,可以从多个活动组件中确定功能描述信息涉及的活动组件,并将功能描述信息涉及的活动组件作为目标活动组件。其中,功能描述信息涉及的目标活动组件的数量可以为一个或多个,在此不做限定。例如,当微信应用程序的功能描述信息包括扫一扫和朋友圈分享生活点滴时,可以将微信应用程序中扫一扫所涉及的活动组件确定为目标活动组件,并将微信应用程序中朋友圈涉及的活动组件确定为目标活动组件等,在此不做限定。
步骤S450:从所述多个跳转路径中确定与所述目标活动组件相关的第一跳转路径,以及与所述目标活动组件无关的第二跳转路径。
在一些实施方式中,在确定目标活动组件后,可以从多个跳转路径中确定与目标活动组件相关的跳转路径和与目标活动组件无关的第二跳转路径,将与活动组件相关的跳转路径确定为作为第一跳转路径,并将与活动组件无关的跳转路径作为第二跳转路径。
例如,活动组件包括活动组件1、活动组件2、活动组件3以及活动组件4,跳转路径包括跳转路径1、跳转路径2、跳转路径3以及跳转路径4,其中,活动组件1是目标活动组件,那么,可以知道跳转路径1和跳转路径4与活动组件1相关,可以将跳转路径1和跳转路径4确定为第一跳转路径,跳转路径2和跳转路径3与活动组件1无关,可以将跳转路径2和跳转路径3确定为第二跳转路径。
步骤S460:获取所述第一跳转路径对应的第一权重,以及获取所述第二跳转路径对应的第二权重,其中,所述第一权重大于所述第二权重。
在一些实施方式中,在确定第一跳转路径和第二跳转路径后,可以获取第一跳转路径第一权重和第二跳转路径对应的权重,并将第一跳转路径对应的权重作为第一权重,将第二跳转路径对应的权重作为第二权重。其中,在本实施例中,第一权重大于第二权重,例如,第一权重为80%,第二权重为20%,又例如,第一权重为90%,第二权重为10%等,可以理解的是,与功能描述信息相关的目标活动组件为该应用程序的主要功能界面,与主要功能界面相关的第一跳转路径为主要跳转路径,因此,可以在主要跳转路径赋予较大的权重,从而实现与功能描述信息相关的代码被识别为热点代码。
步骤S470:从所述多个跳转路径中获取权重大于权重阈值的热点路径,并将与所述热点路径相关的代码确定为热点代码。
其中,步骤S470的具体描述请参阅步骤S140,在此不再赘述。
本申请另一个实施例提供的热点代码确定方法,获取应用程序的多个活动组件,分别获取多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径,获取多个应用程序的功能描述群信息,从多个活动组件中确定功能描述信息涉及的目标活动组件,从多个跳转路径中确定与目标活动组件相关的第一跳转路径,以及与目标活动组件无关的第二跳转路径,获取第一跳转路径对应的第一权重,以及获取第二跳转路径对应的第二权重,其中,第一权重大于第二权重,从多个跳转路径中获取权重大于权重阈值的热点路径,并将与热点路径相关的代码确定为热点代码。相较于图3所示的热点代码确定方法,在本实施例还在跳转路径的权重大于权重阈值时将该跳转路径确定为热点路径,以提升热点路径确定的准确性,另外,本实施例还根据应用程序的功能描述信息确定每个跳转路径对应的权重,以提升获取的权重的准确性。
请参阅图10,图10示出了本申请又再一个实施例提供的热点代码确定方法的流程示意图。该方法应用于上述服务器,下面将针对图10所示的流程进行详细的阐述,所述热点代码确定方法具体可以包括以下步骤:
步骤S510:获取应用程序的多个活动组件。
步骤S520:分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径。
其中,步骤S510-步骤S520的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S530:获取目标用户的用户画像。
在本实施例中,服务器可以获取待推送的客户端对应的目标用户的用户画像。例如,客户端可以登录有用户身份认证标识(Identity document,ID),那么,可以将客户端登录的用户ID对应的用户确定为目标用户。又例如,客户端对应的电子设备可以记录有生物特征解锁密码,例如,电子设备可以记录有指纹解锁密码、人脸解锁密码、虹膜解锁密码等,那么,可以将电子设备记录的生物特征解锁密码对应的用户确定为目标用户。
在一些实施方式中,目标用户的用户画像可以包括目标用户的年龄、性别、兴趣爱好、习惯等,在此不做限定。
步骤S540:基于所述用户画像确定所述目标用户针对所述多个跳转路径中的每个跳转路径的跳转概率。
在一些实施方式中,在获取目标用户的用户画像后,可以基于目标用户的用户画像确定该目标用户针对多个跳转路径中的每个跳转路径的跳转概率。在一些实施方式中,在获取目标用户的用户画像后,可以基于目标用户的用户画像获取目标用户的兴趣爱好,基于目标用户的兴趣爱好确定目标用户针对多个跳转路径中的每个跳转路径的跳转概率,例如,基于目标用户的兴趣爱好,确定目标用户针对朋友圈和扫一扫相关的跳转路径的跳转概率等,在此不做限定。
步骤S550:基于所述目标用户针对所述多个跳转路径中的每个跳转路径的跳转概率,获取所述多个跳转路径中的每个跳转路径对应的权重。
在一些实施方式中,在确定多个跳转路径中的每个跳转路径对应的跳转概率后,可以基于多个跳转路径中的每个跳转路径对应的跳转概率,获取多个跳转路径中的每个跳转路径对应的权重。其中,在本实施例中,跳转路径对应的跳转概率越高,表征应用程序使用该跳转路径的几率越大,该跳转路径越有可能为热点路径,则该跳转路径对应的权重越大,跳转路径对应的跳转概率越低,表征应用程序使用该跳转路径的几率越小,该跳转路径越不可能为热点路径,则该跳转路径对应的权重越小。
例如,跳转路径1对应的跳转概率为80%、跳转路径2对应的跳转概率为40%、跳转路径3对应的跳转概率为20%、跳转路径4对应的跳转概率为90%时,则可以设定为:跳转路径4对应的权重>跳转路径1对应的权重>跳转路径2对应的权重>跳转路径3对应的权重。
以应用程序为微信为例,有些用户可能只使用聊天和公众号功能,有些用户只使用聊天和朋友圈功能,那么,利用目标用户的用户画像,可以找出使用习惯对应的活动组件对应的跳转路径,映射到代码执行路径,记录为热点代码,通过一个profile配置文件记录该部分热点代码信息,根据用户画像,在该目标用户下载或者更新微信应用时,分发该热点信息,然后用户客户端基于该部分信息提前编译应用,获得性能提升。
步骤S560:从所述多个跳转路径中获取权重大于权重阈值的热点路径,并将与所述热点路径相关的代码确定为热点代码。
其中,步骤S560的具体描述请参阅步骤S140,在此不再赘述。
本申请又再一个实施例提供的热点代码确定方法,获取应用程序的多个活动组件,分别获取多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径,获取目标用户的用户画像,基于用户画像确定目标用户针对多个跳转路径中的每个跳转路径的跳转概率,基于目标用户针对多个跳转路径中的每个跳转路径的跳转概率,获取多个跳转路径中的每个跳转路径对应的权重,从多个跳转路径中获取权重大于权重阈值的热点路径,并将与热点路径相关的代码确定为热点代码。相较于图3所示的热点代码确定方法,在本实施例还在跳转路径的权重大于权重阈值时将该跳转路径确定为热点路径,以提升热点路径确定的准确性,另外,本实施例还根据目标用户的用户画像确定每个跳转路径对应的权重,以提升获取的权重的准确性。
请参阅图11,图11示出了本申请实施例提供的热点代码确定装置300的模块框图。该热点代码确定装置300应用于上述服务器,下面将针对图11所示的框图进行阐述,所述热点代码确定装置300包括:活动组件获取模块310、跳转路径获得模块320、权重获取模块330以及热点代码确定模块340,其中:
活动组件获取模块310,用于获取应用程序的多个活动组件。
跳转路径获得模块320,用于分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径。
权重获取模块330,用于获取所述多个跳转路径中的每个跳转路径对应的权重。
进一步地,所述权重获取模块330包括:跳转次数获取子模块和第一权重获取子模块,其中:
跳转次数获取子模块,用于获取所述多个跳转路径中的每个跳转路径对应的跳转次数。
进一步地,所述跳转次数获取子模块包括:打开次数获取单元和跳转次数获取单元,其中
打开次数获取单元,用于分别获取所述多个活动组件中的每个活动组件的打开次数。
跳转次数获取单元,用于基于所述多个活动组件中的每个活动组件的打开次数,获取所述多个跳转路径中的每个跳转路径对应的跳转次数。
第一权重获取子模块,用于基于所述多个跳转路径中的每个跳转路径对应的跳转次数,获取所述多个跳转路径中的每个跳转路径对应的权重。
进一步地,所述权重获取模块330包括:功能描述信息获取子模块、目标活动组件确定子模块、跳转路径确定子模块以及第二权重获取子模块,其中:
功能描述信息获取子模块,用于获取所述应用程序的功能描述信息。
目标活动组件确定子模块,用于从所述多个活动组件中确定所述功能描述信息涉及的目标活动组件。
跳转路径确定子模块,用于从所述多个跳转路径中确定与所述目标活动组件相关的第一跳转路径,以及与所述目标活动组件无关的第二跳转路径。
第二权重获取子模块,用于获取所述第一跳转路径对应的第一权重,以及获取所述第二跳转路径对应的第二权重,其中,所述第一权重大于所述第二权重。
进一步地,所述权重获取模块330包括:用户画像获取子模块、跳转概率确定子模块以及第三权重获取子模块,其中:
用户画像获取子模块,用于获取目标用户的用户画像。
跳转概率确定子模块,用于基于所述用户画像确定所述目标用户针对所述多个跳转路径中的每个跳转路径的跳转概率。
第三权重获取子模块,用于基于所述目标用户针对所述多个跳转路径中的每个跳转路径的跳转概率,获取所述多个跳转路径中的每个跳转路径对应的权重。
热点代码确定模块340,用于根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码。
进一步地,所述热点代码确定模块340包括:热点代码确定子模块,其中:
热点代码确定子模块,用于从所述多个跳转路径中获取权重大于权重阈值的热点路径,并将与所述热点路径相关的代码确定为热点代码。
进一步地,所述热点代码确定装置300包括:主界面活动组件确定模块和启动路径获取模块,其中:
主界面活动组件确定模块,用于从所述多个活动组件中确定主界面活动组件。
启动路径获取模块,用于获取从所述应用程序开始启动到所述主界面活动组件创建结束的启动路径,将所述启动路径确定为热点路径,以及将与所述启动路径相关的代码确定为热点代码。
进一步地,所述热点代码确定装置300还包括:配置文件生成模块和配置文件发送模块,其中:
配置文件生成模块,用于生成包括所述热点代码的配置文件。
配置文件发送模块,用于发送所述配置文件至客户端,所述配置文件用于指示所述客户端预先编译所述热点代码。
进一步地,所述热点代码确定装置300还包括:创建模块,其中:
创建模块,用于基于所述多个活动组件和所述多个跳转路径,创建G(V,E),其中,V表征所述多个活动组件的集合,E表示所述多个跳转路径的集合。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图12,其示出了本申请实施例提供的一种服务器100的结构框图。该服务器100可以是传统服务器,也可以是云服务器等。本申请中的服务器100可以包括一个或多个如下部件:处理器130、存储器140以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器140中并被配置为由一个或多个处理器130执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
其中,处理器130可以包括一个或者多个处理核。处理器130利用各种接口和线路连接整个服务器100内的各个部分,通过运行或执行存储在存储器140内的指令、程序、代码集或指令集,以及调用存储在存储器140内的数据,执行服务器100的各种功能和处理数据。可选地,处理器130可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责待显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器130中,单独通过一块通信芯片进行实现。
存储器140可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器140可用于存储指令、程序、代码、代码集或指令集。存储器140可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储服务器100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参阅图13,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质400中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的热点代码确定方法、装置、服务器以及存储介质,获取应用程序的多个活动组件,分别获取多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径,获取多个跳转路径中的每个跳转路径对应的权重,根据每个跳转路径对应的权重确定热点路径,并将与热点路径相关的代码确定为热点代码,从而通过获取应用程序的各个活动组件对应的跳转路径对应的权重确定热点路径,并将与热点路径相关的代码确定为热点代码,从而提升热点代码确定的准确性,达到优化应用程序性能的目的。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种热点代码确定方法,其特征在于,所述方法包括:
获取应用程序的多个活动组件;
分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径;
获取所述多个跳转路径中的每个跳转路径对应的权重;
根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码。
2.根据权利要求1所述的方法,其特征在于,所述根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码,包括:
从所述多个跳转路径中获取权重大于权重阈值的热点路径,并将与所述热点路径相关的代码确定为热点代码。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述多个活动组件中确定主界面活动组件;
获取从所述应用程序开始启动到所述主界面活动组件创建结束的启动路径,将所述启动路径确定为热点路径,以及将与所述启动路径相关的代码确定为热点代码。
4.根据权利要求1所述的方法,其特征在于,所述获取所述多个跳转路径中的每个跳转路径对应的权重,包括:
获取所述多个跳转路径中的每个跳转路径对应的跳转次数;
基于所述多个跳转路径中的每个跳转路径对应的跳转次数,获取所述多个跳转路径中的每个跳转路径对应的权重。
5.根据权利要求4所述的方法,其特征在于,所述获取所述多个跳转路径中的每个跳转路径对应的跳转次数,包括:
分别获取所述多个活动组件中的每个活动组件的打开次数;
基于所述多个活动组件中的每个活动组件的打开次数,获取所述多个跳转路径中的每个跳转路径对应的跳转次数。
6.根据权利要求1所述的方法,其特征在于,所述获取所述多个跳转路径中的每个跳转路径对应的权重,包括:
获取所述应用程序的功能描述信息;
从所述多个活动组件中确定所述功能描述信息涉及的目标活动组件;
从所述多个跳转路径中确定与所述目标活动组件相关的第一跳转路径,以及与所述目标活动组件无关的第二跳转路径;
获取所述第一跳转路径对应的第一权重,以及获取所述第二跳转路径对应的第二权重,其中,所述第一权重大于所述第二权重。
7.根据权利要求1所述的方法,其特征在于,所述获取所述多个跳转路径中的每个跳转路径对应的权重,包括:
获取目标用户的用户画像;
基于所述用户画像确定所述目标用户针对所述多个跳转路径中的每个跳转路径的跳转概率;
基于所述目标用户针对所述多个跳转路径中的每个跳转路径的跳转概率,获取所述多个跳转路径中的每个跳转路径对应的权重。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码之后,还包括:
生成包括所述热点代码的配置文件;
发送所述配置文件至客户端,所述配置文件用于指示所述客户端预先编译所述热点代码。
9.一种热点代码确定装置,其特征在于,所述装置包括:
活动组件获取模块,用于获取应用程序的多个活动组件;
跳转路径获得模块,用于分别获取所述多个活动组件中的每个活动组件对应的跳转路径,获得多个跳转路径;
权重获取模块,用于获取所述多个跳转路径中的每个跳转路径对应的权重;
热点代码确定模块,用于根据每个跳转路径对应的权重确定热点路径,并将与所述热点路径相关的代码确定为热点代码。
10.一种服务器,其特征在于,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行如权利要求1-8任一项所述的方法。
11.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-8任一项所述的方法。
CN201911294378.6A 2019-12-16 2019-12-16 热点代码确定方法、装置、服务器以及存储介质 Pending CN112988156A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911294378.6A CN112988156A (zh) 2019-12-16 2019-12-16 热点代码确定方法、装置、服务器以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911294378.6A CN112988156A (zh) 2019-12-16 2019-12-16 热点代码确定方法、装置、服务器以及存储介质

Publications (1)

Publication Number Publication Date
CN112988156A true CN112988156A (zh) 2021-06-18

Family

ID=76343304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911294378.6A Pending CN112988156A (zh) 2019-12-16 2019-12-16 热点代码确定方法、装置、服务器以及存储介质

Country Status (1)

Country Link
CN (1) CN112988156A (zh)

Similar Documents

Publication Publication Date Title
CN111061484B (zh) 代码编译方法、装置、服务器、用户终端及可读介质
KR20200113276A (ko) 리소스 배치 방법, 장치, 단말기 및 저장 매체
US10135923B2 (en) Data transfer method and system
CN111061483B (zh) 编译优化方法、装置及电子设备
US20200404046A1 (en) Application Download Method and Apparatus, Application Sending Method and Apparatus, and System
CN110727697B (zh) 数据的处理方法和装置、存储介质、电子装置
CN112948026A (zh) 热点代码处理方法、装置、服务器、电子设备及存储介质
CN104317804A (zh) 发布投票信息的方法和装置
CN109725543B (zh) 设备控制码配置方法、装置、云服务器及网络系统
CN112464034A (zh) 用户数据提取方法、装置、电子设备及计算机可读介质
CN112346751B (zh) 应用程序的安装方法、装置、电子设备和存储介质
CN111752669A (zh) 界面生成方法、装置、电子设备及存储介质
CN108108294B (zh) 一种根据基准时间来获取定制运行数据的方法及系统
CN107450951B (zh) 应用程序处理方法、装置、存储介质和终端
CN112540769A (zh) 编译处理方法、装置、电子设备以及存储介质
CN111784412A (zh) 信息推送方法、装置、电子设备及存储介质
CN112988156A (zh) 热点代码确定方法、装置、服务器以及存储介质
CN107291543B (zh) 应用程序处理方法、装置、存储介质和终端
CN111061453A (zh) 一种用于app生态系统的语音交互方法、装置
WO2014169496A1 (en) Method and system for handling message on instant messaging open platform
US9634963B2 (en) Method and system for handling message on instant messaging open platform
CN113171615B (zh) 游戏技能的处理方法、装置、存储介质和电子装置
CN112783500B (zh) 编译优化信息生成方法、装置及电子设备
CN113413590A (zh) 一种信息验证方法、装置、计算机设备及存储介质
CN108989703B (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