一种程序封装方法、装置及电子设备制造方法及图纸

技术编号:24010073 阅读:37 留言:0更新日期:2020-05-02 01:26
本说明书实施例公开了程序封装方法、装置及电子设备。方案包括:获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;对所述主程序进行编译,得到编译文件;当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,根据所述编译文件中的资源ID修改所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;对所述主程序和修改后的所述多个软件开发工具包进行封装。

A program packaging method, device and electronic equipment

【技术实现步骤摘要】
一种程序封装方法、装置及电子设备
本申请涉及计算机
,尤其涉及一种程序封装方法、装置及电子设备。
技术介绍
现有技术中,应用APP在向第三方应用提供某个服务时,第三方应用往往需要调用应用APP中多个软件开发工具包(SoftwareDevelopmentKit,SDK)来共同完成该服务,而多个SDK之间往往不相关,因此,第三方应用的开发人员需要学习每个SDK的具体内容和编程逻辑,从而给第三方应用带来过多的资源消耗,降低了接入效率。因此,需要提供更快速或者更可靠的程序封装方案。
技术实现思路
有鉴于此,本申请实施例提供了一种程序封装方法、装置及电子设备,用于提高应用程序的接入效率。为解决上述技术问题,本说明书实施例是这样实现的:本说明书实施例提供的一种程序封装方法,包括:获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;对所述主程序进行编译,得到编译文件;当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,根据所述编译文件中的资源ID修改所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;对所述主程序和修改后的所述多个软件开发工具包进行封装。本说明书实施例提供的另一种程序封装方法,包括:获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;对所述主程序进行编译,得到编译文件;当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,修改所述编译文件中的资源ID和所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;对修改后的所述编译文件和修改后的所述多个软件开发工具包进行封装。本说明书实施例提供的一种程序封装装置,包括:软件开发工具包获取模块,用于获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;主程序编译模块,用于对所述主程序进行编译,得到编译文件;资源ID修改模块,用于当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,根据所述编译文件中的资源ID修改所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;程序封装模块,用于对所述主程序和修改后的所述多个软件开发工具包进行封装。本说明书实施例提供的另一种程序封装装置,包括:软件开发工具包获取模块,用于获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;主程序编译模块,用于对所述主程序进行编译,得到编译文件;资源ID修改模块,用于当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,修改所述编译文件中的资源ID和所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;程序封装模块,用于对修改后的所述编译文件和修改后的所述多个软件开发工具包进行封装。本说明书实施例提供的一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;对所述主程序进行编译,得到编译文件;当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,根据所述编译文件中的资源ID修改所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;对所述主程序和修改后的所述多个软件开发工具包进行封装。本说明书实施例提供的另一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;对所述主程序进行编译,得到编译文件;当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,修改所述编译文件中的资源ID和所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;对修改后的所述编译文件和修改后的所述多个软件开发工具包进行封装。本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现上述方法。本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:本说明书实施例提供的程序封装方法,将支持服务功能实现的多个软件开发工具包和主程序进行合并后再输出,接入方的开发人员只需要学习一个合并程序的内容即可,无需对多个软件开发工具包分别进行学习,减少了接入方对接入服务的学习过程,提高了应用程序的接入效率。另外,将多个软件开发工具包进行封装,可能会面临一个资源ID对应多个资源文件的情况,因此本方案将多个软件开发工具包和主程序中的资源文件的资源ID重新进行命名,从而避免一个资源ID对应多个资源文件引起的资源文件引用冲突问题的发生。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本说明书实施例提供的一种程序封装方法的实施例一的流程示意图;图2为本说明书实施例提供的一种程序封装方法的实施例二的流程示意图;图3为本说明书实施例提供的对应于图1的一种程序封装装置的结构示意图;图4为本说明书实施例提供的对应于图2的一种程序封装装置的结构示意图;图5为本说明书实施例提供的一种电子设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。当一个应用APP(接入方)需要接入另一个应用(输出方)的某项服务(如付款码服务)时,就需要调用输出方提供的该项服务的SDK,接入方的开发人员通过对该SDK进行解压,并学习该SDK的逻辑之后,就可以实现该SDK的功能。但是,在一些情况下,输出方的开发平台的功能比较多,为了方便开发人员的编程,会把一些经常用到的实现基础功能的程序进行封装,生成基础SDK。开发人员在开发某项服务,需要实现某项功能时只需调用这些基础SDK来实本文档来自技高网...

