CN113094085B - 组件集成方法、装置、计算机可读存储介质及电子设备 - Google Patents

组件集成方法、装置、计算机可读存储介质及电子设备 Download PDF

Info

Publication number
CN113094085B
CN113094085B CN202110397581.7A CN202110397581A CN113094085B CN 113094085 B CN113094085 B CN 113094085B CN 202110397581 A CN202110397581 A CN 202110397581A CN 113094085 B CN113094085 B CN 113094085B
Authority
CN
China
Prior art keywords
component
target component
target
preset
information
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
Application number
CN202110397581.7A
Other languages
English (en)
Other versions
CN113094085A (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.)
Seashell Housing Beijing Technology Co Ltd
Original Assignee
Seashell Housing Beijing Technology 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 Seashell Housing Beijing Technology Co Ltd filed Critical Seashell Housing Beijing Technology Co Ltd
Priority to CN202110397581.7A priority Critical patent/CN113094085B/zh
Publication of CN113094085A publication Critical patent/CN113094085A/zh
Application granted granted Critical
Publication of CN113094085B publication Critical patent/CN113094085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

本公开的实施例公开了一种组件集成方法、装置、计算机可读存储介质及电子设备。该方法包括:获取属于Flutter组件的目标组件;判断本地是否部署有Flutter软件开发安装包SDK,以得到判断结果;根据判断结果和目标组件的组件代码目录,确定并获取目标组件所依赖的各个组件;调用预设组件集成函数,将目标组件所依赖的各个组件集成于与目标组件关联的宿主工程;根据目标组件的组件描述配置文件,将目标组件集成于宿主工程。本公开的实施例能够成功将Flutter组件集成至需要使用其的APP,整个过程实施起来非常便捷,无需过多人工参与,有利于避免人工引入不全、不同步的问题,能够保证集成效率和效果。

Description

