System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 增量编译方法、增量编译装置、存储介质及电子设备制造方法及图纸_技高网

增量编译方法、增量编译装置、存储介质及电子设备制造方法及图纸

技术编号:41327789 阅读:4 留言:0更新日期:2024-05-13 15:05
本公开实施方式涉及一种增量编译方法、增量编译装置、存储介质与电子设备,涉及计算机技术领域或者程序修改技术领域。方法包括:在应用程序首次全量编译过程中,确定依赖文件与加密信息之间的映射关系;监测所述依赖文件,在所述依赖文件对应的加密信息发生变化的情况下,确定所述依赖文件发生变化;基于发生变化的依赖文件,生成增量资源文件产物包和增量类文件产物包;将所述增量资源文件产物包和所述增量类文件产物包发送至客户端进行热加载。如此,在修改部分依赖文件的情况下,只需对修改的这部分依赖文件进行增量编译,无需全量编译,提高了软件开发效率。

【技术实现步骤摘要】

本公开的实施方式涉及计算机或者程序修改,更具体地,本公开的实施方式涉及一种增量编译方法、增量编译装置、计算机可读存储介质及电子设备。


技术介绍

1、本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。

2、软件(应用程序)开发过程中,当开发人员修改功能逻辑代码或者资源后,如果想在客户端(比如:手机、平板电脑、笔记本等)看到修改后的效果,需要将修改的代码或者资源进行打包安装,这里的打包流程由很多任务组成,这些任务有系统的任务,也有开发人员自定义的任务,而应用程序包的打包流程是将这些任务执行一遍,最后生成新的应用程序包文件,然后将新的应用程序包文件发送给客户端进行安装,安装成功后即可看到修改后的效果。


技术实现思路

1、然而,相关技术中存在一些问题,比如:修改了一个类文件,或者一个资源文件,也需要重新打包,而重新打包又会执行很多不需要的任务,而这些任务耗时各异,会严重影响开发进度。

2、为此,非常需要一种增量编译方法,以提高软件开发效率。

3、在本上下文中,本公开的实施方式期望提供一种增量编译方法、增量编译装置、计算机可读存储介质及电子设备。

4、根据本公开的第一方面,提供一种增量编译方法,所述方法包括:在应用程序首次全量编译过程中,确定依赖文件与加密信息之间的映射关系;监测所述依赖文件,在所述依赖文件对应的加密信息发生变化的情况下,确定所述依赖文件发生变化;基于发生变化的依赖文件,生成增量资源文件产物包和增量类文件产物包;将所述增量资源文件产物包和所述增量类文件产物包发送至客户端进行热加载。

5、在一种实施方式中,所述依赖文件包括类文件,所述加密信息包括哈希值;所述确定依赖文件与加密信息之间的映射关系,包括:将源代码目录下的所有文件确定为所述类文件;采用哈希算法对所述类文件进行加密,得到所述类文件的哈希值;保存所述类文件的路径与所述类文件的哈希值之间的映射关系。

6、在一种实施方式中,所述依赖文件包括资源文件,所述加密信息包括哈希值;所述确定依赖文件与加密信息之间的映射关系,包括:将资源目录下的所有文件确定为所述资源文件;采用哈希算法对所述资源文件进行加密,得到所述资源文件的哈希值;保存所述资源文件的路径与所述资源文件的哈希值之间的映射关系。

7、在一种实施方式中,所述哈希算法包括md5信息摘要算法。

8、在一种实施方式中,所述在所述依赖文件对应的加密信息发生变化的情况下,确定所述依赖文件发生变化,包括:确定所述首次全量编译的所述依赖文件的加密信息和当前加密信息是否一致,在所述加密信息和所述当前加密信息不一致的情况下,确定所述依赖文件发生变化。

9、在一种实施方式中,所述基于发生变化的依赖文件,生成增量资源文件产物包,包括:获取发生变化的资源文件,并通过资源打包工具对所述发生变化的资源文件进行编译,得到一类资源编译产物;确定所述首次全量编译过程中通过所述资源打包工具生成的编译产物,得到二类资源编译产物;确定所述首次全量编译依赖的第三方数据库中的资源,并通过所述资源打包工具对所述第三方数据库中的资源进行编译,得到三类资源编译产物;至少将所述一类资源编译产物、所述二类资源编译产物、所述三类资源编译产物中的一类资源编译产物打包,得到所述增量资源文件产物包。

10、在一种实施方式中,所述方法还包括:将所述一类资源编译产物、所述第二资源编译产物和所述三类资源编译产物存储至预设缓存目录。

11、在一种实施方式中,所述方法还包括:对所述增量资源文件产物包中的resources.arsc文件和资源文件夹进行裁剪,以减小所述增量资源文件产物包。

