CN114398102A - 一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质 - Google Patents
一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114398102A CN114398102A CN202210053752.9A CN202210053752A CN114398102A CN 114398102 A CN114398102 A CN 114398102A CN 202210053752 A CN202210053752 A CN 202210053752A CN 114398102 A CN114398102 A CN 114398102A
- Authority
- CN
- China
- Prior art keywords
- registry
- target
- application program
- target application
- functional module
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004806 packaging method and process Methods 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质。
背景技术
目前,应用程序在电子设备中被点击时,电子设备需要获取被点击应用程序的各功能模块的注册信息,并将注册信息整个为一个注册表,最终在各注册信息整合为一个注册表后,该应用程序才可以运行。
对于目前的应用程序开启时,需要该应用程序的功能模块的注册表信息的获取和合成,造成开启应用程序时间较慢。
发明内容
本发明的目的在于提供一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质,能够提升应用程序的启动性能。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种应用程序包生成方法,应用于编译服务器,所述编译服务器包括目标应用程序对应的多个功能模块,所述方法包括:
在目标应用程序的源码编译期间,读取各个功能模块的注册表信息;
将各所述注册表信息汇总为目标注册表;
依据各所述功能模块打包生成目标应用程序包时,将各所述功能模块的注册表信息替换为目标注册表;
将所述目标注册表注册至所述目标应用程序包中,以使得接收所述目标应用程序包的电子设备对所述目标应用程序启动时,直接完成所述目标应用程序的启动。
在可选的实施方式中,所述在目标应用程序的源码编译期间,读取各个功能模块的注册表信息的步骤,包括:
在目标应用程序的源码编译期间,基于字节码插桩技术,插入第一代码;
基于所述第一代码,读取各个功能模块的注册表信息;
所述将各所述注册表信息汇总为目标注册表的步骤,包括:
基于所述第一代码,将各所述注册表信息汇总为目标注册表。
在可选的实施方式中,所述在目标应用程序的源码编译期间,基于字节码插桩技术,插入第一代码的步骤,包括:
将所述目标应用程序的源码java文件转换为各功能模块的注册表的class文件;
在将所述class文件转换为dex文件期间,插入第一代码。
在可选的实施方式中,所述编译服务器还包括ASM工具,所述依据各所述功能模块打包生成目标应用程序包时,将各所述功能模块的注册表信息替换为目标注册表的步骤,包括:
通过所述ASM工具将各个功能模块的注册表信息替换为目标注册表。
在可选的实施方式中,所述方法还包括:
所述编译服务器将所述目标应用程序包发送至电子设备,其中,所述电子设备在对所述目标应用程序启动时,将所述目标注册表初始化。
第二方面,本申请实施例提供了一种应用程序包生成装置,所述装置包括:
读取模块,用于在目标应用程序的源码编译期间,读取各个功能模块的注册表信息;
汇总模块,用于将各所述注册表信息汇总为目标注册表;
打包模块,用于依据各所述功能模块打包生成目标应用程序包时,将各所述功能模块的注册表信息替换为目标注册表;
发送模块,用于将所述目标注册表注册至所述目标应用程序包中,以使得接收所述目标应用程序包的电子设备对所述目标应用程序启动时,直接完成所述目标应用程序的启动。
第三方面,本申请实施例提供了一种编译服务器,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述应用程序包生成方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述应用程序包生成方法的步骤。
本申请具有以下有益效果:
本申请通过在目标应用程序的源码编译期间,读取各个功能模块的注册表信息,将各注册表信息汇总为目标注册表,依据各功能模块打包生成目标应用程序包时,将各功能模块的注册表信息替换为目标注册表,将目标注册表注册至目标应用程序包中,以使得接收目标应用程序包的电子设备对目标应用程序启动时,直接完成目标应用程序的启动。能够在应用程序运行之前就将注册表生成出来,从而避免运行期的反射生成,从而优化应用程序的启动速度,提升性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的编译服务器的方框示意图;
图2为本发明实施例提供的一种应用程序包生成方法的步骤流程图之一;
图3为本发明实施例提供的一种应用程序包生成方法的步骤流程图之二;
图4为本发明实施例提供的一种应用程序包生成方法的步骤流程图之三;
图5为本发明实施例提供的一种应用程序包生成装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
经过发明人大量研究发现,在应用程序在电子设备中被点击时,电子设备需要获取被点击应用程序的各功能模块的注册信息,并将注册信息整个为一个注册表,最终在各注册信息整合为一个注册表后,该应用程序才可以运行。
对于目前的应用程序开启时,需要该应用程序的功能模块的注册表信息的获取和合成,造成开启应用程序时间较慢。
有鉴于对上述问题的发现,本实施例提供了一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质,能够通能够在应用程序运行之前就将注册表生成出来,从而避免运行期的反射生成,从而优化应用程序的启动速度,提升性能,下面对本实施例提供的方案进行详细阐述。
本实施例提供一种可以对应用程序包生成的编译服务器。
请参照图1,图1是本申请实施例提供的编译服务器100的结构示意图。所述编译服务器100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
所述编译服务器100包括应用程序包生成装置110、存储器120及处理器130。
所述存储器120及处理器130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述应用程序包生成装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述编译服务器100的操作系统(operating system,OS)中的软件功能模块。所述处理器130用于执行所述存储器120中存储的可执行模块,例如所述基于应用程序包生成装置110所包括的软件功能模块及计算机程序等。
其中,所述存储器120可以是,但不限于,随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。
请参照图2,图2为应用于图1的编译服务器100的一种应用程序包生成方法的流程图,该方法应用于编译服务器,编译服务器包括目标应用程序对应的多个功能模块,以下将方法包括各个步骤进行详细阐述。
步骤201:在目标应用程序的源码编译期间,读取各个功能模块的注册表信息。
步骤202:将各注册表信息汇总为目标注册表。
步骤203:依据各功能模块打包生成目标应用程序包时,将各功能模块的注册表信息替换为目标注册表。
步骤204:将目标注册表注册至目标应用程序包中,以使得接收目标应用程序包的电子设备对目标应用程序启动时,直接完成目标应用程序的启动。
目标应用程序包的生成需要将目标应用程序的源码进行编译,基于编译的结果进行打包,生成应用程序对应的应用程序包。
在目标应用程序的源码编译期间,即未生成目标应用程序包之前,编译服务器先获取目标应用程序中各功能模块的注册表信息。
注册表是操作系统中的一个核心数据库,其中存放着各种参数,直接控制着电子设备的启动、硬件驱动程序的装载以及一些应用程序的运行,从而在整个系统中起着核心作用。这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。
将获取的目标应用程序对应的各功能模块的注册表信息整合为一张目标注册表。将多个功能模块的注册表信息,替换为目标注册表,并将目标注册表注册至目标应用程序的目标应用程序包中。
示例性的,目标应用程序对应的各功能模块可以包括:认证模块、可视化模块、分享模块、支付模块等。获取认证模块的注册表信息、可视化模块的注册表信息、分享模块的注册表信息、支付模块的注册表信息,将上述多个注册表信息合成为目标注册表。在生成目标应用程序包时,将目标注册表注册至目标应用程序包中。
编译服务器将目标应用程序包上传至某个存储空间中,或者编译服务器将目标应用程序包发送至电子设备,电子设备可以直接从存储空间下载该目标应用程序包。
电子设备获取该目标应用程序包,并基于目标应用程序包对应的目标应用程序安装在电子设备中,在用户点击该目标应用程序时,无需获取该目标应用程序对应的各功能模块的注册表信息,再将各注册表信息合成一个注册表,直接基于目标应用程序包中的目标注册表启动应用程序即可,提升目标应用程序的启动速度。
本申请通过在目标应用程序的源码编译期间,读取各个功能模块的注册表信息,将各注册表信息汇总为目标注册表,依据各功能模块打包生成目标应用程序包时,将各功能模块的注册表信息替换为目标注册表,将目标注册表注册至目标应用程序包中,以使得接收目标应用程序包的电子设备对目标应用程序启动时,直接完成目标应用程序的启动。能够在应用程序运行之前就将注册表生成出来,从而避免运行期的反射生成,从而优化应用程序的启动速度,提升性能。
为了实现获取各个功能模块的注册表信息,针对上述步骤201,在本申请的另一实施例中,如图3所示,提供了一种应用程序包生成方法,具体包括如下步骤:
步骤201-1:在目标应用程序的源码编译期间,基于字节码插桩技术,插入第一代码。
步骤201-2:基于第一代码,读取各个功能模块的注册表信息。
步骤201-3:基于第一代码,将各注册表信息汇总为目标注册表。
电子设备是不能直接执行.java代码,也不能直接执行.class文件,它只能执行.class文件中存储的指令码。因此class需要通过ClassLoade(BootStrap ClassLoader,类加载器)装载以后才能运行。在ClassLoader装载之前拦截修改class当中的内容,从而让目标应用程序中包含获取各个功能模块的注册表信息,将各个注册表信息汇总为目标注册表。
在目标应用程序的源码编译过程中,目标应用程序包的部分打包过程为:目标应用程序的java源码文件会转化为class文件,再将class文件转化为dex文件,在class文件转换为dex文件过程中,找插入点,在插入点插入获取各功能模块的注册表信息以及将各注册表信息汇总为目标注册表的第一代码。从而基于第一代码对各功能模块的注册表信息修改为目标注册表。
class文件全名称为Java class文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。dex文件是Android系统的可执行文件,包含应用程序的全部操作指令以及运行时数据。当java程序编译成class后,还需要使用dex工具将所有的class文件整合到一个dex文件,目的是其中各个类能够共享数据。
实现在目标应用程序编译期间打包目标注册表,从而提升目标应用程序的启动性能,降低目标应用程序的启动时间。
示例性的,采用javaagent与javassist。javaagent用于拦截ClassLoad装载,javassist用于操作修改class文件。从而基于javaagent与javassist,实现在目标应用程序的源码编译期间,插入第一代码,实现获取目标应用程序的各功能模块的注册表信息以及将各注册表信息汇总为目标注册表。
在另一示例中,基于ASM工具,将各个功能模块的注册表信息替换为目标注册表,ASM工具为java字节码生成和分析的框架,ASM工具通过操作二进制的方式来修改现成的类或者动态生成class文件。
java agent本质上可以理解为一个插件,该插件是一个提供的jar包,该jar包通过JVMTI(JVM Tool Interface)完成加载,最终借助JPLISAgent(Java ProgrammingLanguage Instrumentation Services Agent)完成对目标代码的修改。javassist是一个开源的分析、编辑和创建Java字节码的类库,可以直接编辑和生成Java生成的字节码。
为了实现获取各个功能模块的注册表信息,在本申请的另一实施例中,如图4所示,提供了一种应用程序包生成方法,具体包括如下步骤:
步骤301:在目标应用程序的源码编译期间,读取各个功能模块的注册表信息。
步骤302:将各注册表信息汇总为目标注册表。
步骤303:依据各功能模块打包生成目标应用程序包时,将各功能模块的注册表信息替换为目标注册表。
步骤304:编译服务器将目标应用程序包发送至电子设备,以使在对目标应用程序启动时,对目标注册表初始化。
其中,电子设备在对目标应用程序启动时,将目标注册表初始化。
在电子设备用户启动目标应用程序时,直接通过目标应用程序包中合成的目标注册表进行初始化,即可进行事件的发现和调度,并不需要再次的查找各注册表信息和将各注册表信息合成的操作。
请参照图5,本申请实施例还提供了一种应用于图1所述编译服务器100的应用程序包生成装置110,所述应用程序包生成装置110包括:
读取模块111,用于在目标应用程序的源码编译期间,读取各个功能模块的注册表信息;
汇总模块112,用于将各所述注册表信息汇总为目标注册表;
打包模块113,用于依据各所述功能模块打包生成目标应用程序包时,将各所述功能模块的注册表信息替换为目标注册表;
发送模块114,用于将所述目标注册表注册至所述目标应用程序包中,以使得接收所述目标应用程序包的电子设备对所述目标应用程序启动时,直接完成所述目标应用程序的启动。
可选地,所述读取模块111具体用于:
在目标应用程序的源码编译期间,基于字节码插桩技术,插入第一代码;
基于所述第一代码,读取各个功能模块的注册表信息;
所述汇总模块具体用于:
基于所述第一代码,将各所述注册表信息汇总为目标注册表。
可选地,所述读取模块111还用于:
将所述目标应用程序的源码java文件转换为各功能模块的注册表的class文件;
在将所述class文件转换为dex文件期间,插入第一代码。
可选地,所述打包模块113还用于:
通过所述ASM工具将各个功能模块的注册表信息替换为目标注册表。
可选地,所述发送模块114还用于:
所述编译服务器将所述目标应用程序包发送至电子设备,其中,所述电子设备在对所述目标应用程序启动时,将所述目标注册表初始化。
综上,本申请通过在目标应用程序的源码编译期间,读取各个功能模块的注册表信息,将各注册表信息汇总为目标注册表,依据各功能模块打包生成目标应用程序包时,将各功能模块的注册表信息替换为目标注册表,将目标注册表注册至目标应用程序包中,以使得接收目标应用程序包的电子设备对目标应用程序启动时,直接完成目标应用程序的启动。能够在应用程序运行之前就将注册表生成出来,从而避免运行期的反射生成,从而优化应用程序的启动速度,提升性能。
本申请还提供一种编译服务器100,编译服务器100包括处理器130以及存储器120。存储器120存储有计算机可执行指令,计算机可执行指令被处理器130执行时,实现该应用程序包生成方法。
本申请实施例还提供一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序被处理器130执行时,实现该应用程序包生成方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种应用程序包生成方法,其特征在于,应用于编译服务器,所述编译服务器包括目标应用程序对应的多个功能模块,所述方法包括:
在目标应用程序的源码编译期间,读取各个功能模块的注册表信息;
将各所述注册表信息汇总为目标注册表;
依据各所述功能模块打包生成目标应用程序包时,将各所述功能模块的注册表信息替换为目标注册表;
将所述目标注册表注册至所述目标应用程序包中,以使得接收所述目标应用程序包的电子设备对所述目标应用程序启动时,直接完成所述目标应用程序的启动。
2.根据权利要求1所述的方法,其特征在于,所述在目标应用程序的源码编译期间,读取各个功能模块的注册表信息的步骤,包括:
在目标应用程序的源码编译期间,基于字节码插桩技术,插入第一代码;
基于所述第一代码,读取各个功能模块的注册表信息;
所述将各所述注册表信息汇总为目标注册表的步骤,包括:
基于所述第一代码,将各所述注册表信息汇总为目标注册表。
3.根据权利要求2所述的方法,其特征在于,所述在目标应用程序的源码编译期间,基于字节码插桩技术,插入第一代码的步骤,包括:
将所述目标应用程序的源码java文件转换为各功能模块的注册表的class文件;
在将所述class文件转换为dex文件期间,插入第一代码。
4.根据权利要求3所述的方法,其特征在于,所述编译服务器还包括ASM工具,所述依据各所述功能模块打包生成目标应用程序包时,将各所述功能模块的注册表信息替换为目标注册表的步骤,包括:
通过所述ASM工具将各个功能模块的注册表信息替换为目标注册表。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述编译服务器将所述目标应用程序包发送至电子设备,其中,所述电子设备在对所述目标应用程序启动时,将所述目标注册表初始化。
6.一种应用程序包生成装置,其特征在于,应用于编译服务器,所述编译服务器包括目标应用程序对应的多个功能模块,所述装置包括:
读取模块,用于在目标应用程序的源码编译期间,读取各个功能模块的注册表信息;
汇总模块,用于将各所述注册表信息汇总为目标注册表;
打包模块,用于依据各所述功能模块打包生成目标应用程序包时,将各所述功能模块的注册表信息替换为目标注册表;
发送模块,用于将所述目标注册表注册至所述目标应用程序包中,以使得接收所述目标应用程序包的电子设备对所述目标应用程序启动时,直接完成所述目标应用程序的启动。
7.根据权利要求6所述的装置,其特征在于,所述读取模块具体用于:
在目标应用程序的源码编译期间,基于字节码插桩技术,插入第一代码;
基于所述第一代码,读取各个功能模块的注册表信息;
所述汇总模块具体用于:
基于所述第一代码,将各所述注册表信息汇总为目标注册表。
8.根据权利要求7所述的装置,其特征在于,所述读取模块还用于:
将所述目标应用程序的源码java文件转换为各功能模块的注册表的class文件;
在将所述class文件转换为dex文件期间,插入第一代码。
9.一种编译服务器,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-5任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210053752.9A CN114398102B (zh) | 2022-01-18 | 2022-01-18 | 一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210053752.9A CN114398102B (zh) | 2022-01-18 | 2022-01-18 | 一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114398102A true CN114398102A (zh) | 2022-04-26 |
CN114398102B CN114398102B (zh) | 2023-08-08 |
Family
ID=81230829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210053752.9A Active CN114398102B (zh) | 2022-01-18 | 2022-01-18 | 一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398102B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521271A (zh) * | 2023-05-22 | 2023-08-01 | 广州广电运通信息科技有限公司 | 插件模块管理方法和装置 |
Citations (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765634A (zh) * | 2015-05-06 | 2015-07-08 | 山东中孚信息产业股份有限公司 | 一种Linux系统内核新功能增加方法 |
CN105205000A (zh) * | 2015-10-12 | 2015-12-30 | 用友网络科技股份有限公司 | 定位软件开发中代码受影响范围的方法及系统 |
CN105204861A (zh) * | 2015-09-29 | 2015-12-30 | 上海二三四五网络科技有限公司 | 一种注册表重定向方法及装置 |
CN105306434A (zh) * | 2015-09-11 | 2016-02-03 | 北京金山安全软件有限公司 | 程序文件校验方法及装置、服务器和终端 |
US20160070549A1 (en) * | 2014-09-09 | 2016-03-10 | Google Inc. | Offline shader compilation |
US20160301699A1 (en) * | 2013-11-29 | 2016-10-13 | Huawei Device Co., Ltd | Installation package authorization method and apparatus |
US20170010951A1 (en) * | 2015-07-10 | 2017-01-12 | CA, Inc | Application screen mapping for mobile analytics |
CN107357593A (zh) * | 2017-08-24 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 源代码文件组建方法、装置、电子终端及可读存储介质 |
CN107391218A (zh) * | 2017-07-07 | 2017-11-24 | 北京小米移动软件有限公司 | 编译方法及装置、电子设备和计算机可读存储介质 |
CN107862203A (zh) * | 2017-11-21 | 2018-03-30 | 广东欧珀移动通信有限公司 | 应用程序的控制方法、装置、存储介质及终端 |
US20180136941A1 (en) * | 2016-11-15 | 2018-05-17 | Google Inc. | Bootstrapping Profile-Guided Compilation and Verification |
CN108228319A (zh) * | 2018-01-10 | 2018-06-29 | 天津理工大学 | 一种基于多桥的语义重构方法 |
CN108304701A (zh) * | 2017-01-13 | 2018-07-20 | 阳振庭 | 一种生成身份签注的方法及系统 |
EP3355185A1 (en) * | 2017-01-30 | 2018-08-01 | Wipro Limited | Method and system for deploying an application package in each stage of aplication life cycle |
CN108415744A (zh) * | 2018-02-08 | 2018-08-17 | 宁夏翔羚科技有限公司 | 应用程序名称修改方法、装置、电子设备及存储介质 |
WO2018194196A1 (ko) * | 2017-04-20 | 2018-10-25 | 라인 가부시키가이샤 | Elf 파일의 난독화 적용 여부의 탐지 및 보안성 평가를 위한 방법 및 시스템 |
EP3410665A1 (en) * | 2017-05-30 | 2018-12-05 | Mastercard International Incorporated | System and method to route data in networks |
CN108959094A (zh) * | 2018-07-11 | 2018-12-07 | 苏州因曼吉科技有限公司 | 一种基于数据结构的测试程序的定义和应用方法 |
CN108964993A (zh) * | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 基于动态代理的故障模拟方法、装置、设备及可读存储介质 |
CN108984161A (zh) * | 2018-06-21 | 2018-12-11 | 广州视源电子科技股份有限公司 | 一种统一且可分类拓展的软件安装包构建方法和装置 |
CN109063040A (zh) * | 2018-07-17 | 2018-12-21 | 清华大学 | 客户端程序数据采集方法及系统 |
CN109298889A (zh) * | 2017-07-24 | 2019-02-01 | Tcl集团股份有限公司 | 一种生成引导程序的方法、开机广告更新方法及终端设备 |
CN109344065A (zh) * | 2018-09-27 | 2019-02-15 | 迈普通信技术股份有限公司 | 远程调试方法、调试服务器及目标机 |
CN109460250A (zh) * | 2018-09-25 | 2019-03-12 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
CN109783138A (zh) * | 2018-12-05 | 2019-05-21 | 北京奇艺世纪科技有限公司 | 应用程序包构成的拆分方法、装置、终端及介质 |
US20190205867A1 (en) * | 2018-01-03 | 2019-07-04 | Mastercard International Incorporated | Wallet provider data process for facilitating digitization of payment account |
CN109976761A (zh) * | 2019-02-27 | 2019-07-05 | 平安科技(深圳)有限公司 | 软件开发工具包的生成方法、装置及终端设备 |
CN109992968A (zh) * | 2019-03-25 | 2019-07-09 | 北京理工大学 | 基于二进制动态插桩的Android恶意行为动态检测方法 |
CN110046494A (zh) * | 2019-04-24 | 2019-07-23 | 广州知弘科技有限公司 | 基于终端的大数据处理方法及系统 |
CN110187912A (zh) * | 2019-05-16 | 2019-08-30 | 华为技术有限公司 | 一种节点选择方法和装置 |
CN110597515A (zh) * | 2019-08-27 | 2019-12-20 | 绿漫科技有限公司 | 一种字节码插桩方法 |
CN111090420A (zh) * | 2019-12-15 | 2020-05-01 | 彭慈文 | 基于任务功能线的软件项目管理方法及系统 |
CN111159662A (zh) * | 2019-12-25 | 2020-05-15 | 郑州阿帕斯数云信息科技有限公司 | 一种数据的处理方法和装置 |
CN111881447A (zh) * | 2020-06-28 | 2020-11-03 | 中国人民解放军战略支援部队信息工程大学 | 恶意代码片段智能取证方法及系统 |
CN112667223A (zh) * | 2021-01-05 | 2021-04-16 | 北京城市网邻信息技术有限公司 | 组件配置表的生成方法、装置、电子设备及存储介质 |
CN112948026A (zh) * | 2019-11-26 | 2021-06-11 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、服务器、电子设备及存储介质 |
CN113076452A (zh) * | 2021-03-08 | 2021-07-06 | 北京梧桐车联科技有限责任公司 | 应用分类的方法、装置、设备及计算机可读存储介质 |
CN113835713A (zh) * | 2021-09-24 | 2021-12-24 | 苏州浪潮智能科技有限公司 | 源码包下载方法、装置、计算机设备和存储介质 |
-
2022
- 2022-01-18 CN CN202210053752.9A patent/CN114398102B/zh active Active
Patent Citations (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160301699A1 (en) * | 2013-11-29 | 2016-10-13 | Huawei Device Co., Ltd | Installation package authorization method and apparatus |
US20160070549A1 (en) * | 2014-09-09 | 2016-03-10 | Google Inc. | Offline shader compilation |
CN104765634A (zh) * | 2015-05-06 | 2015-07-08 | 山东中孚信息产业股份有限公司 | 一种Linux系统内核新功能增加方法 |
US20170010951A1 (en) * | 2015-07-10 | 2017-01-12 | CA, Inc | Application screen mapping for mobile analytics |
CN105306434A (zh) * | 2015-09-11 | 2016-02-03 | 北京金山安全软件有限公司 | 程序文件校验方法及装置、服务器和终端 |
CN105204861A (zh) * | 2015-09-29 | 2015-12-30 | 上海二三四五网络科技有限公司 | 一种注册表重定向方法及装置 |
CN105205000A (zh) * | 2015-10-12 | 2015-12-30 | 用友网络科技股份有限公司 | 定位软件开发中代码受影响范围的方法及系统 |
US20180136941A1 (en) * | 2016-11-15 | 2018-05-17 | Google Inc. | Bootstrapping Profile-Guided Compilation and Verification |
US20190272180A1 (en) * | 2016-11-15 | 2019-09-05 | Google Llc | Bootstrapping Profile-Guided Compilation and Verification |
CN108304701A (zh) * | 2017-01-13 | 2018-07-20 | 阳振庭 | 一种生成身份签注的方法及系统 |
EP3355185A1 (en) * | 2017-01-30 | 2018-08-01 | Wipro Limited | Method and system for deploying an application package in each stage of aplication life cycle |
WO2018194196A1 (ko) * | 2017-04-20 | 2018-10-25 | 라인 가부시키가이샤 | Elf 파일의 난독화 적용 여부의 탐지 및 보안성 평가를 위한 방법 및 시스템 |
EP3410665A1 (en) * | 2017-05-30 | 2018-12-05 | Mastercard International Incorporated | System and method to route data in networks |
CN107391218A (zh) * | 2017-07-07 | 2017-11-24 | 北京小米移动软件有限公司 | 编译方法及装置、电子设备和计算机可读存储介质 |
CN109298889A (zh) * | 2017-07-24 | 2019-02-01 | Tcl集团股份有限公司 | 一种生成引导程序的方法、开机广告更新方法及终端设备 |
CN107357593A (zh) * | 2017-08-24 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 源代码文件组建方法、装置、电子终端及可读存储介质 |
CN107862203A (zh) * | 2017-11-21 | 2018-03-30 | 广东欧珀移动通信有限公司 | 应用程序的控制方法、装置、存储介质及终端 |
US20190205867A1 (en) * | 2018-01-03 | 2019-07-04 | Mastercard International Incorporated | Wallet provider data process for facilitating digitization of payment account |
CN108228319A (zh) * | 2018-01-10 | 2018-06-29 | 天津理工大学 | 一种基于多桥的语义重构方法 |
CN108415744A (zh) * | 2018-02-08 | 2018-08-17 | 宁夏翔羚科技有限公司 | 应用程序名称修改方法、装置、电子设备及存储介质 |
CN108984161A (zh) * | 2018-06-21 | 2018-12-11 | 广州视源电子科技股份有限公司 | 一种统一且可分类拓展的软件安装包构建方法和装置 |
CN108964993A (zh) * | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 基于动态代理的故障模拟方法、装置、设备及可读存储介质 |
CN108959094A (zh) * | 2018-07-11 | 2018-12-07 | 苏州因曼吉科技有限公司 | 一种基于数据结构的测试程序的定义和应用方法 |
CN109063040A (zh) * | 2018-07-17 | 2018-12-21 | 清华大学 | 客户端程序数据采集方法及系统 |
CN109460250A (zh) * | 2018-09-25 | 2019-03-12 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
CN109344065A (zh) * | 2018-09-27 | 2019-02-15 | 迈普通信技术股份有限公司 | 远程调试方法、调试服务器及目标机 |
CN109783138A (zh) * | 2018-12-05 | 2019-05-21 | 北京奇艺世纪科技有限公司 | 应用程序包构成的拆分方法、装置、终端及介质 |
CN109976761A (zh) * | 2019-02-27 | 2019-07-05 | 平安科技(深圳)有限公司 | 软件开发工具包的生成方法、装置及终端设备 |
CN109992968A (zh) * | 2019-03-25 | 2019-07-09 | 北京理工大学 | 基于二进制动态插桩的Android恶意行为动态检测方法 |
CN110046494A (zh) * | 2019-04-24 | 2019-07-23 | 广州知弘科技有限公司 | 基于终端的大数据处理方法及系统 |
CN110187912A (zh) * | 2019-05-16 | 2019-08-30 | 华为技术有限公司 | 一种节点选择方法和装置 |
CN110597515A (zh) * | 2019-08-27 | 2019-12-20 | 绿漫科技有限公司 | 一种字节码插桩方法 |
CN112948026A (zh) * | 2019-11-26 | 2021-06-11 | Oppo广东移动通信有限公司 | 热点代码处理方法、装置、服务器、电子设备及存储介质 |
CN111090420A (zh) * | 2019-12-15 | 2020-05-01 | 彭慈文 | 基于任务功能线的软件项目管理方法及系统 |
CN111159662A (zh) * | 2019-12-25 | 2020-05-15 | 郑州阿帕斯数云信息科技有限公司 | 一种数据的处理方法和装置 |
CN111881447A (zh) * | 2020-06-28 | 2020-11-03 | 中国人民解放军战略支援部队信息工程大学 | 恶意代码片段智能取证方法及系统 |
CN112667223A (zh) * | 2021-01-05 | 2021-04-16 | 北京城市网邻信息技术有限公司 | 组件配置表的生成方法、装置、电子设备及存储介质 |
CN113076452A (zh) * | 2021-03-08 | 2021-07-06 | 北京梧桐车联科技有限责任公司 | 应用分类的方法、装置、设备及计算机可读存储介质 |
CN113835713A (zh) * | 2021-09-24 | 2021-12-24 | 苏州浪潮智能科技有限公司 | 源码包下载方法、装置、计算机设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521271A (zh) * | 2023-05-22 | 2023-08-01 | 广州广电运通信息科技有限公司 | 插件模块管理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114398102B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106605212B (zh) | 在动态链接的运行时环境中的模块化共同版本管理 | |
US9811360B2 (en) | Dynamic determination of application server runtime classloading | |
US10528363B2 (en) | Conservative class preloading for real time java execution | |
US6557100B1 (en) | Fastpath redeployment of EJBs | |
EP1046984A2 (en) | Automatic stub/adapter generator | |
US20160232017A1 (en) | System and Method for Reloading Constructors | |
CN111985055B (zh) | 一种模型封装方法、装置及电子设备 | |
US20090320007A1 (en) | Local metadata for external components | |
US11061695B2 (en) | Unikernel provisioning | |
EP3563231A1 (en) | Systems and/or methods for type inference from machine code | |
US20060230397A1 (en) | Method for third-party registration of software components | |
CN111913741B (zh) | 对象拦截方法、装置、介质及电子设备 | |
CN106796521B (zh) | 独立于产品发布的api版本控制 | |
WO2011042228A1 (en) | Method and system to handle java class versioning | |
CN114398102B (zh) | 一种应用程序包生成方法、装置、编译服务器及计算机可读存储介质 | |
CN111679855A (zh) | 一种应用程序软件包转换方法、管理方法及装置 | |
CN111273940B (zh) | 将程序文件上传至代码仓库的方法及装置 | |
Padaryan et al. | Methods and software tools to support combined binary code analysis | |
CN111399932A (zh) | 调用dll的方法、系统、浏览器的处理方法和浏览器 | |
CN114579135B (zh) | 一种安装包生成方法及装置 | |
US12008386B2 (en) | Conservative class preloading for real time java execution | |
US11989569B2 (en) | Unikernel provisioning | |
CN101674333A (zh) | 非托管语言与.net服务端交互及其生成方法、装置、系统 | |
CN117149155A (zh) | 服务接口的代码校验方法、装置、设备及存储介质 | |
Román García | An enhanced SleuthKit GUI for digital forensics |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240110 Address after: Room 501, Building 2, No. 99 Xiangyuan Road, Gongshu District, Hangzhou City, Zhejiang Province, 310000 Patentee after: Hangzhou Miluo Cultural Communication Co.,Ltd. Address before: Room 502, 5th floor, No. 99 Xiangyuan Road, Gongshu District, Hangzhou City, Zhejiang 310000 Patentee before: Hangzhou Miluoxing Technology (Group) Co.,Ltd. |
|
TR01 | Transfer of patent right |