一种基于短名称的链接方法和系统与流程

文档序号:31468086发布日期:2022-09-09 22:14阅读:来源:国知局

技术特征:
1.一种基于短名称的链接方法,其特征在于,所述方法用于对程序文件中定义的类和接口进行转换得到可执行文件及名称映射文件,通过名称映射文件对可执行文件进行快速解析安装,所述方法包括以下步骤:若接收到所输入的待转换应用文件,设定需要进行名称转换的成员的转换规则,所述成员包括公开类和接口、类的所有实例域、公开和受保护的静态域、公开和受保护的静态方法、虚方法、接口方法;设定内部成员访问指令使用内部成员的表示方法,所述内部成员访问指令包括静态域访问指令、静态方法调用指令及对象访问指令;设定方法的异常处理程序的内部异常类使用内部成员的表示方法;设定所述成员进行名称转换的转换实现流程;根据所述成员进行名称转换的转换规则及所述内部成员访问使用内部成员的表示方法生成与所述待转换应用文件对应的可执行文件及名称映射文件;所述可执行文件包括应用信息段、链接数据段、动态绑定数据段、静态绑定段及代码段;对所述可执行文件进行解析安装。2.如权利要求1所述的一种基于短名称的链接方法,其特征在于,所述设定需要进行名称转换的成员的转换规则,包括:设定公开类和接口的名称转换为有序的字符数量较少的短名称;设定类的所有实例域的名称转换为有序的字符数量较少的短名称;设定虚方法的名称转换为有序的字符数量较少的短名称;设定静态域、静态方法、接口方法的名称均转换为有序的字符数量较少的短名称。3.如权利要求1所述的一种基于短名称的链接方法,其特征在于,所述设定所述成员进行名称转换的转换实现流程,包括:获取所述待转换应用文件中公开类和接口的名称并依次转换为由大写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

;对所述待转换应用文件中的实例域按顺序进行排序分组,以将所述实例域分组为公开/受保护的基本类型、公开/受保护的引用类型、包或者私有的应用类型、包或者私有的基本类型,将实例域的名称依次转换为由小写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

,记录其中首个引用类型的名称以及所有引用类型的个数;获取所述待转换应用文件中的虚方法的名称并依次转换为由小写字母组成的2字符短名称,虚方法中的公开/受保护的虚方法从根超类的虚方法开始依次转换为aa、ab、ac

az、ba、bb

mz;子类定义的虚方法接着超类的虚方法连续命名,且子类覆盖超类定义的虚方法则和超类转换的名称保持一致;虚方法中包可见的虚方法从无同包超类的类的虚方法开始依次转换为na、nb、nc

zz;子类定义的虚方法接着同包中的超类的虚方法连续命名,覆盖同包超类声明的虚方法则和超类转换的名称保持一致;获取所述待转换应用文件中接口方法的名称并依次转换为由小写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

;获取所述待转换应用文件中公开和受保护的静态域的名称并判断静态域是否为fianl基本数据类型的静态域;若是则将静态域的名称转换为2字符短名称zz并获取对应的常数值;若不是则将静态域的名称依次转换为其它由小写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

;获取所述待转换应用文件中公开和受保护的静态方法并依次将静态方法的名称转换为由小写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

。4.如权利要求1所述的一种基于短名称的链接方法,其特征在于,所述根据所述成员进行名称转换的转换规则及所述内部成员访问指令使用内部成员的表示方法生成与所述待转换应用文件对应的可执行文件及名称映射文件,包括:获取待转换应用文件中各成员的元素名称与转换后名称的映射关系,以生成对应的名称映射文件;获取所述待转换应用文件中应用的标识信息和安装方法在代码段的偏移,以及所输入的应用的实现类的配置参数组合以生成对应的应用信息段,其中应用的安装方法由应用类的静态方法实现;获取所述待转换应用文件中声明的所有类的信息及接口的信息,以生成对应的动态绑定数据段;所述类的信息包括新建实例指令需要的所有信息;获取所述待转换应用文件中声明的所有静态域的信息,以生成对应的静态绑定数据段;根据名称映射文件生成与所述待转换应用文件对应的链接数据段,所述链接数据段包括导入包子段、常量池子段、代码常量池索引位置子段、本包输出项子段;获取所述待转换应用文件中所有类定义的方法的字节码以及异常处理程序信息,以生成对应的代码段。5.如权利要求4所述的一种基于短名称的链接方法,其特征在于,所述根据名称映射文件生成与所述待转换应用文件对应的链接数据段,包括:从所述名称映射文件获取每个导入包的表述信息,以生成对应的导入包子段;从所述待转换应用文件的代码段中获取指令引用的类、方法和域,以生成对应的常量池子段;获取所述待转换应用文件中所有常量池索引的位置,以生成对应的代码常量池索引位置子段;获取所述待转换应用文件中每个类在动态绑定数据段中的偏移,以及类中每个静态域在静态域镜像中的偏移、类中每个静态方法在代码段中的偏移,以生成对应的本包输出项子段。6.一种基于短名称的链接系统,其特征在于,包括以下装置:转换规则设定装置,用于若接收到所输入的待转换应用文件,设定需要进行名称转换的成员的转换规则,所述成员包括公开类和接口、类的所有实例域、公开和受保护的静态域、公开和受保护的静态方法、虚方法、接口方法;表示方法设定装置,用于设定内部成员访问指令使用内部成员的表示方法,所述内部成员访问指令包括静态域访问指令、静态方法调用指令及对象访问指令;用于设定方法的异常处理程序的内部异常类使用内部成员的表示方法;转换实现流程设定装置,用于设定所述成员进行名称转换的转换实现流程;文件生成装置,用于根据所述成员进行名称转换的转换规则及所述内部成员访问指令使用内部成员的表示方法生成与所述待转换应用文件对应的可执行文件及名称映射文件;
所述可执行文件包括应用信息段、链接数据段、动态绑定数据段、静态绑定段及代码段;文件解析安装装置,用于对所述可执行文件进行解析安装。7.如权利要求6所述的一种基于短名称的链接系统,其特征在于,所述转换规则设定装置包括单元:第一设定单元,用于设定公开类和接口的名称转换为有序的字符数量较少的短名称;第二设定单元,用于设定类的所有实例域的名称转换为有序的字符数量较少的短名称;第三设定单元,用于设定虚方法的名称转换为有序的字符数量较少的短名称;第四设定单元,用于设定静态域、静态方法、接口方法的名称均转换为有序的字符数量较少的短名称。8.如权利要求6所述的一种基于短名称的链接系统,其特征在于,所述转换实现流程设定装置包括单元:第一转换实现单元,用于获取所述待转换应用文件中公开类和接口的名称并依次转换为由大写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