12、在一种实施方式中,所述对所述增量资源文件产物包中的resources.arsc文件和资源文件夹进行裁剪,包括:在resources.arsc文件中的id值在资源文件夹中存在对应的资源文件的情况下,删除所述resources.arsc文件中的id值以及在所述资源文件夹中对应的资源文件;将所述资源文件夹中的剩余文件、所述resources.arsc文件中的剩余文件以及所述更新资源包中的androidmanifest.xml文件写入新的压缩包,得到裁剪后的所述增量资源文件产物包。

13、在一种实施方式中,所述方法还包括:在resources.arsc文件中的id值在资源文件夹中不存在对应的资源文件的情况下,输出异常提示信息;所述异常提示信息用于表示所述id值对应的资源文件无法找到。

14、在一种实施方式中,所述基于发生变化的依赖文件,生成增量类文件产物包,包括:从发生变化的资源文件中确定存在layout标签的资源文件,并根据所述存在layout标签的资源文件生成对应的一类辅助类文件;获取发生变化的类文件,对所述发生变化的类文件进行预处理,得到预处理产物和二类辅助类文件;至少对所述发生变化的类文件、所述预处理产物、所述一类辅助类文件和所述二类辅助类文件中的所述发生变化的类文件进行编译,得到所述增量类文件产物包。

15、在一种实施方式中,所述方法还包括:确定所述首次全量编译的过程中注册的插件;解析所述插件,得到所述插件的执行者路径和注解名;生成所述执行者路径与所述注解名之间的映射关系。

16、在一种实施方式中,所述对所述发生变化的类文件进行预处理,得到预处理产物,包括:获取发生变化的类文件;根据所述发生变化的类文件确定发生变化的行内容,并提取所述发生变化的行内容的注解信息;根据所述发生变化的行内容的注解信息,查询所述执行者路径与所述注解名之间的映射关系,确定所述发生变化的行内容的注解信息对应的执行者路径所对应的插件;根据所述发生变化的类文件和所述插件,生成注解源代码。

17、在一种实施方式中,所述方法还包括:确定带有预设标识符的类文件,并生成所述带有预设标识符的类文件所在的文件包的包名与所述带有预设标识符的类文件的文件路径之间的映射关系。

18、在一种实施方式中,一类辅助类文件包括binding.java文件和bindinglmpl.java文件;所述至少对所述发生变化的类文件、所述预处理产物、所述一类辅助类文件和所述二类辅助类文件中的所述发生变化的类文件进行编译,包括:根据所述存在layout标签的资源文件,生成binding.java文件;通过kotlinc命令,对所述binding.java文件和文件后缀名为.kt的类文件进行编译,得到一阶段编译产物;根据所述存在layout标签的资源文件,生成bindinglmpl.java文件;通过javac命令,对所述bindinglmpl.java文件、后缀名为.java的类文件和所述一阶段编译产物进行编译,得到二阶段编译产物。

19、在一种实施方式中,所述至少对所述发生变化的类文件、所述预处理产物、所述一类辅助类文件和所述二类辅助类文件中的所述发生变化的类文件进本文档来自技高网...

【技术保护点】

1.一种增量编译方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述依赖文件包括类文件,所述加密信息包括哈希值;所述确定依赖文件与加密信息之间的映射关系,包括:

3.根据权利要求1所述的方法,其特征在于,所述依赖文件包括资源文件,所述加密信息包括哈希值;所述确定依赖文件与加密信息之间的映射关系,包括:

4.根据权利要求2或3所述的方法,其特征在于,所述哈希算法包括md5信息摘要算法。

5.根据权利要求1所述的方法,其特征在于,所述在所述依赖文件对应的加密信息发生变化的情况下,确定所述依赖文件发生变化,包括:

6.根据权利要求1所述的方法,其特征在于,所述基于发生变化的依赖文件,生成增量资源文件产物包,包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.一种增量编译装置,其特征在于,所述装置包括:

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7任一项所述的方法。

10.一种电子设备,其特征在于,包括:

...

【技术特征摘要】

1.一种增量编译方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述依赖文件包括类文件,所述加密信息包括哈希值;所述确定依赖文件与加密信息之间的映射关系,包括:

3.根据权利要求1所述的方法,其特征在于,所述依赖文件包括资源文件,所述加密信息包括哈希值;所述确定依赖文件与加密信息之间的映射关系,包括:

4.根据权利要求2或3所述的方法,其特征在于,所述哈希算法包括md5信息摘要算法。

5.根据权利要求1所述的方法,其特征在于,所述在所...

【专利技术属性】
技术研发人员:张颖曹仁李学勇施方方裘国庆
申请(专利权)人:杭州网易云音乐科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1