CN115658184B - 云应用快速启动的方法、装置、存储介质及电子设备 - Google Patents

云应用快速启动的方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN115658184B
CN115658184B CN202211670910.1A CN202211670910A CN115658184B CN 115658184 B CN115658184 B CN 115658184B CN 202211670910 A CN202211670910 A CN 202211670910A CN 115658184 B CN115658184 B CN 115658184B
Authority
CN
China
Prior art keywords
executable file
file
cloud application
executable
class loader
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
Application number
CN202211670910.1A
Other languages
English (en)
Other versions
CN115658184A (zh
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.)
Anhui Haima Cloud Technology Co ltd
Original Assignee
Beijing Haiyudongxiang 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 Haiyudongxiang Technology Co ltd filed Critical Beijing Haiyudongxiang Technology Co ltd
Priority to CN202211670910.1A priority Critical patent/CN115658184B/zh
Publication of CN115658184A publication Critical patent/CN115658184A/zh
Application granted granted Critical
Publication of CN115658184B publication Critical patent/CN115658184B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请提供了一种云应用快速启动的方法、装置、存储介质及电子设备,该方法可以在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向类加载器发送第一通知消息,指示加载完成,上述方案在第一可执行文件被加载到内存后即可启动云应用,无需等全部可执行文件都加载完成,有效提升了云应用的启动速度。此外,本申请还可以通过类加载器反扁平化处理第二可执行文件,并将处理后的第二可执行文件加载到内存中,以提升云应用的启动速度。具体的,第二可执行文件为优化后的dex2oat编译过程生成的和系统无关的elf文件,由于生成的elf文件与系统无关,因而兼容性强,同时可以有效减少dex2oat编译过程的处理时间,提升云应用的启动速度。

Description