;第二转换实现单元,用于对所述待转换应用文件中的实例域按顺序进行排序分组,以将所述实例域分组为公开/受保护的基本类型、公开/受保护的引用类型、包或者私有的应用类型、包或者私有的基本类型,将实例域的名称依次转换为由小写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

,记录其中首个引用类型的名称以及所有引用类型的个数;第三转换实现单元,用于获取所述待转换应用文件中的虚方法的名称并依次转换为由小写字母组成的2字符短名称,虚方法中的公开/受保护的虚方法从根超类的虚方法开始依次转换为aa、ab、ac

az、ba、bb

mz;子类定义的虚方法接着超类的虚方法连续命名,且子类覆盖超类定义的虚方法则和超类转换的名称保持一致;虚方法中包可见的虚方法从无同包超类的类的虚方法开始依次转换为na、nb、nc

zz;子类定义的虚方法接着同包中的超类的虚方法连续命名,覆盖同包超类声明的虚方法则和超类转换的名称保持一致;第四转换实现单元,用于获取所述待转换应用文件中接口方法的名称并依次转换为由小写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

;第五转换实现单元,用于获取所述待转换应用文件中公开和受保护的静态域的名称并判断静态域是否为fianl基本数据类型的静态域;若是则将静态域的名称转换为2字符短名称zz并获取对应的常数值;若不是则将静态域的名称依次转换为其它由小写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

;第六转换实现单元,用于获取所述待转换应用文件中公开和受保护的静态方法并依次将静态方法的名称转换为由小写字母组成的2字符短名称:aa、ab、ac

az、ba、bb

。9.如权利要求6所述的一种基于短名称的链接系统,其特征在于,所述文件生成装置包括单元:名称映射文件生成单元,用于获取待转换应用文件中各成员的元素名称与转换后名称的映射关系,以生成对应的名称映射文件;应用信息段生成单元,用于获取所述待转换应用文件中应用的标识信息和安装方法在代码段的偏移,以及所输入的应用的实现类的配置参数组合以生成对应的应用信息段,其中应用的安装方法由应用类的静态方法实现;
动态绑定数据段生成单元,用于获取所述待转换应用文件中声明的所有类的信息及接口的信息,以生成对应的动态绑定数据段;所述类的信息包括新建实例指令需要的所有信息;静态绑定数据段生成单元,用于获取所述待转换应用文件中声明的所有静态域的信息,以生成对应的静态绑定数据段;链接数据段生成单元,用于根据名称映射文件生成与所述待转换应用文件对应的链接数据段,所述链接数据段包括导入包子段、常量池子段、代码常量池索引位置子段、本包输出项子段;代码段生成单元,用于获取所述待转换应用文件中所有类定义的方法的字节码以及异常处理程序信息,以生成对应的代码段。10.如权利要求9所述的一种基于短名称的链接系统,其特征在于,所述链接数据段生成单元包括单元:导入包子段生成单元,用于从所述名称映射文件获取每个导入包的表述信息,以生成对应的导入包子段;常量池子段生成单元,用于从所述待转换应用文件的代码段中获取指令引用的类、方法和域,以生成对应的常量池子段;常量池索引位置子段生成单元,用于获取所述待转换应用文件中所有常量池索引的位置,以生成对应的代码常量池索引位置子段;本包输出项子段生成单元,用于获取所述待转换应用文件中每个类在动态绑定数据段中的偏移,以及类中每个静态域在静态域镜像中的偏移、类中每个静态方法在代码段中的偏移,以生成对应的本包输出项子段。

技术总结
本发明涉及一种基于短名称的链接方法和系统,属于程序链接及映射技术领域。本发明所述的方法中设定需进行名称转换的成员的转换规则,设定内部成员访问指令使用内部成员的标识方法,设定方法的异常处理程序的内部异常类使用内部成员的表示方法;设定成员进行名称转换的转换实现流程;根据所述成员进行名称转换的转换规则及所述内部成员访问指令使用内部成员的表示方法生成与所述待转换应用文件对应的可执行文件及名称映射文件;对所述可执行文件进行解析安装。采用本发明所述的方法,能够有效减少常量池的大小,进而减少指令的常量池索引解析操作,可以显著提高应用的下载和安装性能。装性能。装性能。


技术研发人员:石玉平 郑江东 徐俊江 王幼君
受保护的技术使用者:北京握奇智能科技有限公司
技术研发日:2022.04.18
技术公布日:2022/9/8
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1