CN111443945A - 组件代码修改方法及设备 - Google Patents

组件代码修改方法及设备 Download PDF

Info

Publication number
CN111443945A
CN111443945A CN201910039238.8A CN201910039238A CN111443945A CN 111443945 A CN111443945 A CN 111443945A CN 201910039238 A CN201910039238 A CN 201910039238A CN 111443945 A CN111443945 A CN 111443945A
Authority
CN
China
Prior art keywords
service
replaced
target component
application programming
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910039238.8A
Other languages
English (en)
Other versions
CN111443945B (zh
Inventor
张声扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New Founder Holdings Development Co ltd
Beijing Founder Electronics Co Ltd
Original Assignee
Peking University Founder Group Co Ltd
Beijing Founder Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University Founder Group Co Ltd, Beijing Founder Electronics Co Ltd filed Critical Peking University Founder Group Co Ltd
Priority to CN201910039238.8A priority Critical patent/CN111443945B/zh
Publication of CN111443945A publication Critical patent/CN111443945A/zh
Application granted granted Critical
Publication of CN111443945B publication Critical patent/CN111443945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种组件代码修改方法及设备,该方法包括:利用第三方库的管理工具集成目标组件,并确定目标组件的应用程序编程接口;获取待替换业务,并确定待替换业务的应用程序编程接口;根确定待替换业务的应用程序编程接口对应的目标组件的应用程序编程接口中的目标应用程序编程接口;根据待替换业务的应用程序编程接口对应的目标组件的目标应用程序编程接口,利用待替换业务的组件代码,在待替换业务中对目标组件的目标组件代码进行修改。本实施例提供的方法可以在不改变集成的第三方组件的代码结构上完成自身逻辑的开发,大大减少了代码的耦合度,解决了因为自身逻辑更改导致第三方组件无法及时更新或者更新困难的问题。

Description

组件代码修改方法及设备
技术领域
本发明实施例涉及软件开发技术领域,尤其涉及一种组件代码修改方法及设备。
背景技术
随着互联网技术的发展以及业务需求的日益增多,人们对组件要求越来越高,很多情况下,需要对组件进行修改。组件可以包括菜单组件、按钮组件、对话框组件、编辑框组件、单选框组件、复选框组件、列表框组件、内容显示组件(图片或文字等)和滚动条组件等。
目前,敏捷开发成为越来越重要的开发模式,组件快速迭代的同时也集成了很多第三方的组件。
然而,现有这种模式各个组件代码耦合度高,如果要对组件代码进行修改,破坏完整性,而且因为组件代码自身逻辑更改也会导致第三方的组件无法及时更新或者更新困难。
发明内容
本发明实施例提供一种组件代码修改方法及设备,以解决现有组件代码修改破坏完整性,因为组件代码自身逻辑更改导致第三方的工程无法及时更新或者更新困难的问题。
第一方面,本发明实施例提供一种组件代码修改方法,包括:
利用第三方库的管理工具集成目标组件,并确定所述目标组件的应用程序编程接口;
获取待替换业务,并确定所述待替换业务的应用程序编程接口;
根据所述目标组件和所述待替换业务,确定所述待替换业务的应用程序编程接口对应的所述目标组件的应用程序编程接口中的目标应用程序编程接口;
根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
在一种可能的设计中,所述根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改,包括:
根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用Run Time、Method Swizzling、继承和Category中的一种或多种,在所述待替换业务中对所述待替换业务的应用程序编程接口和所述目标组件的目标应用程序编程接口进行绑定,并利用所述待替换业务的组件代码,对所述目标组件的目标组件代码进行替换。
在一种可能的设计中,上述的方法,还包括:
为所述目标组件创建方法定义、属性和Objective-C源代码文件,所述方法定义用于对所述目标组件的原有方法进行重新定义,所述属性用于对所述目标组件的原有组件的属性进行重新定义,所述Objective-C源代码文件用于声明所述目标组件内部的属性及实现所属类内部的方法;
为所述待替换业务创建方法定义、属性和Objective-C源代码文件;
所述根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改,包括:
基于为所述目标组件创建的方法定义、属性和Objective-C源代码文件,以及为所述待替换业务创建的方法定义、属性和Objective-C源代码文件,根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
在一种可能的设计中,上述的方法,还包括:
根据实现所述目标组件自身业务的方法或者带有实现所述目标组件自身业务的方法的类,确定所述目标组件的功能;
根据所述目标组件的功能确定所述待替换业务。
在一种可能的设计中,上述的方法,还包括:
接收业务调整指令,根据所述业务调整指令调整所述待替换业务,并将调整后的待替换业务作为新的待替换业务,执行所述确定所述待替换业务的应用程序编程接口的步骤。
第二方面,本发明实施例提供一种组件代码修改设备,包括:
组件集成模块,用于利用第三方库的管理工具集成目标组件,并确定所述目标组件的应用程序编程接口;
待替换业务处理模块,用于获取待替换业务,并确定所述待替换业务的应用程序编程接口;
接口对应模块,用于根据所述目标组件和所述待替换业务,确定所述待替换业务的应用程序编程接口对应的所述目标组件的应用程序编程接口中的目标应用程序编程接口;
组件代码修改模块,用于根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
在一种可能的设计中,所述组件代码修改模块,还用于根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用Run Time、MethodSwizzling、继承和Category中的一种或多种,在所述待替换业务中对所述待替换业务的应用程序编程接口和所述目标组件的目标应用程序编程接口进行绑定,并利用所述待替换业务的组件代码,对所述目标组件的目标组件代码进行替换。
在一种可能的设计中,上述的设备,还包括:
第一信息创建模块,用于为所述目标组件创建方法定义、属性和Objective-C源代码文件,所述方法定义用于对所述目标组件的原有方法进行重新定义,所述属性用于对所述目标组件的原有组件的属性进行重新定义,所述Objective-C源代码文件用于声明所述目标组件内部的属性及实现所属类内部的方法;
第二信息创建模块,用于为所述待替换业务创建方法定义、属性和Objective-C源代码文件;
所述组件代码修改模块,还用于基于为所述目标组件创建的方法定义、属性和Objective-C源代码文件,以及为所述待替换业务创建的方法定义、属性和Objective-C源代码文件,根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
在一种可能的设计中,上述的设备,还包括:
功能实现模块,用于根据实现所述目标组件自身业务的方法或者带有实现所述目标组件自身业务的方法的类,确定所述目标组件的功能;
业务确定模块,用于根据所述目标组件的功能确定所述待替换业务。
在一种可能的设计中,所述待替换业务处理模块,还用于接收业务调整指令,根据所述业务调整指令调整所述待替换业务,并将调整后的待替换业务作为新的待替换业务,执行所述确定所述待替换业务的应用程序编程接口的步骤。
第三方面,本发明实施例提供一种组件代码修改设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的组件代码修改方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的组件代码修改方法。
本实施例提供的组件代码修改方法及设备,该方法通过利用第三方库的管理工具集成目标组件,确定目标组件的应用程序编程接口,获取待替换业务,并确定待替换业务的应用程序编程接口;然后根据目标组件和待替换业务,确定待替换业务的应用程序编程接口对应的目标组件的目标应用程序编程接口;最后根据待替换业务的应用程序编程接口对应的目标组件的目标应用程序编程接口,利用待替换业务的组件代码,在待替换业务中对目标组件的目标组件代码进行修改,能够在使用组件功能的同时根据业务实现自身的个性化需求,而且可以在不改变集成的第三方组件的代码结构上完成自身逻辑的开发,大大减少了代码的耦合度,解决了因为自身逻辑更改导致第三方组件无法及时更新或者更新困难的问题,并且提供了多种实现工程中的解决方案,保证了iOS开发的进行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的组件代码修改系统的架构示意图;
图2为本发明实施例提供的组件代码修改方法的流程示意图一;
图3为本发明实施例提供的组件代码修改方法的流程示意图二;
图4为本发明实施例提供的组件代码修改设备的结构示意图一;
图5为本发明实施例提供的组件代码修改设备的结构示意图二;
图6为本发明实施例提供的组件代码修改设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着互联网技术的发展以及业务需求的日益增多,人们对组件要求越来越高,很多情况下,需要对组件进行修改。组件可以包括菜单组件、按钮组件、对话框组件、编辑框组件、单选框组件、复选框组件、列表框组件、内容显示组件(图片或文字等)和滚动条组件等。目前,敏捷开发成为越来越重要的开发模式,组件快速迭代的同时也集成了很多第三方的组件。然而,现有这种模式各个组件代码耦合度高,如果要对组件代码进行修改,破坏完整性,而且因为组件代码自身逻辑更改也会导致第三方的组件无法及时更新或者更新困难。
因此,考虑到上述问题,本发明提供一种组件代码修改方法,通过利用第三方库的管理工具集成目标组件,确定目标组件的应用程序编程接口,获取待替换业务,并确定待替换业务的应用程序编程接口;然后根据目标组件和待替换业务,确定待替换业务的应用程序编程接口对应的标应用程序编程接口;最后根据待替换业务的应用程序编程接口对应的目标组件的目标应用程序编程接口,利用待替换业务的组件代码,在待替换业务中对目标组件的目标组件代码进行修改,能够在使用组件功能的同时根据业务实现自身的个性化需求,而且可以在不改变集成的第三方组件的代码结构上完成自身逻辑的开发,大大减少了代码的耦合度,解决了因为自身逻辑更改导致第三方组件无法及时更新或者更新困难的问题,并且提供了多种实现工程中的解决方案,保证了iOS开发的进行。
图1为本发明提供的一种组件代码修改方法的应用场景图。如图1所示,终端设备101可以利用第三方库的管理工具102集成目标组件,并确定所述目标组件的应用程序编程接口,可以获取待替换业务,并确定所述待替换业务的应用程序编程接口,可以根据所述目标组件和所述待替换业务,确定所述待替换业务的应用程序编程接口对应的所述目标组件的应用程序编程接口中的目标应用程序编程接口,也可以根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改等。
可以理解,本发明所涉及的终端设备也可以称为用户设备、移动台、移动终端等。终端设备可以是手机、平板电脑、带无线收发功能的电脑等,本发明中不做具体的限制。
图2为本发明实施例提供的组件代码修改方法的流程示意图一,本实施例的执行主体可以为图1所示实施例中的终端设备,也可以为服务器,本实施例此处不做特别限制。如图2所示,该方法包括:
S201、利用第三方库的管理工具集成目标组件,并确定所述目标组件的应用程序编程接口。
具体的,第三方库的管理工具可以根据实际需要确定,例如,使用CocoaPods集成所需组件工程,并确定集成的各个组件工程暴露的应用程序编程接口(ApplicationProgramming Interface,简称API),其中,CocoaPods是专门为iOS工程提供第三方库的管理工具,通过CocoaPods,可以更方便地管理每个第三方库的版本,而且不需要做太多的配置,就可以直观、集中和自动化地管理相应项目的第三方库。
上述集成的目标组件可以通过以下方式获取:根据实际情况从网上下载开源的组件,将下载的组件作为目标组件,这里的开源不是开放编译器的源代码,而是由相关人员写完软件源代码后,发布到网上,供大家学习、改进等。
在上述利用第三方库的管理工具集成目标组件之后,还可以接收组件调整指令,根据该组件调整指令调整集成的目标组件,并将调整后的目标组件作为新的目标组件,执行所述确定所述目标组件的应用程序编程接口的步骤,其中,组件调整指令可以根据实际需要设置。
可选的,在上述利用第三方库的管理工具集成目标组件之后,还可以为所述目标组件创建方法定义、属性和Objective-C源代码文件,所述方法定义用于对所述目标组件的原有方法进行重新定义,所述属性用于对所述目标组件的原有组件的属性进行重新定义,所述Objective-C源代码文件用于声明所述目标组件内部的属性及实现所属类内部的方法。
这里,为上述组件创建有方法定义、属性和Objective-C源代码文件,所述方法用于对组件工程的原有方法进行重新定义,所述属性用于对原有工程的私有属性进行重新定义,所述Objective-C源代码文件用于声明组件工程内部的属性及实现该类内部的方法。
S202、获取待替换业务,并确定所述待替换业务的应用程序编程接口。
可选的,可以根据实现所述目标组件自身业务的方法或者带有实现所述目标组件自身业务的方法的类,确定所述目标组件的功能;
根据所述目标组件的功能确定所述待替换业务。
具体的,可以根据上述目标组件的功能和实际需要确定待替换业务逻辑,并进一步确定其API接口和方法参数,以供调用。
可选的,在上述获取待替换业务之后,还可以接收业务调整指令,根据所述业务调整指令调整所述待替换业务,并将调整后的待替换业务作为新的待替换业务,执行所述确定所述待替换业务的应用程序编程接口的步骤,其中,业务调整指令可以根据实际需要设置。
可选的,在上述获取待替换业务之后,还可以为所述待替换业务创建方法定义、属性和Objective-C源代码文件,所述方法用于对待替换业务的原有方法进行重新定义,所述属性用于对待替换业务的私有属性进行重新定义,所述Objective-C源代码文件用于声明待替换业务内部的属性及实现该类内部的方法。
S203、根据所述目标组件和所述待替换业务,确定所述待替换业务的应用程序编程接口对应的所述目标组件的应用程序编程接口中的目标应用程序编程接口。
这里,可以首先在目标组件中确定与待替换业务对应的组件,然后根据该组件的应用程序编程接口,确定待替换业务的应用程序编程接口对应的目标组件的目标应用程序编程接口。
S204、根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
可选的,可以基于为所述目标组件创建的方法定义、属性和Objective-C源代码文件,以及为所述待替换业务创建的方法定义、属性和Objective-C源代码文件,根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
具体的,可以通过使用Run Time、Method Swizzling、继承、Category等技术使用组件暴露的API接口进行动态绑定、替换,实现对组件代码的修改。
本实施例提供的组件代码修改方法,通过利用第三方库的管理工具集成目标组件,确定目标组件的应用程序编程接口,获取待替换业务,并确定待替换业务的应用程序编程接口;然后根据目标组件和待替换业务,确定待替换业务的应用程序编程接口对应的目标组件的目标应用程序编程接口;最后根据待替换业务的应用程序编程接口对应的目标组件的目标应用程序编程接口,利用待替换业务的组件代码,在待替换业务中对目标组件的目标组件代码进行修改,能够在使用组件功能的同时根据业务实现自身的个性化需求,而且可以在不改变集成的第三方组件的代码结构上完成自身逻辑的开发,大大减少了代码的耦合度,解决了因为自身逻辑更改导致第三方组件无法及时更新或者更新困难的问题,并且提供了多种实现工程中的解决方案,保证了iOS开发的进行。
图3为本发明实施例提供的组件代码修改方法的流程示意图二,本实施例在图2实施例的基础上,对本实施例的具体实现过程进行了详细说明。如图3所示,该方法包括:
S301、利用第三方库的管理工具集成目标组件,并确定所述目标组件的应用程序编程接口。
这里,以CocoaPods集成所需组件工程为例,可以进一步根据组件工程暴露的API接口完成初期基本的功能实现和调用。
S302、获取待替换业务,并确定所述待替换业务的应用程序编程接口。
具体的,可以根据需求实现需要替换上的业务逻辑,并且暴露出API接口和方法参数,以供调用。
S303、根据所述目标组件和所述待替换业务,确定所述待替换业务的应用程序编程接口对应的所述目标组件的应用程序编程接口中的目标应用程序编程接口。
S304、根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用Run Time、Method Swizzling、继承和Category中的一种或多种,在所述待替换业务中对所述待替换业务的应用程序编程接口和所述目标组件的目标应用程序编程接口进行绑定,并利用所述待替换业务的组件代码,对所述目标组件的目标组件代码进行替换。
上述通过利用Run Time、Method Swizzling、继承、Category等技术,使用组件工程暴露的API接口进行动态绑定、替换,对组件代码进行修改,其中,Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发。Method Swizzling是发生在运行时的,主要用于在运行时将两个Method进行交换,可以将Method Swizzle代码写到任何地方,但是只有在Method Swizzling这段Method Swizzle代码执行完毕之后互换才起作用。
Category是Objective-C 2.0之后添加的语言特性,分类、类别其实都是指的Category。Category的主要作用是为已经存在的类添加方法。Objective-C中的Category就是对装饰模式的一种具体实现。它的主要作用是在不改变原有类的前提下,动态地给这个类添加一些方法。
本实施例提供的组件代码修改方法,能够在使用组件功能的同时根据业务实现自身的个性化需求,而且可以在不改变集成的第三方组件的代码结构上完成自身逻辑的开发,大大减少了代码的耦合度,解决了因为自身逻辑更改导致第三方组件无法及时更新或者更新困难的问题。
图4为本发明实施例提供的组件代码修改设备的结构示意图一。如图4所示,该组件代码修改设备40包括:组件集成模块401、待替换业务处理模块402、接口对应模块403以及组件代码修改模块404。
其中,组件集成模块401,用于利用第三方库的管理工具集成目标组件,并确定所述目标组件的应用程序编程接口。
待替换业务处理模块402,用于获取待替换业务,并确定所述待替换业务的应用程序编程接口。
接口对应模块403,用于根据所述目标组件和所述待替换业务,确定所述待替换业务的应用程序编程接口对应的所述目标组件的应用程序编程接口中的目标应用程序编程接口。
组件代码修改模块404,用于根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
本实施例提供的设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图5为本发明实施例提供的组件代码修改设备的结构示意图二。如图5所示,本实施例在图4实施例的基础上,还包括:第一信息创建模块405、第二信息创建模块406、功能实现模块407和业务确定模块408。
在一种可能的设计中,所述组件代码修改模块404,还用于根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用Run Time、MethodSwizzling、继承和Category中的一种或多种,在所述待替换业务中对所述待替换业务的应用程序编程接口和所述目标组件的目标应用程序编程接口进行绑定,并利用所述待替换业务的组件代码,对所述目标组件的目标组件代码进行替换。
在一种可能的设计中,第一信息创建模块405,用于为所述目标组件创建方法定义、属性和Objective-C源代码文件,所述方法定义用于对所述目标组件的原有方法进行重新定义,所述属性用于对所述目标组件的原有组件的属性进行重新定义,所述Objective-C源代码文件用于声明所述目标组件内部的属性及实现所属类内部的方法。
第二信息创建模块406,用于为所述待替换业务创建方法定义、属性和Objective-C源代码文件。
所述组件代码修改模块404,还用于基于为所述目标组件创建的方法定义、属性和Objective-C源代码文件,以及为所述待替换业务创建的方法定义、属性和Objective-C源代码文件,根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
在一种可能的设计中,功能实现模块407,用于根据实现所述目标组件自身业务的方法或者带有实现所述目标组件自身业务的方法的类,确定所述目标组件的功能。
业务确定模块408,用于根据所述目标组件的功能确定所述待替换业务。
在一种可能的设计中,所述待替换业务处理模块402,还用于接收业务调整指令,根据所述业务调整指令调整所述待替换业务,并将调整后的待替换业务作为新的待替换业务,执行所述确定所述待替换业务的应用程序编程接口的步骤。
本实施例提供的设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图6为本发明实施例提供的组件代码修改设备的硬件结构示意图。如图6所示,本实施例的组件代码修改设备60包括:处理器601以及存储器602;其中
存储器602,用于存储计算机执行指令;
处理器601,用于执行存储器存储的计算机执行指令,以实现上述实施例中组件代码修改设备所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器602既可以是独立的,也可以跟处理器601集成在一起。
当存储器602独立设置时,该组件代码修改设备还包括总线603,用于连接所述存储器602和处理器601。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的组件代码修改方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种组件代码修改方法,其特征在于,包括:
利用第三方库的管理工具集成目标组件,并确定所述目标组件的应用程序编程接口;
获取待替换业务,并确定所述待替换业务的应用程序编程接口;
根据所述目标组件和所述待替换业务,确定所述待替换业务的应用程序编程接口对应的所述目标组件的应用程序编程接口中的目标应用程序编程接口;
根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改,包括:
根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用Run Time、Method Swizzling、继承和Category中的一种或多种,在所述待替换业务中对所述待替换业务的应用程序编程接口和所述目标组件的目标应用程序编程接口进行绑定,并利用所述待替换业务的组件代码,对所述目标组件的目标组件代码进行替换。
3.根据权利要求1所述的方法,其特征在于,还包括:
为所述目标组件创建方法定义、属性和Objective-C源代码文件,所述方法定义用于对所述目标组件的原有方法进行重新定义,所述属性用于对所述目标组件的原有组件的属性进行重新定义,所述Objective-C源代码文件用于声明所述目标组件内部的属性及实现所属类内部的方法;
为所述待替换业务创建方法定义、属性和Objective-C源代码文件;
所述根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改,包括:
基于为所述目标组件创建的方法定义、属性和Objective-C源代码文件,以及为所述待替换业务创建的方法定义、属性和Objective-C源代码文件,根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据实现所述目标组件自身业务的方法或者带有实现所述目标组件自身业务的方法的类,确定所述目标组件的功能;
根据所述目标组件的功能确定所述待替换业务。
5.根据权利要求1所述的方法,其特征在于,还包括:
接收业务调整指令,根据所述业务调整指令调整所述待替换业务,并将调整后的待替换业务作为新的待替换业务,执行所述确定所述待替换业务的应用程序编程接口的步骤。
6.一种组件代码修改设备,其特征在于,包括:
组件集成模块,用于利用第三方库的管理工具集成目标组件,并确定所述目标组件的应用程序编程接口;
待替换业务处理模块,用于获取待替换业务,并确定所述待替换业务的应用程序编程接口;
接口对应模块,用于根据所述目标组件和所述待替换业务,确定所述待替换业务的应用程序编程接口对应的所述目标组件的应用程序编程接口中的目标应用程序编程接口;
组件代码修改模块,用于根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
7.根据权利要求6所述的设备,其特征在于,所述组件代码修改模块,还用于根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用RunTime、Method Swizzling、继承和Category中的一种或多种,在所述待替换业务中对所述待替换业务的应用程序编程接口和所述目标组件的目标应用程序编程接口进行绑定,并利用所述待替换业务的组件代码,对所述目标组件的目标组件代码进行替换。
8.根据权利要求6所述的设备,其特征在于,还包括:
第一信息创建模块,用于为所述目标组件创建方法定义、属性和Objective-C源代码文件,所述方法定义用于对所述目标组件的原有方法进行重新定义,所述属性用于对所述目标组件的原有组件的属性进行重新定义,所述Objective-C源代码文件用于声明所述目标组件内部的属性及实现所属类内部的方法;
第二信息创建模块,用于为所述待替换业务创建方法定义、属性和Objective-C源代码文件;
所述组件代码修改模块,还用于基于为所述目标组件创建的方法定义、属性和Objective-C源代码文件,以及为所述待替换业务创建的方法定义、属性和Objective-C源代码文件,根据所述待替换业务的应用程序编程接口对应的所述目标组件的目标应用程序编程接口,利用所述待替换业务的组件代码,在所述待替换业务中对所述目标组件的目标组件代码进行修改。
9.根据权利要求6所述的设备,其特征在于,还包括:
功能实现模块,用于根据实现所述目标组件自身业务的方法或者带有实现所述目标组件自身业务的方法的类,确定所述目标组件的功能;
业务确定模块,用于根据所述目标组件的功能确定所述待替换业务。
10.根据权利要求6所述的设备,其特征在于,所述待替换业务处理模块,还用于接收业务调整指令,根据所述业务调整指令调整所述待替换业务,并将调整后的待替换业务作为新的待替换业务,执行所述确定所述待替换业务的应用程序编程接口的步骤。
11.一种组件代码修改设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至5任一项所述的组件代码修改方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至5任一项所述的组件代码修改方法。
CN201910039238.8A 2019-01-16 2019-01-16 组件代码修改方法及设备 Active CN111443945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910039238.8A CN111443945B (zh) 2019-01-16 2019-01-16 组件代码修改方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910039238.8A CN111443945B (zh) 2019-01-16 2019-01-16 组件代码修改方法及设备

Publications (2)

Publication Number Publication Date
CN111443945A true CN111443945A (zh) 2020-07-24
CN111443945B CN111443945B (zh) 2021-08-27

Family

ID=71626641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910039238.8A Active CN111443945B (zh) 2019-01-16 2019-01-16 组件代码修改方法及设备

Country Status (1)

Country Link
CN (1) CN111443945B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527276A (zh) * 2020-12-14 2021-03-19 深圳市优必选科技股份有限公司 一种可视化编程工具中的数据更新方法、装置及终端设备
CN113792093A (zh) * 2021-08-25 2021-12-14 通号城市轨道交通技术有限公司 信号系统接口业务创建和执行方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1779636A (zh) * 2004-11-28 2006-05-31 中兴通讯股份有限公司 构建耦合系统的方法
US20140130034A1 (en) * 2012-11-06 2014-05-08 Vijayakumar Subbu Framework for multi-type and multi-location firmware updates and hardware feature updates through a single interface protocol
CN106293680A (zh) * 2015-06-11 2017-01-04 中兴通讯股份有限公司 一种组件管理方法及装置
CN107577483A (zh) * 2017-08-31 2018-01-12 武汉斗鱼网络科技有限公司 组件工程调用主工程代码的方法、存储介质、设备及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1779636A (zh) * 2004-11-28 2006-05-31 中兴通讯股份有限公司 构建耦合系统的方法
US20140130034A1 (en) * 2012-11-06 2014-05-08 Vijayakumar Subbu Framework for multi-type and multi-location firmware updates and hardware feature updates through a single interface protocol
CN106293680A (zh) * 2015-06-11 2017-01-04 中兴通讯股份有限公司 一种组件管理方法及装置
CN107577483A (zh) * 2017-08-31 2018-01-12 武汉斗鱼网络科技有限公司 组件工程调用主工程代码的方法、存储介质、设备及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEIXIN_34008933: ""第三方组件引用另一个第三方组件的悲剧"", 《CSDN,HTTPS://BLOG.CSDN.NET/WEIXIN_34008933/ARTICLE/DETAILS/85626749?UTM_SOURCE=APP&APP_VERSION=4.5.4》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527276A (zh) * 2020-12-14 2021-03-19 深圳市优必选科技股份有限公司 一种可视化编程工具中的数据更新方法、装置及终端设备
CN112527276B (zh) * 2020-12-14 2024-01-12 深圳市优必选科技股份有限公司 一种可视化编程工具中的数据更新方法、装置及终端设备
CN113792093A (zh) * 2021-08-25 2021-12-14 通号城市轨道交通技术有限公司 信号系统接口业务创建和执行方法、装置和电子设备

Also Published As

Publication number Publication date
CN111443945B (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
CN107797826B (zh) 一种基于规则引擎的规则配置方法、终端以及设备
CN107562496B (zh) 一种页面配置以及页面展示的方法及装置
CN113110829B (zh) 多ui组件库数据处理方法及装置
CN109542878B (zh) 一种列表创建方法及装置
CN111443945B (zh) 组件代码修改方法及设备
CN112181580B (zh) 应用主题切换方法、装置及系统
CN113741860A (zh) 基于rpa机器人的数据处理方法及装置
CN111782304A (zh) 分页加载数据逻辑控制方法、装置、计算机设备及介质
US20200034101A1 (en) Data displaying method and electronic device
CN113342330B (zh) 前端工程生成方法及装置
CN114461223A (zh) 一种代码生成方法、装置及终端设备
CN114153856A (zh) 主机数据双写方法及装置
CN110647371A (zh) 一种基于业务配置的多语言资源文件解析方法和系统
CN112559158A (zh) 微服务定时任务调度方法及装置
CN105227441A (zh) 云端服务器、联系人身份确定方法和系统
CN111752454A (zh) 应用程序界面的皮肤控制方法、装置、终端及介质
US8615744B2 (en) Methods and system for managing assets in programming code translation
CN115827049A (zh) 基于配置的缓存切换方法、电子设备及存储介质
CN111427550A (zh) 一种对象创建方法、终端装置及存储介质
CN114840194A (zh) 代码及操作系统的生成方法和装置、服务器及电子设备
CN112445414B (zh) 数据处理方法及装置
CN113887185A (zh) 一种电子合同的生成方法及生成装置
CN103501324A (zh) 主题打包方法、装置和服务器
CN103116632A (zh) 一种主题包的生成方法、装置和设备
CN112102058A (zh) 管会系统参数配置方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230609

Address after: 3007, Hengqin international financial center building, No. 58, Huajin street, Hengqin new area, Zhuhai, Guangdong 519031

Patentee after: New founder holdings development Co.,Ltd.

Patentee after: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

Address before: 100871, Beijing, Haidian District, Cheng Fu Road, No. 298, Zhongguancun Fangzheng building, 9 floor

Patentee before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Patentee before: BEIJING FOUNDER ELECTRONICS Co.,Ltd.