CN114594964A - 软件包的输出常量池的生成方法及装置 - Google Patents
软件包的输出常量池的生成方法及装置 Download PDFInfo
- Publication number
- CN114594964A CN114594964A CN202210240598.6A CN202210240598A CN114594964A CN 114594964 A CN114594964 A CN 114594964A CN 202210240598 A CN202210240598 A CN 202210240598A CN 114594964 A CN114594964 A CN 114594964A
- Authority
- CN
- China
- Prior art keywords
- software package
- class member
- constant pool
- target
- class
- 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
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种软件包的输出常量池的生成方法及装置,包括:从软件包中提取软件包对应的第一初始常量池;第一初始常量池包括软件包的至少一个第一类成员项,至少一个第一类成员项中的每个第一类成员项均包括被定义为需要暴露的类成员的第一索引参数;对第一索引参数进行压缩处理,以得到类成员的第一压缩标识;生成软件包的输出常量池,输出常量池包括软件包的多个第二类成员项,多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引。根据本申请实施例,能够实现无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个方法项或变量项进行索引,为API的扩展保留了一定的灵活性。
Description
技术领域
本申请涉及软件开发技术领域,尤其涉及一种软件包的输出常量池的生成方法及装置。
背景技术
通常,一个软件***由若干软件包组成。某些软件包提供的功能如方法和变量,可被其它包引用。这些方法和变量要以一定的规则暴露出来,其他软件包能够调用暴露的方法和变量。在Java虚拟机这样的运行时***中,通常会保留这些暴露出来的变量和方法的索引参数,以字符串形式保存于常量池中。
在资源受限***中如智能卡***中,完整的常量池由于体积庞大,通常都需要裁剪。例如,在JavaCard中,使用统一的连续编号规则对类、类成员方法、类成员变量进行编号。在所有的运行类库相对固定的情况下,其编号具有唯一性,因而在运行时***中静态链接之后常量池不再有存在的必要。但是在软件包更新时,运行类库的公开类成员会增加或减少,而每个类成员的编号固定,进而导致不同版本的软件包之间的兼容性差,应用程序接口(Application Programming Interface,API)的扩展灵活性差。
发明内容
本申请实施例提供了一种软件包的输出常量池的生成方法及装置,能够在保留常量池的基础上,降低常量池的存储空间,并有效解决不同版本软件包之间的兼容性,从而提升API扩展的灵活性。
第一方面,本申请实施例一种软件包的输出常量池的生成方法,应用于软件包编译***,包括:
从软件包中提取所述软件包对应的第一初始常量池;所述第一初始常量池包括所述软件包的至少一个第一类成员项,所述至少一个第一类成员项中的每个第一类成员项均包括被定义为需要暴露的类成员的第一索引参数;
对所述第一索引参数进行压缩处理,以得到所述类成员的第一压缩标识;
生成所述软件包的输出常量池,所述输出常量池包括所述软件包的多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引,所述寻址索引用于指示所述类成员的安装地址,所述第一压缩标识用于指示所述类成员的索引参数。
在一种可能的实现方式中,所述对所述第一索引参数进行压缩处理,以得到所述第一索引参数的第一压缩标识,包括:
对所述第一索引参数进行哈希计算,确定所述第一索引参数对应的哈希值;
根据所述第一索引参数对应的哈希值,确定所述第一压缩标识。
在一种可能的实现方式中,所述根据所述第一索引参数对应的哈希值,确定所述第一压缩标识,包括:
在所述多个类成员项中至少两个类成员项分别对应的第一索引参数的哈希值相同的情况下,根据所述多个类成员项的先后顺序,确定所述多个类成员项分别对应的编号;
根据所述多个类成员项分别对应的编号和第一索引参数的哈希值,确定所述多个类成员项分别对应的第一压缩标识。
在一种可能的实现方式中,所述方法还包括:
生成映射表,所述映射表用于指示第一初始常量池中的第一索引参数与输出常量池中的第一压缩标识之间的映射关系。
第二方面,本申请实施例提供了一种软件包的引用常量池的生成方法,应用于软件包编译***,包括:
从软件包中提取所述软件包的第二初始常量池,所述第二初始常量池包括所述软件包的身份标识和至少一个第三类成员项,所述第三类成员项中的每个第三类成员项均包括所述软件包需要引用的的类成员的第三索引参数和所述类成员所在的目标软件包的身份标识;
根据所述目标软件包的身份标识,确定所述目标软件包的第一初始常量池、输出常量池和映射表;其中,所述目标软件包的输出常量池包括所述目标软件包的多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引;
根据所述目标软件包的第一初始常量池和映射表,从所述目标软件包的输出常量池中确定所述第三索引参数对应的第一压缩标识;
根据所述第三索引参数对应的第一压缩标识和所述软件包的身份标识,生成第三索引参数对应的第二压缩标识;
生成所述软件包的引用常量池,所述引用常量池包括至少一个第四类成员项,所述至少一个第四类成员项包括第二压缩标识,所述第二压缩标识用于指示所述类成员的索引参数。
第三方面,本申请实施例提供了一种类成员的引用方法,应用于计算机设备,所述计算机设备包括已安装的第一软件包、第二软件包和信息表,所述信息表包括所述计算机设备已安装的软件包的身份标识和安装地址,包括:
在第一软件包加载第二软件包的情况下,根据第一软件包对应的引用常量池和第二软件包的身份标识,确定第一软件包所引用的目标类成员的第二压缩标识;所述第一软件包对应的引用常量池包括所述第二软件包的身份标识和所述第一软件包所引用的目标类成员;
根据所述第二软件包的安装地址进行动态链接,确定所述第二软件包的输出常量池;所述第二软件包的输出常量池多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引,所述寻址索引用于指示所述类成员的安装地址,所述第一压缩标识用于指示所述类成员的索引参数;
根据所述目标类成员的第二压缩标识,从所述第二软件包的输出常量池中确定与所述目标类成员的第二压缩标识相同的第一压缩标识;
根据所述第一压缩标识对应的寻址索引,确定所述目标类成员的安装地址,以使第一软件包引用所述目标类成员。
第四方面,本申请实施例提供一种软件包的输出常量池的生成装置,应用于软件包编译***,包括:
提取模块,用于从软件包中提取所述软件包对应的第一初始常量池;所述第一初始常量池包括所述软件包的至少一个第一类成员项,所述至少一个第一类成员项中的每个第一类成员项均包括被定义为需要暴露的类成员的第一索引参数;
处理模块,用于对所述第一索引参数进行压缩处理,以得到所述类成员的第一压缩标识;
生成模块,用于生成所述软件包的输出常量池,所述输出常量池包括所述软件包的多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引,所述寻址索引用于指示所述类成员的安装地址,所述第一压缩标识用于指示所述类成员的索引参数。
在一种可能的实现方式中,所述处理模块,用于:
对所述第一索引参数进行哈希计算,确定所述第一索引参数对应的哈希值;
根据所述第一索引参数对应的哈希值,确定所述第一压缩标识。
在一种可能的实现方式中,所述处理模块用于:
在所述多个类成员项中至少两个类成员项分别对应的第一索引参数的哈希值相同的情况下,根据所述多个类成员项的先后顺序,确定所述多个类成员项分别对应的编号;
根据所述多个类成员项分别对应的编号和第一索引参数的哈希值,确定所述多个类成员项分别对应的第一压缩标识。
在一种可能的实现方式中,所述生成模块还用于生成映射表,所述映射表用于指示第一初始常量池中的第一索引参数与输出常量池中的第一压缩标识之间的映射关系。
第五方面,本申请实施例提供了一种软件包的引用常量池的生成装置,应用于软件包编译***,包括:
提取模块,用于从软件包中提取所述软件包的第二初始常量池,所述第二初始常量池包括所述软件包的身份标识和至少一个第三类成员项,所述第三类成员项中的每个第三类成员项均包括所述软件包需要引用的的类成员的第三索引参数和所述类成员所在的目标软件包的身份标识;
确定模块,用于根据所述目标软件包的身份标识,确定所述目标软件包的第一初始常量池、输出常量池和映射表;其中,所述目标软件包的输出常量池包括所述目标软件包的多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引;
所述确定模块还用于根据所述目标软件包的第一初始常量池和映射表,从所述目标软件包的输出常量池中确定所述第三索引参数对应的第一压缩标识;
生成模块,用于根据所述第三索引参数对应的第一压缩标识和所述软件包的身份标识,生成第三索引参数对应的第二压缩标识;
所述生成模块还用于生成所述软件包的引用常量池,所述引用常量池包括至少一个第四类成员项,所述至少一个第四类成员项包括第二压缩标识,所述第二压缩标识用于指示所述类成员的索引参数。
第六方面,本申请实施例提供了一种类成员的引用装置,应用于计算机设备,所述计算机设备包括已安装的第一软件包、第二软件包和信息表,所述信息表包括所述计算机设备已安装的软件包的身份标识和安装地址,包括:
第一确定模块,用于根据第一软件包的引用常量池,确定第一软件包所引用的目标类成员的第二压缩标识,第二压缩标识包括目标类成员所在的第二软件包的身份标识。
第二确定模块,用于根据目标类成员所在的第二软件包的身份标识,从信息表中确定第二软件包的安装地址。
第三确定模块,用于根据第二软件包的安装地址,确定第二软件包的输出常量池;第二软件包的输出常量池多个第二类成员项,多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引,寻址索引用于指示类成员的安装地址,第一压缩标识用于指示类成员的索引参数。
匹配模块,用于根据目标类成员的第二压缩标识,从第二软件包的输出常量池中确定与目标类成员的第二压缩标识匹配的第一压缩标识。
第四确定模块,用于根据第一压缩标识对应的寻址索引,确定目标类成员的安装地址,以使第一软件包引用目标类成员。
第七方面,本申请实施例提供了一种计算机设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上述第一方面或第一方面中任一种可能的实现方式中所提供的方法,或实现如上述第二方面或第二方面中任一种可能的实现方式中所提供的方法。
第八方面,本申请实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一种可能的实现方式中所提供的方法,或实现如上述第二方面所提供的方法。
第九方面,本申请实施例提供了一种计算机设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上述第三方面所提供的方法。
第十方面,本申请实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一种可能的实现方式中所提供的方法,或实现如上述第二方面所提供的方法。
本申请实施例提供的软件包的输出常量池的生成方法及装置,通过对常量池中的类成员进行压缩处理,使用第一压缩标识类成员的索引参数,无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个类成员进行索引,保证不同版本软件包之间的兼容性,从而为API的扩展保留了一定的灵活性。
附图说明
图1示出了本申请实施例提供的一种软件包的输出常量池的生成方法的流程示意图;
图2示出了本申请实施例提供的一种软件包的引用常量池的生成方法的流程示意图;
图3示出了本申请实施例提供的一种类成员的引用方法的流程示意图;
图4示出了本申请实施例提供的一种软件包的输出常量池的生成装置的结构示意图;
图5示出了本申请实施例提供的一种软件包的引用常量池的生成装置的结构示意图;
图6示出了本申请实施例提供的一种类成员的引用装置的结构示意图;
图7示出了本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。
在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个***是指两个或两个以上的***,多个屏幕终端是指两个或两个以上的屏幕终端。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供了一种软件包的输出常量池的生成方法及装置,无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个类成员进行索引,保证不同版本软件包之间的兼容性,从而为API的扩展保留了一定的灵活性。
图1是本申请实施例提供的一种软件包的输出常量池的生成方法的流程示意图。
如图1所示,本申请实施例提供的一种软件包的输出常量池的生成方法包括:
S101:从软件包中提取软件包对应的第一初始常量池;第一初始常量池包括软件包的至少一个第一类成员项,至少一个第一类成员项中的每个第一类成员项均包括被定义为需要暴露的类成员的第一索引参数。
可以使用专用工具从软件包中提取到该软件包对应的第一初始常量池,其中,该第一初始常量池可以以信息表的形式呈现。第一初始常量池中包括多个类成员项,其中,类成员项包括方法项和变量项。类成员项包括被定义为需要暴露的类成员的第一索引参数。例如,每个方法项均包括被定义为需要暴露的方法的索引参数,如方法所属的类的名称(full class name)、方法的名称(method name)和方法的描述符(method descriptor)等。每个变量项均包括被定义为需要暴露的变量的索引参数,如变量所属的类的名称(fullclass name)、变量的名称(field name)和变量的类型的描述符(field typedescriptor)。
S102:对第一索引参数进行压缩处理,以得到类成员的第一压缩标识。
为了对使得软件包的输出常量池占用较少的存储空间,可以分别对第一索引参数进行压缩处理,从而减小输出常量池占用的存储空间。
在一些实施例中,可以对第一索引参数进行哈希计算,从而得到第一索引参数对应的第一压缩标识。例如,可以使用哈希函数hash_f(x,y,z)。其中,x,y,z表示第一索引参数,例如,方法所属的类的名称(full class name)、方法的名称(method name)和方法的描述符(method descriptor),或变量所属的类的名称(full class name)、变量的名称(field name)和变量的类型的描述符(field type descriptor)。
在这里,可以将所有参数连接成一个字符串求哈希值,还可以将其中一个参数单算哈希值,剩余参数整体计算哈希值,然后对两个哈希值求和,从而基于计算得到的哈希值得到第一压缩标识。
在一些实施例中,为了避免至少两个类成员项对应的哈希值相同无法区别不同的方法项,可以对第一初始常量池中的类成员项进行排序。按照每个类成员项的先后顺序对每个类成员项赋值。具体的,多个类成员项中至少有两个类成员项分别对应的第一索引参数的哈希值相同的情况下,可以根据不同的类成员项的先后顺序,确定每个类成员项分别对应的编号。进而根据类成员项对应的编号和计算得到的哈希值,生成第一压缩标识。
示例性地,在多个方法项中至少两个方法项分别对应的第一索引参数的哈希值相同的情况下,根据多个方法项的先后顺序,确定至少两个方法项分别对应的编号,以及至少两个方法项分别对应的编号和索引参数的哈希值,从而生成方法对应第一压缩标识。在多个变量项中至少两个变量项分别对应的索引参数的哈希值相同的情况下,对多个变量项进行排序,确定至少两个变量项分别对应的编号,以及根据至少两个变量项分别对应的编号和索引参数的哈希值,生成变量对应的第一压缩标识。
例如,方法项的压缩标识可以表示为:hash_f(full class name,method name,method descriptor)+sub-order,其中,此处的sub-order表示对方法项所赋的数值。变量项的压缩标识可以表示为hash_f(full class name,field name,field typedescriptor)+sub-order,其中,此处的sub-order标识对变量项所赋的值。
需要说明的是,软件包安装的***相同,哈希值的计算方式也是相同的。
S103:生成软件包的输出常量池,输出常量池包括软件包的多个第二类成员项,多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引,寻址索引用于指示类成员的安装地址,第一压缩标识用于指示类成员的索引参数。
在这里,需要说明的是,输出常量池实际是第一初始常量池变换得到的。其中,将第一压缩标识替换第一初始常量池中的第一索引参数,以及分别对每个类成员项添加寻址索引,从而使得第一初始常量池变换为软件包的输出常量池。
其中,类成员项的寻址索引指向代码地址索引,此寻址索引将在***加载软件包时更新为实际地址。
在一些实施例中,在对第一初始常量池进行变换的过程中,还可以生成映射表,映射表用于表示与每个类成员项的第一压缩标识,以用于生成软件包的引用常量池。
在软件包安装至***后,***中可以包括所有已安装的软件包的信息表,该信息表为逻辑表,其包括每个已安装的软件包的身份标识,例如,a0:00:00:00:61:00:01的5字节到16字节的身份标识。当软件包P已安装至***中,且软件包P被***中的软件包Q加载时,根据软件包Q所要引用的方法对应的压缩标识或变量对应的压缩标识以及软件包P的输出常量池,确定软件包Q引用的方法或变量所在的实际地址。
本申请实施例提供的软件包的输出常量池的生成方法通过对类成员对应的第一索引参数进行压缩处理,从而实现无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个类成员进行索引,保证不同版本软件包之间的兼容性,从而为API的扩展保留了一定的灵活性。
图2是本申请实施例提供了一种软件包的引用常量池的生成方法的流程示意图。
如图2所示,本申请实施例提供的软件包的引用常量池的生成方法可以包括:
S201:从软件包中提取软件包的第二初始常量池,第二初始常量池包括软件包的身份标识和至少一个第三类成员项,第三类成员项中的每个第三类成员项均包括软件包需要引用的的类成员的第三索引参数和类成员所在的目标软件包的身份标识。
软件包中包括该软件包引用其他软件包中的类成员的常量池,即第二初始常量池。第二初始常量池包括多个类成员项。在这里,第二初始常量池可以看作一个信息表。在第二初始常量池中,多个类成员项均可以包括该软件包引用的类成员的第二索引参数和引用的类成员所在的目标软件包的身份标识,其中,第二索引参数可以包括如引用的方法所属的类的名称、引用的方法的名称和引用的方法的描述符,或引用的变量所属的类的名称、引用的变量的名称和引用的变量的类型描述符。
S202:根据目标软件包的身份标识,确定目标软件包的第一初始常量池、输出常量池和映射表;其中,目标软件包的输出常量池包括目标软件包的多个第二类成员项,多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引,映射表用于指示第一初始常量池中的第一索引参数与输出常量池中的第一压缩标识之间的映射关系。
在软件包未安装至***前,为了生成每个软件包的引用常量池,在生成软件包的输出常量池的过程中,第一初始常量池和映射表可以存储在数据库中,进而可以根据目标软件包的身份标识,确定目标软件包的第一初始常量池,输出常量池和映射表。进而根据目标软件包的第一初始常量池、输出常量池和映射表,确定软件包引用目标软件包的类成员的相关信息。
S203:根据目标软件包的第一初始常量池和映射表,从目标软件包的输出常量池中确定第三索引参数对应的第一压缩标识。
目标软件包的第一初始常量池包括了多个类成员项,每个类成员项均包括不同的类成员对应的第一索引参数,如方法所属的类的名称(full class name)、方法的名称(method name)和方法的描述符(method descriptor),或如变量所属的类的名称(fullclass name)、变量的名称(field name)和变量的类型的描述符(field typedescriptor)。映射表中包括每个第一索引参数对应的压缩标识。由此,可以从目标软件包的映射表中匹配到与第三索引参数一致的第一索引参数,由此,确定第三索引参数对应的第一压缩标识。
S204:根据第三索引参数对应的第一压缩标识和软件包的身份标识,生成第三索引参数对应的第二压缩标识。
示例性的,方法项的压缩标识可以表示为:hash_f(full class name,methodname,method descriptor)+sub-order。根据第三索引参数对应的第一压缩标识和目标软件包的身份标识,生成第三索引参数对应的第二压缩标识,例如第二压缩标识可以表示为:[tag+package index+]hash_f(full class name,method name,method descriptor)+sub-order,其中,[tag+package index+]用于表示方法所在的目标软件包的身份标识。变量项的压缩标识可以表示为hash_f(full class name,field name,field typedescriptor)+sub-order,根据第三索引参数对应的第一压缩标识和目标软件包的身份标识,生成第三索引参数对应的第二压缩标识,例如第二压缩标识可以表示为:[tag+packageindex+]hash_f(full class name,field name,field type descriptor)+
sub-order,其中,[tag+package index+]用于表示目标软件包的身份标识。
本申请实施例提供的软件包的引用常量池的生成方法,基于压缩处理后的第一压缩标识,生成第二压缩标识,从而无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个类成员进行索引,保证不同版本软件包之间的兼容性,从而为API的扩展保留了一定的灵活性。
图3是本申请实施例提供的一种类成员的引用方法的流程示意图。
如图3所示,本申请实施例提供的一种类成员的引用方法应用于计算机设备,计算机设备包括已安装的第一软件包、第二软件包和信息表,信息表包括计算机设备已安装的软件包的身份标识和安装地址,该方法可以包括:
S301:根据第一软件包的引用常量池,确定第一软件包所引用的目标类成员的第二压缩标识,第二压缩标识包括目标类成员所在的第二软件包的身份标识。
计算机设备中维护有信息表,该信息表中包括计算机设备中已经安装的软件包的身份标识和安装地址。根据信息表可以确定计算机设备中已安装的软件包的安装地址,从而确定与软件包相关的信息。在第一软件包需要引用第二软件包的情况下,可以根据第一软件包的引用常量池,匹配第一软件包所引用的目标类成员的第二压缩标识,其中,该第二压缩标识中包括该目标类成员所在的第二软件包的身份标识。
S302:根据目标类成员所在的第二软件包的身份标识,从信息表中确定第二软件包的安装地址。
S303:根据第二软件包的安装地址,确定第二软件包的输出常量池;第二软件包的输出常量池多个第二类成员项,多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引,寻址索引用于指示类成员的安装地址,第一压缩标识用于指示类成员的索引参数。
S304:根据目标类成员的第二压缩标识,从第二软件包的输出常量池中确定与目标类成员的第二压缩标识匹配的第一压缩标识。
S305:根据第一压缩标识对应的寻址索引,确定目标类成员的安装地址,以使第一软件包引用目标类成员。
示例性地,信息表中可以使用如a0:00:00:00:61:00:01的5字节到16字节的身份标识。当软件包Q已安装至***中,且软件包Q加载***中的软件包P时,根据软件包Q所要引用的类成员对应的第二压缩标识确定软件包P的身份标识,进而根据信息表和软件包P的身份标识,确定软件包P的安装地址,并确定软件包P的输出常量池。根据输出常量池,确定软件包Q所要引用的方法对应的压缩标识或变量对应的压缩标识,确定软件包Q所要引用的方法或变量所在的实际地址。
本申请实施例提供的类成员的引用方法,由于软件包的输出常量池和引用常量池中的类成员项均通过压缩标识表示,从而实现无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个类成员进行索引,保证不同版本软件包之间的兼容性,从而为API的扩展保留了一定的灵活性。
图4是本申请实施例提供了一种软件包的输出常量池的生成装置的结构示意图。
如图4所示,本申请实施例提供的软件包的输出常量池的生成装置应用于软件包编译***,其可以包括:
提取模块401,用于从软件包中提取软件包对应的第一初始常量池;第一初始常量池包括软件包的至少一个第一类成员项,至少一个第一类成员项中的每个第一类成员项均包括被定义为需要暴露的类成员的第一索引参数;
处理模块402,用于对第一索引参数进行压缩处理,以得到类成员的第一压缩标识;
生成模块403,用于生成软件包的输出常量池,输出常量池包括软件包的多个第二类成员项,多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引,寻址索引用于指示类成员的安装地址,第一压缩标识用于指示类成员的索引参数。
在一种可能的实现方式中,处理模块402,用于:
对第一索引参数进行哈希计算,确定第一索引参数对应的哈希值;
根据第一索引参数对应的哈希值,确定第一压缩标识。
在一种可能的实现方式中,处理模块402用于:
在多个类成员项中至少两个类成员项分别对应的第一索引参数的哈希值相同的情况下,根据多个类成员项的先后顺序,确定多个类成员项分别对应的编号;
根据多个类成员项分别对应的编号和第一索引参数的哈希值,确定多个类成员项分别对应的第一压缩标识。
在一种可能的实现方式中,生成模块403还用于生成映射表,映射表用于指示第一初始常量池中的第一索引参数与输出常量池中的第一压缩标识之间的映射关系。
本申请实施例提供的软件包的输出常量池的生成装置能够执行图1对应的实施例中的方法的步骤,并能够达到相同的技术效果,为避免重复,在此不再详细说明。
本申请实施例提供的软件包的输出常量池的生成装置,通过对常量池中的类成员进行压缩处理,使用第一压缩标识类成员的索引参数,从而实现无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个类成员进行索引,保证不同版本软件包之间的兼容性,从而为API的扩展保留了一定的灵活性。
图5是本申请实施例提供了一种软件包的引用常量池的生成装置的结构示意图。
如图5所示,本申请实施例提供的软件包的引用常量池的生成装置应用于软件包编译***,其可以包括:
提取模块501,用于从软件包中提取软件包的第二初始常量池,第二初始常量池包括软件包的身份标识和至少一个第三类成员项,第三类成员项中的每个第三类成员项均包括软件包需要引用的的类成员的第三索引参数和类成员所在的目标软件包的身份标识;
确定模块502,用于根据目标软件包的身份标识,确定目标软件包的第一初始常量池、输出常量池和映射表;其中,目标软件包的输出常量池包括目标软件包的多个第二类成员项,多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引;
确定模块502还用于根据目标软件包的第一初始常量池和映射表,从目标软件包的输出常量池中确定第三索引参数对应的第一压缩标识;
生成模块503,用于根据第三索引参数对应的第一压缩标识和软件包的身份标识,生成第三索引参数对应的第二压缩标识;
生成模块503还用于生成软件包的引用常量池,引用常量池包括至少一个第四类成员项,至少一个第四类成员项包括第二压缩标识,第二压缩标识用于指示类成员的索引参数。
本申请实施例提供的软件包的引用常量池的生成方法能够执行图2对应的实施例中的方法的步骤,并能够达到相同的技术效果,为避免重复,在此不再详细说明。
本申请实施例提供的软件包的引用常量池的生成方法,基于压缩处理后的第一压缩标识,生成第二压缩标识,从而实现无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个类成员项进行索引,为API的扩展保留了一定的灵活性。
图6是本申请实施例提供了一种类成员的引用装置的结构示意图。
如图6所示,本申请实施例提供的一种类成员的引用装置应用于计算机设备,计算机设备包括已安装的第一软件包、第二软件包和信息表,信息表包括计算机设备已安装的软件包的身份标识和安装地址,其可以包括:
第一确定模块601,用于根据所述第一软件包的引用常量池,确定所述第一软件包所引用的目标类成员的第二压缩标识,所述第二压缩标识包括目标类成员所在的第二软件包的身份标识。
第二确定模块602,用于根据目标类成员所在的第二软件包的身份标识,从信息表中确定所述第二软件包的安装地址。
第三确定模块603,用于根据所述第二软件包的安装地址,确定所述第二软件包的输出常量池;所述第二软件包的输出常量池多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引,寻址索引用于指示类成员的安装地址,第一压缩标识用于指示类成员的索引参数。
匹配模块604,用于根据所述目标类成员的第二压缩标识,从所述第二软件包的输出常量池中确定与所述目标类成员的第二压缩标识匹配的第一压缩标识。
第四确定模块605,用于根据所述第一压缩标识对应的寻址索引,确定所述目标类成员的安装地址,以使所述第一软件包引用目标类成员。
本申请实施例提供的语言模型的训练装置能够执行图3对应的实施例中的方法的步骤,并能够达到相同的技术效果,为避免重复,在此不再详细说明。
本申请实施例提供的类成员的引用方法,由于软件包的输出常量池和引用常量池中的类成员项均通过压缩标识表示,从而实现无需删除常量池即可减少常量池的占用的存储空间,且无需使用固定编号对每个类成员进行索引,保证不同版本软件包之间的兼容性,从而为API的扩展保留了一定的灵活性。
下面介绍本申请实施例提供的一种计算机设备。
图7是本申请实施例提供的一种计算机设备的结构示意图。如图7所示,该计算机设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示计算机设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个计算机设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
计算机设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示计算机设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示计算机设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示计算机设备可以是触摸屏。
另外,结合上述实施例,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种方法。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或***。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种软件包的输出常量池的生成方法,其特征在于,应用于软件包编译***,包括:
从软件包中提取所述软件包对应的第一初始常量池;所述第一初始常量池包括所述软件包的至少一个第一类成员项,所述至少一个第一类成员项中的每个第一类成员项均包括被定义为需要暴露的类成员的第一索引参数;
对所述第一索引参数进行压缩处理,以得到所述类成员的第一压缩标识;
生成所述软件包的输出常量池,所述输出常量池包括所述软件包的多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引,所述寻址索引用于指示所述类成员的安装地址,所述第一压缩标识用于指示所述类成员的索引参数。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一索引参数进行压缩处理,以得到所述第一索引参数的第一压缩标识,包括:
对所述第一索引参数进行哈希计算,确定所述第一索引参数对应的哈希值;
根据所述第一索引参数对应的哈希值,确定所述第一压缩标识。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一索引参数对应的哈希值,确定所述第一压缩标识,包括:
在所述多个类成员项中至少两个类成员项分别对应的第一索引参数的哈希值相同的情况下,根据所述多个类成员项的先后顺序,确定所述多个类成员项分别对应的编号;
根据所述多个类成员项分别对应的编号和第一索引参数的哈希值,确定所述多个类成员项分别对应的第一压缩标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成映射表,所述映射表用于指示第一初始常量池中的第一索引参数与输出常量池中的第一压缩标识之间的映射关系。
5.一种软件包的引用常量池的生成方法,其特征在于,应用于软件包编译***,包括:
从软件包中提取所述软件包的第二初始常量池,所述第二初始常量池包括所述软件包的身份标识和至少一个第三类成员项,所述第三类成员项中的每个第三类成员项均包括所述软件包需要引用的的类成员的第三索引参数和所述类成员所在的目标软件包的身份标识;
根据所述目标软件包的身份标识,确定所述目标软件包的第一初始常量池、输出常量池和映射表;其中,所述目标软件包的输出常量池包括所述目标软件包的多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引,所述映射表用于指示第一初始常量池中的第一索引参数与输出常量池中的第一压缩标识之间的映射关系;
根据所述目标软件包的第一初始常量池和映射表,从所述目标软件包的输出常量池中确定所述第三索引参数对应的第一压缩标识;
根据所述第三索引参数对应的第一压缩标识和所述软件包的身份标识,生成第三索引参数对应的第二压缩标识;
生成所述软件包的引用常量池,所述引用常量池包括至少一个第四类成员项,所述至少一个第四类成员项包括第二压缩标识,所述第二压缩标识用于指示所述类成员的索引参数。
6.一种类成员的引用方法,其特征在于,应用于计算机设备,所述计算机设备包括已安装的第一软件包、第二软件包和信息表,所述信息表包括所述计算机设备已安装的软件包的身份标识和安装地址,包括:
根据所述第一软件包的引用常量池,确定所述第一软件包所引用的目标类成员的第二压缩标识,所述第二压缩标识包括目标类成员所在的第二软件包的身份标识。
根据目标类成员所在的第二软件包的身份标识,从信息表中确定所述第二软件包的安装地址。
根据所述第二软件包的安装地址,确定所述第二软件包的输出常量池;所述第二软件包的输出常量池多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引,寻址索引用于指示类成员的安装地址,第一压缩标识用于指示类成员的索引参数。
根据所述目标类成员的第二压缩标识,从所述第二软件包的输出常量池中确定与所述目标类成员的第二压缩标识匹配的第一压缩标识。
根据所述第一压缩标识对应的寻址索引,确定所述目标类成员的安装地址,以使所述第一软件包引用目标类成员。
7.一种软件包的输出常量池的生成装置,其特征在于,应用于软件包编译***,包括:
提取模块,用于从软件包中提取所述软件包对应的第一初始常量池;所述第一初始常量池包括所述软件包的至少一个第一类成员项,所述至少一个第一类成员项中的每个第一类成员项均包括被定义为需要暴露的类成员的第一索引参数;
处理模块,用于对所述第一索引参数进行压缩处理,以得到所述类成员的第一压缩标识;
生成模块,用于生成所述软件包的输出常量池,所述输出常量池包括所述软件包的多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引,所述寻址索引用于指示所述类成员的安装地址,所述第一压缩标识用于指示所述类成员的索引参数。
8.一种软件包的引用常量池的生成装置,其特征在于,应用于软件包编译***,包括:
提取模块,用于从软件包中提取所述软件包的第二初始常量池,所述第二初始常量池包括所述软件包的身份标识和至少一个第三类成员项,所述第三类成员项中的每个第三类成员项均包括所述软件包需要引用的的类成员的第三索引参数和所述类成员所在的目标软件包的身份标识;
确定模块,用于根据所述目标软件包的身份标识,确定所述目标软件包的第一初始常量池、输出常量池和映射表;其中,所述目标软件包的输出常量池包括所述目标软件包的多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括所述类成员的第一压缩标识和寻址索引;
所述确定模块还用于根据所述目标软件包的第一初始常量池和映射表,从所述目标软件包的输出常量池中确定所述第三索引参数对应的第一压缩标识;
生成模块,用于根据所述第三索引参数对应的第一压缩标识和所述软件包的身份标识,生成第三索引参数对应的第二压缩标识;
所述生成模块还用于生成所述软件包的引用常量池,所述引用常量池包括至少一个第四类成员项,所述至少一个第四类成员项包括第二压缩标识,所述第二压缩标识用于指示所述类成员的索引参数。
9.一种类成员的引用装置,其特征在于,应用于计算机设备,所述计算机设备包括已安装的第一软件包、第二软件包和信息表,所述信息表包括所述计算机设备已安装的软件包的身份标识和安装地址,包括:
第一确定模块,用于根据所述第一软件包的引用常量池,确定所述第一软件包所引用的目标类成员的第二压缩标识,所述第二压缩标识包括目标类成员所在的第二软件包的身份标识。
第二确定模块,用于根据目标类成员所在的第二软件包的身份标识,从信息表中确定所述第二软件包的安装地址。
第三确定模块,用于根据所述第二软件包的安装地址,确定所述第二软件包的输出常量池;所述第二软件包的输出常量池多个第二类成员项,所述多个第二类成员项中的每个第二类成员项均包括类成员的第一压缩标识和寻址索引,寻址索引用于指示类成员的安装地址,第一压缩标识用于指示类成员的索引参数。
匹配模块,用于根据所述目标类成员的第二压缩标识,从所述第二软件包的输出常量池中确定与所述目标类成员的第二压缩标识匹配的第一压缩标识。
第四确定模块,用于根据所述第一压缩标识对应的寻址索引,确定所述目标类成员的安装地址,以使所述第一软件包引用目标类成员。
10.一种计算机设备,其特征在于,包括:
至少一个存储器,用于存储程序;
至少一个处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行如权利要求1-4任一所述的方法,或执行如权利要求5所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210240598.6A CN114594964B (zh) | 2022-03-10 | 2022-03-10 | 软件包的输出常量池的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210240598.6A CN114594964B (zh) | 2022-03-10 | 2022-03-10 | 软件包的输出常量池的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114594964A true CN114594964A (zh) | 2022-06-07 |
CN114594964B CN114594964B (zh) | 2022-10-11 |
Family
ID=81818572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210240598.6A Active CN114594964B (zh) | 2022-03-10 | 2022-03-10 | 软件包的输出常量池的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114594964B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843759A (zh) * | 2017-01-17 | 2017-06-13 | 苏州同元软控信息技术有限公司 | 一种基于动态***结果数据的快速读写方法 |
US9781255B1 (en) * | 2015-06-08 | 2017-10-03 | Sprint Communications Company L.P. | Authentication of phone call origination |
CN107368292A (zh) * | 2017-03-29 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 一种资源编译方法及装置 |
CN109947703A (zh) * | 2017-11-09 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 文件***、文件存储方法、存储装置和计算机可读介质 |
CN111090628A (zh) * | 2019-12-20 | 2020-05-01 | 上海米哈游网络科技股份有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN112579129A (zh) * | 2020-12-21 | 2021-03-30 | 三六零视觉(北京)科技有限公司 | 基于服务器的软件更新方法、装置、设备及存储介质 |
CN113485686A (zh) * | 2021-07-22 | 2021-10-08 | 苏州万戈软件科技有限公司 | 信息***程序的生成方法、装置、电子设备及存储介质 |
-
2022
- 2022-03-10 CN CN202210240598.6A patent/CN114594964B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9781255B1 (en) * | 2015-06-08 | 2017-10-03 | Sprint Communications Company L.P. | Authentication of phone call origination |
CN106843759A (zh) * | 2017-01-17 | 2017-06-13 | 苏州同元软控信息技术有限公司 | 一种基于动态***结果数据的快速读写方法 |
CN107368292A (zh) * | 2017-03-29 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 一种资源编译方法及装置 |
CN109947703A (zh) * | 2017-11-09 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 文件***、文件存储方法、存储装置和计算机可读介质 |
CN111090628A (zh) * | 2019-12-20 | 2020-05-01 | 上海米哈游网络科技股份有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN112579129A (zh) * | 2020-12-21 | 2021-03-30 | 三六零视觉(北京)科技有限公司 | 基于服务器的软件更新方法、装置、设备及存储介质 |
CN113485686A (zh) * | 2021-07-22 | 2021-10-08 | 苏州万戈软件科技有限公司 | 信息***程序的生成方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114594964B (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN110706147B (zh) | 图像处理的环境确定方法、装置、电子设备和存储介质 | |
CN111459511B (zh) | 应用程序的下载方法、装置及电子设备 | |
CN111124420A (zh) | 编译方法、装置、电子设备及可读存储介质 | |
CN112506486A (zh) | 搜索***建立方法、装置、电子设备及可读存储介质 | |
CN112269706A (zh) | 接口参数校验方法、装置、电子设备以及计算机可读介质 | |
CN112965721B (zh) | 基于Android的项目编译方法、装置、计算机设备及存储介质 | |
CN114327481A (zh) | 代码处理方法、装置、设备以及存储介质 | |
CN114594964B (zh) | 软件包的输出常量池的生成方法及装置 | |
CN111767149B (zh) | 调度方法、装置、设备及存储设备 | |
CN111694586A (zh) | 程序初始化方法、程序初始化装置、终端设备及存储介质 | |
CN116009847A (zh) | 代码生成方法、装置、电子设备及存储介质 | |
CN115220740A (zh) | 数据库环境部署方法、装置、电子设备及存储介质 | |
CN115168358A (zh) | 数据库访问方法、装置、电子设备及存储介质 | |
CN115033605A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN114880020A (zh) | 软件开发工具包管理方法、相关装置及计算机程序产品 | |
CN115033871A (zh) | 应用程序的运行环境生成方法及装置 | |
CN114356379A (zh) | 基于备份的服务升级方法、装置、设备及存储介质 | |
CN112506796A (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN116126366B (zh) | 芯片输入输出接口配置方法,装置,介质及电子设备 | |
CN110413644B (zh) | 一种数据缓存方法、电子装置及计算机可读存储介质 | |
CN113064797B (zh) | 前端监控方法、装置、电子设备及存储介质 | |
CN113342379B (zh) | 微服务升级方法、装置、电子设备及存储介质 | |
CN115114690B (zh) | 一种飞行工程算法的编排方法、编排装置和电子设备 | |
CN117742820A (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 |