CN112988169A - 应用安装方法、装置、终端设备、服务器及存储介质 - Google Patents
应用安装方法、装置、终端设备、服务器及存储介质 Download PDFInfo
- Publication number
- CN112988169A CN112988169A CN201911285858.6A CN201911285858A CN112988169A CN 112988169 A CN112988169 A CN 112988169A CN 201911285858 A CN201911285858 A CN 201911285858A CN 112988169 A CN112988169 A CN 112988169A
- Authority
- CN
- China
- Prior art keywords
- application
- file
- compiled
- code
- server
- 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
Links
Images
Classifications
-
- 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
-
- 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)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种应用安装方法、装置、终端设备、服务器及存储介质,该应用安装方法应用于终端设备,该应用安装方法包括:发送用于下载应用的下载请求至服务器;接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。本方法可以有效提升应用的运行速度。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种应用安装方法、装置、终端设备、服务器及存储介质。
背景技术
终端设备,例如平板电脑、手机等,已经成为人们日常生活中最常用的消费型电子产品之一。人们通常于终端设备中安装各种应用程序,以满足不同的需求。在应用程序的使用中,通常将应用程序的使用频繁的方法或代码作为热点代码,并预先对热点代码编译为二进制机器码,编译得到的二进制机器码可以用于在下次运行应用程序时直接由处理器执行,从而提升应用程序的运行速度,但终端设备首次运行时的运行速度并未得到优化。
发明内容
鉴于上述问题,本申请提出了一种应用安装方法、装置、终端设备、服务器及存储介质。
第一方面,本申请实施例提供了一种应用安装方法,应用于终端设备,所述方法包括:发送用于下载应用的下载请求至服务器;接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
第二方面,本申请实施例提供了一种应用安装方法,应用于服务器,所述方法包括:接收终端设备发送的用于下载应用的下载请求;获取与所述下载请求对应的编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;将所述应用的安装包以及所述编译文件发送至所述终端设备,所述安装包用于所述终端设备对所述应用进行安装,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
第三方面,本申请实施例提供了一种应用安装装置,应用于终端设备,所述装置包括:请求发送模块、文件接收模块以及安装执行模块,其中,所述请求发送模块用于发送下载请求至服务器,所述下载请求至少携带有所述终端设备的设备信息以及应用的应用信息;所述文件接收模块用于接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件,所述编译文件与所述设备信息以及所述应用信息对应;所述安装执行模块用于根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
第四方面,本申请实施例提供了一种应用安装装置,应用于服务器,所述装置包括:请求接收模块、文件获取模块以及文件发送模块,其中,所述请求接收模块用于接收终端设备发送的用于下载应用的下载请求;所述文件获取模块用于获取与所述下载请求对应的编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;所述文件发送模块用于将所述应用的安装包以及所述编译文件发送至所述终端设备,所述安装包用于所述终端设备对所述应用进行安装,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
第五方面,本申请实施例提供了一种应用安装系统,所述应用安装系统包括终端设备以及服务器,所述终端设备与所述服务器通信连接,其中,所述终端设备用于发送用于下载应用的下载请求至所述服务器;所述服务器用于接收所述下载请求,获取与所述下载请求对应的编译文件,并将所述应用的安装包以及所述编译文件发送至所述终端设备,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;所述终端设备还用于接收所述服务器返回的所述安装包以及所述编译文件,根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
第六方面,本申请实施例提供了终端设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述第一方面提供的应用安装方法。
第七方面,本申请实施例提供了服务器,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述第二方面提供的应用安装方法。
第八方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述第一方面提供的应用安装方法。
第九方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述第二方面提供的应用安装方法。
本申请提供的方案,通过发送用于下载应用的下载请求至服务器,接收服务器根据下载请求返回的安装包以及编译文件,该编译文件为对该应用的热度代码进行编译后得到的代码文件,根据安装包对该应用进行安装,并将编译文件进行存储,该编译文件用于终端设备运行热点代码时直接运行编译文件,从而使得终端设备在首次运行时即可使用编译文件,而提升了首次运行的运行速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例提供的应用场景的一种示意图。
图2示出了根据本申请实施例提供的应用场景的另一种示意图。
图3示出了根据本申请一个实施例的应用安装方法流程图。
图4示出了根据本申请另一个实施例的应用安装方法流程图。
图5示出了根据本申请又一个实施例的应用安装方法流程图。
图6示出了根据本申请再一个实施例的应用安装方法流程图。
图7示出了根据本申请又另一个实施例的应用安装方法流程图。
图8示出了根据本申请一个实施例的应用安装装置的一种框图。
图9示出了根据本申请另一个实施例的应用安装装置的一种框图。
图10是本申请实施例的用于执行根据本申请实施例的应用安装方法的终端设备的框图。
图11是本申请实施例的用于执行根据本申请实施例的应用安装方法的服务器的框图。
图12是本申请实施例的用于保存或者携带实现根据本申请实施例的应用安装方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
安卓(Android)有两种虚拟机执行环境:Dalvik虚拟机和Art虚拟机。在Dalvik虚拟机的执行环境下,应用每次运行的时候,字节码都需要通过即时编译器(Just In Timecompilation,JIT编译器)转换为机器码,才能被设备运行,这样会拖慢应用的执行效率。在Android 4.4版本时,Art虚拟机开始替代Dalvik虚拟机,在最开始的Art虚拟机中,应用在第一次安装的时候,系统会通过一个名称为dex2oat的工具将APK中的dex文件编译成包含本地机器码的oat文件存放下来。这样做之后,在程序执行的时候,就可以直接使用已经编译好的机器码以加快效率,这种预先编译机器码的机制叫做运行前编译(Ahead Of Time,AOT)。AOT的缺点是应用安装和系统升级之后的应用优化过程比较耗时(需要重新将dex字节码编译成本地机器码),且优化后的文件会占用额外的存储空间。
因此,后来对其做了相应的调整,在Art虚拟机的环境上,由原来的AOT变为解释器(Interpreter)+JIT+AOT混合编译。JAVA程序最初仅仅通过JAVA解释器(Interpreter)解释执行,即对字节码逐条解释执行,这种方式的执行速度相对会比较慢,尤其当某个方法或代码块运行特别频繁时,这种方式的执行效率就显得很低。于是后来在虚拟机中引入了JIT编译器,当虚拟机发现某个方法或者代码块运行特别频繁时,就会把这些代码认定为“hotspot code”(热点代码),将之记录下来保存到profile文件(配置文件),为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,而正是由JIT编译器负责这项任务。简单而言,profile文件记录了应用频繁运行的方法或者代码块,经由JIT或者AOT编译后得到.odex/.oat文件,该文件存有这些热点代码编译而成的二进制机器码,可直接交由中央处理器(Central Processing Unit,CPU)执行,从而提高了运行速度。
在JIT架构中,oat文件由于包含的时程序运行的机器码,因此可以直接被Art虚拟机运行。而dex文件中,如果是cold code(非热点代码),则交由JAVA解释器执行,如果是hotcode(热点代码)则交由JIT实时编译后存放在JIT CODE CACHE中,下次再次访问该热点,则可以直接从cache中执行对应的机器码。
通常大部分厂商均采用上述的Interpreter+JIT+AOT混合编译模式,在该混合编译模式下,应用在安装的时候dex文件不会被编译,应用在运行时,dex文件先通过Interpreter被直接运行,经常运行的函数或者代码块会被识别为hot code,hot code被JIT编译后存储在JIT CODE CACHE中,生成profile文件以记录热点函数的信息,移动终端在进入IDLE(空闲)且Charging(充电)状态的时候,系统会扫描应用的目录下的profile文件并执行AOT过程进行编译,AOT编译后的二进制机器码可直接交由中央处理器(CentralProcessing Unit,CPU)执行,从而提高了运行速度。这种方式下,由于应用在安装时没有进行dex文件的编译,因此首次启动的速度没有得到任何优化,而且热点代码的编译依赖于设备在空闲维护模式下才会被触发,这意味着可能需要一段时间后才能享受到性能的提升。
当然,一些厂商从用户的移动终端收集应用的配置文件,上传到云端。当用户从商店下载应用时,同时将配置文件推送给用户,并在安装过程中进行编译,使得在安装完应用后,应用在运行时的速度获得提升,也就使得用户能体验到应用性能提升后的体验。但是这种方式,会使得应用在安装时的时长过长。
针对上述问题,发明人提出了本申请实施例提供的应用安装方法、装置、终端设备、服务器及存储介质,通过终端设备从服务器下载应用时,服务器同时向终端推送对该应用的热点代码进行编译后得到的代码文件,从而使得终端设备在首次运行时即可使用编译文件,而提升了首次运行的运行速度,另外也避免了终端设备在安装应用时对热点代码进行编译,而造成安装时长较长的问题。其中,具体的应用安装方法在后续的实施例中进行详细的说明。
下面对本申请实施例提供的应用场景进行介绍。
在一些实施方式中,请参阅图1,图1示出了本申请实施例提供的应用场景的一种示意图,该应用场景包括应用安装系统10,该应用安装系统10包括:终端设备100以及第一服务器200。其中,终端设备100与第一服务器200通过网络进行通信。终端设备100可以与第一服务器200进行数据交互,以从第一服务器200获取应用程序的安装包、编译文件等。
在另一些实施方式中,请参阅图2,图2示出了本申请实施例提供的应用场景的另一种示意图,应用安装系统10也可以包括:终端设备100、第一服务器200以及第二服务器300。其中,终端设备100与第一服务器200之间进行数据交互,第一服务器200与第二服务器300之间也可以进行数据交互。第一服务器200可以用于处理终端设备100的请求,第二服务器300可以用于存储和管理应用程序的编译文件、安装包等文件,当终端设备100从第一服务器200获取应用程序的文件时,第一服务器200可以从第二服务器300获取应用程序的文件,并将应用程序的文件发送至终端设备100。
当然,应用安装系统10中也还可以包括其他的服务器。例如,应用安装系统10还可以包括第三服务器,第三服务器可以用于从用户的终端设备收集应用程序的编译文件,并将收集的编译文件传输至第二服务器200进行整理和存储等;又例如,应用安装系统也还可以包括第四服务器,第四服务器可以用于存储和管理应用程序的安装包等,该情况下,可以由第二服务器200存储和管理应用程序的编译文件,实现应用程序的安装包与编译文件的单独进行管理和存储。
在一些实施方式中,上述的终端设备100可以为智能手机、平板电脑、电子书、智能手表等设备;第一服务器200、第二服务器300等服务器可以为传统服务器,也可以为云服务器,在此不做限定。
下面对本申请实施例提供的应用安装方法进行详细介绍。
请参阅图3,图3示出了本申请一个实施例提供的应用安装方法的流程示意图。该应用安装方法可以应用于上述应用安装系统中的终端设备。下面将以终端设备为例,说明本实施例的具体流程。下面将针对图3所示的流程进行详细的阐述,所述应用安装方法具体可以包括以下步骤:
步骤S110:发送用于下载应用的下载请求至服务器。
在本申请实施例中,下载请求可以由终端设备生成,该下载请求可以用于下载应用,从服务器获取该应用的安装文件等。其中,该应用可以是终端设备未安装过的应用,也可以为终端设备此前已安装而需要进行更新的应用,在此不做限定。
作为一种实施方式,终端设备可以根据用户的用户操作,生成下载请求,例如,终端设备检测到在软件商店的界面中对应用的下载操作,进而生成对该应用的下载请求。作为另一种实施方式,在开启了对应用自动更新的功能时,终端设备也可以根据自动更新的功能,生成下载请求,以从服务器获取该应用的安装文件,对应用进行更新。
在一些实施方式中,终端设备在生成用于下载应用的下载请求后,则可以将下载请求发送至服务器。其中,该服务器可以至少能够对终端设备发送的下载请求、查询请求等进行响应,并与终端设备进行交互,也就是说,该服务器能够响应下载请求,获取应用的安装相关的文件,并向终端设备返回文件。例如,该服务器为软件商店的服务器,终端设备通过运行软件商店的应用,并检测到用户于软件商店中的操作,而向软件商店的服务器发送下载请求。在上述的应用安装系统中,该服务器可以为上述应用安装系统中的第一服务器。当然,具体的服务器可以不作为限定,仅需服务器满足能响应终端设备的请求即可。
步骤S120:接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件。
在一些实施方式中,终端设备在向服务器发送下载请求之后,服务器对下载请求进行响应,并根据下载请求获取应用的安装包以及编译文件。其中,安装包指的是应用程序的软件安装包,是可自行解压缩文件的集合,安装包中包括软件安装的所有文件,例如,安装包可以为Android安装包,Android安装包可以用于终端设备中的Android系统执行即可安装。编译文件可以为对该应用的热点代码(hot code)进行编译后得到的二进制的机器代码的文件,例如可以为oat文件,也可以为odex文件,热点代码可以指经常运行的函数或代码块。具体对热点代码进行编译的方式可以不作为限定,例如可以为JIT或者AOT编译后得到的二进制的机器代码文件。
作为一种实施方式,编译文件可以存储于上述服务器中,编译文件可以为该服务器从其他终端收集的该应用的编译文件,也可以为服务器从其他终端收集该应用的热点代码后,再对该热点代码进行编译后获得的。服务器可以从存储的编译文件中读取该应用的编译文件。
作为另一种实施方式,编译文件可以存储于其他服务器中,例如用于存储和管理应用的编译文件的云端。接收到下载请求的服务器,可以从其他服务器获取下载请求对应的应用的编译文件。
在一些实施方式中,应用的安装包可以存储于接收到下载请求的服务器,服务器可以直接读取该应用的安装包。应用的安装包也可以存储于其他服务器中(例如用于存储应用的安装包的服务器),接收到下载请求的服务器可以从其他服务器获取下载请求对应的应用的安装包。
服务器在获取到下载请求对应的应用的安装包以及编译文件之后,则可以将安装包以及编译文件共同下发至终端设备。对应的,终端设备可以接收到服务器返回的安装包以及编译文件。
步骤S130:根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
在本申请实施例中,终端设备在向服务器发送用于下载应用的下载请求后,可以接收到服务器返回的该应用的安装包以及编译文件。终端设备在接收到应用的安装包以及编译文件之后,则可以运行安装包对应用进行安装,具体地,终端设备对安装包进行解压后,再执行解压后的文件,而对应用进行安装。另外,终端设备可以将接收到的编译文件进行存储,该应用的编译文件在被终端设备存储后,当终端设备运行该热点代码时,由于编译文件中是热点代码对应的编译后的二进制代码,因此,可以直接由处理器执行,从而可以提升运行速度。
本申请实施例提供的应用安装方法,通过发送用于下载应用的下载请求至服务器,接收服务器根据下载请求返回的安装包以及编译文件,该编译文件为对该应用的热度代码进行编译后得到的代码文件,根据安装包对该应用进行安装,并将编译文件进行存储,该编译文件用于终端设备运行热点代码时直接运行编译文件,从而使得终端设备在首次运行时即可使用编译文件,而提升了首次运行的运行速度。另外也避免了终端设备在安装应用时对热点代码进行编译,而造成安装时长较长的问题。
请参阅图4,图4示出了本申请另一个实施例提供的应用安装方法的流程示意图。该应用安装方法应用于上述终端设备,下面将针对图4所示的流程进行详细的阐述,所述应用安装方法具体可以包括以下步骤:
步骤S210:根据所述终端设备的设备信息以及应用的应用信息,生成下载请求并将所述下载请求发送至服务器,所述下载请求携带有所述设备信息以及所述应用信息。
在本申请实施例中,热点代码被编译后获得的编译文件与具体的设备、软件版本、系统版本等环境因素有关,因此不同的设备、系统版本或者软件版本,编译得到编译文件不同。因此,每个应用的编译文件均与设备信息以及应用信息相关联,其中,设备信息可以包括终端设备的设备厂商、设备机型、系统的版本等,应用信息可以包括:应用的版本号、应用的版本名、包名等信息,具体的设备信息及应用信息可以不作为限定,设备信息以及应用信息中可以包括更多的信息,以便终端设备获得的编译文件更加准确。
在一些实施方式中,终端设备在生成用于下载应用的下载请求时,则生成的下载请求中携带有该终端设备的设备信息以及应用的应用信息,以获取与设备信息以及应用信息对应的编译文件,以便获得的编译文件可以使用。
步骤S220:接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件。
在本申请实施例中,由于终端设备向服务器发送的下载请求中携带有设备信息以及应用信息,因此服务器在接收到该下载请求后,可以获取与设备信息以及应用信息对应的编译文件。其中,应用的每个编译文件均与设备信息以及应用信息相关联的存储于该服务器,或者应用的每个编译文件均与设备信息以及应用信息相关联的存储于其他服务器。当编译文件存储于接收到下载请求的服务器时,则该服务器可以直接根据设备信息以及应用信息,读取与设备信息以及应用信息对应的编译文件;当编译文件存储于其他服务器时,则可以从其他服务器获取与设备信息以及应用信息对应的编译文件。服务器在获取到与下载请求中的设备信息以及应用信息对应的编译文件,并获取到应用的安装包以后,则可以将编译文件以及安装包同时返回至终端设备,对应的,终端设备可以接收到应用的安装包,与设备信息以及应用信息对应的编译文件。
步骤S230:根据所述安装包对所述应用进行安装。
在本申请实施例中,步骤S230可以参阅前述实施例的内容,在此不再赘述。
步骤S240:对所述编译文件进行校验。
在本申请实施例中,终端设备在根据安装包对应用进行安装时,在将编译文件进行存储之前,还可以对接收到的编译文件进行校验,以确定接收到的编译文件的完整性和一致性,即确定编译文件是否有被破坏和篡改。
在一些实施方式中,终端设备可以利用文件的哈希(hash)值进行校验。例如,终端设备可以利用MD5(Message Digest 5,信息摘要)值验证方法,对编译文件进行校验。具体的,终端设备可以获取编译文件的源文件的MD5值,再计算接收到的编译文件的MD5值,并将两者进行比较,如果两者一致,则表示接收到的编译文件的为完整的,与源文件是一致的,也就是未被破坏和篡改;如果两者不一致,则表示获取到的编译文件不完整,与源文件不一致。
步骤S250:当校验结果表征所述编译文件满足存储条件时,将所述编译文件存储到指定文件目录中,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
在本申请实施例中,终端设备在对获取到的编译文件进行校验后,可以根据校验结果,确定编译文件是否满足存储条件。其中,当校验结果为获取到的编译文件为完整,与源文件一致时,则校验结果可以表征编译文件满足存储条件,该情况下,终端设备则可以将编译文件存储到指定文件目录中;当校验结果为获取到的编译文件不完整,与源文件不一致时,则校验结果可以表征编译文件不满足存储条件,该情况下,终端设备不执行将获取到的编译文件存储到指定目录,以避免后续该编译文件不可用,而导致运行时的崩溃等。其中,指定目录可以为用于存储oat文件、dex文件等编译后的二进制机器代码的目录,从而在终端设备运行该应用的热点代码时,可以从指定目录中读取编译文件执行。
在一些实施方式中,当校验结果表征编译文件不满足存储条件时,终端设备还可以多次从服务器获取该应用的编译文件,直至获取到校验后满足存储条件的编译文件,并将满足存储条件的编译文件进行存储。
在该实施方式下,终端设备在连续多次从服务器获取到的编译文件后,每次获得的编译文件的校验结果均不满足存储条件时,终端设备还可以从服务器获取配置文件,配置文件中包括应用的热点代码,终端设备在获得配置文件后,则可根据配置文件,对配置文件中的热点代码进行编译,并将编译后得到编译文件进行存储。可以理解的,当连续多次获得的编译文件的校验结果均不满足存储条件时,则可能是因为该终端设备与服务器之间传输编译文件容易出错,因此可以尝试获取配置文件,而对热点代码进行编译,从而获得编译文件,以提升应用运行时的运行速度。
在一些实施方式中,终端设备在安装完应用,并将编译文件进行存储之后,终端设备在第一次运行该应用的热点代码时,直接执行该编译文件而出错时,也可以从服务器获取配置文件,并对热点代码进行编译,以得编译文件并进行存储。可以理解的,当终端设备第一次运行该应用,直接执行编译文件中的机器代码出错时,表示可能此前已编译好的编译文件可能与设备信息等不符合,因此,可以由该终端设备对热点代码进行编译,以获得可用的编译文件。
本申请实施例提供的应用安装方法,通过向服务器发送携带有设备信息和应用的应用信息的下载请求,从而可以接收到服务器返回的安装包和编译文件,并且编译文件与设备信息以及应用信息对应,然后根据安装包对应用进行安装,并对编译文件进行校验,当校验结果表征编译文件满足存储条件时,将编译文件进行存储,存储的编译文件由于与设备信息以及应用信息对应,因此终端设备在运行热点代码时可以直接运行编译文件中的机器代码,提升应用的运行效率。由于安装时即存储了编译文件,从而使得终端设备在首次运行时即可使用编译文件,而提升了首次运行的运行速度。另外也避免了终端设备在安装应用时对热点代码进行编译,而造成安装时长较长的问题。
请参阅图5,图5示出了本申请又一个实施例提供的应用安装方法的流程示意图。该应用安装方法应用于上述应用安装系统中的终端设备,下面将针对图5所示的流程进行详细的阐述,所述应用安装方法具体可以包括以下步骤:
步骤S310:当所述终端设备的状态满足预设条件时,发送第一下载请求至服务器,所述第一下载请求用于至少获取所述应用的安装包以及编译文件。
在本申请实施例中,考虑到终端设备在下载应用时,服务器同时下发安装包和编译文件,会带来传输的数据量的增加,这样会使得下载速度、下载时间等受到影响,因此,终端设备在发送下载请求至服务器之前,还可以确定终端设备的状态是否满足预设条件,当满足预设条件时,才从服务器同时获取安装包和编译文件。其中,预设条件可以为表征终端设备在同时下载安装包和编译文件时,下载速度和下载时间正常的条件。
在一些实施方式中,预设条件包括以下条件中的至少一种:终端设备连接的网络的网络速度大于第一速度;终端设备连接的网络的网络类型为指定类型;当前时间处于预设时间段。也就是说,预设条件可以为以上条件中的任意一个条件,也可以为以上条件中多个条件的组合,在此不做限定。其中,网络速度可以为终端设备利用当前连接的网络进行下载时的最大速度或者平均速度等;网络类型指的是网络所属的类型,例如数据网络、无线网络等,数据网络中还可以分为3G网络、4G网络、5G网络等。第一速度可以为表征可以在正常的下载时间内下载完安装包以及编译文件的速度,例如,第一速度可以为1Mb(兆)每秒,5Mb(兆)每秒等,具体数值可以不作为限定;指定类型可以为网络速度通常较高的网络的类型,例如网络速度大于第二速度的网络类型,例如,指定网络可以为WIFI网络、5G网络等,具体网络的类型可以不作为限定;预设时间段可以为网络空闲的时间段或者网络速度较高(例如大于第三速度)的时间段,当处于预设时间段时,终端设备同时下载安装包以及编译文件,下载速度和下载时间通常不会处于异常。当然,具体的预设条件可以不作为限定,例如预设条件还可以是可分配至安装包和编译文件的下载任务的带宽大于指定带宽等。
可以理解的,当终端设备的状态满足预设条件时,则表示终端设备同时对安装包以及编译文件进行下载,不会出现异常的情况,因此,终端设备可以发送用于至少获取应用的安装包以及编译文件的第一下载请求至服务器,以从服务器获取安装包以及编译文件。反之,当终端设备的状态满足预设条件时,则终端设备不能同时从服务器获取安装包以及编译文件。
步骤S320:接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件。
在本申请实施例中,步骤S320可以参阅前述实施例的内容,在此不再赘述。
在一些实施方式中,预设条件为终端设备连接的网络的网络速度大于第一速度时,上述下载请求还可以携带有网络速度,服务器向终端设备返回安装包以及编译文件时,还可以根据网络速度确定返回的编译文件中代码文件的数量,以使代码文件的数量能与网络速度对应,其中,代码文件的数量可以与网络速度呈正相关,以避免编译文件中代码数量过多时,造成下载时间过长。
步骤S330:根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
在本申请实施例中,步骤S330可以参阅前述实施例的内容,在此不再赘述。
在一些实施方式中,预设条件为终端设备连接的网络的网络速度大于第一速度时。由于代码文件的数量与网络速度对应,服务器可能并非传输全部的热点代码对应的编译文件,因此,该应用安装方法还可以包括:确定该应用的所有热点代码的数量;如果代码文件数量小于所有热点代码对应的数量,则根据编译文件中的代码文件对应的热点代码,确定所有热点代码中未被编译的热点代码,作为第一热点代码;在终端设备的设备状态满足指定状态时,获取第一热点代码对应的编译文件,并将第一热点代码对应的热点文件进行存储。可以理解的,终端设备可以从服务器确定该应用的所有热点代码的数量,并确定编译文件中的代码文件数量是否小于所有热点代码的数量,以便确认服务器是否传输了全部的热点代码对应的编译文件。如果确定编译文件中的代码文件数量小于所有热点代码的数量,则表示服务器未传输全部的热点代码对应的编译文件,因此可以确定未获取到编译文件的热点代码,并在终端设备的设备状态满足指定状态时,获取第一热点代码对应的编译文件,以便获取到全部的热点代码对应的编译文件,从而方便该应用在后续运行时,能有效提升运行速度。该指定状态可以为网络速度大于指定速度的状态,指定速度可以为大于上述第一速度的网络速度;该指定状态也可以为终端设备处于休眠或者低功耗的状态,具体指定状态可以不作为限定。
作为一种实施方式,获取所述第一热点代码对应的编译文件,可以包括:从服务器获取第一热点代码对应的编译文件。也就是说,终端设备可以在安装该应用或者在安装过程中,设备状态满足指定状态时,从服务器再获取第一热点代码对应的编译文件,并将该编译文件进行存储。
作为另一种实施方式,获取第一热点代码对应的编译文件,可以包括:对第一热点代码进行编译,获得第一热点代码对应的编译文件。其中,终端设备可以直接从服务器获取第一热点代码对应的配置文件,再根据配置文件,对配置文件中的第一热点代码进行编译,从而得到第一热点代码对应的编译文件,并将该编译文件进行存储。
在一些实施方式中,该应用安装方法还可以包括:如果网络速度小于或者等于第一速度时,发送第二下载请求至服务器,第二下载请求用于至少获取应用的安装包以及配置文件;接收服务器返回的安装包以及配置文件;根据配置文件,确定应用的所有热点代码;根据所安装包对应用进行安装;对所有热点代码进行编译,并将编译后获得的编译文件进行存储。可以理解的,当网络速度小于或者等于第一速度时,表示终端设备同时对安装包以及编译文件进行下载,会出现异常的情况,因此终端设备可以发送用于获取安装包以及配置文件的第二下载请求,由于配置文件的大小通常小于编译文件的大小,因此,可以避免出现异常的情况。另外,还根据配置文件,对所有热点代码行编译,并将编译后得到的编译文件进行存储,从而方便该应用在后续运行时,能有效提升运行速度。
步骤S340:获取在所述应用的运行过程中运行次数满足设定次数条件的代码,作为新的热点代码。
在本申请实施例中,终端设备还可以在安装完应用后,在后续根据该应用在运行过程中,确定新的热点代码,即当前存储的编译文件中对应的热点代码中不存在的热点代码。其中,新的热点代码满足:运行次数满足设定次数条件的代码,也就是说,可以将运行次数满足设定次数条件的代码,并且此前不存在的热点代码作为热点代码。
步骤S350:对所述新的热点代码进行编译,并将编译后的编译文件进行存储。
在本申请实施例中,终端设备在搜集到新的热点代码之后,则可以对新的热点代码进行编译。其中,终端设备可以在处于休眠模式或低功耗模式时,对新的热点代码进行编译。例如,终端设备可以在空闲状态且处于充电状态时,对新的热点代码进行编译。
步骤S360:将所述新的热点代码对应的编译文件发送至所述服务器,所述服务器用于对所述应用的热点代码以及热点代码对应的编译文件进行更新。
在本申请实施例中,终端设备还可以将新的热点代码对应的编译文件发送至服务器,以便服务器对新的热点代码的编译文件进行搜集。需要说明的是,该服务器可以为供终端设备下载安装包的服务器,例如软件商城对应的服务器,也可以为专门用于搜集热点代码的编译文件的服务器,在此不做限定。
本申请实施例提供的应用安装方法,通过当终端设备的状态满足预设条件时,向服务器发送携带有设备信息和应用的应用信息的第一下载请求,从而可以接收到服务器返回的安装包和编译文件,并且可以保证下载效率。然后根据安装包对应用进行安装,并对编译文件进行存储,因此终端设备在运行热点代码时可以直接运行编译文件中的机器代码,提升应用的运行效率。由于安装时即存储了编译文件,从而使得终端设备在首次运行时即可使用编译文件,而提升了首次运行的运行速度,也避免了终端设备在安装应用时对热点代码进行编译,而造成安装时长较长的问题。另外,对新的热点代码进行编译,可以搜集新的热点代码的编译文件,进一步提升应用的运行效率。
请参阅图6,图6示出了本申请再一个实施例提供的应用安装方法的流程示意图。该应用安装方法可以应用于上述应用安装系统中的服务器,下面将针对图6所示的流程进行详细的阐述,所述应用安装方法具体可以包括以下步骤:
步骤S410:接收终端设备发送的用于下载应用的下载请求。
步骤S420:获取与所述下载请求对应的编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件。
步骤S430:将所述应用的安装包以及所述编译文件发送至所述终端设备,所述安装包用于所述终端设备对所述应用进行安装,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
本申请实施例提供的应用安装方法,服务器可以根据接收到的下载请求,向终端设备返回应用的安装包的同时,返回对应用的热点代码进行编译后得到的代码文件,安装包用于终端设备对应用进行安装,编译文件可以用于终端设备运行所述热点代码时直接运行,从而可以使终端设备在首次运行时即可使用编译文件,而提升了首次运行的运行速度,也避免了终端设备在安装应用时对热点代码进行编译,而造成安装时长较长的问题。
请参阅图7,图7示出了本申请又另一个实施例提供的应用安装方法的流程示意图。该应用安装方法可以应用于上述应用安装系统中的服务器,下面将针对图7所示的流程进行详细的阐述,所述应用安装方法具体可以包括以下步骤:
步骤S510:接收终端设备发送的用于下载应用的下载请求,所述下载请求携带有所述终端设备的设备信息以及所述应用的应用信息。
在本申请实施例中,服务器可以预先对该应用的编译文件进行搜集和整合,并将该应用的编译文件与终端设备的设备信息以及应用的应用信息进行关联后存储。因此,服务器可以获取多个终端发送的应用的编译文件,与编译文件对应的设备信息以及应用信息;将编译文件,与编译文件对应的设备信息以及应用信息进行关联后并存储。
在一些实施方式中,服务器还可以对搜集的编译文件进行处理,当服务器中存储的编译文件为版本落后的应用对应的编译文件,可以将其删除,以节省存储空间
步骤S520:获取与所述设备信息以及所述应用信息对应的编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件。
在本申请实施例中,当服务器的本地存储有应用的编译文件时,则可以直接从本地读取与设备信息以及应用信息对应的编译文件。当编译文件存储于云服务器时,服务器可以根据下载请求,向云服务器发送文件获取请求,该文件获取请求用于获取编译文件,然后接收云服务器返回的编译文件,从而获得到与设备信息以及应用信息对应的编译文件。
步骤S530:根据所述网络速度,确定与所述网络速度对应的代码文件数量。
步骤S540:从所述编译文件中获取所述代码文件数量的编译文件。
步骤S550:将所述应用的安装包以及所述代码文件数量的编译文件发送至所述终端设备,所述安装包用于所述终端设备对所述应用进行安装,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
在本申请实施例中,上述下载请求中还可以携带有网络速度。服务器向终端设备返回安装包以及编译文件时,可以根据网络速度确定返回的编译文件中代码文件的数量,以使代码文件的数量能与网络速度对应,其中,代码文件的数量可以与网络速度呈正相关,以避免编译文件中代码数量过多时,造成下载时间过长。
本申请实施例提供的应用安装方法,通过接收携带有设备信息和应用的应用信息的下载请求,然后获取获取与设备信息以及应用信息对应的编译文件,再根据网络速度,从编译文件中获取代码文件数量的编译文件,然后将应用的安装包以及该代码文件数量的编译文件发送至终端设备,从而可以使终端设备在首次运行时即可使用编译文件,而提升了首次运行的运行速度,也避免了终端设备在安装应用时对热点代码进行编译,而造成安装时长较长的问题。
请参阅图8,其示出了本申请一个实施例提供的一种应用安装装置400的结构框图。该应用安装装置400可以应用于上述应用安装系统中的终端设备,该应用安装装置400包括:请求发送模块410、文件接收模块420以及安装执行模块430。其中,所述请求发送模块410用于发送下载请求至服务器,所述下载请求至少携带有所述终端设备的设备信息以及应用的应用信息;所述文件接收模块420用于接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件,所述编译文件与所述设备信息以及所述应用信息对应;所述安装执行模块430用于根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
在一些实施方式中,该应用安装装置400还可以包括:文件校验模块。文件校验模块用于在所述编译文件进行存储之前,对所述编译文件进行校验。安装执行模块430可以具体用于:当校验结果表征所述编译文件满足存储条件时,将所述编译文件存储到指定文件目录中。
在一些实施方式中,所述编译文件与所述终端设备的设备信息以及应用的应用信息对应。请求发送模块410可以具体用于:根据所述设备信息以及应用信息,生成下载请求并将所述下载请求发送至服务器,所述下载请求携带有所述设备信息以及所述应用信息。
在一些实施方式中,请求发送模块410可以具体用于:当所述终端设备的状态满足预设条件时,发送第一下载请求至服务器,所述第一下载请求用于至少获取所述应用的安装包以及编译文件。
在该实施方式下,所述预设条件包括以下条件中的至少一种:所述终端设备连接的网络的网络速度大于第一速度;所述终端设备连接的网络的网络类型为指定类型;当前时间处于预设时间段。
在一些实施方式中,该应用安装装置400还包括:代码获取模块以及代码编译模块。代码获取模块用于获取在所述应用的运行过程中运行次数满足设定次数条件的代码,作为新的热点代码;代码编译模块用于对所述新的热点代码进行编译,并将编译后的编译文件进行存储。
进一步的,该应用安装装置400还可以包括:文件发送模块。文件发送模块用于将所述新的热点代码对应的编译文件发送至所述服务器,所述服务器用于对所述应用的热点代码以及热点代码对应的编译文件进行更新。
请参阅图9,其示出了本申请另一实施例提供的一种应用安装装置500的结构框图。该应用安装装置500可以应用于上述应用安装系统中的终端设备,该应用安装装置500包括:请求接收模块510、文件获取模块520以及文件发送模块530。其中,所述请求接收模块510用于接收终端设备发送的用于下载应用的下载请求;所述文件获取模块520用于获取与所述下载请求对应的编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;所述文件发送模块530用于将所述应用的安装包以及所述编译文件发送至所述终端设备,所述安装包用于所述终端设备对所述应用进行安装,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
在一些实施方式中,所述下载请求携带有所述终端设备的设备信息以及所述应用的应用信息。文件获取模块520可以具体用于:获取与所述设备信息以及所述应用信息对应的编译文件。
在一些实施方式中,文件获取模块520也可以具体用于:根据所述下载请求,向云服务器发送文件获取请求,所述文件获取请求用于获取所述编译文件;接收所述云服务器返回的所述编译文件。
在一些实施方式中,所述下载请求还携带有网络速度。文件发送模块530可以包括:数量确定单元、文件筛选单元以及发送执行单元。数量确定单元用于根据所述网络速度,确定与所述网络速度对应的代码文件数量;文件筛选单元用于从所述编译文件中获取所述代码文件数量的编译文件;发送执行单元用于将所述应用的安装包以及所述代码文件数量的编译文件发送至所述终端设备。
在一些实施方式中,该应用安装装置500还可以包括信息获取模块以及信息存储模块。信息获取模块用于获取多个终端发送的所述应用的编译文件,与所述编译文件对应的设备信息以及应用信息;信息存储模块用于将所述编译文件,与所述编译文件对应的设备信息以及应用信息进行存储。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请实施例还提供了一种应用安装系统,该应用安装系统包括终端设备以及服务器。终端设备与所述服务器通信连接,例如,请再次参阅图1,服务器可以为第一服务器200。其中,所述终端设备用于发送用于下载应用的下载请求至所述服务器;所述服务器用于接收所述下载请求,获取与所述下载请求对应的编译文件,并将所述应用的安装包以及所述编译文件发送至所述终端设备,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;所述终端设备还用于接收所述服务器返回的所述安装包以及所述编译文件,根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
综上所述,本申请提供的方案,通过发送用于下载应用的下载请求至服务器,接收服务器根据下载请求返回的安装包以及编译文件,该编译文件为对该应用的热度代码进行编译后得到的代码文件,根据安装包对该应用进行安装,并将编译文件进行存储,该编译文件用于终端设备运行热点代码时直接运行编译文件,从而使得终端设备在首次运行时即可使用编译文件,而提升了首次运行的运行速度。
请参考图10,其示出了本申请实施例提供的一种终端设备的结构框图。该终端设备100可以是智能手机、平板电脑、智能手表等能够运行应用程序的电子设备。本申请中的终端设备100可以包括一个或多个如下部件:处理器110、存储器120、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个终端设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图11,其示出了本申请实施例提供的一种服务器的结构框图。该服务器600可以是传统服务器、云服务器等。本申请中的服务器600可以包括一个或多个如下部件:处理器610、存储器620、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器620中并被配置为由一个或多个处理器610执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器610可以包括一个或者多个处理核。处理器610利用各种接口和线路连接整个服务器600内的各个部分,通过运行或执行存储在存储器620内的指令、程序、代码集或指令集,以及调用存储在存储器620内的数据,执行服务器600的各种功能和处理数据。可选地,处理器610可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器610可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器610中,单独通过一块通信芯片进行实现。
存储器620可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器620可用于存储指令、程序、代码、代码集或指令集。存储器620可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储服务器600在使用中所创建的数据等。
请参考图12,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (18)
1.一种应用安装方法,其特征在于,应用于终端设备,所述方法包括:
发送用于下载应用的下载请求至服务器;
接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;
根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
2.根据权利要求1所述的方法,其特征在于,在所述编译文件进行存储之前,所述方法还包括:
对所述编译文件进行校验;
所述将所述编译文件进行存储,包括:
当校验结果表征所述编译文件满足存储条件时,将所述编译文件存储到指定文件目录中。
3.根据权利要求1所述的方法,其特征在于,所述编译文件与所述终端设备的设备信息以及应用的应用信息对应;
所述发送用于下载应用的下载请求至服务器,包括:
根据所述设备信息以及应用信息,生成下载请求并将所述下载请求发送至服务器,所述下载请求携带有所述设备信息以及所述应用信息。
4.根据权利要求1所述的方法,其特征在于,所述发送下载请求至服务器,包括:
当所述终端设备的状态满足预设条件时,发送第一下载请求至服务器,所述第一下载请求用于至少获取所述应用的安装包以及编译文件。
5.根据权利要求4所述的方法,其特征在于,所述预设条件包括以下条件中的至少一种:
所述终端设备连接的网络的网络速度大于第一速度;
所述终端设备连接的网络的网络类型为指定类型;
当前时间处于预设时间段。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
获取在所述应用的运行过程中运行次数满足设定次数条件的代码,作为新的热点代码;
对所述新的热点代码进行编译,并将编译后的编译文件进行存储。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述新的热点代码对应的编译文件发送至所述服务器,所述服务器用于对所述应用的热点代码以及热点代码对应的编译文件进行更新。
8.一种应用安装方法,其特征在于,应用于服务器,所述方法包括:
接收终端设备发送的用于下载应用的下载请求;
获取与所述下载请求对应的编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;
将所述应用的安装包以及所述编译文件发送至所述终端设备,所述安装包用于所述终端设备对所述应用进行安装,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
9.根据权利要求8所述的方法,其特征在于,所述下载请求携带有所述终端设备的设备信息以及所述应用的应用信息,所述获取与所述下载请求对应的编译文件,包括:
获取与所述设备信息以及所述应用信息对应的编译文件。
10.根据权利要求8或9所述的方法,其特征在于,所述获取与所述下载请求对应的编译文件,包括:
根据所述下载请求,向云服务器发送文件获取请求,所述文件获取请求用于获取所述编译文件;
接收所述云服务器返回的所述编译文件。
11.根据权利要求8所述的方法,其特征在于,所述下载请求还携带有网络速度,所述将所述应用的安装包以及所述编译文件发送至所述终端设备,包括:
根据所述网络速度,确定与所述网络速度对应的代码文件数量;
从所述编译文件中获取所述代码文件数量的编译文件;
将所述应用的安装包以及所述代码文件数量的编译文件发送至所述终端设备。
12.根据权利要求8所述的方法,其特征在于,在所述接收终端设备发送的下载请求之前,所述方法还包括:
获取多个终端发送的所述应用的编译文件,与所述编译文件对应的设备信息以及应用信息;
将所述编译文件,与所述编译文件对应的设备信息以及应用信息进行存储。
13.一种应用安装装置,其特征在于,应用于终端设备,所述装置包括:请求发送模块、文件接收模块以及安装执行模块,其中,
所述请求发送模块用于发送下载请求至服务器,所述下载请求至少携带有所述终端设备的设备信息以及应用的应用信息;
所述文件接收模块用于接收所述服务器根据所述下载请求返回的安装包以及编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件,所述编译文件与所述设备信息以及所述应用信息对应;
所述安装执行模块用于根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
14.一种应用安装装置,其特征在于,应用于服务器,所述装置包括:请求接收模块、文件获取模块以及文件发送模块,其中,
所述请求接收模块用于接收终端设备发送的用于下载应用的下载请求;
所述文件获取模块用于获取与所述下载请求对应的编译文件,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;
所述文件发送模块用于将所述应用的安装包以及所述编译文件发送至所述终端设备,所述安装包用于所述终端设备对所述应用进行安装,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
15.一种应用安装系统,其特征在于,所述应用安装系统包括终端设备以及服务器,所述终端设备与所述服务器通信连接,其中,
所述终端设备用于发送用于下载应用的下载请求至所述服务器;
所述服务器用于接收所述下载请求,获取与所述下载请求对应的编译文件,并将所述应用的安装包以及所述编译文件发送至所述终端设备,所述编译文件为对所述应用的热点代码进行编译后得到的代码文件;
所述终端设备还用于接收所述服务器返回的所述安装包以及所述编译文件,根据所述安装包对所述应用进行安装,并将所述编译文件进行存储,所述编译文件用于所述终端设备运行所述热点代码时直接运行所述编译文件。
16.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-7任一项所述的方法。
17.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求8-12任一项所述的方法。
18.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法、或者执行如权利要求8-12任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911285858.6A CN112988169A (zh) | 2019-12-13 | 2019-12-13 | 应用安装方法、装置、终端设备、服务器及存储介质 |
PCT/CN2020/133391 WO2021115177A1 (zh) | 2019-12-13 | 2020-12-02 | 应用安装方法、装置、终端设备、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911285858.6A CN112988169A (zh) | 2019-12-13 | 2019-12-13 | 应用安装方法、装置、终端设备、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988169A true CN112988169A (zh) | 2021-06-18 |
Family
ID=76329515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911285858.6A Pending CN112988169A (zh) | 2019-12-13 | 2019-12-13 | 应用安装方法、装置、终端设备、服务器及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112988169A (zh) |
WO (1) | WO2021115177A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114157656A (zh) * | 2021-11-29 | 2022-03-08 | 广东明创软件科技有限公司 | 应用程序的下载方法、装置、服务器以及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377378A (zh) * | 2021-07-02 | 2021-09-10 | 北京百度网讯科技有限公司 | 用于小程序的处理方法、装置、设备及存储介质 |
CN118051239A (zh) * | 2022-11-17 | 2024-05-17 | 蔚来移动科技有限公司 | 应用程序的配置文件获取及应用程序的安装方法 |
CN115658184B (zh) * | 2022-12-26 | 2023-03-21 | 北京海誉动想科技股份有限公司 | 云应用快速启动的方法、装置、存储介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108292209A (zh) * | 2016-01-20 | 2018-07-17 | 谷歌有限责任公司 | 选择性地提供缓存和当前编译的应用的方法和装置 |
CN109960507A (zh) * | 2017-12-14 | 2019-07-02 | 广东欧珀移动通信有限公司 | 编译优化方法、装置、存储介质、智能终端及服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182626A1 (en) * | 2002-03-22 | 2003-09-25 | Eran Davidov | On-demand creation of MIDlets |
CN106294171B (zh) * | 2016-08-17 | 2019-02-26 | 北京奇虎科技有限公司 | 产品自动部署的测试系统、方法和装置 |
-
2019
- 2019-12-13 CN CN201911285858.6A patent/CN112988169A/zh active Pending
-
2020
- 2020-12-02 WO PCT/CN2020/133391 patent/WO2021115177A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108292209A (zh) * | 2016-01-20 | 2018-07-17 | 谷歌有限责任公司 | 选择性地提供缓存和当前编译的应用的方法和装置 |
CN109960507A (zh) * | 2017-12-14 | 2019-07-02 | 广东欧珀移动通信有限公司 | 编译优化方法、装置、存储介质、智能终端及服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114157656A (zh) * | 2021-11-29 | 2022-03-08 | 广东明创软件科技有限公司 | 应用程序的下载方法、装置、服务器以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021115177A1 (zh) | 2021-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078318B (zh) | 配置文件的处理方法、装置、系统及存储介质 | |
CN112988169A (zh) | 应用安装方法、装置、终端设备、服务器及存储介质 | |
US8719810B2 (en) | Program upgrade system and method for over the air-capable mobile terminal | |
CN101576828B (zh) | 软件版本升级方法及装置、服务器 | |
CN111427596B (zh) | 一种软件升级的方法、装置及终端设备 | |
CN104375849A (zh) | 加载内核的方法及装置 | |
KR101541112B1 (ko) | Fota 시스템 및 그 실행 방법 | |
CN112631622A (zh) | 应用安装方法、装置、服务器及计算机可读介质 | |
CN104216719A (zh) | 一种android系统的升级方法和装置 | |
CN110532016B (zh) | 版本管理方法、版本更新方法和版本管理系统 | |
WO2021135947A1 (zh) | 热点代码处理方法、装置、电子设备及存储介质 | |
CN116643778B (zh) | 一种应用程序优化方法及电子设备 | |
CN113434230A (zh) | H5页面的跳转控制方法、装置、存储介质及电子装置 | |
CN102708076A (zh) | 驱动程序填隙 | |
CN112162795A (zh) | 一种插件启动方法、装置、计算机设备和存储介质 | |
CN112748949A (zh) | 一种操作系统的软件包管理方法、装置、设备及存储介质 | |
CN111090442B (zh) | 一种应用更新方法、装置和存储介质 | |
CN112559088A (zh) | 配置文件的优化方法、装置、服务器以及存储介质 | |
WO2021115178A1 (zh) | 应用程序预编译的方法、装置、服务器及存储介质 | |
CN113094064A (zh) | 网关软件模块升级方法、装置、设备及存储介质 | |
CN113031955A (zh) | 应用程序预编译的方法、装置以及电子设备 | |
CN113010172B (zh) | 配置文件的处理方法、装置、系统及存储介质 | |
CN112540768A (zh) | 文件处理方法、装置、服务器、电子设备及存储介质 | |
CN114721709A (zh) | 程序包生成方法、装置、存储介质及计算机设备 | |
CN109298880B (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 |