CN114237572B - 原生工程集成开发框架的方法、装置、设备及存储介质 - Google Patents
原生工程集成开发框架的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114237572B CN114237572B CN202111552063.4A CN202111552063A CN114237572B CN 114237572 B CN114237572 B CN 114237572B CN 202111552063 A CN202111552063 A CN 202111552063A CN 114237572 B CN114237572 B CN 114237572B
- Authority
- CN
- China
- Prior art keywords
- target development
- control system
- installation path
- target
- version control
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种原生工程集成开发框架的方法、装置、设备及存储介质,其中方法包括:加载目标开发框架;配置目标开发框架的本地依赖或远端依赖,得到本地依赖的配置信息或远端依赖的配置信息;根据本地依赖的配置信息或者远端依赖的配置信息,生成目标开发框架产物;将目标开发框架产物集成到原生工程中,以使目标开发框架产物被原生工程调用,从而在开发过程中,无须通过学习该目标开发框架的开发以及环境配置,并避免了以入侵的方式将目标开发框架产物集成到原生工程中,降低了开发成本以及推广难度。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种原生工程集成开发框架的方法、装置、设备及存储介质。
背景技术
在移动应用程序开发中,现有技术一般是基于一些开发框架提供的组件和接口进行原生工程的扩展,以快速地在iOS和Android上构建高质量的原生用户界面。但是,在基于这些开发框架提供的组件和接口进行原生工程的扩展时,想要将开发框架集成在原生工程中,就需要学习该开发框架的开发以及环境配置等知识,再进一步对原生工程做较大幅度的更改,这不仅导致需要入侵原生工程,即对原生工程进行大范围的修改,也导致开发成本较高,推广难度较大。
发明内容
本发明实施例的目的在于提出一种原生工程集成开发框架的方法、装置、设备及存储介质,以克服或者缓解现有技术中的上述问题。
第一方面,本发明实施例提供一种原生工程集成开发框架的方法,其包括:
加载目标开发框架;
配置目标开发框架的本地依赖或远端依赖,得到所述本地依赖的配置信息或所述远端依赖的配置信息;
根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物;
将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用。
可选地,所述本地依赖的配置信息包括:分布式版本控制系统地址、安装路径和编译模式;或者,所述本地依赖的配置信息包括:分布式版本控制系统地址、安装路径、分布式版本控制系统分支和编译模式。
可选地,根据所述本地依赖的配置信息,生成目标开发框架产物包括:
根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令;
若所述目标开发框架的运行环境与预设运行环境相同,执行下载或更新后的所述目标开发框架指令,生成所述目标开发框架产物。
可选地,在所述本地依赖的配置信息包括分布式版本控制系统地址、安装路径和编译模式时,所述根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令包括:
检测所述安装路径下是否存在所述目标开发框架指令;
若所述安装路径下不存在所述目标开发框架指令,将所述分布式版本控制系统地址中的目标开发框架指令下载至所述安装路径下;
若所述安装路径下存在所述目标开发框架指令,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
可选地,所述响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令包括:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统地址中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统地址中的目标开发框架指令的版本,将所述分布式版本控制系统地址中的目标开发框架指令更新至所述安装路径下。
可选地,在所述本地依赖的配置信息包括分布式版本控制系统地址、安装路径、分布式版本控制系统分支和编译模式时,所述根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令包括:
检测所述安装路径下是否存在所述目标开发框架指令;
若所述安装路径下不存在所述目标开发框架指令,根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令,并将其下载至所述安装路径下;
若所述安装路径下存在所述目标开发框架指令,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
可选地,所述目标开发框架的运行环境与预设运行环境相同包括:
监测是否第一次执行下载或更新后的所述目标开发框架指令;
若是第一次执行下载或更新后的所述目标开发框架指令,根据所述预设运行环境,配置所述目标开发框架的运行环境;
若不是第一次执行下载或更新后的所述目标开发框架指令,配置所述目标开发框架的运行环境与所述预设运行环境相同。
可选地,所述生成所述目标开发框架产物包括:
根据所述本地依赖的配置信息中的编译模式,执行下载或更新后的所述目标开发框架指令,生成所述目标开发框架产物。
可选地,所述远端依赖的配置信息包括:分布式版本控制系统地址、安装路径和分布式版本控制系统分支。
可选地,所述根据所述远端依赖的配置信息,生成目标开发框架产物包括:
根据所述分布式版本控制系统地址,获取所述分布式版本控制系统地址中的目标开发框架指令,并将其下载至所述安装路径下;
根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令;
响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
可选地,所述响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令包括:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统分支中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统分支中的目标开发框架指令的版本,将所述分布式版本控制系统分支中的目标开发框架指令更新至所述安装路径下。
可选地,所述根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物之后还包括:
获取所述目标开发框架产物的描述文件,并将所述描述文件存储至缓存。
可选地,所述将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用包括:
获取所述缓存中的描述文件;
根据所述描述文件,查询到所述目标开发框架产物;
将所述目标开发框架产物通过加载的方式集成到所述原生工程中,以使所述目标开发框架产物被所述原生工程调用。
第二方面,提供一种原生工程集成开发框架的装置,其包括:
框架加载模块,用于加载目标开发框架;
信息配置模块,用于配置目标开发框架的本地依赖和/或远端依赖,得到所述本地依赖的配置信息和/或所述远端依赖的配置信息;
框架产物生成模块,用于根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物;
集成模块,用于将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用。
第三方面,提供一种计算机设备,其包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如本发明实施例中任一项所述的原生工程集成开发框架的方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如本发明实施例中任一项所述的原生工程集成开发框架的方法。
与现有技术相比,本发明实施例主要有以下有益效果:通过加载目标开发框架;配置目标开发框架的本地依赖或远端依赖,得到所述本地依赖的配置信息或所述远端依赖的配置信息;根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物;将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用,从而在开发过程中,无须通过学习该目标开发框架的开发以及环境配置,并避免了以入侵的方式将目标开发框架产物集成到原生工程中,降低了开发成本以及推广难度。
附图说明
为了更清楚地说明本发明中的方案,下面将对本发明实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本发明实施例一种原生工程集成开发框架的方法流程示意图;
图1B为本发明实施例使得所述目标开发框架的运行环境与预设运行环境相同的流程示意图;
图2A为本发明实施例一种原生工程集成开发框架的方法流程示意图;
图2B为本发明实施例步骤S203的流程示意图;
图2C为本发明实施例基于目标开发框架产物的描述文件实现集成的流程示意图;
图3为本发明实施例原生工程集成开发框架的装置的结构示意图;
图4为本发明实施例计算机设备的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明;本发明的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本发明的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本发明方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明下述实施例中,所述方法的执行主体可以为前端的电子设备。
为了使本领域普通技术人员更为清楚地理解本发明提供的原生工程集成开发框架的方法,本发明下述实施例中,分别以配置所述目标开发框架的本地依赖或者远端依赖为例进行示例性说明。
另外,下述实施例中,由于Google开源的构建用户界面(UI)工具Flutter可以通用于基于IOS(Internet Operating System,互联网操作系统)和Android系统(又称之为安卓系统)的移动应用程序开发中,因此,本发明下述实施例中以Flutter对应的目标开发框架为例进行说明。当然,此处需要说明的是,Flutter仅仅是示例,并非唯一性限定,本领域普通技术人员在不偏离本发明实施例思想的前提下,可以根据应用场景的需求选用其他目标开发框架。
图1A为本发明实施例一种原生工程集成开发框架的方法流程示意图;如图1A所示,本实施例中,以使用本地依赖为例进行说明,其包括:
步骤S101:加载目标开发框架;
可选地,本实施例中,所述目标开发框架为Flutter对应的目标开发框,为了便于描述,将Flutter对应的目标开发框命名为flutterhelper.rb,其为一个脚本文件,当然,本领域普通技术人员也可以根据实际需要选择不同的脚本文件。
可选地,本实施例中,具体可以通过第三方中间件实现所述目标开发框架的集成,比如,所述第三方中间件为组件化工具包,例如具体为cocoapods,基于cocoapods执行podinstall命令,从而调用cocoapods-core-dsl.rb顺序执行flutterhelper.rb对应的代码以实现flutterhelper.rb的加载。
需要说明的是,flutterhelper.rb仅仅是目标开发框架的示例,并非唯一性限定。
步骤S102:配置目标开发框架的本地依赖,得到所述本地依赖的配置信息;
可选地,本实施例中,由于是基于Flutter对应的目标开发框架,因此,在执行步骤S102时,可以调用cocoapods中的flutter_config命令来配置目标开发框架的本地依赖,得到所述本地依赖的配置信息。
可选地,本实施例中,所述本地依赖的配置信息包括:分布式版本控制系统地址(即Git地址)、安装路径和编译模式;或者,所述本地依赖的配置信息包括:分布式版本控制系统地址(即Git地址)、安装路径、分布式版本控制系统分支(即Git分支)和编译模式。
此处,需要说明的是,调用flutter_config仅仅是示例性说明,并非唯一性限定。
步骤S103:根据所述本地依赖的配置信息,生成目标开发框架产物;
示例性地,本实施例中,所述步骤S103中根据所述本地依赖的配置信息,生成目标开发框架产物时,可以包括:根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令;若所述目标开发框架的运行环境与预设运行环境相同,执行下载或更新后的所述目标开发框架指令,生成所述目标开发框架产物。
可选地,所述目标开发框架的运行环境为要执行所述目标开发框架指令的运行环境,所述预设运行环境为根据应用场景灵活设定的,本领域普通技术人员可以根据实际需要进行选择,此处不做限定,以使得所述目标开发框架的运行环境为预设运行环境,以与下载或更新所述目标开发框架指令的版本匹配。
示例性地,当目标开发框架指令为Flutter指令时,预设运行环境为预先设置的适合Flutter指令运行的环境,此时,目标开发框架的运行环境为与预设运行环境相同的运行环境,即适合Flutter指令运行的环境。
可选地,在所述本地依赖的配置信息包括分布式版本控制系统地址、安装路径和编译模式时,所述根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令包括:
检测所述安装路径下是否存在所述目标开发框架指令;
若所述安装路径下不存在所述目标开发框架指令,将所述分布式版本控制系统地址中的目标开发框架指令下载至所述安装路径下;
若所述安装路径下存在所述目标开发框架指令,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
示例性地,所述响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令包括:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统地址中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统地址中的目标开发框架指令的版本,将所述分布式版本控制系统地址中的目标开发框架指令更新至所述安装路径下。
通过上述方法,直接将所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址中的目标开发框架指令的版本进行比较,可以准确地确定出所述安装路径下的目标开发框架指令是否是最新版本的目标开发框架指令,这不仅保证了执行的目标开发框架指令都是最新版本的目标开发框架指令,也保证了版本的一致性。
或者,可替代地,在所述本地依赖的配置信息包括分布式版本控制系统地址、安装路径、分布式版本控制系统分支和编译模式时,所述根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令包括:
检测所述安装路径下是否存在所述目标开发框架指令;
若所述安装路径下不存在所述目标开发框架指令,根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令,并将其下载至所述安装路径下;
若所述安装路径下存在所述目标开发框架指令,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
在分布式版本控制系统分支中的目标开发框架指令为最新版本的目标开发框架指令时,上述方法,能够保证安装路径下的目标开发框架指令为分布式版本控制系统分支中的最新版本的目标开发框架指令,避免原生工程调用旧版本的目标开发框架指令。
可选地,根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令,并将其下载至所述安装路径下,包括:根据所述分布式版本控制系统地址确定对应的所述分布式版本控制系统分支,以获取所述分布式版本控制系统分支中的目标开发框架指令,并将其下载至所述安装路径下。
可选地,所述响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令包括:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统分支中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统分支中的目标开发框架指令的版本,将所述分布式版本控制系统分支中的目标开发框架指令更新至所述安装路径下。
通过上述方法,直接将所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址下的所述分布式版本控制系统分支中的目标开发框架指令的版本进行比较,可以准确地确定出所述安装路径下的目标开发框架指令是否是最新版本的目标开发框架指令,这不仅保证了执行的指令都是最新版本的目标开发框架指令,也保证了版本的一致性。
示例性地,图1B为本发明实施例使得所述目标开发框架的运行环境与预设运行环境相同的流程示意图;如图1B所示,所述目标开发框架的运行环境与预设运行环境相同,包括:
步骤S113:监测是否第一次执行下载或更新后的所述目标开发框架指令;
步骤S123A:若是第一次执行下载或更新后的所述目标开发框架指令,根据所述预设运行环境,配置所述目标开发框架的运行环境;
具体地,比如通过安装flutter_wrapper组件来实现所述目标开发框架的运行环境的配置。
步骤S123B:若不是第一次执行下载或更新后的所述目标开发框架指令,配置所述目标开发框架的运行环境与所述预设运行环境相同。
示例性地,通过安装后的flutter_wrapper组件来配置目标开发框架的运行环境与预设运行环境相同。通过执行上述步骤S113-S123A、S123B,可以保证目标开发框架的运行环境为预设运行环境,以与下载或更新后的目标开发框架指令的版本匹配,从而避免了因手动配置运行环境错误所导致的与目标开发框架指令的版本不匹配,进而导致无法执行下载或更新后的目标开发框架指令的问题。
应当理解的是,本实施例中,目标开发框架的运行环境应当与下载或更新后的目标开发框架指令所需的运行环境相同,即与预设运行环境相同。
可选地,本实施例中,在步骤S103中,生成所述目标开发框架产物,可以包括:根据所述本地依赖的配置信息中的编译模式,执行下载或更新后的所述目标开发框架指令,生成所述目标开发框架产物。其中,所述目标开发框架产物可以为二进制的编码指令。
示例性地,对目标开发框架指令编译生成的目标开发框架产物可以称之为App.framework。由于该目标开发框架产物为二进制的编码指令,因此,可以保证在执行后续步骤S104时,无侵入集成到原生工程中,即避免了对原生工程的大范围修改,降低了开发成本以及推广难度。
步骤S104:将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用。
示例性地,比如可以通过调用cocoapods中的install_flutter_app_pod以加载flutter Pod的方式,将所述目标开发框架产物以develop pod的形式集成到原生工程。
此处需要说明的是,由于是以cocoapods为例对本发明实施例的技术方案进行说明的,因此,在加载目标开发框架产物时,以调用cocoapods中可用的工具来实现。对于本领域普通技术人员来说,如果可以以其他组件化工具包来实现本发明实施例的技术方案,也可以选择其他可实现相同目的工具。
在本实施例中,由于基于本地依赖的配置信息,因此,安装路径下的目标开发框架指令、分布式版本控制系统和分布式版本控制系统分支中的目标开发框架指令都不是经过编译的二进制的编码指令,因此,需要在编译后集成到原生工程中,以使所述目标开发框架产物可以被所述原生工程调用。
图2A为本发明实施例一种原生工程集成开发框架的方法流程示意图;如图2A所示,以使用远端依赖为例进行说明,其包括:
步骤S201:加载目标开发框架;
步骤S202:配置目标开发框架的远端依赖,得到所述远端依赖的配置信息;
本实施例中,对步骤S201、步骤S202的描述可对应参考对上述图1A中的步骤S101、步骤S102的描述,在此不再赘述。
步骤S203:根据所述远端依赖的配置信息,生成目标开发框架产物;
可选地,本实施例中,所述远端依赖的配置信息包括:分布式版本控制系统地址、安装路径和分布式版本控制系统分支。有关分布式版本控制系统地址、安装路径和分布式版本控制系统分支的说明请参见上述实施例记载。此处需要说明的是,由于远端依赖对应代码开发完成而发布(又称之为release)的情形,对应代码已完成了编译,因此,所述远端依赖的配置信息可以不包括编译模式。
与上述实施例不同的是,所述安装路径通过脚本自动生成,为一固定路径,从而提高了算法执行的效率。
可选地,图2B为本发明实施例步骤S203的流程示意图;如图2B所示,本实施例中,所述根据所述远端依赖的配置信息,生成目标开发框架产物包括:
步骤S213:根据所述分布式版本控制系统地址,获取所述分布式版本控制系统地址中的目标开发框架指令,并将其下载至所述安装路径下;
步骤S223:根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令;
步骤S233:响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
本实施例中,在执行步骤S213之前,所述安装路径并未存储有目标开发框架指令,因此,需要先从所述分布式版本控制系统地址获取并下载目标开发框架指令到安装路径下,而又考虑到所述分布式版本控制系统地址可能下设有所述分布式版本控制系统分支,且在该分布式版本控制系统分支中可能又有更新后的更高版本的目标开发框架指令,因此,需要再获取所述分布式版本控制系统分支中的目标开发框架指令,并通过直接比对所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的高低,来确定是否更新所述安装路径下的目标开发框架指令。
具体地,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令包括:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统分支中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统分支中的目标开发框架指令的版本,将所述分布式版本控制系统分支中的目标开发框架指令更新至所述安装路径下。
本实施例中,由于是基于远端依赖的配置信息,因此,从分布式版本控制系统下载至安装路径下的目标开发框架指令或者从分布式版本控制系统分支更新至安装路径下的目标开发框架指令实际上是经过编译的,其本质上为二进制的编码指令,可以直接作为目标开发框架产物,而不用进行编译,因此,只要基于版本的对比,就可以确定是否需要更新安装路径下的目标开发框架指令,保证了目标开发框架产物的版本的一致性,同时提高了开发效率。也就是说,本实施例中,由于是基于远端依赖的配置信息,因此,分布式版本控制系统和分布式版本控制系统分支中的目标开发框架指令都是经过编译的二进制的编码指令。
步骤S204:将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用。
本实施例中,步骤S204的描述可参考对上述图1A中的步骤S104的描述,在此不再赘述。
可选地,在上述实施例的基础上,所述根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物之后还可以包括:获取所述目标开发框架产物的描述文件,并将所述描述文件存储至缓存。
示例性地,如果基于flutter实现本发明实施例的技术方案,可以通过调用flutter plugin命令来获取所述目标开发框架产物的描述文件(比如称之podspec)。而存储所述描述文件的缓存比如可以为一临时文件夹(比如名称为product)。当然,临时文件夹仅仅是缓存的一种示例,并非唯一性限定。
图2C为本发明实施例基于目标开发框架产物的描述文件实现集成的流程示意图;如图2C所示,可选地,所述将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用包括:
步骤S214:获取所述缓存中的描述文件;
步骤S224:根据所述描述文件,查询到所述目标开发框架产物;
步骤S234:将所述目标开发框架产物通过加载的方式集成到所述原生工程中,以使所述目标开发框架产物被所述原生工程调用。
比如,通过调用install_flutter_app_pod以加载flutter Pod的形式,将所述目标开发框架产物通过加载的方式集成到所述原生工程中。
上述分别以本地依赖和远端依赖为例进行说明,在一些应用场景中,可以基于上述实施例的技术方案,进行本地依赖和远端依赖的便捷切换,从而提高开发效率。
图3为本发明实施例原生工程集成开发框架的装置的结构示意图;如图3所示,该装置包括:
框架加载模块301,用于加载目标开发框架;
信息配置模块302,用于配置目标开发框架的本地依赖和/或远端依赖,得到所述本地依赖的配置信息和/或所述远端依赖的配置信息;
框架产物生成模块303,用于根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物;
集成模块304,用于将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用。
可选地,所述本地依赖的配置信息包括:分布式版本控制系统地址、安装路径和编译模式;或者,所述本地依赖的配置信息包括:分布式版本控制系统地址、安装路径、分布式版本控制系统分支和编译模式。
可选地,所述框架产物生成模块303具体用于:
根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令;
若所述目标开发框架的运行环境与预设运行环境相同,执行下载或更新后的所述目标开发框架指令,生成所述目标开发框架产物。
可选地,在所述本地依赖的配置信息包括分布式版本控制系统地址、安装路径和编译模式时,所述框架产物生成模块303具体用于:
检测所述安装路径下是否存在所述目标开发框架指令;
若所述安装路径下不存在所述目标开发框架指令,将所述分布式版本控制系统地址中的目标开发框架指令下载至所述安装路径下;
若所述安装路径下存在所述目标开发框架指令,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
可选地,所述框架产物生成模块303具体用于:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统地址中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统地址中的目标开发框架指令的版本,将所述分布式版本控制系统地址中的目标开发框架指令更新至所述安装路径下。
可选地,在所述本地依赖的配置信息包括分布式版本控制系统地址、安装路径、分布式版本控制系统分支和编译模式时,所述框架产物生成模块303具体用于:
检测所述安装路径下是否存在所述目标开发框架指令;
若所述安装路径下不存在所述目标开发框架指令,根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令,并将其下载至所述安装路径下;
若所述安装路径下存在所述目标开发框架指令,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
可选地,所述框架产物生成模块303具体用于:
监测是否第一次执行下载或更新后的所述目标开发框架指令;
若是第一次执行下载或更新后的所述目标开发框架指令,根据所述预设运行环境,配置所述目标开发框架的运行环境;
若不是第一次执行下载或更新后的所述目标开发框架指令,配置所述目标开发框架的运行环境与所述预设运行环境相同。
可选地,所述框架产物生成模块303具体用于:
根据所述本地依赖的配置信息中的编译模式,执行下载或更新后的所述目标开发框架指令,生成所述目标开发框架产物。
可选地,所述远端依赖的配置信息包括:分布式版本控制系统地址、安装路径和分布式版本控制系统分支。
可选地,所述框架产物生成模块303具体用于:
根据所述分布式版本控制系统地址,获取所述分布式版本控制系统地址中的目标开发框架指令,并将其下载至所述安装路径下;
根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令;
响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
可选地,所述框架产物生成模块303具体用于:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统分支中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统分支中的目标开发框架指令的版本,将所述分布式版本控制系统分支中的目标开发框架指令更新至所述安装路径下。
可选地,所述装置还包括:描述文件缓存单元(图中未示出),用于在根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物之后,获取所述目标开发框架产物的描述文件,并将所述描述文件存储至缓存。
可选地,所述集成模块304具体用于:
获取所述缓存中的描述文件;
根据所述描述文件,查询到所述目标开发框架产物;
将所述目标开发框架产物通过加载的方式集成到所述原生工程中,以使所述目标开发框架产物被所述原生工程调用。
图4为本发明实施例计算机设备的结构示意图;如图4所示,其包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如本发明实施例中任一项所述的原生工程集成开发框架的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如本发明实施例中任一项所述的原生工程集成开发框架的方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例,但并不限制本发明的专利范围。本发明可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。
Claims (14)
1.一种原生工程集成开发框架的方法,其特征在于,包括:
加载目标开发框架;
配置目标开发框架的本地依赖或远端依赖,得到所述本地依赖的配置信息或所述远端依赖的配置信息;
根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物;
将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用;
其中,所述远端依赖的配置信息包括:分布式版本控制系统地址、安装路径和分布式版本控制系统分支;
所述根据所述远端依赖的配置信息,生成目标开发框架产物包括:
根据所述分布式版本控制系统地址,获取所述分布式版本控制系统地址中的目标开发框架指令,并将其下载至所述安装路径下;
根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令;
响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
2.根据权利要求1所述的原生工程集成开发框架的方法,其特征在于,所述本地依赖的配置信息包括:分布式版本控制系统地址、安装路径和编译模式;或者,所述本地依赖的配置信息包括:分布式版本控制系统地址、安装路径、分布式版本控制系统分支和编译模式。
3.根据权利要求2所述的原生工程集成开发框架的方法,其特征在于,根据所述本地依赖的配置信息,生成目标开发框架产物包括:
根据所述本地依赖的配置信息中的安装路径,下载或更新目标开发框架指令;
若所述目标开发框架的运行环境与预设运行环境相同,执行下载或更新后的所述目标开发框架指令,生成所述目标开发框架产物。
4.根据权利要求3所述的原生工程集成开发框架的方法,其特征在于,在所述本地依赖的配置信息包括分布式版本控制系统地址、安装路径和编译模式时,所述根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令包括:
检测所述安装路径下是否存在所述目标开发框架指令;
若所述安装路径下不存在所述目标开发框架指令,将所述分布式版本控制系统地址中的目标开发框架指令下载至所述安装路径下;
若所述安装路径下存在所述目标开发框架指令,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
5.根据权利要求4所述的原生工程集成开发框架的方法,其特征在于,所述响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统地址中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令包括:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统地址中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统地址中的目标开发框架指令的版本,将所述分布式版本控制系统地址中的目标开发框架指令更新至所述安装路径下。
6.根据权利要求3所述的原生工程集成开发框架的方法,其特征在于,在所述本地依赖的配置信息包括分布式版本控制系统地址、安装路径、分布式版本控制系统分支和编译模式时,所述根据所述本地依赖的配置信息中的安装路径,下载或更新所述目标开发框架指令包括:
检测所述安装路径下是否存在所述目标开发框架指令;
若所述安装路径下不存在所述目标开发框架指令,根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令,并将其下载至所述安装路径下;
若所述安装路径下存在所述目标开发框架指令,响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
7.根据权利要求3所述的原生工程集成开发框架的方法,其特征在于,所述目标开发框架的运行环境与预设运行环境相同包括:
监测是否第一次执行下载或更新后的所述目标开发框架指令;
若是第一次执行下载或更新后的所述目标开发框架指令,根据所述预设运行环境,配置所述目标开发框架的运行环境;
若不是第一次执行下载或更新后的所述目标开发框架指令,配置所述目标开发框架的运行环境与所述预设运行环境相同。
8.根据权利要求3所述的原生工程集成开发框架的方法,其特征在于,所述生成所述目标开发框架产物包括:
根据所述本地依赖的配置信息中的编译模式,执行下载或更新后的所述目标开发框架指令,生成所述目标开发框架产物。
9.根据权利要求1或6所述的原生工程集成开发框架的方法,其特征在于,所述响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令包括:
若所述安装路径下的目标开发框架指令的版本高于所述分布式版本控制系统分支中的目标开发框架指令的版本,不更新所述安装路径下的目标开发框架指令;
若所述安装路径下的目标开发框架指令的版本低于所述分布式版本控制系统分支中的目标开发框架指令的版本,将所述分布式版本控制系统分支中的目标开发框架指令更新至所述安装路径下。
10.根据权利要求1所述的原生工程集成开发框架的方法,其特征在于,所述根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物之后还包括:
获取所述目标开发框架产物的描述文件,并将所述描述文件存储至缓存。
11.根据权利要求10所述的原生工程集成开发框架的方法,其特征在于,所述将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用包括:
获取所述缓存中的描述文件;
根据所述描述文件,查询到所述目标开发框架产物;
将所述目标开发框架产物通过加载的方式集成到所述原生工程中,以使所述目标开发框架产物被所述原生工程调用。
12.一种原生工程集成开发框架的装置,其特征在于,包括:
框架加载模块,用于加载目标开发框架;
信息配置模块,用于配置目标开发框架的本地依赖和/或远端依赖,得到所述本地依赖的配置信息和/或所述远端依赖的配置信息;
框架产物生成模块,用于根据所述本地依赖的配置信息或者所述远端依赖的配置信息,生成目标开发框架产物;
集成模块,用于将所述目标开发框架产物集成到原生工程中,以使所述目标开发框架产物被所述原生工程调用;
其中,所述远端依赖的配置信息包括:分布式版本控制系统地址、安装路径和分布式版本控制系统分支;
所述框架产物生成模块具体用于:
根据所述分布式版本控制系统地址,获取所述分布式版本控制系统地址中的目标开发框架指令,并将其下载至所述安装路径下;
根据所述分布式版本控制系统地址和所述分布式版本控制系统分支,获取所述分布式版本控制系统分支中的目标开发框架指令;
响应于所述安装路径下的目标开发框架指令的版本与所述分布式版本控制系统分支中的目标开发框架指令的版本的比较结果,更新所述安装路径下的目标开发框架指令。
13.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至11中任一项所述的原生工程集成开发框架的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至11中任一项所述的原生工程集成开发框架的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111552063.4A CN114237572B (zh) | 2021-12-17 | 2021-12-17 | 原生工程集成开发框架的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111552063.4A CN114237572B (zh) | 2021-12-17 | 2021-12-17 | 原生工程集成开发框架的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114237572A CN114237572A (zh) | 2022-03-25 |
CN114237572B true CN114237572B (zh) | 2023-04-14 |
Family
ID=80757944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111552063.4A Active CN114237572B (zh) | 2021-12-17 | 2021-12-17 | 原生工程集成开发框架的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237572B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814878A (zh) * | 2018-12-20 | 2019-05-28 | 中国电子科技集团公司第十五研究所 | 跨平台跨商用自主环境复杂巨型信息系统混合部署系统 |
CN113656124A (zh) * | 2021-07-30 | 2021-11-16 | 北京百度网讯科技有限公司 | 登录页面的生成方法及其装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8175895B2 (en) * | 1999-06-23 | 2012-05-08 | Koninklijke Philips Electronics N.V. | Remote command center for patient monitoring |
US9697335B2 (en) * | 2015-07-23 | 2017-07-04 | Express Scripts, Inc. | Methods and systems for automated pharmaceutical dispensing |
CN110704062A (zh) * | 2019-09-27 | 2020-01-17 | 天津五八到家科技有限公司 | 依赖管理方法、数据获取方法、装置及设备 |
CN110750288B (zh) * | 2019-10-23 | 2023-03-24 | 广州华多网络科技有限公司 | 原生工程配置方法、装置、电子设备及存储介质 |
CN111596951A (zh) * | 2020-04-09 | 2020-08-28 | 北京五八信息技术有限公司 | 一种工程文件的配置方法及装置 |
CN112379865B (zh) * | 2020-11-03 | 2022-09-16 | 福建福诺移动通信技术有限公司 | 基于Maven插件机制的软件开发框架更新方法 |
-
2021
- 2021-12-17 CN CN202111552063.4A patent/CN114237572B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814878A (zh) * | 2018-12-20 | 2019-05-28 | 中国电子科技集团公司第十五研究所 | 跨平台跨商用自主环境复杂巨型信息系统混合部署系统 |
CN113656124A (zh) * | 2021-07-30 | 2021-11-16 | 北京百度网讯科技有限公司 | 登录页面的生成方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114237572A (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491216B (zh) | 一种Android系统无感知应用安装升级的方法 | |
CN105100191A (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
CN103309683B (zh) | 硬件设备的软件补丁嵌入方法及装置 | |
CN105446712B (zh) | 一种应用程序缺陷修补方法及装置 | |
CN106325847B (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
CN107577609B (zh) | 一种基于主机端动态链接的嵌入式系统动态模块调试系统 | |
CN111897570A (zh) | 一种基于Maven插件的多依赖项文件提取方法及装置 | |
KR100700578B1 (ko) | 휴대폰의 펌웨어 업그레이드 방법 | |
CN110750280B (zh) | 一种基于Android平台的应用升级方法及系统、存储介质 | |
CN108874437B (zh) | 一种android应用程序的在线云更新方法 | |
CN111722868A (zh) | 一种申威防火墙快速移植高版本linux内核的方法 | |
US20170168923A1 (en) | System and method for creating a test application | |
CN114237572B (zh) | 原生工程集成开发框架的方法、装置、设备及存储介质 | |
CN111552480B (zh) | 跨平台编译方法、装置、设备及可读存储介质 | |
CN111338708A (zh) | 基于安卓插件的应用程序处理方法、客户端及系统 | |
CN114490103A (zh) | 一种操作系统接口调用方法、装置以及电子设备 | |
CN110888669B (zh) | 一种在ide上创建模板工程的方法及系统 | |
CN113360156A (zh) | 一种ios编译方法及相关设备 | |
Dir | OpenWrt Development Guide | |
CN113641389B (zh) | 基于OpenCPU的软件升级方法、装置及设备 | |
CN113590179B (zh) | 插件检测方法、装置、电子设备及存储介质 | |
CN114816475A (zh) | 一种嵌入式操作系统的更新方法、装置、设备和介质 | |
CN113849181A (zh) | 交叉编译工具链构建方法、装置、电子设备及存储介质 | |
CN113220303A (zh) | 一种内核模块的编译方法和系统 | |
KR20110108143A (ko) | 스크립트 프로그래밍 언어 기반의 임베디드 시스템 및 그 구동 방법 |
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 |