一种修改第三方库的方法、插件以及电子设备、存储介质与流程
- 国知局
- 2024-11-19 09:38:57
本发明涉及计算机,尤其涉及了一种修改第三方库的方法、插件以及电子设备、存储介质。
背景技术:
1、智能型的移动设备发展至今已经迭代了若干代的技术。目前,智能移动设备的主流操作系统是安卓系统。由于安卓系统是一种开源系统,因此各种库的资源非常丰富。程序开发人员在开发应用程序时,可以调用多种已有的库(即第三方库)来满足自己的变成需求。
2、然而,调用他人编写并维护的库文件又可能存在一些令人不仅满意的地方,并不能完全满足程序开发人员当前的需求。因此,需要程序开发人员对调用的库文件进行适应性的修改,以满足自己的使用需求。
3、目前最常用的修改第三方库的方法是将第三方库的整个工程代码全部克隆下来,然后修改第三方库的源码,以供己方使用。但是这样的修改方式存在以下缺陷:
4、a)程序开发人员的工作量巨大,相当于重建一个库,并且还可能遇到编译问题。
5、b)后期维护困难。当第三方库升级后,上述的适应性修改需要程序开发人员手动移植到新版的第三方库中。然而,由于第三方库的修改未知,己方的程序开发人员不能盲目地将旧版本中的修改照搬到新版本中,而是需要大量工作来确认本次修改是否合适。
6、c)增加了编译时间;每次修改都要重新编译发布新的版本。
7、因此亟需开发一种新的修改第三方库的方法,以便能够较为简单的修改第三方库,并且不受第三方库升级的影响,保持修改部分的可延续性。
技术实现思路
1、为了解决上述缺陷,提高修改第三方库的便利性,本发明提出了一种修改第三方库的方法、插件以及电子设备、存储介质。
2、本发明首先提出了一种修改第三方库的方法,包括:
3、创建独立的第一库,用于保存修改后的类;
4、从第三方库中复制待修改的第一类到所述第一库中;
5、在所述第一库中修改所述第一类以得到第二类;
6、建立所述第二类与所述第三方库中的所述第一类之间的映射关系;
7、编译时,在transformtask链中插入第一transform api,所述第一transform api在复制所述第三方库时,将所述第一类替换为所述第二类。
8、上述的方法中,所述第一类和所述第二类的文件名保持一致。
9、上述的方法中,所述在所述第一库中修改所述第一类以得到第二类中,还包括:将所述第二类发布为aar文件。
10、上述的方法中,所述将所述第一类替换为所述第二类中,包括:
11、遍历各库,获取一个或多个所述第一库中的所有类,构成已修改类组;
12、再次遍历各库,根据所述映射关系拒绝从所述第三方库中复制特定类,所述特定类指与所述已修改类组中的类相对应的未修改类。
13、上述的方法中,所述在所述第一库中修改所述第一类以得到第二类中,包括:
14、保持所述第一类中的方法名、变量名不变;
15、修改方法的逻辑;
16、修改方法和变量的属性;
17、增加新的类、方法和变量。
18、基于同一发明构思,本发明还提供了一种修改第三方库的插件,包括:
19、编辑模块,用于创建独立的第一库,然后从第三方库中复制待修改的第一类到所述第一库中,在所述第一库中修改所述第一类以得到第二类;
20、编译模块,根据所述第一类和所述第二类的映射关系,在复制所述第三方库时,将所述第一类替换为所述第二类。
21、上述的插件中,所述编译模块包括第一transform api,所述第一transform api在将所述第一类替换为所述第二类时,分两次遍历各库:
22、第一次遍历时,获取一个或多个所述第一库中的所有类,构成已修改类组;
23、第二次遍历时,根据所述映射关系拒绝从所述第三方库中复制特定类,所述特定类指与所述已修改类组中的类相对应的未修改类。
24、基于同一发明构思,本发明还提供了一种电子设备,包括:
25、至少一个存储器,用于存储计算机指令;
26、至少一个处理器,当所述至少一个处理器执行所述计算机指令时,实现上述的方法。
27、基于同一发明构思,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条指令由处理器加载并执行,以实现上述的方法。
28、基于同一发明构思,本发明还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令由处理器执行时,实现上述的方法。
29、相对于现有技术,本申请通过在新建的用户库中集中保存修改过的第三方库中的类,然后利用gradle工具中的transform机制,在transform责任链中插入api,来实现用修改后的类来替换第三方库中的相对应的类的效果。并且,保存在用户库中的修改后的类保持与第三方库中的相对应的类同名,在使用和升级第三方库时,不容易出现兼容性的问题。
技术特征:1.一种修改第三方库的方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述第一类和所述第二类的文件名保持一致。
3.如权利要求1所述的方法,其特征在于,所述在所述第一库中修改所述第一类以得到第二类中,还包括:将所述第二类发布为aar文件。
4.如权利要求1所述的方法,其特征在于,所述将所述第一类替换为所述第二类中,包括:
5.如权利要求1所述的方法,其特征在于,所述在所述第一库中修改所述第一类以得到第二类中,包括:
6.一种修改第三方库的插件,应用于安卓系统,其特征在于,包括:
7.如权利要求6所述的插件,其特征在于,所述编译模块包括第一transform api,所述第一transform api在将所述第一类替换为所述第二类时,分两次遍历各库:
8.一种电子设备,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条指令由处理器加载并执行,以实现如权利要求1-5中任一项所述的方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令由处理器执行时,实现如权利要求1-5中任一项所述的方法。
技术总结本发明属于计算机技术领域,具体公开了一种修改第三方库的方法、插件以及电子设备、存储介质。修改第三方库的方法具体包括如下步骤:创建独立的第一库,用于保存修改后的类;从第三方库中复制待修改的第一类到所述第一库中;在所述第一库中修改所述第一类以得到第二类;建立所述第二类与所述第三方库中的所述第一类之间的映射关系;编译时,在TransformTask链中插入第一Transform API,所述第一Transform API在复制所述第三方库时,将所述第一类替换为所述第二类。本发明的优点在于,较为便利地实现了用修改后的类来替换第三方库中的相对应的类的效果。技术研发人员:李俊华受保护的技术使用者:小红书科技有限公司技术研发日:技术公布日:2024/11/14本文地址:https://www.jishuxx.com/zhuanli/20241118/329638.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表