云应用快速启动的方法、装置、存储介质及电子设备
技术领域
本申请涉及云计算技术领域,具体涉及一种云应用快速启动的方法、装置、存储介质及电子设备。
背景技术
随着科技的发展,云应用得到广泛应用。通过将云应用在云端服务器上进行安装启动,使得用户终端只需发送简单的操作指令至云端服务器,就可以通过获得云端服务器的推流画面来享受相关的云应用服务。
为了最大限度地利用云端服务器的实例资源,云应用在实例上通常是实时安装启动的,即实例资源在给不同用户终端提供服务时,其上安装的云应用也往往不同,为了满足不同用户终端的服务需求,实现云应用的快速安装启动就显得尤为重要。
目前很多应用的安装包都比较大,实例的安卓Android对安装包apk中dex文件(dex文件是Android平台上可执行文件的一种文件类型)的数量是有限制的,一般情况下,应用apk会使用Google的multiDex技术突破这一限制。以某一社交软件为例,其安装包约为400MB,拆分成30个dex文件。对于正常的安装流程,在安装的时候会做dex2oat(英文全称是dalvik excutable file to optimized art file,它是一个对 android系统下的dex文件进行编译优化的程序)的工作,该动作会将dex文件的部分字节码提前转化为虚拟机可以执行运行的机器码,提高运行效率。但该工作非常耗时,正常安装一个该社交软件耗时会在1分钟以上,这在云应用方案中是不可接受的。所以在安装云应用的过程中会将dex2oat过程删除掉,但删除掉dex2oat的后果是云应用启动耗时变长。
有鉴于此,如何提供一种方案,以提升云应用的启动速度,成为亟待解决的技术问题。
发明内容
鉴于上述问题,本申请提供了一种云应用快速启动的方法、装置、存储介质及电子设备,以提升云应用的启动速度。
第一方面,本申请实施例提供了一种云应用快速启动的方法,适用于云端服务器,所述方法包括以下步骤:
获取配置信息,在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向所述类加载器发送第一通知消息,其中,所述配置信息包括所述第一可执行文件的信息,所述第一可执行文件为云应用启动时使用的第一类文件所属的可执行文件,所述第一通知消息用于指示可执行文件加载完成;和/或
在类加载器加载可执行文件时,向所述类加载器发送第二通知消息,以使所述类加载器反扁平化处理第二可执行文件,并将处理后的第二可执行文件加载到内存中,其中,所述第二通知消息用于指示所述第二可执行文件合法,所述第二可执行文件为云应用对应的安装包安装时经优化后的dex2oat编译过程生成,所述优化后的dex2oat编译过程生成和系统无关的elf文件。
第二方面,本申请实施例还提供了一种云应用快速启动的装置,适用于云端服务器,包括:
第一加载模块,用于获取配置信息,在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向所述类加载器发送第一通知消息,其中,所述配置信息包括所述第一可执行文件的信息,所述第一可执行文件为云应用启动时使用的第一类文件所属的可执行文件,所述第一通知消息用于指示可执行文件加载完成;和/或
发送模块,用于在类加载器加载可执行文件时,向所述类加载器发送第二通知消息,以使所述类加载器反扁平化处理第二可执行文件,并将处理后的第二可执行文件加载到内存中,其中,所述第二通知消息用于指示所述第二可执行文件合法,所述第二可执行文件为云应用对应的安装包安装时经优化后的dex2oat编译过程生成,所述优化后的dex2oat编译过程生成和系统无关的elf文件。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的云应用快速启动的方法的步骤。
第四方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述的云应用快速启动的方法的步骤。
区别于现有技术,本申请实施例提供的云应用快速启动的方法、装置、存储介质及电子设备,提供了两种加载优化方案:第一种方案在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向所述类加载器发送第一通知消息,指示可执行文件加载完成,使得在第一可执行文件加载到内存后即可进行云应用启动,不需要类加载器逐个串行加载可执行文件到内存,并在全部可执行文件加载完成后才启动云应用,有效提升了云应用的启动速度。第二种方案在类加载器加载可执行文件时,向所述类加载器发送第二通知消息,指示第二可执行文件合法,这种情况下类加载器会反扁平化处理第二可执行文件,并将处理后的第二可执行文件加载到内存中,相较于类加载器逐个加载可执行文件到内存的串行处理方式,能够极大提升可执行文件的加载效率,因而有效提升了云应用的启动速度。
上述发明内容相关记载仅是本申请技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本申请的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本申请的上述目的及其它目的、特征和优点能够更易于理解,以下结合本申请的具体实施方式及附图进行说明。
附图说明
附图仅用于示出本申请具体实施方式以及其他相关内容的原理、实现方式、应用、特点以及效果等,并不能认为是对本申请的限制。
在说明书附图中:
图1为本申请第一示例性实施例所述的云应用快速启动的方法的流程图;
图2为本申请第二示例性实施例所述的云应用快速启动的方法的流程图;
图3为本申请第一示例性实施例涉及的云应用快速启动的装置的模块示意图;
图4为本申请第二示例性实施例涉及的云应用快速启动的装置的模块示意图;
图5为本申请一示例性实施例涉及的电子设备的模块示意图。
具体实施方式
为详细说明本申请可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本申请中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
除非另有定义,本文所使用的技术术语的含义与本申请所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本申请。
在本申请的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如A和/或B,表示:存在A,存在B,以及同时存在A和B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。
在本申请中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实例的数量、主次或顺序等关系。
在没有更多限制的情况下,在本申请中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的开放式表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
与《审查指南》中的理解相同,在本申请中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本申请实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
第一方面,请参阅图1,为本申请第一示例性实施例所述的云应用快速启动的方法的流程图。所述方法适用于云端服务器,包括以下步骤:
首先进入步骤S101获取配置信息,所述配置信息包括所述第一可执行文件的信息。
而后进入步骤S102在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向所述类加载器发送第一通知消息,所述第一通知消息用于指示可执行文件加载完成。
在本实施例中,所述第一可执行文件为云应用启动时使用的第一类文件所属的可执行文件,所述第一类文件为云应用启动常用的至少一个类文件。所述第一可执行文件的信息可以是所述第一可执行文件的标识,优选的,当第一可执行文件的数量为多个时,所述配置信息中还包括各第一可执行文件的加载顺序,以使得在类加载器加载可执行文件时,云端服务器能够根据所述加载顺序将各个第一可执行文件加载到内存中。具体地,可以先通过工具(工具使用广度优先算法进行索引)将云应用启动最常用的类文件找到,并索引出这些类所属的dex文件中,将这些dex文件的信息配置到服务器中。在云应用运行前,下发配置给运行云应用的实例(也即云端服务器),则实例创建类加载器加载dex文件的时候,先将这些最先用到的dex文件加载到内存中,并告诉类加载器dex文件已完成加载。
通常,云应用对应的安装包中存在有多个可执行文件,每一可执行文件包括至少一个类文件,需要通过类加载器将全部可执行文件都加载到内存中后,云应用才可以完成安装启动,耗时漫长。而本实施例的方案通过获取配置信息,在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向所述类加载器发送第一通知消息,指示可执行文件加载完成。类加载器在收到所述第一通知消息后,即可完成云应用的启动,由于不需要等全部可执行文件都加载完成,只需加载一部分可执行文件到内存中,极大提升了云应用的启动速度。
在前述方法实施例的基础上,在所述将第一可执行文件加载到内存中之后,还包括以下步骤:将第三可执行文件加载到内存中,其中,所述第三可执行文件包括所述云应用对应的安装包中除所述第一可执行文件以外的其他可执行文件中的至少一个可执行文件。
在本实施例中,所述云应用对应的安装包中既包含第一可执行文件,也包含第三可执行文件。对于第一可执行文件,其在云应用启动之前已加载完成,而对于第三可执行文件,可以在云应用启动之后,放在背景进程中继续进行加载,直至所有的第三可执行文件都被加载到内存中,以满足后续用户对云应用中各项功能的服务需求。
以可执行文件为dex文件,类文件为class文件、类加载器为ClassLoader为例,假设某一云应用启动时常用的函数为入口函数,入口函数需要调用A.class、B.class、C.class这三个class文件,而这三个class文件又分别在classA.dex、classB.dex、classC.dex这三个dex文件中,则当ClassLoader需要加载dex文件时,云端服务器会先将classA.dex、classB.dex、classC.dex这三个dex文件加载到内存中,并告知ClassLoader当前dex文件已加载完成,即已完成云应用启动的前期准备工作,而后可以启动云应用。在云应用启动之后,云端服务器可以在背景进程中继续加载当前云应用对应的安装包中除了上述3个dex文件以外的其他dex文件,以满足后续用户对云应用的服务需求,由于在云应用启动过程中,只加载了classA.dex、classB.dex、classC.dex这三个dex文件到内存,相较于全部dex文件都被逐一加载到内存中后才启动的方式,能够有效提升云应用的启动速度。
在前述方法实施例的基础上,所述配置信息通过广度遍历构造应用主要组件使用的可执行文件生成。应用主要组件包括:main activity组件、application组件以及ContentProvider组件。构造应用主要组件时使用的可执行文件往往包含对应云应用启动时最常用的类文件,通过广度遍历构造应用主要组件使用的可执行文件来生成配置信息,使得配置信息中包含的第一可执行文件的信息即为最常用的类文件所属的可执行文件的信息,能够在云应用启动后满足用户对云应用的基本服务需求。
请参阅图2,为本申请第二示例性实施例所述的云应用快速启动的方法的流程图,所述方法包括以下步骤:
进入步骤S201在类加载器加载可执行文件时,向所述类加载器发送第二通知消息,以使所述类加载器反扁平化处理第二可执行文件,将处理后的第二可执行文件加载到内存中;
在本实施例中,所述第二通知消息用于指示所述第二可执行文件合法,所述第二可执行文件为云应用对应的安装包安装时经优化后的dex2oat编译过程生成,所述优化后的dex2oat编译过程生成和系统无关的elf(英文全称是Executable and Linking Format,是一种对象文件的格式)文件。
以第二可执行文件为elf文件为例,正常的Android应用的安装会经历一个dex2oat的过程,该过程会将dex字节码编译成本地机器码或者做其它一些编译优化方面的工作,生成oat文件。但这个优化工作非常耗时,常常是分钟级别的,这对云应用来说是不可接受的,所以在安装云应用的过程中会将这个步骤删除掉,但删除掉的后果将会是导致应用启动时间变长,特别是对一些使用multiDex的应用。而云应用既需要能够即时安装,又需要提供和本地手机相似或更好的体验,如果要做到这一步,就得通过对dex的其它优化完成快速启动。因此,在类加载器加载之前需要对dex2oat编译过程进行优化,只生成和系统无关的elf文件,这些文件和平台以及其它代码无关,并可以将这个elf文件事先放置到云端服务器上,云应用的类加载器ClassLoader装载可执行文件的时候,会首先检查oat文件是否存在以及是否合法,此时告诉ClassLoader该elf文件符合自定义规范,是合法的elf,让ClassLoader反扁平化unflatten elf文件并加载到内存中,而不是逐个加载dex文件。
当经过优化后的dex2oat编译过程生成和系统无关的elf文件后,在类加载器加载可执行文件时,可以通知类加载器该elf文件是合法的,以通过校验进而对elf文件进行反扁平化处理,得到能够被云端服务器上的虚拟实例维护的类文件的信息。
由于第二可执行文件是云应用对应的安装包在安装时经优化后的dex2oat编译过程生成的,所述优化后的dex2oat编译过程只生成和系统无关的elf文件,相较于现有的dex2oat的处理方式,能够缩短dex2oat编译过程的时间。另外,现有的dex2oat的处理方式生成的oat文件会和系统中的核心库文件相关,当系统的核心库发生变化时会出现问题,而本方案中由于生成的elf文件与系统无关,因而当系统的核心库发生变化时,生成的elf文件依然可以使用,从而提升了elf文件的兼容性。
在前述方法实施例的基础上,所述向所述类加载器发送第二通知消息之前,还包括:提取所述第二可执行文件。
简言之,可以先通过优化后的dex2oat编译过程生成和系统无关的elf文件,elf文件为机器码文件,类加载器在校验合法(通过发送第二通知消息给类加载器,告知其当前elf文件合法)后,可以直接反扁平化处理第二可执行文件,并将反扁平化处理后的第二可执行文件加载到内存中,而无需再逐个对可执行文件进行加载,有效提升了处理效率。优化后的dex2oat编译过程可以预先执行,即可以预先将经过优化后的dex2oat编译过程得到的elf文件存储于云端服务器上,在需要启动云应用时随时获取。
需要说明的是,Android的apk文件运行是要使用java的ClassLoader的,ClassLoader在加载时会先判断是否存在oat文件(由dex2oat过程生成),如果存在则会将oat文件加载到内存中去,生成oat文件的过程非常耗时;而如果不存在oat文件,则会将dex文件一个个加载到内存中去,如果dex文件过多,其加载过程将非常耗时,长达数秒之久(和硬件的CPU和内存等相关)。而云应用方案中删除掉了dex2oat过程,因此ClassLoader加载可执行文件时因为不存在oat文件,会一个一个加载dex文件,从而导致云应用启动过程耗时较长,这会给用户带来不好的体验。本方案为了解决云应用启动过程耗时较长的问题,提供了图1和图2示出的方案。
第二方面,如图3所示,本申请实施例还提供了一种云应用快速启动的装置300,适用于云端服务器,包括:
第一加载模块301,用于获取配置信息,在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向所述类加载器发送第一通知消息,其中,所述配置信息包括所述第一可执行文件的信息,所述第一可执行文件为云应用启动时使用的第一类文件所属的可执行文件,所述第一通知消息用于指示可执行文件加载完成。
在前述装置实施例的基础上,所述装置还包括:
第二加载模块,用于在所述第一加载模块将第一可执行文件加载到内存中之后,将第三可执行文件加载到内存中,其中,所述第三可执行文件包括所述云应用对应的安装包中除所述第一可执行文件以外的其他可执行文件中的至少一个可执行文件。
如图4所示,为本申请第二示例性实施例涉及的云应用快速启动的装置的模块示意图,所述云应用快速启动的装置400适用于云端服务器,包括:
发送模块401,用于在类加载器加载可执行文件时,向所述类加载器发送第二通知消息,以使所述类加载器反扁平化处理第二可执行文件,并将处理后的第二可执行文件加载到内存中,其中,所述第二通知消息用于指示所述第二可执行文件合法,所述第二可执行文件为云应用对应的安装包安装时经优化后的dex2oat编译过程生成,所述优化后的dex2oat编译过程生成和系统无关的elf文件。
在前述装置实施例的基础上,所述装置还包括:
提取模块,用于在所述发送模块向所述类加载器发送第二通知消息之前,提取所述第二可执行文件。
本申请实施例提供的云应用快速启动的装置,其实现过程与本申请实施例提供的云应用快速启动的方法一致,所能达到的效果也与本申请实施例提供的云应用快速启动的方法相同,在此不再赘述。
第三方面,对应于上述云应用快速启动的方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述云应用快速启动的方法的步骤。
第四方面,如图5所示,本申请实施例还提供了一种电子设备500,包括:处理器501、存储器502和总线503,所述存储器502存储有所述处理器501可执行的机器可读指令,当电子设备运行时,所述处理器501与所述存储器502之间通过总线503通信,所述处理器501执行所述机器可读指令,以执行如上述云应用快速启动的方法的步骤。
具体地,上述存储器602和处理器601可以为通用的存储器和处理器,这里不做具体限定,当处理器601运行存储器602存储的计算机程序时,能够执行上述云应用快速启动的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实例实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实例的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后需要说明的是,尽管在本申请的说明书文字及附图中已经对上述各实施例进行了描述,但并不能因此限制本申请的专利保护范围。凡是基于本申请的实质理念,利用本申请说明书文字及附图记载的内容所作的等效结构或等效流程替换或修改产生的技术方案,以及直接或间接地将以上实施例的技术方案实施于其他相关的技术领域等,均包括在本申请的专利保护范围之内。