组件集成方法、装置、计算机可读存储介质及电子设备
技术领域
本公开涉及通信技术领域,尤其涉及一种组件集成方法、装置、计算机可读存储介质及电子设备。
背景技术
Flutter是谷歌发布的移动用户界面(User Interface,UI)框架,其可以用于构建跨平台手机应用程序(Application,APP),快速地在操作系统上构建高质量的用户界面。
目前,在将Flutter组件集成至APP时,采用的集成方式很大程度上依赖于人工,实施起来非常繁琐,效率低,集成效果也难以保证。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种组件集成方法、装置、计算机可读存储介质及电子设备。
根据本公开实施例的一个方面,提供了一种组件集成方法,包括:
获取属于Flutter组件的目标组件;
判断本地是否部署有Flutter软件开发安装包SDK,以得到判断结果;
根据所述判断结果和所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件;
调用预设组件集成函数,将所述目标组件所依赖的各个组件集成于与所述目标组件关联的宿主工程;
根据所述目标组件的组件描述配置文件,将所述目标组件集成于所述宿主工程。
在一个可选示例中,所述根据所述判断结果和所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件,包括:
在所述判断结果表征本地未部署FlutterSDK的情况下,调用预设部署工具,在本地部署FlutterSDK;根据调用所述预设部署工具部署的FlutterSDK,执行用于构建组件上下文环境的命令,以通过所述命令的执行,根据所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件;
在所述判断结果表征本地部署有FlutterSDK的情况下,根据本地已部署的FlutterSDK,执行所述命令。
在一个可选示例中,所述获取属于Flutter组件的目标组件,包括:
在根据目标组件信息,识别出所述目标组件信息所指向的目标组件属于Flutter组件的情况下,根据所述目标组件信息,获取所述目标组件。
在一个可选示例中,所述目标组件信息中包括组件名称、远程仓库地址信息和组件版本号;
所述根据所述目标组件信息,获取所述目标组件,包括:
根据所述远程仓库地址信息和所述组件版本号,获取第一校验值;其中,所述第一校验值是根据所述远程仓库地址信息对应的远程仓库中、具有所述组件版本号的组件,进行第一预设校验运算得到的校验值;
在所述组件名称对应的本地校验数据集合中不存在所述第一校验值的情况下,从所述远程仓库中下载具有所述组件版本号的组件作为所述目标组件,在本地存储所述目标组件,并将所述第一校验值添加至所述组件名称对应的本地校验数据集合;
在所述组件名称对应的本地校验数据集合中存在所述第一校验值的情况下,从本地获取所述目标组件。
在一个可选示例中,所述目标组件信息中包括组件名称,所述宿主工程的数量为N个,N为大于或等于2的整数;
所述方法还包括:
分别根据N个所述宿主工程中的每个所述宿主工程的根目录,进行第二预设校验运算,以得到N个校验值;
根据所述组件名称和N个所述校验值,确定与N个所述宿主工程对应的N个目录名称;
创建与N个所述目录名称对应的N个本地目录;
在获取所述目标组件之后,将所述目标组件分别复制至N个所述本地目录;
其中,针对任一所述宿主工程,执行所述确定并获取所述目标组件所依赖的各个组件的步骤,以及所述将所述目标组件集成于所述宿主工程的步骤时,利用的所述目标组件为当前所述宿主工程对应的所述本地目录中的所述目标组件。
在一个可选示例中,所述在根据目标组件信息,识别出所述目标组件信息所指向的目标组件属于Flutter组件的情况下,根据所述目标组件信息,获取所述目标组件之前,所述方法还包括:
判断所述目标组件信息中是否包括预设Flutter协议数据;
在所述目标组件信息中包括所述预设Flutter协议数据的情况下,识别出所述目标组件信息所指向的目标组件属于Flutter组件;否则,识别出所述目标组件信息所指向的目标组件不属于Flutter组件。
根据本公开实施例的另一个方面,提供了一种组件集成装置,包括:
第一获取模块,用于获取属于Flutter组件的目标组件;
第一判断模块,用于判断本地是否部署有Flutter软件开发安装包SDK,以得到判断结果;
第二获取模块,用于根据所述判断结果和所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件;
第一集成模块,用于调用预设组件集成函数,将所述目标组件所依赖的各个组件集成于与所述目标组件关联的宿主工程;
第二集成模块,用于根据所述目标组件的组件描述配置文件,将所述目标组件集成于所述宿主工程。
在一个可选示例中,所述第二获取模块,具体用于:
在所述判断结果表征本地未部署FlutterSDK的情况下,调用预设部署工具,在本地部署FlutterSDK;根据调用所述预设部署工具部署的FlutterSDK,执行用于构建组件上下文环境的命令,以通过所述命令的执行,根据所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件;在所述判断结果表征本地部署有FlutterSDK的情况下,根据本地已部署的FlutterSDK,执行所述命令。
在一个可选示例中,所述第一获取模块,具体用于:
在根据目标组件信息,识别出所述目标组件信息所指向的目标组件属于Flutter组件的情况下,根据所述目标组件信息,获取所述目标组件。
在一个可选示例中,所述目标组件信息中包括组件名称、远程仓库地址信息和组件版本号;
所述第一获取模块,包括:
第一获取子模块,用于根据所述远程仓库地址信息和所述组件版本号,获取第一校验值;其中,所述第一校验值是根据所述远程仓库地址信息对应的远程仓库中、具有所述组件版本号的组件,进行第一预设校验运算得到的校验值;
处理子模块,用于在所述组件名称对应的本地校验数据集合中不存在所述第一校验值的情况下,从所述远程仓库中下载具有所述组件版本号的组件作为所述目标组件,在本地存储所述目标组件,并将所述第一校验值添加至所述组件名称对应的本地校验数据集合;
第二获取子模块,用于在所述组件名称对应的本地校验数据集合中存在所述第一校验值的情况下,从本地获取所述目标组件。
在一个可选示例中,所述目标组件信息中包括组件名称,所述宿主工程的数量为N个,N为大于或等于2的整数;
所述装置还包括:
第三获取模块,用于分别根据N个所述宿主工程中的每个所述宿主工程的根目录,进行第二预设校验运算,以得到N个校验值;
确定模块,用于根据所述组件名称和N个所述校验值,确定与N个所述宿主工程对应的N个目录名称;
创建模块,用于创建与N个所述目录名称对应的N个本地目录;
复制模块,用于在获取所述目标组件之后,将所述目标组件分别复制至N个所述本地目录;
其中,针对任一所述宿主工程,在所述第二获取模块执行所述确定并获取所述目标组件所依赖的各个组件的步骤,以及所述第二集成模块执行所述将所述目标组件集成于所述宿主工程的步骤时,利用的所述目标组件为当前所述宿主工程对应的所述本地目录中的所述目标组件。
在一个可选示例中,所述装置还包括:
第二判断模块,用于在根据目标组件信息,识别出所述目标组件信息所指向的目标组件属于Flutter组件的情况下,根据所述目标组件信息,获取所述目标组件之前,判断所述目标组件信息中是否包括预设Flutter协议数据;在所述目标组件信息中包括所述预设Flutter协议数据的情况下,触发第一识别模块;否则,触发第二识别模块;
所述第一识别模块,用于识别出所述目标组件信息所指向的目标组件属于Flutter组件;
所述第二识别模块,用于识别出所述目标组件信息所指向的目标组件不属于Flutter组件。
根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述组件集成方法。
根据本公开实施例的又一个方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述组件集成方法。
本公开的实施例中,可以获取属于Flutter组件的目标组件,判断本地是否部署有Flutter软件开发安装包(Software Development Kit,SDK),并根据判断结果和目标组件的组件代码,以合适的方式确定并获取目标组件所依赖的各个组件,由于目标组件和目标组件所依赖的各个组件均已经获取了,可以认为集成所需的基础数据已准备好了。之后,可以调用预设组件集成函数,将目标组件所依赖的各个组件集成于与目标组件关联的宿主工程,并根据目标组件的组件描述配置文件,将目标组件集成于宿主工程。可见,本公开的实施例中,结合用于表征本地是否部署有FlutterSDK的判断结果和目标组件的组件代码目录,能够实现目标组件所依赖的组件的获取,再结合预设组件集成函数和目标组件的组件描述配置文件,能够将目标组件和目标组件所依赖的组件自动集成于同一载体,这样相当于成功将Flutter组件集成至了需要使用其的APP,从而有利于在该APP上构建高质量的用户界面,整个过程实施起来非常便捷,无需过多的人工参与,有利于避免人工引入不全、不同步的问题(例如人工引入目标组件所依赖的组件时容易遗漏),这样能够保证集成效率和集成效果,并且,本公开的实施例考虑了本地是否部署有FlutterSDK,使得本公开的实施例能够支持非本地开发人员进行flutter开发,以兼顾本地开发人员进行flutter开发的情况和非本地开发人员进行flutter开发的情况。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例提供的组件集成方法的流程示意图。
图2是本公开另一示例性实施例提供的组件集成方法的流程示意图。
图3是本公开再一示例性实施例提供的组件集成方法的流程示意图。
图4是本公开一示例性实施例提供的组件集成装置的结构示意图。
图5是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性方法
图1是本公开一示例性实施例提供的组件集成方法的流程示意图。图1所示的方法可以包括步骤111、步骤112、步骤113、步骤114和步骤115,下面对各步骤分别进行说明。
步骤111,获取属于Flutter组件的目标组件。
这里,属于Flutter组件的目标组件具体可以为属于Flutter组件的任一组件,目标组件中的“目标”并不构成对目标组件的任何限定。
在步骤111中,可以进行目标组件的获取(这相当于获取了用于构成目标组件的代码),获取的目标组件的代码类型可以为源码。
步骤112,判断本地是否部署有FlutterSDK,以得到判断结果。
这里,可以通过遍历本地已有的各个安装包,判断本地是否部署有FlutterSDK,以得到判断结果,判断结果既可能表征本地部署有FlutterSDK,也可能表征本地未部署FlutterSDK。
步骤113,根据判断结果和目标组件的组件代码目录,确定并获取目标组件所依赖的各个组件。
在一种具体实施方式中,步骤113,包括:
在判断结果表征本地未部署FlutterSDK的情况下,调用预设部署工具,在本地部署FlutterSDK;根据调用预设部署工具部署的FlutterSDK,执行用于构建组件上下文环境的命令,以通过命令的执行,根据目标组件的组件代码目录,确定并获取目标组件所依赖的各个组件;
在判断结果表征本地部署有FlutterSDK的情况下,根据本地已部署的FlutterSDK,执行命令。
这里,预设部署工具可以预先研发好的,用于下载并部署FlutterSDK的工具,可选地,预设部署工具可以称为F1utterw。
这里,用于构建组件上下文环境的命令可以为flutter pub get命令,该命令也可以称为flutterSDK命令。可以理解的是,在本地存在flutterSDK的情况下,flutterSDK命令才能正常执行。
这种实施方式中,对于本地未部署FlutterSDK的情况,通过预设部署工具的调用,能够便捷可靠地实现FlutterSDK在本地的部署,这样能够有效地保证用于构建组件上下文环境的命令的正常执行,而对于本地部署有FlutterSDK的情况,无需调用预设部署工具,可以直接根据本地已有的F1utterSDK,执行用于构建组件上下文环境的命令。需要指出的是,通过该命令的执行,可以实现根据目标组件的组件代码目录,确定并获取目标组件所依赖的各个组件的目的,以便基于目标组件所依赖的各个组件执行后续步骤。
需要说明的是,目标组件的组件代码目录中可以记录有目标组件与其它组件之间的依赖关系以及其它组件的存储信息等,在已获取目标组件的情况下,可以进一步基于目标组件的组件代码目录中记录的依赖关系和存储信息,便捷可靠地确定出目标组件依赖于哪些组件,这些组件具体存储于什么位置,基于确定出的这些信息,即可获取目标组件所依赖的各个组件。
可选地,可以通过对目标组件的组件代码目录下的.flutter-plugins文件进行解析,确定并获取flutter中使用的iOS(其为一种移动操作系统)代码及目录,获取到的iOS代码及目录即可认为是目标组件所依赖的各个组件。另外,目标组件所依赖的组件也可以称为Plugin组件,目标组件依赖于Plugin组件可以是指:实际使用时,目标组件与Plugin组件需要调用对方中的代码文件。
步骤114,调用预设组件集成函数,将目标组件所依赖的各个组件集成于与目标组件关联的宿主工程。
这里,预设组件集成函数可以为预先配置的、可实现Plugin组件的集成的cocoapods函数;其中cocoapods是一个负责管理iOS项目中第三方开源库的工具。
这里,与目标组件关联的宿主工程可以是指针对需要引入目标组件的APP配置的工程;其中,与目标组件关联的宿主工程的数量可以为一个或者至少两个,也即,需要引入目标组件的APP的数量可以为一个或者至少两个。
步骤115,根据目标组件的组件描述配置文件,将目标组件集成于宿主工程。
这里,目标组件的组件描述配置文件可以是cocoapods官方提供的组件描述配置文件。
在步骤115中,目标组件的组件描述配置文件中可以写有用于编译目标组件的代码,通过对该代码的调用,可以自动将目标组件以组件的buildphase(即构建阶段)方式集成于宿主工程。
本公开的实施例中,可以获取属于Flutter组件的目标组件,判断本地是否部署有FlutterSDK,并根据判断结果和目标组件的组件代码,以合适的方式确定并获取目标组件所依赖的各个组件,由于目标组件和目标组件所依赖的各个组件均已经获取了,可以认为集成所需的基础数据已准备好了。之后,可以调用预设组件集成函数,将目标组件所依赖的各个组件集成于与目标组件关联的宿主工程,并根据目标组件的组件描述配置文件,将目标组件集成于宿主工程。可见,本公开的实施例中,结合用于表征本地是否部署有FlutterSDK的判断结果和目标组件的组件代码目录,能够实现目标组件所依赖的组件的获取,再结合预设组件集成函数和目标组件的组件描述配置文件,能够将目标组件和目标组件所依赖的组件自动集成于同一载体,这样相当于成功将Flutter组件集成至了需要使用其的APP,从而有利于在该APP上构建高质量的用户界面,整个过程实施起来非常便捷,无需过多的人工参与,有利于避免人工引入不全、不同步的问题(例如人工引入目标组件所依赖的组件时容易遗漏),这样能够保证集成效率和集成效果,并且,本公开的实施例考虑了本地是否部署有FlutterSDK,使得本公开的实施例能够支持非本地开发人员进行flutter开发,以兼顾本地开发人员进行flutter开发的情况和非本地开发人员进行flutter开发的情况。
在图1所示实施例的基础上,如图2所示,步骤111,包括:
步骤1111,在根据目标组件信息,识别出目标组件信息所指向的目标组件属于Flutter组件的情况下,根据目标组件信息,获取目标组件。
这里,目标组件信息中可以包括若干种与组件特征相关的信息,包括但不限于组件名称、组件版本号、组件存储位置、组件类型等;其中,组件存储位置既可以为本地存储位置,也可以为远程存储位置。
在步骤1111中,参考目标组件信息中包括的信息,能够唯一确定一组件,确定出的组件即可作为目标组件信息所指向的目标组件。
另外,在步骤111中,还可以根据目标组件信息,识别目标组件信息所指向的目标组件是否属于Flutter组件,例如通过一处理插件,识别目标组件是否属于Flutter组件;其中,处理插件可以为cocoapods-ljflutter插件。在识别结果为目标组件属于Flutter组件的情况下,可以根据目标组件信息,获取目标组件。
在一种具体实施方式中,目标组件信息中包括组件名称、远程仓库地址信息和组件版本号;
根据目标组件信息,获取目标组件,包括:
根据远程仓库地址信息和组件版本号,获取第一校验值;其中,第一校验值是根据远程仓库地址信息对应的远程仓库中、具有组件版本号的组件,进行第一预设校验运算得到的校验值;
在组件名称对应的本地校验数据集合中不存在第一校验值的情况下,从远程仓库中下载具有组件版本号的组件作为目标组件,在本地存储目标组件,并将第一校验值添加至组件名称对应的本地校验数据集合;
在组件名称对应的本地校验数据集合中存在第一校验值的情况下,从本地获取目标组件。
这里,第一预设校验运算可以为哈希运算。
需要说明的是,可以预先设置若干个远程仓库,每个远程仓库中可以存储有若干个组件,每个组件具有各自的组件名称和组件版本号,位于相同远程仓库中的各个组件具有相同的组件名称和不同的组件版本号;另外,还可以预先设置与若干个远程仓库中的所有组件一一对应的若干个应用程序编程接口(Application Programming Interface,API)。可选地,若干个远程仓库中的所有组件中的每个组件可以具有各自的组件标识(例如组件索引),通过对每个组件标识进行第一预设校验运算,可以分别得到相应的校验值,所得到的各个校验值可以分别对应于相应组件进行存储;或者,可以通过对每个组件进行第一预设校验运算,分别得到相应的校验值,所得到的各个校验值可以分别对应于相应组件进行存储。
具体实施时,根据目标组件信息中的远程仓库地址信息和组件版本号,能够唯一地定位一组件(该组件具体位于该远程仓库地址信息对应的远程仓库中,且具有该组件版本号),通过调用该组件对应的API,即可获取该组件对应的校验值,该校验值即可作为上文中的第一校验值。
在获取到第一校验值之后,可以对目标组件信息中的组件名称对应的本地校验数据集进行遍历,以确定该本地校验数据集中是否存在第一校验值。在确定结果为不存在的情况下,可以通过调用该API,从该远程仓库中下载具有该组件版本号的组件作为目标组件,在本地存储目标组件,并将第一校验值添加至组件名称对应的本地校验数据集合;在确定结果为存在的情况下,可以认为之前已经在本地存储过目标组件了,那么,可以直接从本地获取目标组件。
可见,这种实施方式中,结合目标组件信息、第一预设校验运算和本地校验数据集,可以有效地验证本地是否存储过目标组件,在本地未存储过目标组件的情况下,从远程仓库获取目标组件,在本地存储过目标组件的的情况下,直接从本地获取目标组件,而无需在所有情况下均从远程仓库获取目标组件,这样有利于节约资源。
当然,根据目标组件信息,获取目标组件的方式并不局限于此,例如,可以无需考虑本地是否存储过目标组件,而直接根据目标组件信息中的远程仓库地址信息和组件版本号,从远程仓库获取目标组件,这也是可行的。
本公开的实施例中,利用目标组件信息,能够便捷可靠地实现目标组件的获取。
在一个可选示例中,目标组件信息中包括组件名称,宿主工程的数量为N个,N为大于或等于2的整数;
该方法还包括:
分别根据N个宿主工程中的每个宿主工程的根目录,进行第二预设校验运算,以得到N个校验值;
根据组件名称和N个校验值,确定与N个宿主工程对应的N个目录名称;
创建与N个目录名称对应的N个本地目录;
在获取目标组件之后,将目标组件分别复制至N个本地目录;
其中,针对任一宿主工程,执行确定并获取目标组件所依赖的各个组件的步骤,以及将目标组件集成于宿主工程的步骤时,利用的目标组件为当前宿主工程对应的本地目录中的目标组件。
这里,N可以为2、3、6、8、10等,在此不再一一列举。
这里,第二预设校验运算与第一预设校验运算可以为相同的校验运算,也可以为不同的校验运算。可选地,第二预设校验运算可以为哈希运算。
本公开的实施例中,可以先获取N个宿主工程中的每个宿主工程的根目录,接下来,可以分别对每个根目录进行第二预设校验运算,以得到相应的校验值,从而得到N个校验值,N个校验值与N个宿主工程之间可以为一一对应的关系。
接下来,可以根据目标组件信息中的组件名称和N个校验值,确定与N个宿主工程对应的N个目录名称,N个宿主工程与N个目录名称之间可以为一一对应的关系。可选地,针对任一宿主工程,可以将目标组件信息中的组件名称与该宿主工程对应的校验值用“-”进行连接,并将连接结果作为该宿主工程对应的目录名称,例如目标组件信息中的组件名称为flutter_beike_portal,该宿主工程对应的校验值为hash1,则该宿主工程对应的目录名称可以为flutter_beike_portal-hash1。
之后,可以创建与N个目录名称对应的N个本地目录,任一本地目录与一目录名称对应具体是指:该本地目录的名称为该目录名称。
在获取目标组件之后,可以将目标组件分别复制至N个本地目录,由于N个本地目录分别存在目标组件,在针对任一宿主工程执行上述的步骤113和步骤115时,利用的目标组件可以为当前宿主工程对应的本地目录中的目标组件,这样,目标组件可以被N个宿主工程使用,且N个宿主工程对目标组件的使用互不影响。
在图2所示实施例的基础上,如图3所示,在步骤1111之前,该方法还包括:
步骤101,判断目标组件信息中是否包括预设Flutter协议数据;在目标组件信息中包括预设Flutter协议数据的情况下,执行步骤102;否则,执行步骤103。
步骤102,识别出目标组件信息所指向的目标组件属于Flutter组件。
步骤103,识别出目标组件信息所指向的目标组件不属于Flutter组件。
这里,预设Flutter协议数据可以呈如下形式:“:isFlutter=>true”,当然,预设Flutter协议数据也可以呈其它形式,例如“:isFlutter=1”,在此不再一一列举。
本公开的实施例中,通过判断目标组件信息中是否包括预设Flutter协议数据,能够便捷可靠地识别出目标组件信息所指向的目标组件是否属于Flutter组件。
需要说明的是,为了将Flutter组件集成至APP,本公开的实施例中可以使用一种特殊的集成方式,该集成集成可以称为git集成方式,下面对git集成方式的具体实现过程进行介绍。
目标组件信息可以呈如下形式:pod‘flutter_beike_portal’,:git=>’http://gerrit.lianjia.com/mobile_ios/flutter_be ike_portal’,:branch=>’abc’,:isFlutter=>true,利用cocoapods-ljflutter插件,能够识别出目标组件信息中包括“:isFlutter=>true”,则可以识别出目标组件信息所指向的目标组件(即http://gerrit.lianjia.com/mobile_ios/flutter_beike_portal所表示的远程仓库中,组件版本号为abc的版本)属于Flutter组件。
接下来,可以根据目标组件信息中的http://gerrit.lianjia.com/mobile_ios/flutter_beike_portal和abc,通过调用API,获取相应的commitId(相当于上文中的第一校验值)。之后,可以遍历flutter_beike_portal对应的commitId集合(其相当于上文中的本地校验数据集合),在flutter_beike_portal对应的commitId集合中不存在所获取的commitId的情况下,可以从相应的远程仓库中下载目标组件,在本地存储目标组件,并将所获取的commitId添加至flutter_beike_portal对应的commitId集合;否则,可以从本地获取目标组件。
之后,可以获取各个podfile所在的目录,对podfile所在的目录进行hash算法得出目录hash值,根据得出的hash值创建“一个组件名称-hash“的本地目录,并将之前获取的目标组件分别copy至创建的各个本地目录(其相当于上文中的分别根据N个宿主工程中的每个宿主工程的根目录,进行第二预设校验运算,以得到N个校验值;根据组件名称和N个校验值,确定与N个宿主工程对应的N个目录名称;创建与N个目录名称对应的N个本地目录;在获取目标组件之后,将目标组件分别复制至N个本地目录)。
再之后,可以检测本地是否部署有FlutterSDK,如果没有,则使用自研工具Flutterw在本地部署FlutterSDK,然后可以执行flutter pub get命令,以构建组件上下文环境,从而确定并获取目标组件所依赖的各个组件。
最后,可以调用cocoapods函数自动将iOS代码以多个组件方式集成(其相当于上文中的调用预设组件集成函数,将目标组件所依赖的各个组件集成于与目标组件关联的宿主工程),并基于flutter_beike_portal.podspec代码自动将flutter代码以组件的buildphase方式集成(其相当于上文中的根据目标组件的组件描述配置文件,将目标组件集成于宿主工程)。
综上,本公开的实施例中,通过引入新增的协议(即isFlutter),能够便捷可靠地识别出Flutter组件;通过使用处理插件,能够便捷可靠地实现针对Flutter组件的解析和处理;本公开的实施例还能够自动集成Flutter plugin(其相当于上文中目标组件所依赖的组件),避免人工引入不全、不同步的问题;本公开的实施例还能够支持非本地开发人员进行flutter开发,以兼顾非本地开发人员进行flutter开发的情况和本地开发人员进行flutter开发的情况;本公开的实施例还能够支持组件化开发。
本公开的实施例提供的任一种组件集成方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种组件集成方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种组件集成方法。下文不再赘述。
示例性装置
图4是本公开一示例性实施例提供的组件集成装置的结构示意图,图4所示的装置包括第一获取模块401、第一判断模块402、第二获取模块403、第一集成模块404和第二集成模块405。
第一获取模块401,用于获取属于Flutter组件的目标组件;
第一判断模块402,用于判断本地是否部署有F1utterSDK,以得到判断结果;
第二获取模块403,用于根据判断结果和目标组件的组件代码目录,确定并获取目标组件所依赖的各个组件;
第一集成模块404,用于调用预设组件集成函数,将目标组件所依赖的各个组件集成于与目标组件关联的宿主工程;
第二集成模块405,用于根据目标组件的组件描述配置文件,将目标组件集成于宿主工程。
在一个可选示例中,第二获取模块403,具体用于:
在判断结果表征本地未部署FlutterSDK的情况下,调用预设部署工具,在本地部署FlutterSDK;根据调用预设部署工具部署的FlutterSDK,执行用于构建组件上下文环境的命令,以通过命令的执行,根据目标组件的组件代码目录,确定并获取目标组件所依赖的各个组件;在判断结果表征本地部署有FlutterSDK的情况下,根据本地已部署的FlutterSDK,执行命令。
在一个可选示例中,第一获取模块401,具体用于:
在根据目标组件信息,识别出目标组件信息所指向的目标组件属于Flutter组件的情况下,根据目标组件信息,获取目标组件。
在一个可选示例中,目标组件信息中包括组件名称、远程仓库地址信息和组件版本号;
第一获取模块401,包括:
第一获取子模块,用于根据远程仓库地址信息和组件版本号,获取第一校验值;其中,第一校验值是根据远程仓库地址信息对应的远程仓库中、具有组件版本号的组件,进行第一预设校验运算得到的校验值;
处理子模块,用于在组件名称对应的本地校验数据集合中不存在第一校验值的情况下,从远程仓库中下载具有组件版本号的组件作为目标组件,在本地存储目标组件,并将第一校验值添加至组件名称对应的本地校验数据集合;
第二获取子模块,用于在组件名称对应的本地校验数据集合中存在第一校验值的情况下,从本地获取目标组件。
在一个可选示例中,目标组件信息中包括组件名称,宿主工程的数量为N个,N为大于或等于2的整数;
该装置还包括:
第三获取模块,用于分别根据N个宿主工程中的每个宿主工程的根目录,进行第二预设校验运算,以得到N个校验值;
确定模块,用于根据组件名称和N个校验值,确定与N个宿主工程对应的N个目录名称;
创建模块,用于创建与N个目录名称对应的N个本地目录;
复制模块,用于在获取目标组件之后,将目标组件分别复制至N个本地目录;
其中,针对任一宿主工程,在第二获取模块执行确定并获取目标组件所依赖的各个组件的步骤,以及第二集成模块执行将目标组件集成于宿主工程的步骤时,利用的目标组件为当前宿主工程对应的本地目录中的目标组件。
在一个可选示例中,该装置还包括:
第二判断模块,用于在根据目标组件信息,识别出目标组件信息所指向的目标组件属于Flutter组件的情况下,根据目标组件信息,获取目标组件之前,判断目标组件信息中是否包括预设Flutter协议数据;在目标组件信息中包括预设Flutter协议数据的情况下,触发第一识别模块;否则,触发第二识别模块;
第一识别模块,用于识别出目标组件信息所指向的目标组件属于Flutter组件;
第二识别模块,用于识别出目标组件信息所指向的目标组件不属于Flutter组件。
示例性电子设备
下面,参考图5来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图5图示了根据本公开实施例的电子设备500的框图。
如图5所示,电子设备500包括一个或多个处理器501和存储器502。
处理器501可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备500中的其他组件以执行期望的功能。
存储器502可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器501可以运行所述程序指令,以实现上文所述的本公开的各个实施例的组件集成方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备500还可以包括:输入装置503和输出装置504,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在电子设备500是第一设备或第二设备时,该输入装置503可以是麦克风或麦克风阵列。在电子设备500是单机设备时,该输入装置503可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置503还可以包括例如键盘、鼠标等等。
该输出装置504可以向外部输出各种信息。该输出装置504可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置等等。
当然,为了简化,图5中仅示出了该电子设备500中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备500还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的组件集成方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的组件集成方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (6)

