一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种代码打包方法、装置、设备及存储介质与流程

2021-12-07 20:50:00 来源:中国专利 TAG:


1.本发明涉及打包技术领域,特别涉及一种代码打包方法、装置、设备及存储介质。


背景技术:

2.在软件开发过程中,对于业务逻辑可以独立拆分,彼此修改互不影响的,创建为独立的项目,进而打包时生成独立的组件,每一个组件相当于一个独立的功能,比如登陆功能就使用登陆组件。在小型的应用程序里可以方便操作,但是,面对承载了大量业务的应用程序,涉及到多人开发同时工作时,组件数量过多会导致每次的整体项目集成以后,大量的组件版本需要更新时,会增加组件管理时间,耗费大量时间在组件的打包和拆分过程中,同时,增加了自动化平台管理组件的资源,以及组件发布至外网仓库中心等源上的事件和失败率。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种代码打包方法、装置、设备及介质,能够提高打包效率。其具体方案如下:
4.第一方面,本技术公开了一种代码打包方法,包括:
5.读取目标pins工程结构内配置的目录信息,并根据所述目录信息获取相关的所有业务逻辑;
6.对所述目标pins工程结构内不同pin工程之间进行边界检测;
7.在边界检测结果符合目标要求时,对所述所有业务逻辑进行合并然后整体打包,以输出对应的一个打包后组件。
8.可选的,所述读取目标pins工程结构内配置的目录信息之前,还包括:
9.获取业务逻辑配置参数;所述业务逻辑配置参数为根据业务需求定义的配置参数;
10.基于业务逻辑按照所述业务逻辑配置参数,构建包含不同业务逻辑的pin工程以得到所述目标pins工程结构。
11.可选的,所述创建包含不同业务逻辑的pin工程的过程中,还包括:
12.获取每个pin工程对应的资源配置参数,根据所述资源配置参数对每个所述pin工程内的资源和代码进行动态配置。
13.可选的,所述对所述目标pins工程结构内不同pin工程之间进行边界检测之后,还包括:
14.根据边界检测结果确定不同pin工程之间的引用状态,并根据所述引用状态生成相应的告警提示。
15.可选的,所述根据所述目录信息获取相关的所有业务逻辑,包括:
16.根据所述目录信息确定每个pin工程对应的所有源码路径;
17.根据所述源码路径获取每个所述pin工程对应的业务逻辑,以得到所述目标pins
工程结构相关的所有业务逻辑。
18.可选的,所述对所述目标pins工程结构内不同pin工程之间进行边界检测,包括:
19.根据所述目标pins工程结构的所述目录信息,利用product flavors方式动态创建pin工程以进行不同pin工程相互之间的代码引用校验,实现不同pin工程之间的边界检测。
20.第二方面,本技术公开了一种代码打包装置,包括:
21.信息获取模块,用于读取目标pins工程结构内配置的目录信息,并根据所述目录信息获取相关的所有业务逻辑;
22.边界检测模块,用于对所述目标pins工程结构内不同pin工程之间进行边界检测;
23.打包模块,用于在边界检测结果符合目标要求时,对所述所有业务逻辑进行合并然后整体打包,以输出对应的一个打包后组件。
24.可选的,所述边界检测模块,包括:
25.代码引用校验单元,用于根据所述目标pins工程结构的所述目录信息,利用product flavors方式动态创建pin工程以进行不同pin工程相互之间的代码引用校验,实现不同pin工程之间的边界检测。
26.第三方面,本技术公开了一种电子设备,包括:
27.存储器,用于保存计算机程序;
28.处理器,用于执行所述计算机程序,以实现前述的代码打包方法。
29.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的代码打包方法。
30.本技术中,读取目标pins工程结构内配置的目录信息,并根据所述目录信息获取相关的所有业务逻辑;对所述目标pins工程结构内不同pin工程之间进行边界检测;在边界检测结果符合目标要求时,对所述所有业务逻辑进行合并然后整体打包,以输出对应的一个打包后组件。可见,通过利用pins工程结构,并结合对目标pins工程结构内不同pin工程之间的边界检测,然后通过合并业务逻辑进行整体打包,由此在隔离不同业务模块的同时,又只输出一个组件,提高了打包效率,同时可以减少组件管理的资源成本,降低组件发布外部仓库的失败率。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
32.图1为本技术提供的一种代码打包方法流程图;
33.图2为本技术提供的一种具体的业务逻辑配置参数定义的不同逻辑业务模块;
34.图3为本技术提供的一种具体的pin工程“tangram_config”内资源及代码的配置形式;
35.图4为本技术提供的一种代码打包装置结构示意图;
36.图5为本技术提供的一种电子设备结构图。
具体实施方式
37.现有技术中,对于业务逻辑可以独立拆分,彼此修改互不影响的,创建为独立的项目,进而打包时生成独立的组件,但是,面对承载了大量业务的应用程序,组件数量过多会导致每次的整体项目集成以后,大量的组件版本需要更新时,会增加组件管理时间,耗费大量时间在组件的打包和拆分过程中,降低了开发效率。为克服上述技术问题,本技术提出一种代码打包方法,能够提高打包效率。
38.本技术实施例公开了一种代码打包方法,参见图1所示,该方法可以包括以下步骤:
39.步骤s11:读取目标pins工程结构内配置的目录信息,并根据所述目录信息获取相关的所有业务逻辑。
40.本实施例中,首先获取目标pins工程结构内配置的目录信息,例如图1所示,根据上述目录信息获取相关的所有业务逻辑,即相关的业务程序代码及资源。可以理解的是,在一个sub project当中,可以定义一个或者多个项目pin,将不同的业务逻辑写在这些pin工程当中,所有的pin工程组件得到pins工程结构。
41.本实施例中,所述读取目标pins工程结构内配置的目录信息之前,还可以包括:获取业务逻辑配置参数;所述业务逻辑配置参数为根据业务需求定义的配置参数;基于业务逻辑按照所述业务逻辑配置参数,构建包含不同业务逻辑的pin工程以得到所述目标pins工程结构。可以理解的是,根据业务需求可以自定义业务逻辑配置参数,然后按该配置参数构建pin结构,将不同的业务逻辑写在pin中以实现不同逻辑业务模块,例如图2右侧示例了一种具体的业务逻辑配置参数定义的不同逻辑业务模块。
42.本实施例中,所述创建包含不同业务逻辑的pin工程的过程中,还可以包括:获取每个pin工程对应的资源配置参数,根据所述资源配置参数对每个所述pin工程内的资源和代码进行动态配置。可以理解的是,每个pin工程,即每个逻辑业务模块内还可能含有大量代码及资源,因此可以通过获取每个pin工程对应的资源配置参数,然后根据上述资源配置参数对每个pin工程内的资源和代码进行动态配置,例如图3示例了一种具体的pin工程“tangram_config”内资源及代码的配置形式。
43.本实施例中,所述根据所述目录信息获取相关的所有业务逻辑,可以包括:根据所述目录信息确定每个pin工程对应的所有源码路径;根据所述源码路径获取每个所述pin工程对应的业务逻辑,以得到所述目标pins工程结构相关的所有业务逻辑。具体的,可以根据pins里面配置的目录信息,将pin工程的所有源码路径集中起来,收集添加业务逻辑到打包的目录下以便进行合成打包。
44.步骤s12:对所述目标pins工程结构内不同pin工程之间进行边界检测。
45.本实施例中,获取到所有业务逻辑后,需要对目标pins工程结构内不同pin工程之间进行边界检测,可以理解的是,虽然按照业务逻辑构建了包含不同业务逻辑的pin工程,但不同pin工程之间可能会存在资源复用的情况,而为了后续整体打包时,避免复用情况导致的打包混乱,本实施例中通过对目标pins工程结构内不同pin工程之间进行边界检测,检测不同pin工程之间的引用复用情况。
46.本实施例中,所述对所述目标pins工程结构内不同pin工程之间进行边界检测,可以包括:根据所述目标pins工程结构的所述目录信息,利用product flavors方式动态创建
pin工程以进行不同pin工程相互之间的代码引用校验,实现不同pin工程之间的边界检测。即根据pins配置的独立的pin,利用安卓的product flavors方式进行动态创建pin工程进行不同pin工程相互之间的代码引用校验,以判断不同pin工程之间是否相互引用不该用的代码。本实施例中,所述对所述目标pins工程结构内不同pin工程之间进行边界检测之后,还可以包括:根据边界检测结果确定不同pin工程之间的引用状态,并根据所述引用状态生成相应的告警提示。本实施例中,为保证后续整体打包的效果,对于不同pin工程之间相互引用不该用的代码的情况,生成相应的告警提示,以提示用户解决相关问题。
47.步骤s13:在边界检测结果符合目标要求时,对所述所有业务逻辑进行合并然后整体打包,以输出对应的一个打包后组件。
48.本实施例中,当边界检测结果符合目标要求时,即不存在异常代码复用时,对上述所有业务逻辑进行合并然后整体打包,具体合并操作可以在android manifest的prebuild前进行,以最终输出一个打包后组件,由此在隔离不同业务模块的同时,又可以实现只输出一个组件,提高了打包效率,并方便后续包拆分,同时可以减少组件管理的资源成本,降低组件发布外部仓库的失败率。
49.由上可见,本实施例中通过读取目标pins工程结构内配置的目录信息,并根据所述目录信息获取相关的所有业务逻辑;对所述目标pins工程结构内不同pin工程之间进行边界检测;在边界检测结果符合目标要求时,对所述所有业务逻辑进行合并然后整体打包,以输出对应的一个打包后组件。可见,通过利用pins工程结构,并结合对目标pins工程结构内不同pin工程之间的边界检测,然后通过合并业务逻辑进行整体打包,由此在隔离不同业务模块的同时,又只输出一个组件,提高了打包效率,同时可以减少组件管理的资源成本,降低组件发布外部仓库的失败率。
50.相应的,本技术实施例还公开了一种代码打包装置,参见图4所示,该装置包括:
51.信息获取模块11,用于读取目标pins工程结构内配置的目录信息,并根据所述目录信息获取相关的所有业务逻辑;
52.边界检测模块12,用于对所述目标pins工程结构内不同pin工程之间进行边界检测;
53.打包模块13,用于在边界检测结果符合目标要求时,对所述所有业务逻辑进行合并然后整体打包,以输出对应的一个打包后组件。
54.由上可见,本实施例中通过读取目标pins工程结构内配置的目录信息,并根据所述目录信息获取相关的所有业务逻辑;对所述目标pins工程结构内不同pin工程之间进行边界检测;在边界检测结果符合目标要求时,对所述所有业务逻辑进行合并然后整体打包,以输出对应的一个打包后组件。可见,通过利用pins工程结构,并结合对目标pins工程结构内不同pin工程之间的边界检测,然后通过合并业务逻辑进行整体打包,由此在隔离不同业务模块的同时,又只输出一个组件,提高了打包效率,同时可以减少组件管理的资源成本,降低组件发布外部仓库的失败率。
55.在一些具体实施例中,所述代码打包装置具体可以包括:
56.业务逻辑配置参数获取单元,用于获取业务逻辑配置参数;所述业务逻辑配置参数为根据业务需求定义的配置参数;
57.pins工程结构构建单元,用于基于业务逻辑按照所述业务逻辑配置参数,构建包
含不同业务逻辑的pin工程以得到所述目标pins工程结构。
58.在一些具体实施例中,所述pins工程结构构建单元具体可以包括:
59.资源配置单元,用于获取每个pin工程对应的资源配置参数,根据所述资源配置参数对每个所述pin工程内的资源和代码进行动态配置。
60.在一些具体实施例中,所述代码打包装置具体可以包括:
61.告警单元,用于根据边界检测结果确定不同pin工程之间的引用状态,并根据所述引用状态生成相应的告警提示。
62.在一些具体实施例中,所述信息获取模块11具体可以包括:
63.源码路径确定单元,用于根据所述目录信息确定每个pin工程对应的所有源码路径;
64.业务逻辑获取单元,用于根据所述源码路径获取每个所述pin工程对应的业务逻辑,以得到所述目标pins工程结构相关的所有业务逻辑。
65.在一些具体实施例中,所述边界检测模块12具体可以包括:
66.代码引用校验单元,用于根据所述目标pins工程结构的所述目录信息,利用product flavors方式动态创建pin工程以进行不同pin工程相互之间的代码引用校验,实现不同pin工程之间的边界检测。
67.进一步的,本技术实施例还公开了一种电子设备,参见图5所示,图中的内容不能被认为是对本技术的使用范围的任何限制。
68.图5为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的代码打包方法中的相关步骤。
69.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
70.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括业务逻辑在内的数据223等,存储方式可以是短暂存储或者永久存储。
71.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的代码打包方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
72.进一步的,本技术实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的代码打包方法步骤。
73.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它
实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
74.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
75.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
76.以上对本发明所提供的一种代码打包方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献