Claims (12)

1.一种云应用快速启动的方法,适用于云端服务器,其特征在于,所述方法包括以下步骤:
在类加载器加载可执行文件时,检查oat文件是否存在以及是否合法,若合法则向所述类加载器发送第二通知消息,以使所述类加载器反扁平化处理第二可执行文件,并将处理后的第二可执行文件加载到内存中,其中,所述第二通知消息用于指示所述第二可执行文件合法,所述合法是指符合自定义规范,所述第二可执行文件为云应用对应的安装包安装时经优化后的dex2oat编译过程生成,所述优化后的dex2oat编译过程生成和系统无关的elf格式文件,所述elf格式文件为机器码文件。
2.如权利要求1所述的云应用快速启动的方法,其特征在于,所述方法包括以下步骤:
获取配置信息,在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向所述类加载器发送第一通知消息,其中,所述配置信息包括所述第一可执行文件的信息,所述第一可执行文件的信息包括所述第一可执行文件的标识,所述第一可执行文件为云应用启动时使用的第一类文件所属的可执行文件,所述第一通知消息用于指示可执行文件加载完成。
3.如权利要求2所述的云应用快速启动的方法,其特征在于,在所述将第一可执行文件加载到内存中之后,还包括以下步骤:
将第三可执行文件加载到内存中,其中,所述第三可执行文件包括所述云应用对应的安装包中除所述第一可执行文件以外的其他可执行文件中的至少一个可执行文件。
4.如权利要求2或3所述的云应用快速启动的方法,其特征在于,所述配置信息通过广度遍历构造应用主要组件使用的可执行文件生成。
5.如权利要求1所述的云应用快速启动的方法,其特征在于,在所述向所述类加载器发送第二通知消息之前,还包括:
提取所述第二可执行文件。
6.一种云应用快速启动的装置,适用于云端服务器,其特征在于,包括:
发送模块,用于在类加载器加载可执行文件时,检查oat文件是否存在以及是否合法,若合法则向所述类加载器发送第二通知消息,以使所述类加载器反扁平化处理第二可执行文件,并将处理后的第二可执行文件加载到内存中,其中,所述第二通知消息用于指示所述第二可执行文件合法,所述合法是指符合自定义规范,所述第二可执行文件为云应用对应的安装包安装时经优化后的dex2oat编译过程生成,所述优化后的dex2oat编译过程生成和系统无关的elf格式文件,所述elf格式文件为机器码文件。
7.如权利要求6所述的云应用快速启动的装置,其特征在于,还包括:
第一加载模块,用于获取配置信息,在类加载器加载可执行文件时,将第一可执行文件加载到内存中,并向所述类加载器发送第一通知消息,其中,所述配置信息包括所述第一可执行文件的信息,所述第一可执行文件的信息包括所述第一可执行文件的标识,所述第一可执行文件为云应用启动时使用的第一类文件所属的可执行文件,所述第一通知消息用于指示可执行文件加载完成。
8.如权利要求7所述的云应用快速启动的装置,其特征在于,还包括:
第二加载模块,用于在所述第一加载模块将第一可执行文件加载到内存中之后,将第三可执行文件加载到内存中,其中,所述第三可执行文件包括所述云应用对应的安装包中除所述第一可执行文件以外的其他可执行文件中的至少一个可执行文件。
9.如权利要求7或8所述的云应用快速启动的装置,其特征在于,所述配置信息通过广度遍历构造应用主要组件使用的可执行文件生成。
10.如权利要求6所述的云应用快速启动的装置,其特征在于,还包括:
提取模块,用于在所述发送模块向所述类加载器发送第二通知消息之前,提取所述第二可执行文件。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至5任一项所述的云应用快速启动的方法的步骤。
12.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至5任一项所述的云应用快速启动的方法的步骤。
CN202211670910.1A 2022-12-26 2022-12-26 云应用快速启动的方法、装置、存储介质及电子设备 Active CN115658184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211670910.1A CN115658184B (zh) 2022-12-26 2022-12-26 云应用快速启动的方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211670910.1A CN115658184B (zh) 2022-12-26 2022-12-26 云应用快速启动的方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN115658184A CN115658184A (zh) 2023-01-31
CN115658184B true CN115658184B (zh) 2023-03-21

Family

ID=85023139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211670910.1A Active CN115658184B (zh) 2022-12-26 2022-12-26 云应用快速启动的方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN115658184B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108132809A (zh) * 2017-11-29 2018-06-08 五八有限公司 加载的方法、装置、终端及存储介质
CN112104622A (zh) * 2020-08-31 2020-12-18 北京爱奇艺科技有限公司 云应用启动方法、服务器、云设备及云端通信系统
WO2021196597A1 (zh) * 2020-04-02 2021-10-07 深圳创维-Rgb电子有限公司 业务插件加载实现方法、装置和终端设备
CN113867977A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 设备控制方法和设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681749B (zh) * 2015-11-11 2021-01-05 腾讯科技(深圳)有限公司 基于安卓平台的局部代码补丁更新方法及装置
CN108491216B (zh) * 2018-03-05 2021-07-13 北京指掌易科技有限公司 一种Android系统无感知应用安装升级的方法
CN112527403B (zh) * 2019-09-19 2022-07-05 荣耀终端有限公司 一种应用启动方法及电子设备
US10963275B1 (en) * 2019-10-31 2021-03-30 Red Hat, Inc. Implementing dependency injection via direct bytecode generation
CN112988169A (zh) * 2019-12-13 2021-06-18 Oppo广东移动通信有限公司 应用安装方法、装置、终端设备、服务器及存储介质
CN111240766B (zh) * 2020-01-22 2023-12-29 抖音视界有限公司 应用启动方法、装置、电子设备及计算机可读存储介质
US20220207151A1 (en) * 2020-12-31 2022-06-30 Virsec Systems, Inc. Application Aware Software Asset Inventory
CN114547558B (zh) * 2022-02-24 2023-05-05 科东(广州)软件科技有限公司 授权方法、授权控制方法及装置、设备和介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108132809A (zh) * 2017-11-29 2018-06-08 五八有限公司 加载的方法、装置、终端及存储介质
WO2021196597A1 (zh) * 2020-04-02 2021-10-07 深圳创维-Rgb电子有限公司 业务插件加载实现方法、装置和终端设备
CN113867977A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 设备控制方法和设备
CN112104622A (zh) * 2020-08-31 2020-12-18 北京爱奇艺科技有限公司 云应用启动方法、服务器、云设备及云端通信系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
樊如霞 ; 房鼎益 ; 汤战勇 ; 陈晓江 ; 刘方圆 ; 李政桥 ; .一种代码碎片化的Android应用程序防二次打包方法.2016,(第09期),全文. *