1.一种组件集成方法,其特征在于,包括:
获取属于Flutter组件的目标组件;
判断本地是否部署有Flutter软件开发安装包SDK,以得到判断结果;
根据所述判断结果和所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件;
调用预设组件集成函数,将所述目标组件所依赖的各个组件集成于与所述目标组件关联的宿主工程;
根据所述目标组件的组件描述配置文件,将所述目标组件集成于所述宿主工程;
所述根据所述判断结果和所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件,包括:
在所述判断结果表征本地未部署FlutterSDK的情况下,调用预设部署工具,在本地部署FlutterSDK;根据调用所述预设部署工具部署的FlutterSDK,执行用于构建组件上下文环境的命令,以通过所述命令的执行,根据所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件;
在所述判断结果表征本地部署有FlutterSDK的情况下,根据本地已部署的FlutterSDK,执行所述命令;
所述获取属于Flutter组件的目标组件,包括:
在根据目标组件信息,识别出所述目标组件信息所指向的目标组件属于Flutter组件的情况下,根据所述目标组件信息,获取所述目标组件;
所述方法还包括:
判断所述目标组件信息中是否包括预设Flutter协议数据;
在所述目标组件信息中包括所述预设Flutter协议数据的情况下,识别出所述目标组件信息所指向的目标组件属于Flutter组件;否则,识别出所述目标组件信息所指向的目标组件不属于Flutter组件。
2.根据权利要求1所述的方法,其特征在于,所述目标组件信息中包括组件名称、远程仓库地址信息和组件版本号;
所述根据所述目标组件信息,获取所述目标组件,包括:
根据所述远程仓库地址信息和所述组件版本号,获取第一校验值;其中,所述第一校验值是根据所述远程仓库地址信息对应的远程仓库中、具有所述组件版本号的组件,进行第一预设校验运算得到的校验值;
在所述组件名称对应的本地校验数据集合中不存在所述第一校验值的情况下,从所述远程仓库中下载具有所述组件版本号的组件作为所述目标组件,在本地存储所述目标组件,并将所述第一校验值添加至所述组件名称对应的本地校验数据集合;
在所述组件名称对应的本地校验数据集合中存在所述第一校验值的情况下,从本地获取所述目标组件。
3.根据权利要求1所述的方法,其特征在于,所述目标组件信息中包括组件名称,所述宿主工程的数量为N个,N为大于或等于2的整数;
所述方法还包括:
分别根据N个所述宿主工程中的每个所述宿主工程的根目录,进行第二预设校验运算,以得到N个校验值;
根据所述组件名称和N个所述校验值,确定与N个所述宿主工程对应的N个目录名称;
创建与N个所述目录名称对应的N个本地目录;
在获取所述目标组件之后,将所述目标组件分别复制至N个所述本地目录;
其中,针对任一所述宿主工程,执行所述确定并获取所述目标组件所依赖的各个组件的步骤,以及所述将所述目标组件集成于所述宿主工程的步骤时,利用的所述目标组件为当前所述宿主工程对应的所述本地目录中的所述目标组件。
4.一种组件集成装置,其特征在于,包括:
第一获取模块,用于获取属于Flutter组件的目标组件;
第一判断模块,用于判断本地是否部署有Flutter软件开发安装包SDK,以得到判断结果;
第二获取模块,用于根据所述判断结果和所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件;
第一集成模块,用于调用预设组件集成函数,将所述目标组件所依赖的各个组件集成于与所述目标组件关联的宿主工程;
第二集成模块,用于根据所述目标组件的组件描述配置文件,将所述目标组件集成于所述宿主工程;
所述第二获取模块,具体用于:
在所述判断结果表征本地未部署FlutterSDK的情况下,调用预设部署工具,在本地部署FlutterSDK;根据调用所述预设部署工具部署的FlutterSDK,执行用于构建组件上下文环境的命令,以通过所述命令的执行,根据所述目标组件的组件代码目录,确定并获取所述目标组件所依赖的各个组件;在所述判断结果表征本地部署有FlutterSDK的情况下,根据本地已部署的FlutterSDK,执行所述命令;
所述第一获取模块,具体用于:
在根据目标组件信息,识别出所述目标组件信息所指向的目标组件属于Flutter组件的情况下,根据所述目标组件信息,获取所述目标组件;
所述装置还包括:
第二判断模块,用于判断所述目标组件信息中是否包括预设Flutter协议数据;在所述目标组件信息中包括所述预设Flutter协议数据的情况下,触发第一识别模块;否则,触发第二识别模块;
所述第一识别模块,用于识别出所述目标组件信息所指向的目标组件属于Flutter组件;
所述第二识别模块,用于识别出所述目标组件信息所指向的目标组件不属于Flutter组件。
5.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序用于执行上述权利要求1至3中任一项所述的组件集成方法。
6.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1至3中任一项所述的组件集成方法。
CN202110397581.7A 2021-04-13 2021-04-13 组件集成方法、装置、计算机可读存储介质及电子设备 Active CN113094085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110397581.7A CN113094085B (zh) 2021-04-13 2021-04-13 组件集成方法、装置、计算机可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110397581.7A CN113094085B (zh) 2021-04-13 2021-04-13 组件集成方法、装置、计算机可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113094085A CN113094085A (zh) 2021-07-09
CN113094085B true CN113094085B (zh) 2024-01-19