【技术保护点】
1.一种程序封装方法,包括:/n获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;/n对所述主程序进行编译,得到编译文件;/n当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,根据所述编译文件中的资源ID修改所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;/n对所述主程序和修改后的所述多个软件开发工具包进行封装。/n

【技术特征摘要】
1.一种程序封装方法,包括:
获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;
对所述主程序进行编译,得到编译文件;
当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,根据所述编译文件中的资源ID修改所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;
对所述主程序和修改后的所述多个软件开发工具包进行封装。


2.如权利要求1所述的方法,所述根据所述编译文件中的资源ID修改所述多个软件开发工具包中的资源ID,具体包括:
从所述多个软件开发工具包中的资源文件中筛选与所述编译文件中的资源ID相同的资源文件;
根据已有的资源ID,对所述筛选出来的资源文件重新进行资源ID命名。


3.如权利要求2所述的方法,所述根据所述编译文件中的资源ID修改所述多个软件开发工具包中的资源ID,还包括:
将所述多个软件开发工具包中的R.java文件中的资源ID替换为修改后的资源ID;
将所述软件开发工具包中的资源文件引用语句中的资源ID替换为修改后的资源ID。


4.如权利要求1所述的方法,在所述对所述主程序和修改后的所述多个软件开发工具包进行封装之前,所述方法还包括:
解压所述多个软件开发工具包,得到多个manifest文件;
将所述多个manifest文件中的进程名以及所述主程序的manifest文件中的进程名修改为相同的进程名;
合并所述多个manifest文件以及所述主程序的manifest文件,生成合并后的manifest文件。


5.如权利要求4所述的方法,将所述多个manifest文件中的进程名以及所述主程序的manifest文件中的进程名修改为相同的进程名,具体包括:
获取所述主程序的manifest文件中的多个进程名和所述多个manifest文件中的多个进程名;
确定主进程名,所述主进程名为所述主程序的manifest文件中的多个进程名中的一个,或者,所述主进程名为所述多个manifest文件中的多个进程名中的一个;
将所述主程序的manifest文件中的多个进程名修改为所述主进程名;
将所述多个manifest文件中的多个进程名修改为所述主进程名。


6.如权利要求1所述的方法,所述对所述主程序和修改后的所述多个软件开发工具包进行封装,具体包括:
合并所述主程序的源代码和所述多个软件开发工具包的源代码,生成合并后的源代码;
对所述合并后的源代码进行统一混淆。


7.一种程序封装方法,包括:
获取主程序调用的多个软件开发工具包,所述多个软件开发工具包用于实现所述主程序的辅助功能;
对所述主程序进行编译,得到编译文件;
当所述编译文件中的资源ID与所述多个软件开发工具包中的资源ID发生冲突时,修改所述编译文件中的资源ID和所述多个软件开发工具包中的资源ID,以使一个所述资源ID标识的资源文件是唯一的;
对修改后的所述编译文件和修改后的所述多个软件开发工具包进行封装。


8.如权利要求7所述的方法,所述修改所述编译文件中的资源ID和所述多个软件开发工具包中的资源ID,具体包括:
从所述多个软件开发工具包中的资源文件和所述主程序中的资源文件中筛选出具有相同资源ID的多个资源文件;
对筛选出来的所述多个资源文件重新进行资源ID命名。


9.如权利要求7所述的方法,所述修改所述编译文件中的资源ID和所述多个软件开发工具包中的资源ID,还包括:
将所述主程序的R.java文件中的资源ID和所述多个软件开发工具包中的R.java文件中的资源ID替换为修改后的资源ID;
...

【专利技术属性】
技术研发人员:王鹏锋鲁教
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1