CN112965720B - 一种组件编译方法、装置、设备及计算机可读存储介质 - Google Patents
一种组件编译方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112965720B CN112965720B CN202110189155.4A CN202110189155A CN112965720B CN 112965720 B CN112965720 B CN 112965720B CN 202110189155 A CN202110189155 A CN 202110189155A CN 112965720 B CN112965720 B CN 112965720B
- Authority
- CN
- China
- Prior art keywords
- component
- compiling
- components
- source code
- aar
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种组件编译方法,该方法包括以下步骤:对接收到的编译任务进行解析,得到待源码编译的各第一组件;获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件;从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径;根据各源码路径获取各第一组件和各第二组件分别对应的目标源码;基于各目标源码对各第一组件和各第二组件进行编译操作。应用本发明所提供的组件编译方法,较大地提升了配置的灵活度,缩短了源码加载及编译时长,提升了业务迭代开发效率。本发明还公开了一种组件编译装置、设备及存储介质,具有相应技术效果。
Description
技术领域
本发明涉及软件开发技术领域,特别是涉及一种组件编译方法、装置、设备及计算机可读存储介质。
背景技术
在多组件(module)工程中,如安卓(Android)多组件工程,当需要进行业务开发,或业务排错时,需要对某些组件进行重新编译。
现有的组件编译方案是多组件全源码加载编译,即对当前存在的所有组件的源码进行全部加载,对加载到的全源码进行编译。配置不灵活,源码加载及编译时间过长,业务迭代开发效率低。
综上所述,如何有效地解决现有的组件编译方案配置不灵活,源码加载及编译时间过长,业务迭代开发效率低等问题,是目前本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种组件编译方法,该方法较大地提升了配置的灵活度,缩短了源码加载及编译时长,提升了业务迭代开发效率;本发明的另一目的是提供一种组件编译装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供如下技术方案:
一种组件编译方法,包括:
对接收到的编译任务进行解析,得到待源码编译的各第一组件;
获取预设的组件间依赖关系,并根据所述组件间依赖关系确定依赖各所述第一组件的各第二组件;
从源码路径目录中分别查找各所述第一组件和各所述第二组件分别对应的源码路径;
根据各所述源码路径获取各所述第一组件和各所述第二组件分别对应的目标源码;
基于各所述目标源码对各所述第一组件和各所述第二组件进行编译操作。
在本发明的一种具体实施方式中,在基于各所述目标源码对各所述第一组件和各所述第二组件进行编译操作之后,还包括:
获取所述编译任务对应的非源码编译的各第三组件;
从aar代码库中查找各所述第三组件分别对应的第一aar包;
根据各所述第一组件和各所述第二组件之间的依赖关系,对各所述第一组件和各所述第二组件的修改后源码分别进行打包,得到各第二aar包;
基于各所述第一aar包和各所述第二aar包进行aar编译操作。
在本发明的一种具体实施方式中,在对各所述第一组件和各所述第二组件的修改后源码分别进行打包,得到各第二aar包之后,还包括:
从所述aar代码库中查找各所述第一组件和各所述第二组件分别对应的第三aar包;
利用各所述第二aar包替换各所述第三aar包。
在本发明的一种具体实施方式中,从aar代码库中查找各所述第三组件分别对应的第一aar包,包括:
获取所述编译任务对应的目标编译版本;
从所述aar代码库中查找各所述第三组件分别对应的所述目标编译版本的第一aar包;
对各所述第一组件和各所述第二组件的修改后源码分别进行打包,包括:
按照所述目标编译版本对各所述第一组件和各所述第二组件的修改后源码分别进行打包;
从aar代码库中查找各所述第一组件和各所述第二组件分别对应的第三aar包,包括:
从所述aar代码库中查找各所述第一组件和各所述第二组件分别对应的所述目标编译版本的第三aar包。
在本发明的一种具体实施方式中,对接收到的编译任务进行解析,得到待源码编译的各第一组件,包括:
获取所述编译任务对应的源码开关变量状态处于打开状态的各所述第一组件;
在根据所述组件间依赖关系确定依赖各所述第一组件的各第二组件之后,还包括:
将各所述第二组件对应的源码开关变量状态由关闭状态转换为打开状态。
在本发明的一种具体实施方式中,在基于各所述目标源码对各所述第一组件和各所述第二组件进行编译操作之后,还包括:
将各所述第一组件和各所述第二组件的源码开关变量状态由所述打开状态转化为所述关闭状态。
在本发明的一种具体实施方式中,在将各所述第二组件对应的源码开关变量状态由关闭状态转换为打开状态之前,还包括:
获取所述编译任务对应的编译请求方的身份标识信息;
对所述身份标识信息进行权限验证;
当权限验证通过时,执行所述将各所述第二组件对应的源码开关变量状态由关闭状态转换为打开状态的步骤。
一种组件编译装置,包括:
源码编译组件获得模块,用于对接收到的编译任务进行解析,得到待源码编译的各第一组件;
组件确定模块,用于获取预设的组件间依赖关系,并根据所述组件间依赖关系确定依赖各所述第一组件的各第二组件;
路径查找模块,用于从源码路径目录中分别查找各所述第一组件和各所述第二组件分别对应的源码路径;
源码获取模块,用于根据各所述源码路径获取各所述第一组件和各所述第二组件分别对应的目标源码;
组件编译模块,用于基于各所述目标源码对各所述第一组件和各所述第二组件进行编译操作。
一种组件编译设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前所述组件编译方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述组件编译方法的步骤。
本发明所提供的组件编译方法,对接收到的编译任务进行解析,得到待源码编译的各第一组件;获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件;从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径;根据各源码路径获取各第一组件和各第二组件分别对应的目标源码;基于各目标源码对各第一组件和各第二组件进行编译操作。通过对需要进行源码编译的各第一组件进行自动筛选,并选取出各第一组件分别依赖的各第二组件,从而仅需要加载各第一组件和各第二组件的目标源码,根据各目标源码进行组件编译。相较于现有的全源码加载编译方案,本发明较大地提升了配置的灵活度,缩短了源码加载及编译时长,提升了业务迭代开发效率。
相应的,本发明还提供了与上述组件编译方法相对应的组件编译装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中组件编译方法的一种实施流程图;
图2为本发明实施例中组件编译方法的另一种实施流程图;
图3为本发明实施例中一种组件编译装置的结构框图;
图4为本发明实施例中一种组件编译设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
参见图1,图1为本发明实施例中组件编译方法的一种实施流程图,该方法可以包括以下步骤:
S101:对接收到的编译任务进行解析,得到待源码编译的各第一组件。
当接收到编译任务时,编译任务中包含待源码编译的各第一组件,对接收到的编译任务进行解析,得到待源码编译的各第一组件。
编译任务可以为业务开发任务、业务排错任务等。
S102:获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件。
各组件之间存在依赖关系,在解析得到待源码编译的各第一组件之后,获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件。说明在对各第一组件进行源码编译时需要使用到各第一组件分别依赖的第二组件的源码。
S103:从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径。
预先设置有源码路径目录,源码路径目录中存储有各组件的源码路径。在确定出待源码编译的各第一组件,以及各第一组件分别依赖的第二组件之后,从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径。
S104:根据各源码路径获取各第一组件和各第二组件分别对应的目标源码。
在查找到各第一组件和各第二组件分别对应的源码路径之后,根据各源码路径获取各第一组件和各第二组件分别对应的目标源码。在获取到各第一组件和各第二组件分别对应的目标源码之后,对各第一组件和各第二组件分别对应的目标源码进行显示,以便根据显示的源码信息进行后续的组件编译工作。
S105:基于各目标源码对各第一组件和各第二组件进行编译操作。
在获取到各第一组件和各第二组件分别对应的目标源码之后,基于各目标源码对各第一组件和各第二组件进行编译操作。根据每一次业务迭代的不同需求,设置加载不同的组件源码,从而保证当前不需要开发的组件对应的源码不被加载到当前工程中,减少组件编译工具的负载及编译任务,以加快项目的编译速度。
本发明所提供的组件编译方法,对接收到的编译任务进行解析,得到待源码编译的各第一组件;获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件;从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径;根据各源码路径获取各第一组件和各第二组件分别对应的目标源码;基于各目标源码对各第一组件和各第二组件进行编译操作。通过对需要进行源码编译的各第一组件进行自动筛选,并选取出各第一组件分别依赖的各第二组件,从而仅需要加载各第一组件和各第二组件的目标源码,根据各目标源码进行组件编译。相较于现有的全源码加载编译方案,本发明较大地提升了配置的灵活度,缩短了源码加载及编译时长,提升了业务迭代开发效率。
需要说明的是,基于上述实施例一,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例一中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
实施例二:
参见图2,图2为本发明实施例中组件编译方法的另一种实施流程图,该方法可以包括以下步骤:
S201:获取编译任务对应的源码开关变量状态处于打开状态的各第一组件。
预先定义各组件的源码开关变量,如在各组件根目录下的setting配置文件中定义其源码开关变量。可以在工程项目(project)下的build.gradle文件中预先添加所有组件在当前编译任务中是否需要进行源码编译的源码开关变量状态。即,当某组件的源码开关变量状态为打开状态时,说明该组件需要进行源码编译,当某组件的源码开关变量状态为关闭状态时,说明该组件不需要进行源码编译。获取编译任务对应的源码开关变量状态处于打开状态的各第一组件,从而得到需要进行源码编译的各第一组件。
S202:获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件。
S203:获取编译任务对应的编译请求方的身份标识信息。
在确定出依赖各第一组件的各第二组件之后,获取编译任务对应的编译请求方的身份标识信息。
S204:对身份标识信息进行权限验证。
预先对能够对各组件的源码开关变量状态进行转换的操作方进行授权。当获取到编译任务对应的编译请求方的身份标识信息之后,对身份标识信息进行权限验证,验证当前编译请求方是否存在对各第二组件进行源码开关变量状态转换的权限。
S205:当权限验证通过时,将各第二组件对应的源码开关变量状态由关闭状态转换为打开状态。
当对编译请求方的身份标识信息验证通过之后,说明当前编译请求方具有对各第二组件进行源码开关变量状态转换的权限,将各第二组件对应的源码开关变量状态由关闭状态转换为打开状态,从而为后续获取各第二组件对应的源码提供前提条件。
S206:从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径。
S207:根据各源码路径获取各第一组件和各第二组件分别对应的目标源码。
S208:基于各目标源码对各第一组件和各第二组件进行编译操作。
S209:获取编译任务对应的非源码编译的各第三组件。
编译任务除了涉及到需要进行源码编译的各第一组件和各第二组件之外,还会涉及不需要进行源码编译的第三组件。获取编译任务对应的非源码编译的各第三组件。
S210:从aar代码库中查找各第三组件分别对应的第一aar包。
预先设置aar代码库(如maven仓库),aar代码库中存储有各组件分别对应的aar包,并且aar代码库中还存储有各组件与各aar包之间的对应关系。aar包为各组件分别对应的二进制归档文件。在获取到编译任务对应的非源码编译的各第三组件之后,从aar代码库中查找各第三组件分别对应的第一aar包。
在本发明的一种具体实施方式中,步骤S210可以包括以下步骤:
步骤一:获取编译任务对应的目标编译版本;
步骤二:从aar代码库中查找各第三组件分别对应的目标编译版本的第一aar包。
为方便描述,可以将上述两个步骤结合起来进行说明。
每个编译任务会存在其自身的编译属性,如编译版本。aar代码库中存储有各组件分别对应的各版本的aar包。获取编译任务对应的目标编译版本,从aar代码库中查找各第三组件分别对应的目标编译版本的第一aar包。
S211:根据各第一组件和各第二组件之间的依赖关系,对各第一组件和各第二组件的修改后源码分别进行打包,得到各第二aar包。
在查找到各第三组件分别对应的第一aar包之后,根据各第一组件和各第二组件之间的依赖关系,对各第一组件和各第二组件的修改后源码分别进行打包,得到各第二aar包。
在本发明的一种具体实施方式中,对各第一组件和各第二组件的修改后源码分别进行打包,可以包括以下步骤:
按照目标编译版本对各第一组件和各第二组件的修改后源码分别进行打包。
在获取到编译任务对应的目标编译版本之后,按照目标编译版本对各第一组件和各第二组件的修改后源码分别进行打包。从而保证了各aar包版本的一致性。
S212:基于各第一aar包和各第二aar包进行aar编译操作。
在得到各第二aar包之后,基于各第一aar包和各第二aar包进行aar编译操作,从而实现全aar编译,较大地提升了编译速度。
S213:将各第一组件和各第二组件的源码开关变量状态由打开状态转化为关闭状态。
在按照目标编译版本对各第一组件和各第二组件的修改后源码分别进行打包之后,将各第一组件和各第二组件的源码开关变量状态由打开状态转化为关闭状态。从而避免了各组件的源码被非法获取,保证了各组件源码的安全性。
S214:从aar代码库中查找各第一组件和各第二组件分别对应的第三aar包。
在按照目标编译版本对各第一组件和各第二组件的修改后源码分别进行打包,得到各第二aar包之后,从aar代码库中查找各第一组件和各第二组件分别对应的第三aar包。
在本发明的一种具体实施方式中,步骤S214可以包括以下步骤:
从aar代码库中查找各第一组件和各第二组件分别对应的目标编译版本的第三aar包。
在获取到编译任务对应的目标编译版本之后,从aar代码库中查找各第一组件和各第二组件分别对应的目标编译版本的第三aar包。
S215:利用各第二aar包替换各第三aar包。
在按照目标编译版本对各第一组件和各第二组件的修改后源码分别进行打包,得到各第二aar包,并从aar代码库中查找各第一组件和各第二组件分别对应的目标编译版本的第三aar包之后,利用各第二aar包替换各第三aar包,从而使得aar代码库中各第一组件和各第二组件分别对应的目标编译版本的第三aar包得到更新。除此之外,还可以基于本次源码编译过程,对aar代码库中各第一组件和各第二组件分别对应的其他版本(如最新版本)的aar包进行更新操作。
实施例三:
相应于上面的方法实施例,本发明还提供了一种组件编译装置,下文描述的组件编译装置与上文描述的组件编译方法可相互对应参照。
参见图3,图3为本发明实施例中一种组件编译装置的结构框图,该装置可以包括:
源码编译组件获得模块31,用于对接收到的编译任务进行解析,得到待源码编译的各第一组件;
组件确定模块32,用于获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件;
路径查找模块33,用于从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径;
源码获取模块34,用于根据各源码路径获取各第一组件和各第二组件分别对应的目标源码;
组件编译模块35,用于基于各目标源码对各第一组件和各第二组件进行编译操作。
本发明所提供的组件编译装置,对接收到的编译任务进行解析,得到待源码编译的各第一组件;获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件;从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径;根据各源码路径获取各第一组件和各第二组件分别对应的目标源码;基于各目标源码对各第一组件和各第二组件进行编译操作。通过对需要进行源码编译的各第一组件进行自动筛选,并选取出各第一组件分别依赖的各第二组件,从而仅需要加载各第一组件和各第二组件的目标源码,根据各目标源码进行组件编译。相较于现有的全源码加载编译方案,本发明较大地提升了配置的灵活度,缩短了源码加载及编译时长,提升了业务迭代开发效率。
在本发明的一种具体实施方式中,该装置还可以包括:
非源码编译组件获取模块,用于在基于各目标源码对各第一组件和各第二组件进行编译操作之后,获取编译任务对应的非源码编译的各第三组件;
第一代码包查找模块,用于从aar代码库中查找各第三组件分别对应的第一aar包;
源码打包模块,用于根据各第一组件和各第二组件之间的依赖关系,对各第一组件和各第二组件的修改后源码分别进行打包,得到各第二aar包;
代码包编译模块,用于基于各第一aar包和各第二aar包进行aar编译操作。
在本发明的一种具体实施方式中,该装置还可以包括:
第二代码包查找模块,用于在对各第一组件和各第二组件的修改后源码分别进行打包,得到各第二aar包之后,从aar代码库中查找各第一组件和各第二组件分别对应的第三aar包;
代码包替换模块,用于利用各第二aar包替换各第三aar包。
在本发明的一种具体实施方式中,第一代码包查找模块包括:
编译版本获取子模块,用于获取编译任务对应的目标编译版本;
代码包查找子模块,用于从aar代码库中查找各第三组件分别对应的目标编译版本的第一aar包;
源码打包模块具体为按照目标编译版本对各第一组件和各第二组件的修改后源码分别进行打包的模块;
第二代码包查找模块具体为从aar代码库中查找各第一组件和各第二组件分别对应的目标编译版本的第三aar包的模块。
在本发明的一种具体实施方式中,源码编译组件获得模块31具体为获取编译任务对应的源码开关变量状态处于打开状态的各第一组件的模块;
该装置还包括:
第一开关变量转换模块,用于在根据组件间依赖关系确定依赖各第一组件的各第二组件之后,将各第二组件对应的源码开关变量状态由关闭状态转换为打开状态。
在本发明的一种具体实施方式中,该装置还可以包括:
第二开关变量转换模块,用于在基于各目标源码对各第一组件和各第二组件进行编译操作之后,将各第一组件和各第二组件的源码开关变量状态由打开状态转化为关闭状态。
在本发明的一种具体实施方式中,该装置还可以包括:
身份标识获取模块,用于在将各第二组件对应的源码开关变量状态由关闭状态转换为打开状态之前,获取编译任务对应的编译请求方的身份标识信息;
权限验证模块,用于对身份标识信息进行权限验证;
第一开关变量转换模块具体为当权限验证通过时,将各第二组件对应的源码开关变量状态由关闭状态转换为打开状态的模块。
实施例四:
相应于上面的方法实施例,参见图4,图4为本发明所提供的组件编译设备的示意图,该设备可以包括:
存储器41,用于存储计算机程序;
处理器42,用于执行上述存储器41存储的计算机程序时可实现如下步骤:
对接收到的编译任务进行解析,得到待源码编译的各第一组件;获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件;从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径;根据各源码路径获取各第一组件和各第二组件分别对应的目标源码;基于各目标源码对各第一组件和各第二组件进行编译操作。
对于本发明提供的设备的介绍请参照上述方法实施例,本发明在此不做赘述。
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
对接收到的编译任务进行解析,得到待源码编译的各第一组件;获取预设的组件间依赖关系,并根据组件间依赖关系确定依赖各第一组件的各第二组件;从源码路径目录中分别查找各第一组件和各第二组件分别对应的源码路径;根据各源码路径获取各第一组件和各第二组件分别对应的目标源码;基于各目标源码对各第一组件和各第二组件进行编译操作。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种组件编译方法,其特征在于,包括:
获取编译任务对应的源码开关变量状态处于打开状态的各第一组件;
获取预设的组件间依赖关系,并根据所述组件间依赖关系确定依赖各所述第一组件的各第二组件;
将各所述第二组件对应的源码开关变量状态由关闭状态转换为打开状态;
从源码路径目录中分别查找各所述第一组件和各所述第二组件分别对应的源码路径;
根据各所述源码路径获取各所述第一组件和各所述第二组件分别对应的目标源码;
基于各所述目标源码对各所述第一组件和各所述第二组件进行编译操作;
将各所述第一组件和各所述第二组件的源码开关变量状态由所述打开状态转化为关闭状态。
2.根据权利要求1所述的组件编译方法,其特征在于,在基于各所述目标源码对各所述第一组件和各所述第二组件进行编译操作之后,还包括:
获取所述编译任务对应的非源码编译的各第三组件;
从aar代码库中查找各所述第三组件分别对应的第一aar包;
根据各所述第一组件和各所述第二组件之间的依赖关系,对各所述第一组件和各所述第二组件的修改后源码分别进行打包,得到各第二aar包;
基于各所述第一aar包和各所述第二aar包进行aar编译操作。
3.根据权利要求2所述的组件编译方法,其特征在于,在对各所述第一组件和各所述第二组件的修改后源码分别进行打包,得到各第二aar包之后,还包括:
从所述aar代码库中查找各所述第一组件和各所述第二组件分别对应的第三aar包;
利用各所述第二aar包替换各所述第三aar包。
4.根据权利要求3所述的组件编译方法,其特征在于,从aar代码库中查找各所述第三组件分别对应的第一aar包,包括:
获取所述编译任务对应的目标编译版本;
从所述aar代码库中查找各所述第三组件分别对应的所述目标编译版本的第一aar包;
对各所述第一组件和各所述第二组件的修改后源码分别进行打包,包括:
按照所述目标编译版本对各所述第一组件和各所述第二组件的修改后源码分别进行打包;
从aar代码库中查找各所述第一组件和各所述第二组件分别对应的第三aar包,包括:
从所述aar代码库中查找各所述第一组件和各所述第二组件分别对应的所述目标编译版本的第三aar包。
5.根据权利要求1所述的组件编译方法,其特征在于,在将各所述第二组件对应的源码开关变量状态由关闭状态转换为打开状态之前,还包括:
获取所述编译任务对应的编译请求方的身份标识信息;
对所述身份标识信息进行权限验证;
当权限验证通过时,执行所述将各所述第二组件对应的源码开关变量状态由关闭状态转换为打开状态的步骤。
6.一种组件编译装置,其特征在于,包括:
源码编译组件获得模块,用于获取编译任务对应的源码开关变量状态处于打开状态的各第一组件;
组件确定模块,用于获取预设的组件间依赖关系,并根据所述组件间依赖关系确定依赖各所述第一组件的各第二组件;
第一开关变量转换模块,用于将各所述第二组件对应的源码开关变量状态由关闭状态转换为打开状态;
路径查找模块,用于从源码路径目录中分别查找各所述第一组件和各所述第二组件分别对应的源码路径;
源码获取模块,用于根据各所述源码路径获取各所述第一组件和各所述第二组件分别对应的目标源码;
组件编译模块,用于基于各所述目标源码对各所述第一组件和各所述第二组件进行编译操作;
第二开关变量转换模块,用于将各所述第一组件和各所述第二组件的源码开关变量状态由所述打开状态转化为关闭状态。
7.一种组件编译设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述组件编译方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述组件编译方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110189155.4A CN112965720B (zh) | 2021-02-19 | 2021-02-19 | 一种组件编译方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110189155.4A CN112965720B (zh) | 2021-02-19 | 2021-02-19 | 一种组件编译方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112965720A CN112965720A (zh) | 2021-06-15 |
CN112965720B true CN112965720B (zh) | 2024-06-18 |
Family
ID=76285071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110189155.4A Active CN112965720B (zh) | 2021-02-19 | 2021-02-19 | 一种组件编译方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965720B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020693B (zh) * | 2021-10-19 | 2022-07-08 | 北京五八信息技术有限公司 | 一种头文件地址的获取方法、装置、电子设备及存储介质 |
CN113986239B (zh) * | 2021-10-22 | 2024-09-20 | 烽火通信科技股份有限公司 | 分布式编译方法、装置、设备及可读存储介质 |
CN114528007B (zh) * | 2021-12-31 | 2025-02-11 | 北京达佳互联信息技术有限公司 | 组件处理方法、装置、电子设备及存储介质 |
CN114924788B (zh) * | 2022-07-20 | 2022-12-27 | 北京达佳互联信息技术有限公司 | 代码同步方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870310A (zh) * | 2014-02-18 | 2014-06-18 | 小米科技有限责任公司 | 程序编译方法及相关装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908403A (zh) * | 2017-11-10 | 2018-04-13 | 北京搜狐新动力信息技术有限公司 | 一种移动端业务模块组件化的配置方法及系统 |
CN110321131B (zh) * | 2019-07-05 | 2022-11-08 | 北京百佑科技有限公司 | 业务组件打包方法、系统及服务器 |
CN111459499A (zh) * | 2020-04-20 | 2020-07-28 | 网易(杭州)网络有限公司 | 程序编译方法及装置、计算机存储介质、电子设备 |
-
2021
- 2021-02-19 CN CN202110189155.4A patent/CN112965720B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870310A (zh) * | 2014-02-18 | 2014-06-18 | 小米科技有限责任公司 | 程序编译方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
基于Android软件开发组件化研究;殷涛 等;计算机应用与软件;第36卷(第9期);第18-19页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112965720A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112965720B (zh) | 一种组件编译方法、装置、设备及计算机可读存储介质 | |
CN109491695B (zh) | 一种集成安卓应用的增量更新方法 | |
CN111752571B (zh) | 程序升级方法、装置、设备及存储介质 | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
US5960197A (en) | Compiler dispatch function for object-oriented C | |
CN108614702B (zh) | 字节码优化方法及装置 | |
CN111967017A (zh) | 生成依赖关系的方法、装置、终端设备及存储介质 | |
CN109491661B (zh) | 通用交叉编译方法及设备 | |
CN111309335A (zh) | 插件应用的编译方法、装置及计算机可读存储介质 | |
US10133871B1 (en) | Method and system for identifying functional attributes that change the intended operation of a compiled binary extracted from a target system | |
CN112882718A (zh) | 编译处理方法、装置、设备及存储介质 | |
CN114968807A (zh) | 代码检测方法、装置、电子设备及可读存储介质 | |
CN110543427A (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN111124480A (zh) | 应用程序包的生成方法、装置、电子设备及存储介质 | |
CN114816816B (zh) | 崩溃堆栈信息处理方法、装置、设备及存储介质 | |
US9116714B2 (en) | Methods and systems for file processing | |
CN113126998A (zh) | 一种增量源码获取方法、装置、电子设备及存储介质 | |
US20220179930A1 (en) | Source modification engine | |
CN118193382A (zh) | 应用程序的测试方法、装置、设备、存储介质及程序产品 | |
CN115098158A (zh) | Sdk打包方法和装置、计算机设备及存储介质 | |
CN113094664B (zh) | 一种防止安卓应用程序被反编译的系统 | |
CN115525457A (zh) | 一种安卓应用兼容性问题修复方法、装置、设备及介质 | |
CN114706586A (zh) | 代码编译、代码运行方法、装置、计算机设备及存储介质 | |
CN115292203A (zh) | 一种源代码分析方法及装置 | |
CN113791767A (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 |