Family

ID=76677088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110397581.7A Active CN113094085B (zh) 2021-04-13 2021-04-13 组件集成方法、装置、计算机可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113094085B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821212A (zh) * 2021-09-28 2021-12-21 五八同城信息技术有限公司 一种信息处理方法、装置、电子设备及存储介质
CN117271782B (zh) * 2023-11-22 2024-02-23 天津华来科技股份有限公司 Sdk组件的动态集成方法及系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1302401A (zh) * 1998-04-15 2001-07-04 Adc电信公司 可视数据集成系统和方法
CN108196825A (zh) * 2017-12-28 2018-06-22 新华三大数据技术有限公司 软件项目的构建方法及系统
CN109144478A (zh) * 2018-07-12 2019-01-04 北京猫眼文化传媒有限公司 组件框架系统以及组件框架系统的使用方法
CN109491725A (zh) * 2018-11-12 2019-03-19 火烈鸟网络(广州)股份有限公司 应用程序可交互多开方法和系统、存储介质、电子设备
CN110990023A (zh) * 2019-12-16 2020-04-10 上海钧正网络科技有限公司 aar文件的依赖关系上传方法、装置、存储介质及电子设备
CN111190586A (zh) * 2019-12-16 2020-05-22 腾讯科技(深圳)有限公司 软件开发框架的搭建及使用方法、计算设备和存储介质
CN111290801A (zh) * 2020-02-13 2020-06-16 北京字节跳动网络技术有限公司 数据处理方法、装置、计算机设备和存储介质
CN111355666A (zh) * 2018-12-21 2020-06-30 瞻博网络公司 促进针对计算机网络中的服务链的流对称
CN111367513A (zh) * 2020-02-20 2020-07-03 北京达佳互联信息技术有限公司 代码补全方法、装置、电子设备及存储介质
CN111596951A (zh) * 2020-04-09 2020-08-28 北京五八信息技术有限公司 一种工程文件的配置方法及装置
CN111666112A (zh) * 2020-04-21 2020-09-15 苏宁云计算有限公司 平台插件的实现方法、装置、系统和计算机设备
CN112631600A (zh) * 2020-12-24 2021-04-09 上海哔哩哔哩科技有限公司 基于Flutter的软件构建方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7446774B1 (en) * 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US8949788B2 (en) * 2008-12-17 2015-02-03 Red Hat, Inc. Building and packaging software
US9678740B2 (en) * 2015-10-01 2017-06-13 Sap Se Migration mechanism
US9692653B1 (en) * 2015-12-17 2017-06-27 International Business Machines Corporation Automatic generation of validators to validate deployment code used for configuring servers
US10721121B2 (en) * 2016-12-11 2020-07-21 Nutanix, Inc. Methods for synchronizing configurations between computing systems using human computer interfaces

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1302401A (zh) * 1998-04-15 2001-07-04 Adc电信公司 可视数据集成系统和方法
CN108196825A (zh) * 2017-12-28 2018-06-22 新华三大数据技术有限公司 软件项目的构建方法及系统
CN109144478A (zh) * 2018-07-12 2019-01-04 北京猫眼文化传媒有限公司 组件框架系统以及组件框架系统的使用方法
CN109491725A (zh) * 2018-11-12 2019-03-19 火烈鸟网络(广州)股份有限公司 应用程序可交互多开方法和系统、存储介质、电子设备
CN111355666A (zh) * 2018-12-21 2020-06-30 瞻博网络公司 促进针对计算机网络中的服务链的流对称
CN110990023A (zh) * 2019-12-16 2020-04-10 上海钧正网络科技有限公司 aar文件的依赖关系上传方法、装置、存储介质及电子设备
CN111190586A (zh) * 2019-12-16 2020-05-22 腾讯科技(深圳)有限公司 软件开发框架的搭建及使用方法、计算设备和存储介质
CN111290801A (zh) * 2020-02-13 2020-06-16 北京字节跳动网络技术有限公司 数据处理方法、装置、计算机设备和存储介质
CN111367513A (zh) * 2020-02-20 2020-07-03 北京达佳互联信息技术有限公司 代码补全方法、装置、电子设备及存储介质
CN111596951A (zh) * 2020-04-09 2020-08-28 北京五八信息技术有限公司 一种工程文件的配置方法及装置
CN111666112A (zh) * 2020-04-21 2020-09-15 苏宁云计算有限公司 平台插件的实现方法、装置、系统和计算机设备
CN112631600A (zh) * 2020-12-24 2021-04-09 上海哔哩哔哩科技有限公司 基于Flutter的软件构建方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Prediction of track misregistration due to disk flutter in hard disk drive;Young-Bae Chang;《IEEE Transactions on Magnetics ( Volume: 38, Issue: 2, March 2002)》;1-6 *
SAP与JAVA接口技术研究与应用;杨宝;《数字化用户》;1-2 *
基于Flutter的跨平台移动APP开发前景研究;邓皓瀚;《信息与电脑》;1-5 *

