掌桥专利:专业的专利平台
掌桥专利
首页

基于安卓系统的应用生成的方法、装置及存储介质

文献发布时间:2023-06-19 11:19:16


基于安卓系统的应用生成的方法、装置及存储介质

技术领域

本公开涉及移动应用技术领域,尤其是涉及基于安卓系统的应用生成的方法、装置及存储介质。

背景技术

随着移动软件的发展,越来越多的移动端软件都使用组件化和模块化技术进行开发。

由于组件是把重复的代码提取出来合并成为单个组件,因此使用组件化的方式开发移动端软件,能够提高代码的复用率。

然而,在传统移动应用的开发过程中,组件与组件之间相互依赖,而随着移动应用开发的业务功能越来越复杂、业务场景越来越繁杂,组件间相互依赖的关系导致不同组件的开发人员之间需要不断沟通、联合测试,导致组件的开发效率较低,进而使得应用的开发效率也较低。

发明内容

本公开提供一种基于安卓系统的应用生成的方法、装置及存储介质,用以解决现有技术中存在的上述技术问题。

第一方面,为解决上述技术问题,本公开实施例提供的一种基于安卓系统的应用生成的方法的技术方案如下:

在接收到业务编译指令时,扫描并抽取业务工程所需的选定组件中至少一个调用操作的注解信息,形成所述调用操作集合;其中,所述业务工程包括所述选定组件的脚本配置信息;

将所述调用操作集合自动注册到总线路由组件中,使所述选定组件通过所述总线路由组件与其它组件进行通信;

对所述业务工程进行编译,生成应用。

一种可能的实施方式,扫描并抽取业务工程所需的选定组件中至少一个调用操作的注解信息之前,还包括:

在接收到组件编译指令时,通过注解处理器扫描所述选定组件对应的组件工程中至少一种调用操作的注解信息,形成所述至少一种调用操作的信息聚合类;其中,所述组件工程包括所述选定组件对应的待编译代码;

对所述组件工程进行编译,生成所述选定组件;

将所述选定组件和所述信息聚合类封装为库文件进行存储。

一种可能的实施方式,在接收到业务编译指令时,扫描并抽取业务工程所需的选定组件中至少一个调用操作的注解信息,形成调用操作集合,包括:

在接收到业务编译指令时,从已存储的库文件中确定所述选定组件对应的库文件;

对所述选定组件对应的库文件的信息聚合类进行扫描和抽取,形成所述调用操作集合。

一种可能的实施方式,将所述调用操作集合自动注册到总线路由组件中,包括:

获取所述操作集合中每种调用操作对应的调用路径,形成调用路径集合,并注册到所述总线路由组件中;

将所述调用路径集合对应的组件标签写入所述业务工程的清单文件中,使所述业务工程中的所述选定组件被调用时从所述清单文件中获取对应的组件标签,以便通过所述总线路由组件查询到对应的调用路径。

一种可能的实施方式,所述总线路由组件,包括:

组件路由信息管理模块,用于管理所述调用操作集合;

路由模块,用于接收源组件的调用请求,并根据所述调用请求从所述组件路由信息管理模块中查询待调用的目标组件,对所述目标组件进行调用,并将对应的回调结果通过总线模块传递给所述源组件;

所述总线模块,用于在所述源组件和所述路由模块间传递信息。

一种可能的实施方式,所述路由模块,包括:

路由管理模块,用于接收所述源组件的调用请求,并从所述组件路由信息管理模块中查询待调用的目标组件的目标调用路径,选择与所述调用请求对应的模块根据所述目标调用路径定位所述目标组件;

页面路由模块,用于对所述调用请求为页面调用的目标组件进行定位,并将对应的回调结果通过所述总线模块传递给所述源组件;

服务路由模块,用于对所述调用请求为服务调用的目标组件进行定位,并将对应的回调结果通过所述总线模块传递给所述源组件;

面向切面编程模块,用于对所述路由模块中组件的调用过程进行管理。

一种可能的实施方式,所述调用操作,包括一下一种或多种:

调用页面操作、调用服务操作、调用自定义操作。

一种可能的实施方式,所述选定组件继承了具有组件接口的组件类。

第二方面,本公开实施例提供了一种基于安卓系统的应用生成的装置,包括:

组件单元,用作业务工程的组成元素;其中,所述业务工程包括所需的选定组件的脚本配置信息;

总线路由组件,用于让所述组件单元中的不同所述选定组件进行通信;

组件自动注册插件,用于在接收到业务编译指令时,扫描并抽取所述业务工程包含的组件中至少一个调用操作的注解信息,形成调用操作集合;将所述调用操作集合自动注册到总线路由组件中,使所述选定组件通过所述总线路由组件与其它组件进行通信;

生成单元,用于对所述业务工程进行编译,生成应用。

一种可能的实施方式,所述总线路由组件,包括:

组件路由信息管理模块,用于管理所述调用操作集合;

路由模块,用于接收源组件的调用请求,并根据所述调用请求从所述组件路由信息管理模块中查询待调用的目标组件,对所述目标组件进行调用,并将对应的回调结果通过总线模块传递给所述源组件;

所述总线模块,用于在所述源组件和所述路由模块间传递信息。

一种可能的实施方式,所述路由模块,包括:

路由管理模块,用于接收所述源组件的调用请求,并从所述组件路由信息管理模块中查询待调用的目标组件的目标调用路径,选择与所述调用请求对应的模块根据所述目标调用路径定位所述目标组件;

页面路由模块,用于对所述调用请求为页面调用的目标组件进行定位,并将对应的回调结果通过所述总线模块传递给所述源组件;

服务路由模块,用于对所述调用请求为服务调用的目标组件进行定位,并将对应的回调结果通过所述总线模块传递给所述源组件;

面向切面编程模块,用于对所述路由模块中组件的调用过程进行管理。

第三方面,本公开实施例还提供一种基于安卓系统的应用生成的装置,包括:

至少一个处理器,以及

与所述至少一个处理器连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上述第一方面所述的方法。

第四方面,本公开实施例还提供一种可读存储介质,包括:

存储器,

所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如上述第一方面所述的方法。

附图说明

图1为本公开提供的移动应用的自动化构建系统的业务功能图;

图2为本公开实施例提供的一种基于安卓系统的应用生成方法的流程图;

图3为本公开实施例提供的一种应用的显示界面示意图;

图4为本公开实施例提供的组件间通信的示意图;

图5为本公开实施例提供的一种基于安卓系统的应用生成装置的结构示意图。

具体实施方式

本公开实施列提供一种基于安卓系统的应用生成的方法、装置及存储介质,用以解决现有技术中存在的上述技术问题。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本公开技术方案做详细的说明,应当理解本公开实施例以及实施例中的具体特征是对本公开技术方案的详细的说明,而不是对本公开技术方案的限定,在不冲突的情况下,本公开实施例以及实施例中的技术特征可以相互组合。

移动应用的自动化构建系统通过用户权限管理规划开发者和使用者不同角色和权限,用户可以通过移动应用开放平台查看、上传、管理、编辑系统中存储的移动端组件,并且通过该系统进行移动端软件构建、组件组合、构建软件管理、详情查询和引用次数统计等相关操作。

请参见图1为本公开提供的移动应用的自动化构建系统的业务功能图,该系统主要包括五个部分:移动应用开放平台、组件和移动应用管理后台、组件源代码托管平台、组件包托管平台、移动应用自动化构建系统。

移动应用开放平台为业务系统与用户进行交互的入口,其主要与组件和移动应用管理后台通过网络接口调用的方式连接,主要包括用户管理、组件管理、构建应用管理和权限管理等模块。

组件和移动应用管理后台主要用于存储组件和移动应用信息及其详情,为移动应用开放平台提供业务数据,主要包括组件管理后台、移动应用管理后台、业务服务后台和数据后台等部分。

组件源代码托管平台主要用于组件源代码存储和管理用途,该部分可作为一个独立闭环系统进行使用,也可以通过其提供的外部接口进行源码下载等操作,其用户管理模块自成体系,主要包括源码管理、用户管理、业务接口等。

组件包托管平台主要用于组件包存储和管理用途,该部分可作为一个独立闭环系统进行使用,也可以通过其提供的外部接口进行组件依赖包下载等操作,其用户管理模块自成体系,主要包括组件管理、用户管理、业务接口等。

移动应用自动化构建系统主要用于移动应用自动化构建、工作流管理等用途,该部分可作为一个独立闭环系统进行使用,也可以通过其提供的外部接口,组件和移动应用管理后台通过网络连接的方式,调用该部分接口将构建参数传给移动应用自动化构建系统,实现完整自动化构建过程,主要包括jenkins自动化构建、Android业务脚本、IOS业务脚本等。

上述系统中的组件通过下列方式实现组件间彼此解耦,进而提高应用的开发效率:

请参考图2,本公开实施例提供一种基于安卓系统的应用生成的方法,该方法的处理过程如下。

步骤201:在接收到业务编译指令时,扫描并抽取业务工程所需的选定组件中至少一个调用操作的注解信息,形成调用操作集合;其中,业务工程包括应选定组件的脚本配置信息。通常,选定组件是从众多组件中选取的组成应用的元素。

步骤202:将调用操作集合自动注册到总线路由组件中,使选定组件通过总线路由组件与其它组件进行通信。

步骤203:对业务工程进行编译,生成应用。

在扫描并抽取业务工程包含的选定组件中至少一个调用操作的注解信息之前,若业务工程中所需的一个或多个选定组件尚不存在,还需建立对应的组件,建立选定组件可以通过下列方式实现:

在接收到组件编译指令时,通过注解处理器扫描选定组件对应的组件工程中至少一种调用操作的注解信息,形成至少一种调用操作的信息聚合类;其中,组件工程包括选定组件对应的待编译代码;对组件工程进行编译,生成选定组件;将选定组件和信息聚合类封装为对应的库文件进行存储。

在编写选定组件的代码(即组件工程)时,可以根据选定组件对应的功能,可以设置对应的一个组件类,让该组件类继承组件接口,这样继承了该组件类的选定组件可以通过组件接口进行组件间的通信。

例如,当需要开发一个时间轴的选定组件时,需要定义一个时间轴的组件类,该组件类继承组件接口(IappComponent)。这样开发的选定组件就具有了通信接口。

在编写组件代码的过程中,可以利用java注解机制,在代码类上做特殊的标记,形成注解信息,根据该注解信息可以确定该选定组件对外提供的是何种调用操作。

该调用操作可以是调用页面操作、调用服务操作、调用自定义操作中的任一种,或任意组合。调用自定义操作包括获取数据、传递消息。这些调用操作可以通过通用消息对象(BMessage)传递信息。

例如,一个相册组件(被包含在一应用中即为该应用的一个选定组件)可以对外提供相册查询功能,其可以提供的调用操作为调用页面操作,通过该调用页面操作可以显示相册中的图片。在相册组件的组件工程中,可以在调用页面操作对应的代码类上做特殊标记,如“@Page”形成对应的注解信息。

又如,一个图片处理服务组件(被包含在一应用中即为该应用的一个选定组件)可以对外提供图片处理功能,其可以提供的调用操作为调用服务操作,通过该调用服务操作可以对图片进行处理(如裁剪图片、修图等)。在图片处理服务组件的组件工程中,可以在调用服务操作对应的代码类上做特殊标记,如“@Service”形成对应的注解信息。

再如,一个图片上传组件(被包含在一应用中即为该应用的一个选定组件)可以对外提供图片上传功能,其可以提供的调用操作为调用自定义操作,通过该调用自定义操作可以将指定位置的图片上传到目标位置。在图片上传组件的组件工程中,可以在调用自定义操作对应的代码类上做特殊标记,如“@Custom”形成对应的注解信息。

当组件工程(即组件的待编译代码)编写完成后,在收到组件编译指令时,通过注解处理器扫描组件对应的组件工程中至少一种调用操作的注解信息,形成至少一种调用操作的信息聚合类;并对组件工程进行编译,生成对应的选定组件;将该选定组件和信息聚合类封装为对应的库文件进行存储。

如,在完成相册组件的组件工程的编写后,在接收到组件编译指令时,通过注解处理器扫描相册组件的组件工程中的调用页面操作的注解信息(“@Page”),在相册组件的系统配置文件(即build文件)中形成该调用页面操作的信息聚合类,同时还可以形成对应的帮助类,通过该帮助类可以更好的解释和辅助开发者使用此相册组件;然后对相册组件的组件工程进行编译,生成相册组件,之后,通过gradle插件将组件的代码及build文件中的信息聚合类和帮助类打包成aar文件(一个库文件),存储到Maven私有仓库中,供应用调用。

当一个应用所需的所有选定组件都已准备好后,便可以编写该应用的业务工程,该业务工程的编写是对其所包含的选定组件进行脚本信息配置。当完成业务工程的编写后,便可执行上述步骤201~步骤203。

步骤201执行的过程中,在接收到业务编译指令时,扫描并抽取业务工程包含的所有选定组件中至少一个调用操作的注解信息,形成调用操作集合,可以通过下列方式实现:

在接收到业务编译指令时,从已存储的库文件中确定选定组件对应的库文件;并对选定组件对应的库文件的信息聚合类进行扫描和抽取,形成调用操作集合。

例如,当开发者需要开发一个应用时,可以在对应的业务工程中,从Maven私有仓库中选取所需的选定组件(假设包括相册组件、图片处理服务组件、图片上传组件),在完成该业务工程的脚本编写,进行业务工程编译时,通过编译器(ASM)对业务工程中所使用的相册组件、图片处理服务组件、图片上传组件对应的库文件中的信息聚合类进行扫描和抽取,形成调用操作集合。该调用操作集合可以是以表的形式存在的,如一个服务表中包括了相册组件、图片处理服务组件、图片上传组件对应的调用操作、调用路径、组件标识等。

在形成调用集合后便可执行步骤202和步骤203。

其中步骤202将调用操作集合自动注册到总线路由组件中,可以通过下列方式实现:

获取操作集合中每种调用操作对应的调用路径,形成调用路径集合,注册到总线路由组件中;将调用路径集合对应的组件标签写入业务工程的清单文件(Manifest)中,使业务工程中的组件被调用时从清单文件中获取对应的组件标签,以便通过总线路由组件查询到对应的调用路径。

例如,业务工程中的相册组件的调用路径为Maven.Photos,图像处理服务组件的调用路径为Maven.PhotoPro,图片上传组件的调用路径为Maven.PhotoUp,将Maven.Photos、Maven.PhotoPro、Maven.PhotoUp组成的调用路径集合,并注册到总线路由组件中。同时,将调用路径集合对应的组件标签(Photos、PhotoPro、PhotoUp)写入业务工程的清单文件(Manifest)中,使业务工程中的组件被调用时从清单文件中获取对应的组件标签,以便通过总线路由组件查询到对应的调用路径。最后,对该业务工程进行编译便可生成应用。

在本公开中,总线路由组件包括组件路由信息管理模块,用于管理调用操作集合。

组件路由信息管理模块,用于管理调用操作集合。

总线模块,用于在源组件和路由模块间传递信息。

路由模块,用于接收源组件的调用请求,并根据调用请求从组件路由信息管理模块中查询待调用的目标组件,对目标组件进行调用,并将对应的回调结果通过总线模块传递给源组件。

在本公开中,路由模块,包括:

路由管理模块,用于接收源组件的调用请求,并从组件路由信息管理模块中查询待调用的目标组件的目标调用路径,选择与调用请求对应的模块根据目标调用路径定位目标组件;

页面路由模块,用于对调用请求为页面调用的目标组件进行定位,并将对应的回调结果通过总线模块传递给源组件;

服务路由模块,用于对调用请求为服务调用的目标组件进行定位,并将对应的回调结果通过总线模块传递给源组件;

面向切面编程(Aspect Oriented Programming,AOP)模块,用于对路由模块中组件的调用过程进行管理。

请参见图3为本公开实施例提供的一种应用的显示界面示意图。

图3中的应用为物业管理平台,该物业管理平台所需的选定组件包括“首页”组件,在“首页”组件对应的页面中包括“投诉建议”组件、“物业缴费”组件、“呼叫物业”组件、“业主信息”组件。以用户访问“业主信息”为例,当用户在“首页”组件中点击,“业主信息”组件时,“首页”组件与“业主信息”组件的通信示意图如图4所示,图4为本公开实施例提供的组件间通信的示意图。

“首页”组件(源组件)发送调用请求至“总线模块”,“总线模块”将调用请求传递至“路由管理模块”,“路由管理模块”通过“组件路由信息管理模块”查询调用请求对象中的目标组件(即“业主信息”组件)的注册信息,得到对应的响应授权信息(包括调用路径)后,确定该调用请求对应的模块为页面路由模块,进而让页面路由模块根据调用路径定位至目标组件(“业主信息”组件),并生成“业主信息”对应页面对象,之后将回调结果传递至“总线模块”,总线模块将此页面对象回调至“首页组件”中,这样用户就能访问业主信息了。

需要说明的是,图4中组件自动注册插件实现的功能为步骤201-步骤202的功能。

基于同一发明构思,本公开一实施例中提供一种基于安卓系统的应用生成的装置,该装置的应用生成方法的具体实施方式可参见方法实施例部分的描述,重复之处不再赘述,请参见图5,该装置包括:

组件单元501,用作业务工程的组成元素;其中,所述业务工程包括所需的选定组件的脚本配置信息;

总线路由组件502,用于让所述组件单元501中的不同所述选定组件进行通信;

组件自动注册插件503,用于在接收到业务编译指令时,扫描并抽取所述业务工程包含的组件中至少一个调用操作的注解信息,形成调用操作集合;将所述调用操作集合自动注册到总线路由组件中,使所述选定组件通过所述总线路由组件与其它组件进行通信;

生成单元504,用于对所述业务工程进行编译,生成应用。

一种可能的实施方式,所述总线路由组件502,包括:

组件路由信息管理模块5021,用于管理所述调用操作集合;

路由模块5022,用于接收源组件的调用请求,并根据所述调用请求从所述组件路由信息管理模块中查询待调用的目标组件,对所述目标组件进行调用,并将对应的回调结果通过总线模块传递给所述源组件;

所述总线模块5023,用于在所述源组件和所述路由模块间传递信息。

一种可能的实施方式,所述路由模块5022,包括:

路由管理模块,用于接收所述源组件的调用请求,并从所述组件路由信息管理模块中查询待调用的目标组件的目标调用路径,选择与所述调用请求对应的模块根据所述目标调用路径定位所述目标组件;

页面路由模块,用于对所述调用请求为页面调用的目标组件进行定位,并将对应的回调结果通过所述总线模块传递给所述源组件;

服务路由模块,用于对所述调用请求为服务调用的目标组件进行定位,并将对应的回调结果通过所述总线模块传递给所述源组件;

面向切面编程模块,用于对所述路由模块中组件的调用过程进行管理。

基于同一发明构思,本公开实施例中提供了一种基于安卓系统的应用生成的装置,包括:至少一个处理器,以及

与所述至少一个处理器连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上所述的应用生成的方法。

基于同一发明构思,本公开实施例还提一种可读存储介质,包括:

存储器,

所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如上所述的应用生成的方法。

本领域内的技术人员应明白,本公开实施例可提供为方法、系统、或计算机程序产品。因此,本公开实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本公开实施例是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

相关技术
  • 基于安卓系统的应用生成的方法、装置及存储介质
  • 安卓系统中界面文件的生成方法、装置、设备及存储介质
技术分类

06120112881108