软件开发套件打包方法、存储介质及电子装置与流程

文档序号:38400733发布日期:2024-06-21 20:47阅读:16来源:国知局
软件开发套件打包方法、存储介质及电子装置与流程

本申请涉及智慧家庭,尤其涉及一种软件开发套件打包方法、存储介质及电子装置。


背景技术:

1、android应用开发过程中避免不了开发软件开发套件software developmentkit,简称sdk)。例如统计分析sdk,网络请求sdk,音视频sdk等等。android官方提供的gradle插件对于多模块打包apk(android package,应用程序安装文件)支持较好,但是对于多模块sdk支持并不友好。比如大型sdk项目,最终输出的并不是apk,而是以aar(androidarchive)包的形式提供出去供第三方使用,项目工程一般会以业务拆分成多个不同的模块(sub project),以及一些基础模块等。

2、目前,在相关技术中sdk打包方式只能打包单独的模块,而对于多模块的复杂项目打包而束手无策。例如某个sdk包括八个模块,那么需要分别将此八个模块分别打包成八个对应的aar包。此外,相关技术中还可以先分模块单独打包,再对多个aar包进行拆包在合包,但是此种拆包再合并的方式操作繁琐,大多需要外部脚本来完成,比如python脚本或者shell脚本等,可维护性差。


技术实现思路

1、本申请提供一种软件开发套件打包方法、存储介质及电子装置,用以解决现有技术中软件开发套件打包数量过多且打包过程繁琐的缺陷,实现软件开发套件的多模块的合并打包。

2、根据本申请的第一方面,本申请提供了一种软件开发套件打包方法,所述方法包括:

3、为包括多个功能模块的软件开发套件的每个功能模块分别创建构建任务,其中,所述构建任务至少用于对功能模块进行编译以生成编译文件;

4、对所述软件开发套件的各个功能模块进行模块关系分析,得到第一功能模块和第二功能模块,其中,所述第一功能模块依赖所述第二功能模块;

5、将第一预设子任务和第二预设子任务挂载到所述第一功能模块对应的构建任务中,其中,所述第一预设子任务用于在所述第一功能模块编译前将外部资源拷贝到所述第一功能模块中,所述第二预设子任务用于对所述第一功能模块和所述第二功能模块的编译文件进行编译文件整合操作得到整合后编译文件;

6、对所述第一功能模块执行构建任务所产生的文件进行打包操作,将生成的打包文件作为软件开发套件的目标打包文件输出。

7、在一些可能的实现方式中,所述为包括多个功能模块的软件开发套件的每个功能模块分别创建构建任务,包括:

8、为包括多个功能模块的软件开发套件的每个功能模块分别创建顺依次序执行的预编译子任务、编译aidl子任务和编译java子任务。

9、在一些可能的实现方式中,所述将第一预设子任务和第二预设子任务挂载到所述第一功能模块对应的构建任务中,包括:

10、将所述第一预设子任务挂载到所述预编译子任务与所述编译aidl子任务之间;

11、将所述第二预设子任务挂载到所述编译java子任务之后。

12、在一些可能的实现方式中,在所述将第一预设子任务和第二预设子任务挂载到所述第一功能模块对应的构建任务中的步骤之后,所述方法还包括:

13、判断所述构建任务中是否挂载所述第二预设子任务;

14、响应于所述构建任务中未挂载所述第二预设子任务,则将提取注释子任务挂载到所述编译java子任务之后;

15、响应于所述构建任务中已挂载所述第二预设子任务,则将提取注释子任务挂载到所述第二预设子任务之后。

16、在一些可能的实现方式中,所述对所述第一功能模块和所述第二功能模块的编译文件进行编译文件整合操作得到整合后编译文件,包括:

17、分别获取第一功能模块和第二功能模块执行所述编译java子任务生成的编译文件;

18、将所述第二功能模块对应的编译文件拷贝到所述第一功能模块对应的编译文件中;

19、将拷贝完成后所述第一功能模块对应的编译文件作为整合后编译文件。

20、在一些可能的实现方式中,在所述对所述第一功能模块执行构建任务所产生的文件进行打包操作,将生成的打包文件作为软件开发套件的目标打包文件输出的步骤之后,所述方法还包括:

21、对所述目标打包文件进行签名操作,将生成的签名包输出。

22、在一些可能的实现方式中,所述对所述目标打包文件进行签名操作的步骤,包括:

23、基于md5算法对所述目标打包文件进行签名操作;和/或

24、基于sha1算法对所述目标打包文件进行签名操作。

25、根据本申请的第二方面,本申请还提供了一种软件开发套件打包装置,所述装置包括:

26、任务创建模块,所述任务创建模块用于为包括多个功能模块的软件开发套件的每个功能模块分别创建构建任务,其中,所述构建任务至少用于对功能模块进行编译以生成编译文件;

27、分析模块,所述分析模块用于对所述软件开发套件的各个功能模块进行模块关系分析,得到第一功能模块和第二功能模块,其中,所述第一功能模块依赖所述第二功能模块;

28、任务挂载模块,所述任务挂载模块用于将第一预设子任务和第二预设子任务挂载到所述第一功能模块对应的构建任务中,其中,所述第一预设子任务用于在所述第一功能模块编译前将外部资源拷贝到所述第一功能模块中,所述第二预设子任务用于对所述第一功能模块和所述第二功能模块的编译文件进行编译文件整合操作得到整合后编译文件;

29、打包模块,所述打包模块用于对所述第一功能模块执行构建任务所产生的文件进行打包操作,将生成的打包文件作为软件开发套件的目标打包文件输出。

30、根据本申请的第三方面,本申请还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行实现如上述任一种所述软件开发套件打包方法。

31、根据本申请的第四方面,本申请还提供一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行实现如上述任一种所述软件开发套件打包方法。

32、本申请的一种软件开发套件打包方法,针对包括多个功能模块的软件开发套件,通过先为每个功能模块创建统一的创建构建任务,然后再对软件开发套件的功能模块进行分析从而得到带有依赖关系的第一功能模块和第二功能模块,将第一预设子任务和第二预设子任务挂载到第一功能模块对应的构建任务中,从而实现了对外部资源的拷贝以及多功能模块编译文件的整合,最后再对第一功能模块的构建任务所产生的文件进行打包操作,实现了将多个带有依赖关系的功能模块通过一个打包文件输出,极大的减少了打包文件的数量,使得软件开发套件打包更快速、简洁,具有极佳的灵活性,适合各类定制化软件开发套件打包,具有较好的通用性。

33、此外,本申请的软件开发套件打包装置、计算机可读的存储介质和电子装置,同样能实现上述技术效果,这里不再赘述。



技术特征:

1.一种软件开发套件打包方法,其特征在于,所述方法包括:

2.根据权利要求1所述的软件开发套件打包方法,其特征在于,所述为包括多个功能模块的软件开发套件的每个功能模块分别创建构建任务,包括:

3.根据权利要求2所述的软件开发套件打包方法,其特征在于,所述将第一预设子任务和第二预设子任务挂载到所述第一功能模块对应的构建任务中,包括:

4.根据权利要求3所述的软件开发套件打包方法,其特征在于,在所述将第一预设子任务和第二预设子任务挂载到所述第一功能模块对应的构建任务中的步骤之后,所述方法还包括:

5.根据权利要求3所述的软件开发套件打包方法,其特征在于,所述对所述第一功能模块和所述第二功能模块的编译文件进行编译文件整合操作得到整合后编译文件,包括:

6.根据权利要求1所述的软件开发套件打包方法,其特征在于,在所述对所述第一功能模块执行构建任务所产生的文件进行打包操作,将生成的打包文件作为软件开发套件的目标打包文件输出的步骤之后,所述方法还包括:

7.根据权利要求6所述的软件开发套件打包方法,其特征在于,所述对所述目标打包文件进行签名操作的步骤,包括:

8.一种软件开发套件打包装置,其特征在于,所述装置包括:

9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至7中任一项所述的软件开发套件打包方法。

10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至7中任一项所述的软件开发套件打包方法。


技术总结
本申请公开了一种软件开发套件打包方法、存储介质及电子装置,涉及智慧家庭技术领域。该方法包括:为软件开发套件的每个功能模块分别创建构建任务;对软件开发套件的各个功能模块进行模块关系分析得到第一功能模块及所依赖的第二功能模块;将第一预设子任务和第二预设子任务挂载到第一功能模块对应的构建任务中,第一预设子任务用于在第一功能模块编译前将外部资源拷贝到第一功能模块中,第二预设子任务用于对第一功能模块和第二功能模块的编译文件进行编译文件整合操作得到整合后编译文件;对第一功能模块执行构建任务所产生的文件进行打包操作并作为目标打包文件输出。本申请的方案极大的减少了打包文件的数量,使得打包更快速、简洁。

技术研发人员:杨卫腾,陶颖,邓邱伟,尹飞
受保护的技术使用者:青岛海尔科技有限公司
技术研发日:
技术公布日:2024/6/20
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1