Also Published As

Publication number Publication date
CN113094085A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
US11599348B2 (en) Container image building using shared resources
EP3605324A1 (en) Application development method and tool, device, and storage medium thereof
US10216510B2 (en) Silent upgrade of software with dependencies
CN113094085B (zh) 组件集成方法、装置、计算机可读存储介质及电子设备
US9258357B2 (en) Method for accessing plural cloud storages, electronic apparatus and non-transitory computer readable medium
CN110554876A (zh) 用于编译安卓工程的方法和装置
CN113434158B (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
US9189300B2 (en) Dynamic service discovery
CN113885849A (zh) 基于工业互联网平台的应用开发方法、装置及终端设备
WO2020142300A1 (en) Automatic resource management for build systems
CN110704025A (zh) 编码规范工具的生成方法和装置、存储介质、电子设备
CN112835568A (zh) 一种项目构建方法和装置
CN113094086B (zh) 组件集成方法、装置、计算机可读存储介质及电子设备
CN114461223A (zh) 一种代码生成方法、装置及终端设备
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
CN111427630B (zh) 冷启动优化方法和装置、电子设备和存储介质
CN112328241B (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN113590179B (zh) 插件检测方法、装置、电子设备及存储介质
CN113138768B (zh) 应用程序包生成方法、装置、电子设备以及可读存储介质
CN110659062B (zh) 前端脚手架的配置方法和装置、可读存储介质、电子设备
CN113741951A (zh) 本地打包方法和装置
CN113805878B (zh) 插件工程化方法、装置、计算机系统和介质
CN115878125B (zh) 生成类的扩展方法、装置、存储介质及电子设备
CN113722538B (zh) 一种界面动态渲染方法及装置
CN112256326B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231206

Address after: Room 102, floor 1, building 1, No. 2, Chuangye Road, Haidian District, Beijing 100085

Applicant after: Seashell Housing (Beijing) Technology Co.,Ltd.

Address before: 101300 room 24, 62 Farm Road, Erjie village, Yangzhen Town, Shunyi District, Beijing

Applicant before: Beijing fangjianghu Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant