CN110609689A - 一种应用的安装运行方法及装置 - Google Patents
一种应用的安装运行方法及装置 Download PDFInfo
- Publication number
- CN110609689A CN110609689A CN201910785663.1A CN201910785663A CN110609689A CN 110609689 A CN110609689 A CN 110609689A CN 201910785663 A CN201910785663 A CN 201910785663A CN 110609689 A CN110609689 A CN 110609689A
- Authority
- CN
- China
- Prior art keywords
- hot spot
- code file
- application
- application program
- codes
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用的安装运行方法,包括:在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;将所述热点代码文件预制到指定存储路径下;在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。本发明实现了在应用使用前期提升应用运行速度,提升系统体验的技术效果。同时,本发明还公开了一种应用的安装运行装置、电子设备和计算机可读存储介质。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用的安装运行方法及装置。
背景技术
Android(安卓),是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
ART(Android runtime,安卓运行时)模式,是Android系统的一种应用运行模式,与传统的Dalvik模式不同,ART模式下的应用代码的执行效率更高,可以实现更为流畅的系统体验。
但是,ART模式需要在应用安装完毕并运行一段时间后(例如:运行一周后),才能提高代码的执行效率,用户的感受就是应用“越用越快”,而在此之前(即:应用使用前期),代码的执行效率无法得到提升,应用运行速度较慢,系统体验较差。
发明内容
本申请实施例通过提供一种应用的安装运行方法及装置,解决了现有技术中在应用使用前期,应用运行速度较慢,系统体验较差的技术问题,实现了在应用使用前期提升应用运行速度,提升系统体验的技术效果。
第一方面,本申请通过本申请的一实施例提供如下技术方案:
一种应用的安装运行方法,包括:
在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;
将所述热点代码文件预制到指定存储路径下;
在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;
利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
优选地,所述获取热点代码文件,包括:
从指定服务器上下载所述热点代码文件;或
从所述应用程序的安装包文件中提取所述热点代码文件。
优选地,所述热点代码由人工统计获得或由机器模型统计获得。
优选地,所述热点代码文件为安卓系统中的prof文件,所述即时编译引擎为安卓系统中的JIT编译器。
优选地,所述的应用的安装运行方法,还包括:
在所述应用程序运行过程中,通过解释执行引擎编译其它代码,所述其它代码为所述应用程序中的除去所述热点代码以外的代码;
统计所述其它代码中每段代码的执行次数,并将执行次数大于预设次数的代码段作为新的热点代码;
将所述新的热点代码保存到所述热点代码文件中。
第二方面,基于同一发明构思,本申请通过本申请的一实施例,提供如下技术方案:
一种应用的安装运行装置,包括:
获取模块,用于在安装应用程序时,获取所述应用程序的安装包文件;
解析模块,用于解析所述安装包文件,并从所述安装包文件中提取出热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;
配置模块,用于将所述热点代码文件预制到指定存储路径下;
启动模块,用于在所述应用程序安装完成后,启动所述应用程序;
查找模块,用于基于所述指定存储路径找到所述热点代码文件;
第一编译模块,用于利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
优选地,所述获取模块,具体用于:
从指定服务器上下载所述热点代码文件;或
从所述应用程序的安装包文件中提取所述热点代码文件。
优选地,所述热点代码由人工统计获得或由机器模型统计获得。
优选地,所述热点代码文件为安卓系统中的prof文件,所述即时编译引擎为安卓系统中的JIT编译器。
优选地,所述的应用的安装运行装置,还包括:
第二编译模块,用于在所述应用程序运行过程中,通过解释执行引擎编译其它代码,所述其它代码为所述应用程序中的除去所述热点代码以外的代码;
统计模块,用于统计所述其它代码中每段代码的执行次数,并将执行次数大于预设次数的代码段作为新的热点代码;
保存模块,用于将所述新的热点代码保存到所述热点代码文件中。
第三方面,基于同一发明构思,本申请通过本申请的一实施例,提供如下技术方案:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可以实现上述第一方面中任一实施方式的方法步骤。
第四方面,基于同一发明构思,本申请通过本申请的一实施例,提供如下技术方案:
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可以实现上述第一方面中任一实施方式的方法步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
在本申请实施例中,公开了一种应用的安装运行方法,包括:在安装应用程序时,获取所热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;将所述热点代码文件预制到指定存储路径下;在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。由于在应用安装阶段,即可获取到记录有热点代码的热点代码文件,并将热点代码文件预制到指定存储路径下,这样,在启动所述应用程序后,即可基于指定存储路径找到热点代码文件,再利用即时编译引擎对热点代码文件中的热点代码进行编译。如此,实现了在应用使用前期提升应用运行速度,提升系统体验的技术效果,解决了现有技术中在应用使用前期,应用运行速度较慢,系统体验较差的技术问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种应用的安装运行方法的流程图;
图2为本申请实施例中一种应用的安装运行装置的结构图;
图3为本申请实施例中一种电子设备的结构图;
图4为本申请实施例中一种计算机可读存储介质的结构图。
具体实施方式
本申请实施例通过提供一种应用的安装运行方法及装置,解决了现有技术中在应用使用前期,应用运行速度较慢,系统体验较差的技术问题,实现了在应用使用前期提升应用运行速度,提升系统体验的技术效果。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
一种应用的安装运行方法,包括:在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;将所述热点代码文件预制到指定存储路径下;在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。由于在应用安装阶段,即可获取到记录有热点代码的热点代码文件,并将热点代码文件预制到指定存储路径下,这样,在启动所述应用程序后,即可基于指定存储路径找到热点代码文件,再利用即时编译引擎对热点代码文件中的热点代码进行编译。如此,实现了在应用使用前期提升应用运行速度,提升系统体验的技术效果,解决了现有技术中在应用使用前期,应用运行速度较慢,系统体验较差的技术问题。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
其次说明,在Android原生ART模式下,虚拟机的执行策略是:Apk(AndroidPackage,安卓安装包)安装后,系统默认使用解释执行方式运行代码,在该方式下代码的运行效率较低,应用运行速度较慢。为了提高应用运行的速度,系统会在用户使用应用过程中,统计热点代码并保存到prof文件,此后每次应用启动时,系统都会根据prof文件进行JIT(Just In Time,即时)编译,从而提高应用的运行速度。但是,由于需要用户使用应用一段时间后(例如:一周后),系统才能统计出热点代码,而在此之前,代码的执行效率无法得到显著提升,应用运行速度较慢,系统体验较差。
实施例一
本实施例提供了一种应用的安装运行方法,应用于电子设备中,所述电子设备可以为:智能手机、或平板电脑、或智能电视、或游戏机、或数码相机、或网络服务器、等等。此处,对于所述电子设备具体是何种设备,本实施例不做具体限定。并且,在该电子设备中安装有一操作系统,所述操作系统具体是指Android(安卓)系统。
如图1所示,所述应用的安装运行方法,包括:
步骤S101:在安装应用程序时,获取热点代码文件,热点代码文件中记录有应用程序的热点代码。
在具体实施过程中,所述应用程序可以是任一类别的App(Application,应用)。例如:音乐类App、视频类App、社交类App、拍照类App、炒股类App、购物类App、安全类App、办公类App、支付类App、理财类App、出行类App、游戏类App、等等。此处,对于所述应用程序具体是何种App,本实施例不做具体限定。
在具体实施过程中,在安装应用程序时,需要获取该应用程序Apk(AndroidPackage,安卓安装包)文件。
在具体实施过程中,电子设备在基于Apk文件安装应用程序时,可以获取其对应的热点代码文件,其中保存有应用程序的热点代码。其中,所谓“热点代码”,是指应用程序在运行过程中,经常被执行的代码(或代码段),其被执行的次数超过预设次数,或者,其被执行的频率超过预设频率。
举例来讲,某一应用程序A中包含:功能01、功能02、功能03、.功能04、等等,其中,功能01是主要功能,经常被用户使用,其它功能都是辅助功能,很少被用户使用,所以,可以将功能01对应的代码(或代码段)标记为热点代码,并存储到热点代码文件。
作为一种可选的实施例,所述获取热点代码文件,包括:
从指定服务器上下载所述热点代码文件;或
从应用程序的安装包文件中提取热点代码文件。
在具体实施过程中,可以在安装应用程序过程中,访问一指定服务器,该指定服务器上存储有热点代码文件,从该指定服务器上下载热点代码文件。
或者,在安装包文件中预存有热点代码文件,可以在解析安装包文件时,从安装包文件中提取出热点代码文件。
作为一种可选的实施例,所述热点代码由人工统计获得或由机器模型统计获得。
在具体实施过程中,在应用开发阶段,软件工程师即可对应用中的代码进行统计,预估应用被用户使用时每段代码的执行次数,并将执行次数超过一预设次数的代码(或代码段)标记为热点代码,并存储到热点代码文件中。或者,在应用程序发布后,软件工程师可以定期对热点代码进行统计,并将热点代码存储到热点代码文件中,再将热点代码文件发布到指定服务器上,从而使电子设备安装应用程序时,即可从指定服务器下载该热点代码文件。当然,也可以由机器模型分析获得应用程序的热点代码。在具体实施过程中,热点代码占全部代码的比例,在20%以下。
作为一种可选的实施例,所述热点代码文件可以为:安卓系统中的prof文件或其他指定文件。此处,优选为prof文件,这样可以更好地与目前的安卓系统进行兼容。
步骤S102:将热点代码文件预制到指定存储路径下。
在具体实施过程中,热点代码文件对应有一存储路径,可以在应用程序的安装过程中,将热点代码文件预制到指定存储路径下。
以“微信”为例,其prof文件的指定存储路径一般是“/data/misc/profiles/cur/0/com.tencent.mm/primary.prof”,则可以将热点代码文件预制到该存储储路径下。
步骤S103:在所述应用程序安装完成后,启动应用程序,并基于指定存储路径找到热点代码文件。
在具体实施过程中,在应用程序安装完成后,在应用启动时,系统即可基于指定存储路径找到热点代码文件。
以“微信”为例,其prof文件的指定存储路径一般是“/data/misc/profiles/cur/0/com.tencent.mm/primary.prof”,系统则可以基于该存储路径找到热点代码文件(即:prof文件)。
步骤S104:利用即时编译引擎从热点代码文件中读取热点代码,并对热点代码进行编译。
作为一种可选的实施例,所述即时编译引擎,可以为:安卓系统中的JIT(Just InTime,即时)编译器。JIT编译器属于高速编译器,其可以高效地将代码转换成机器码(二进制代码),并将机器码直接发送给处理器,从而提高程序运行效率。
在具体实施过程中,在每次启动应用程序时,系统都会利用即时编译引擎(例如:JIT编译器)从热点代码文件(例如:prof文件)中读取热点代码,并对热点代码进行编译,由于热点代码是用户经常使用的功能对应的代码,由JIT编译器对热点代码进行编译,可以显著提升热点代码的执行效率,进而提升应用程序的运行效率,提升系统体验。
在本实施例中,由于在应用安装时,即可获取到记录有热点代码的热点代码文件,并将热点代码文件预制到指定存储路径下。这样,在启动应用程序后(尤其是首次启动),系统即可基于指定存储路径找到热点代码文件,再利用即时编译引擎对热点代码文件中的热点代码进行编译。省去了应用使用前期统计热点代码的环节,如此,在应用使用前期即可提升应用运行速度,提升系统体验,故而,解决了现有技术中在应用使用前期,应用运行速度较慢,系统体验较差的技术问题。
作为一种可选的实施例,所述方法还包括:
在应用程序运行过程中,通过解释执行引擎编译其它代码,其它代码为应用程序中的除去所述热点代码以外的代码;统计其它代码中每段代码的执行次数,并将执行次数大于预设次数的代码段作为新的热点代码;将所述新的热点代码保存到所述热点代码文件中。
在具体实施过程中,虽然即时编译引擎的编译效率较高,但其所占用的系统资源也较多,电子设备的能耗也较高,为了平衡系统资源以及能耗,热点代码的比例一般不会很高(例如:可以将热点代码占全部代码的比例控制在20%以下)。而对于其它代码(即:应用程序中的除去所述热点代码以外的代码),则由解释执行引擎进行编译运行,解释执行引擎所占用系统资源较少,能耗较低。
并且,在应用程序运行过程中,还可以统计其它代码中每段代码的执行次数(该执行次数可以是指从应用安装后到当前时刻累计被执行的次数),并将执行次数大于预设次数(例如:大于10000次或大于20000次)的代码段作为新的热点代码,再将新的热点代码保存到热点代码文件中,从而实现对热点代码的补充更新。在下次启动应用程序时,则可以利用即时编译引擎对新的热点代码也进行编译。如此,进一步提升热点代码的执行效率,提升应用运行速度,提升系统体验的技术效果。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
在本申请实施例中,公开了一种应用的安装运行方法,包括:在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;将所述热点代码文件预制到指定存储路径下;在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。由于在应用安装阶段,即可获取到记录有热点代码的热点代码文件,并将热点代码文件预制到指定存储路径下,这样,在启动应用程序后,即可基于指定存储路径找到热点代码文件,再利用即时编译引擎对热点代码文件中的热点代码进行编译。如此,实现了在应用使用前期提升应用运行速度,提升系统体验的技术效果,解决了现有技术中在应用使用前期,应用运行速度较慢,系统体验较差的技术问题。
实施例二
基于同一发明构思,如图2所示,本实施例提供了一种应用的安装运行装置200,包括:
获取模块201,用于在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;
配置模块202,用于将所述热点代码文件预制到指定存储路径下;
启动模块203,用于在所述应用程序安装完成后,启动所述应用程序;
查找模块204,用于基于所述指定存储路径找到所述热点代码文件;
第一编译模块205,用于利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
作为一种可选的实施例,获取模块201,具体用于:
从指定服务器上下载所述热点代码文件;或
从所述应用程序的安装包文件中提取所述热点代码文件。
作为一种可选的实施例,所述热点代码由人工统计获得或由机器模型统计获得。
作为一种可选的实施例,所述热点代码文件为安卓系统中的prof文件,所述即时编译引擎为安卓系统中的JIT编译器。
作为一种可选的实施例,装置200,还包括:
第二编译模块,用于在所述应用程序运行过程中,通过解释执行引擎编译其它代码,所述其它代码为所述应用程序中的除去所述热点代码以外的代码;
统计模块,用于统计所述其它代码中每段代码的执行次数,并将执行次数大于预设次数的代码段作为新的热点代码;
保存模块,用于将所述新的热点代码保存到所述热点代码文件中。
由于本实施例所介绍的应用的安装运行装置为实施本申请实施例中应用的安装运行方法所采用的装置,故而基于本申请实施例中所介绍的应用的安装运行方法,本领域所属技术人员能够了解本实施例的应用的安装运行装置的具体实施方式以及其各种变化形式,所以在此对于该应用的安装运行装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中应用的安装运行方法所采用的装置,都属于本申请所欲保护的范围。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
在本申请实施例中,公开了一种应用的安装运行装置,包括:获取模块,用于在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;配置模块,用于将所述热点代码文件预制到指定存储路径下;启动模块,用于在所述应用程序安装完成后,启动所述应用程序;查找模块,用于基于所述指定存储路径找到所述热点代码文件;第一编译模块,用于利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。由于在应用安装阶段,即可获取到记录有热点代码的热点代码文件,并将热点代码文件预制到指定存储路径下,这样,在启动所述应用程序后,即可基于指定存储路径找到热点代码文件,再利用即时编译引擎对热点代码文件中的热点代码进行编译。如此,实现了在应用使用前期提升应用运行速度,提升系统体验的技术效果,解决了现有技术中在应用使用前期,应用运行速度较慢,系统体验较差的技术问题。
实施例三
基于同一发明构思,如图3所示,本实施例提供了一种电子设备300,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序311,处理器320执行所述程序311时可以实现如下方法步骤:
在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;将所述热点代码文件预制到指定存储路径下;在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
在具体实施过程中,所述处理器320执行所述程序311时,还可以实现实施例一中的任一方式步骤。
实施例四
基于同一发明构思,如图4所示,本实施例提供了一种计算机可读存储介质400,其上存储有计算机程序411,所述程序411被处理器执行时可以实现如下方法步骤。
在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;将所述热点代码文件预制到指定存储路径下;在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
在具体实施过程中,该程序411被处理器执行时,还可以实现实施例一中的任一方式步骤。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的应用的安装运行装置、电子设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了,A1、一种应用的安装运行方法,其特征在于,包括:
在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;
将所述热点代码文件预制到指定存储路径下;
在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;
利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
A2、如A1所述的应用的安装运行方法,其特征在于,所述获取热点代码文件,包括:
从指定服务器上下载所述热点代码文件;或
从所述应用程序的安装包文件中提取热点代码文件。
A3、如A1所述的应用的安装运行方法,其特征在于,所述热点代码由人工统计获得或由机器模型统计获得。
A4、如A1所述的应用的安装运行方法,其特征在于,所述热点代码文件为安卓系统中的prof文件,所述即时编译引擎为安卓系统中的JIT编译器。
A5、如A1~A4任一所述的应用的安装运行方法,其特征在于,还包括:
在所述应用程序运行过程中,通过解释执行引擎编译其它代码,所述其它代码为所述应用程序中的除去所述热点代码以外的代码;
统计所述其它代码中每段代码的执行次数,并将执行次数大于预设次数的代码段作为新的热点代码;
将所述新的热点代码保存到所述热点代码文件中。
B6、一种应用的安装运行装置,其特征在于,包括:
获取模块,用于在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;
配置模块,用于将所述热点代码文件预制到指定存储路径下;
启动模块,用于在所述应用程序安装完成后,启动所述应用程序;
查找模块,用于基于所述指定存储路径找到所述热点代码文件;
第一编译模块,用于利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
B7、如B6所述的应用的安装运行装置,其特征在于,所述获取模块,具体用于:
从指定服务器上下载所述热点代码文件;或
从所述应用程序的安装包文件中提取热点代码文件。
B8、如B6所述的应用的安装运行装置,其特征在于,所述热点代码由人工统计获得或由机器模型统计获得。
B9、如B6所述的应用的安装运行装置,其特征在于,所述热点代码文件为安卓系统中的prof文件,所述即时编译引擎为安卓系统中的JIT编译器。
B10、如B6~B9任一所述的应用的安装运行装置,其特征在于,还包括:
第二编译模块,用于在所述应用程序运行过程中,通过解释执行引擎编译其它代码,所述其它代码为所述应用程序中的除去所述热点代码以外的代码;
统计模块,用于统计所述其它代码中每段代码的执行次数,并将执行次数大于预设次数的代码段作为新的热点代码;
保存模块,用于将所述新的热点代码保存到所述热点代码文件中。
C11、一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时可以实现如权利要A1~A5任一所述的方法步骤。
D12、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时可以实现如A1~A5任一所述的方法步骤。
Claims (10)
1.一种应用的安装运行方法,其特征在于,包括:
在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;
将所述热点代码文件预制到指定存储路径下;
在所述应用程序安装完成后,启动所述应用程序,并基于所述指定存储路径找到所述热点代码文件;
利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
2.如权利要求1所述的应用的安装运行方法,其特征在于,所述获取热点代码文件,包括:
从指定服务器上下载所述热点代码文件;或
从所述应用程序的安装包文件中提取所述热点代码文件。
3.如权利要求1所述的应用的安装运行方法,其特征在于,所述热点代码由人工统计获得或由机器模型统计获得。
4.如权利要求1所述的应用的安装运行方法,其特征在于,所述热点代码文件为安卓系统中的prof文件,所述即时编译引擎为安卓系统中的JIT编译器。
5.如权利要求1~4任一所述的应用的安装运行方法,其特征在于,还包括:
在所述应用程序运行过程中,通过解释执行引擎编译其它代码,所述其它代码为所述应用程序中的除去所述热点代码以外的代码;
统计所述其它代码中每段代码的执行次数,并将执行次数大于预设次数的代码段作为新的热点代码;
将所述新的热点代码保存到所述热点代码文件中。
6.一种应用的安装运行装置,其特征在于,包括:
获取模块,用于在安装应用程序时,获取热点代码文件,所述热点代码文件中记录有所述应用程序的热点代码;
配置模块,用于将所述热点代码文件预制到指定存储路径下;
启动模块,用于在所述应用程序安装完成后,启动所述应用程序;
查找模块,用于基于所述指定存储路径找到所述热点代码文件;
第一编译模块,用于利用即时编译引擎从所述热点代码文件中读取所述热点代码,并对所述热点代码进行编译。
7.如权利要求6所述的应用的安装运行装置,其特征在于,所述获取模块,具体用于:
从指定服务器上下载所述热点代码文件;或
从所述应用程序的安装包文件中提取所述热点代码文件。
8.如权利要求6所述的应用的安装运行装置,其特征在于,所述热点代码由人工统计获得或由机器模型统计获得。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时可以实现如权利要1~5任一权项所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时可以实现如权利要求1~5任一权项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910785663.1A CN110609689A (zh) | 2019-08-23 | 2019-08-23 | 一种应用的安装运行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910785663.1A CN110609689A (zh) | 2019-08-23 | 2019-08-23 | 一种应用的安装运行方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110609689A true CN110609689A (zh) | 2019-12-24 |
Family
ID=68890483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910785663.1A Withdrawn CN110609689A (zh) | 2019-08-23 | 2019-08-23 | 一种应用的安装运行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110609689A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770113A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种执行智能合约的方法、区块链节点和节点设备 |
CN112631608A (zh) * | 2021-01-05 | 2021-04-09 | 北京字节跳动网络技术有限公司 | 编译方法、装置、终端及存储介质 |
WO2021135988A1 (zh) * | 2019-12-31 | 2021-07-08 | Oppo广东移动通信有限公司 | 热点代码处理方法、请求方法、装置及电子设备 |
WO2021136012A1 (zh) * | 2019-12-31 | 2021-07-08 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、服务器及存储介质 |
CN113126994A (zh) * | 2019-12-31 | 2021-07-16 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、电子设备及存储介质 |
CN113296826A (zh) * | 2020-07-30 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 应用安装包的生成方法及其加载方法、装置及电子设备 |
WO2022083316A1 (zh) * | 2020-10-21 | 2022-04-28 | 北京字节跳动网络技术有限公司 | 一种应用运行的方法、装置及计算机存储介质 |
-
2019
- 2019-08-23 CN CN201910785663.1A patent/CN110609689A/zh not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135988A1 (zh) * | 2019-12-31 | 2021-07-08 | Oppo广东移动通信有限公司 | 热点代码处理方法、请求方法、装置及电子设备 |
WO2021136012A1 (zh) * | 2019-12-31 | 2021-07-08 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、服务器及存储介质 |
CN113127047A (zh) * | 2019-12-31 | 2021-07-16 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、服务器及存储介质 |
CN113126995A (zh) * | 2019-12-31 | 2021-07-16 | Oppo广东移动通信有限公司 | 热点代码处理方法、请求方法、装置及电子设备 |
CN113126994A (zh) * | 2019-12-31 | 2021-07-16 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、电子设备及存储介质 |
CN113296826A (zh) * | 2020-07-30 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 应用安装包的生成方法及其加载方法、装置及电子设备 |
CN111770113A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种执行智能合约的方法、区块链节点和节点设备 |
US11366677B2 (en) | 2020-08-31 | 2022-06-21 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods, blockchain nodes, and node devices for executing smart contract |
WO2022083316A1 (zh) * | 2020-10-21 | 2022-04-28 | 北京字节跳动网络技术有限公司 | 一种应用运行的方法、装置及计算机存储介质 |
CN112631608A (zh) * | 2021-01-05 | 2021-04-09 | 北京字节跳动网络技术有限公司 | 编译方法、装置、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110609689A (zh) | 一种应用的安装运行方法及装置 | |
CN103797436B (zh) | 用于计算装置的动态电力优化 | |
KR102112081B1 (ko) | 언어 가상 머신에서 고-사용 중간 코드를 식별하는 방법 및 디바이스 | |
CN110990019B (zh) | 一种Java类分析方法、装置、存储介质及电子设备 | |
CN103729235A (zh) | Java虚拟机的编译方法和Java虚拟机 | |
CN106648755B (zh) | 一种在安卓art环境中动态加载dex的方法及装置 | |
KR20110136749A (ko) | 효율적인 동적 이진 변환을 위한 레지스터 매핑 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
CN105849698B (zh) | 动态编程中的执行防护 | |
Blunck et al. | On heterogeneity in mobile sensing applications aiming at representative data collection | |
US20120185833A1 (en) | Code generator and method for generating extra code for a virtual machine | |
US20190266094A1 (en) | Data Prefetching Method, Apparatus, And System | |
US20150212836A1 (en) | Conjugate code generation for efficient dynamic optimizations | |
CN110162682A (zh) | 一种网络数据的爬取方法、装置、存储介质和终端设备 | |
CN109460237A (zh) | 代码的编译方法及装置 | |
CN116643778A (zh) | 一种应用程序优化方法及电子设备 | |
CN107220160B (zh) | 应用程序的电量消耗确定方法及装置 | |
CN108536514B (zh) | 一种热点方法的识别方法和装置 | |
CN107423093B (zh) | 控制方法及装置、计算机装置和计算机可读存储介质 | |
US9262186B2 (en) | Code rearranger and method for rearranging code for a virtual machine | |
CN107450937B (zh) | 一种应用程序的运行方法和运行装置 | |
CN110347471B (zh) | 层级式显示组件系统、显示组件调用方法和装置 | |
CN112799690B (zh) | 信息处理方法、装置、设备和存储介质 | |
CN117762423A (zh) | Java智能合约的编译方法、装置、存储介质以及电子设备 | |
CN113031953A (zh) | 应用程序预编译的方法、装置、电子设备以及服务器 | |
CN106569799B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191224 |
|
WW01 | Invention patent application withdrawn after publication |