Also Published As

Publication number Publication date
CN115658184A (zh) 2023-01-31

Similar Documents

Publication Publication Date Title
CN108027741B (zh) 基于补丁升级的文件处理方法、装置、终端以及存储介质
CN112861057B (zh) 基于小程序的页面渲染方法、装置、设备及存储介质
EP2966566B1 (en) Driver program loading method and embedded device
US10635812B2 (en) Method and apparatus for identifying malicious software
CN111625289B (zh) 应用程序快速启动方法、装置和电子设备
CN108647032B (zh) 应用加载方法及装置、计算机装置和计算机可读存储介质
CN110795162B (zh) 生成容器镜像文件的方法和装置
CN113138768B (zh) 应用程序包生成方法、装置、电子设备以及可读存储介质
CN108595178B (zh) 一种基于hook的数据采集方法、装置及设备
CN107423093B (zh) 控制方法及装置、计算机装置和计算机可读存储介质
CN115658184B (zh) 云应用快速启动的方法、装置、存储介质及电子设备
CN111552524B (zh) 一种插件加载方法、装置及计算机可读存储介质
CN115658185B (zh) 一种云应用快速启动的方法、装置、存储介质及电子设备
CN111090442A (zh) 一种应用更新方法、装置和存储介质
CN110688320A (zh) 全局变量的检测方法、装置及终端设备
CN114911541B (zh) 配置信息的处理方法、装置、电子设备及存储介质
CN113791824B (zh) 一种终端设备的外设驱动加载方法、系统及介质
CN114706586A (zh) 代码编译、代码运行方法、装置、计算机设备及存储介质
CN113076084A (zh) 资源文件处理方法、装置、设备及存储介质
CN112035178A (zh) 一种应用启动方法、装置和存储介质
CN111522536A (zh) 一种编程语言调用的方法及其相关设备
CN114756382B (zh) 一种内存页面合并的优化方法、系统及服务器
CN114371852B (zh) 一种编译方法及装置
CN111694730B (zh) 一种消除错误引用控件资源的方法及装置
CN112612754A (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 230031 Room 672, 6/F, Building A3A4, Zhong'an Chuanggu Science Park, No. 900, Wangjiang West Road, High-tech Zone, Hefei, Anhui

Patentee after: Anhui Haima Cloud Technology Co.,Ltd.

Address before: 100015 rooms 304 and 305, 3 / F, 201 / F, yard 10, Jiuxianqiao North Road, Chaoyang District, Beijing

Patentee before: BEIJING HAIYUDONGXIANG TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address