一种独立的移动组件动态加载方法、系统、设备及介质与流程
未命名
09-22
阅读:86
评论:0
1.本技术涉及移动组件动态加载技术领域,尤其涉及一种独立的移动组件动态加载方法、系统、设备及介质。
背景技术:
2.移动应用mobile application的缩写是:ma。广义移动应用包含个人以及企业级应用。狭义移动应用指企业级商务应用。移动应用不只是在手机上运行软件那么简单,它涉及到企业信息化应用场景的完善、扩展。
3.企业级移动应用承载大量业务功能,随着业务拓展,接入组件数量越来越多,存在组件间冲突、应用包大小随组件增加而增大等问题,需要实现移动应用上的动态组件加载。考虑移动应用无法进行架构重构,无法直接在移动应用中进行动态组件加载。本方案设计实现一种和移动应用解耦的、可独立运行的移动组件动态加载方法,解决存量企业级应用的动态组件加载问题。
4.现有成熟的第三方动态加载技术较多,如腾讯shadow、360的plugin框架等,但是同当前企业移动门户架构体系不一致,无法在移动门户内直接集成动态加载框架。因此,亟需一种独立的移动组件动态加载方法、系统、设备及介质,以解决在移动门户本身架构无法直接实现动态加载的前提下,如何实现移动组件按需动态加载,并解决不同团队开发的组件的安全、自动识别及下载等技术问题。
技术实现要素:
5.针对现有技术的上述不足,本技术提供一种独立的移动组件动态加载方法、系统、设备及介质,以解决上述技术问题。
6.第一方面,本技术提供了一种独立的移动组件动态加载方法,方法包括:向组件中心服务端上传组件包,并将组件包上传至预设组件库;通过组件中心服务端,获取上传组件包的版本信息;根据触发指令,对预设组件库中不同版本的组件包进行上架或下架操作;通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端;通过组件中心客户端,对当前移动设备传入的用户信息进行用户认证;在认证成功后,将组件中心客户端对应组件包更新为最新版组件包;通过组件中心客户端,完成最新版组件包的动态装载和运行。
7.进一步地,在通过组件中心服务端,获取上传组件包的版本信息之后,方法还包括:对组件包进行安全扫描,以确定组件包中的组件能够安全运行。
8.进一步地,通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端,具体包括:在移动设备中移动应用的业务功能被触发后,移动应用中的组件启动组件中心客户端加载流程;当移动设备不存在组件中心客户端时,从组件中心服务端中下载组件中心客户端;当移动设备存在组件中心客户端时,确定组件中心客户端是否为最新版本,以将组件中心客户端更新为最新版本。
9.进一步地,在认证成功后,将组件中心客户端对应组件包更新为最新版组件包,具体包括:通过移动应用向组件中心客户端传递组件信息;其中,组件信息至少包括:组件id、组件方法名和组件参数;当不存在组件信息时,确定移动设备没下载过组件包,向组件中心服务端请求下载最新组件包;当存在组件信息时,向组件中心服务端请求下载最新组件包对应的最新版本的组件信息;确定最新版本的组件信息与移动应用传递的组件信息是否一致;在不一致时,向组件中心服务端下载最新版本组件包。
10.进一步地,通过组件中心客户端,完成最新版组件包的动态装载和运行,具体包括:通过组件中心客户端启动腾讯shadow框架,完成组件包中的组件动态加载;以dynamicpluginmanager作为加载入口,执行pluginmanagerimpl,以完成组件资源加载准备;其中,组件资源加载准备至少包括:将组件apk存放到预设路径、dex优化操作、解压so库放到预设位置、插件的入口加载、预加载准备;在pluginprocessservice服务中完成最新版组件包中组件的动态装载和运行。
11.第二方面,本技术提供了一种独立的移动组件动态加载系统,系统包括:上传模块,用于向组件中心服务端上传组件包,并将组件包上传至预设组件库;通过组件中心服务端,获取上传组件包的版本信息;根据触发指令,对预设组件库中不同版本的组件包进行上架或下架操作;安装模块,用于通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端;运行模块,用于通过组件中心客户端,对当前移动设备传入的用户信息进行用户认证;在认证成功后,将组件中心客户端对应组件包更新为最新版组件包;通过组件中心客户端,完成最新版组件包的动态装载和运行。
12.进一步地,安装模块包括安装单元,用于在移动设备中移动应用的业务功能被触发后,移动应用中的组件启动组件中心客户端加载流程;当移动设备不存在组件中心客户端时,从组件中心服务端中下载组件中心客户端;当移动设备存在组件中心客户端时,确定组件中心客户端是否为最新版本,以将组件中心客户端更新为最新版本。
13.进一步地,运行模块包括更新单元;用于通过移动应用向组件中心客户端传递组件信息;其中,组件信息至少包括:组件id、组件方法名和组件参数;当不存在组件信息时,确定移动设备没下载过组件包,向组件中心服务端请求下载最新组件包;当存在组件信息时,向组件中心服务端请求下载最新组件包对应的最新版本的组件信息;确定最新版本的组件信息与移动应用传递的组件信息是否一致;在不一致时,向组件中心服务端下载最新版本组件包。
14.第三方面,本技术提供了一种独立的移动组件动态加载设备,设备包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被执行时,使得处理器执行如上述任一项的一种独立的移动组件动态加载方法。
15.第四方面,本技术提供了一种非易失性计算机存储介质,其特征在于,其上存储有计算机指令,所述计算机指令在被执行时实现如上述任一项所述的一种独立的移动组件动态加载方法。
16.本领域技术人员能够理解的是,本技术至少具有如下有益效果:本技术提供了和移动应用解耦的、独立的动态组件加载方法。本技术的组件管理功能和移动应用高度解耦,能够解决:已建的企业级移动应用,已承载大量存量业务功能,不适合进行架构调整,无法直接在移动应用上完成动态组件加载,又由于业务拓展,组件数
量越来越多,存在组件间冲突、应用包大小随组件增加而增大等问题。另外,本技术为独立的移动组件动态加载技术,便于在不同企业中进行推广应用。
附图说明
17.下面参照附图来描述本公开的部分实施例,附图中:图1是本技术实施例提供的一种独立的移动组件动态加载方法流程图。
18.图2是本技术实施例提供的一种独立的移动组件动态加载系统内部结构示意图。
19.图3是本技术实施例提供的一种独立的移动组件动态加载设备内部结构示意图。
具体实施方式
20.本领域技术人员应当理解的是,下文所描述的实施例仅仅是本公开的优选实施例,并不表示本公开仅能通过该优选实施例实现,该优选实施例仅仅是用于解释本公开的技术原理,并非用于限制本公开的保护范围。基于本公开提供的优选实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本公开的保护范围之内。
21.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
22.下面通过附图对本技术实施例提出的技术方案进行详细的说明。
23.本技术实施例还提供了一种独立的移动组件动态加载方法,如图1所示,本技术实施例提供的方法,主要包括以下步骤:步骤110、 向组件中心服务端上传组件包,并将组件包上传至预设组件库;通过组件中心服务端,获取上传组件包的版本信息;根据触发指令,对预设组件库中不同版本的组件包进行上架或下架操作。
24.向组件中心服务端上传组件包,并将组件包上传至预设组件库可以具体为:业务应用研发团队,负责业务专属移动原生组件开发,并通过组件中心服务端上传至预设组件库。组件中心服务端用于对各专业上传的组件进行版本管理,保留组件各历史版本,可对组件不同版本进行上架、下架管理,也可以对组件整体下架。
25.在通过组件中心服务端,获取上传组件包的版本信息之后,方法还可以:对组件包进行安全扫描,以确定组件包中的组件能够安全运行。
26.步骤120、 通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端。
27.本步骤可以具体为:在移动设备中移动应用的业务功能被触发后,移动应用中的组件启动组件中心客户端加载流程;当移动设备不存在组件中心客户端时,从组件中心服务端中下载组件中心客户端;当移动设备存在组件中心客户端时,确定组件中心客户端是否为最新版本,以将组件中心客户端更新为最新版本。
28.步骤130、 通过组件中心客户端,对当前移动设备传入的用户信息进行用户认证;
在认证成功后,将组件中心客户端对应组件包更新为最新版组件包;通过组件中心客户端,完成最新版组件包的动态装载和运行。
29.其中,在认证成功后,将组件中心客户端对应组件包更新为最新版组件包,可以具体为:通过移动应用向组件中心客户端传递组件信息;其中,组件信息至少包括:组件id、组件方法名和组件参数;当不存在组件信息时,确定移动设备没下载过组件包,向组件中心服务端请求下载最新组件包;当存在组件信息时,向组件中心服务端请求下载最新组件包对应的最新版本的组件信息;确定最新版本的组件信息与移动应用传递的组件信息是否一致;在不一致时,向组件中心服务端下载最新版本组件包。
30.其中,通过组件中心客户端,完成最新版组件包的动态装载和运行,具体可以为:通过组件中心客户端启动腾讯shadow框架,完成组件包中的组件动态加载;以dynamicpluginmanager作为加载入口,执行pluginmanagerimpl,以完成组件资源加载准备;其中,组件资源加载准备至少包括:将组件apk存放到预设路径、dex优化操作、解压so库放到预设位置、插件的入口加载、预加载准备;在pluginprocessservice服务中完成最新版组件包中组件的动态装载和运行。
31.除此之外,图2为本技术实施例提供的一种独立的移动组件动态加载系统。如图2所示,本技术实施例提供的系统,主要包括:上传模块210,用于向组件中心服务端上传组件包,并将组件包上传至预设组件库;通过组件中心服务端,获取上传组件包的版本信息;根据触发指令,对预设组件库中不同版本的组件包进行上架或下架操作;安装模块220,用于通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端;安装模块220包括安装单元221,用于在移动设备中移动应用的业务功能被触发后,移动应用中的组件启动组件中心客户端加载流程;当移动设备不存在组件中心客户端时,从组件中心服务端中下载组件中心客户端;当移动设备存在组件中心客户端时,确定组件中心客户端是否为最新版本,以将组件中心客户端更新为最新版本。
32.运行模块230,用于通过组件中心客户端,对当前移动设备传入的用户信息进行用户认证;在认证成功后,将组件中心客户端对应组件包更新为最新版组件包;通过组件中心客户端,完成最新版组件包的动态装载和运行。
33.运行模块230包括更新单元231;用于通过移动应用向组件中心客户端传递组件信息;其中,组件信息至少包括:组件id、组件方法名和组件参数;当不存在组件信息时,确定移动设备没下载过组件包,向组件中心服务端请求下载最新组件包;当存在组件信息时,向组件中心服务端请求下载最新组件包对应的最新版本的组件信息;确定最新版本的组件信息与移动应用传递的组件信息是否一致;在不一致时,向组件中心服务端下载最新版本组件包。
34.此外,本技术实施例还提供了一种独立的移动组件动态加载设备。如图3所示,该设备包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被执行时,使得处理器执行如上述实施例中的一种独立的移动组件动态加载方法。
35.具体地,服务器端向组件中心服务端上传组件包,并将组件包上传至预设组件库;通过组件中心服务端,获取上传组件包的版本信息;根据触发指令,对预设组件库中不同版
本的组件包进行上架或下架操作;通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端;通过组件中心客户端,对当前移动设备传入的用户信息进行用户认证;在认证成功后,将组件中心客户端对应组件包更新为最新版组件包;通过组件中心客户端,完成最新版组件包的动态装载和运行。
36.除此之外,本技术实施例还提供了一种非易失性计算机存储介质,其上存储有可执行指令,在该可执行指令被执行时,实现如上述的一种独立的移动组件动态加载方法。
37.至此,已经结合前文的多个实施例描述了本公开的技术方案,但是,本领域技术人员容易理解的是,本公开的保护范围并不仅限于这些具体实施例。在不偏离本公开技术原理的前提下,本领域技术人员可以对上述各个实施例中的技术方案进行拆分和组合,也可以对相关技术特征作出等同的更改或替换,凡在本公开的技术构思和/或技术原理之内所做的任何更改、等同替换、改进等都将落入本公开的保护范围之内。
技术特征:
1.一种独立的移动组件动态加载方法,其特征在于,所述方法包括:向组件中心服务端上传组件包,并将组件包上传至预设组件库;通过组件中心服务端,获取上传组件包的版本信息;根据触发指令,对预设组件库中不同版本的组件包进行上架或下架操作;通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端;通过组件中心客户端,对当前移动设备传入的用户信息进行用户认证;在认证成功后,将组件中心客户端对应组件包更新为最新版组件包;通过组件中心客户端,完成最新版组件包的动态装载和运行。2.根据权利要求1所述的独立的移动组件动态加载方法,其特征在于,在通过组件中心服务端,获取上传组件包的版本信息之后,所述方法还包括:对组件包进行安全扫描,以确定组件包中的组件能够安全运行。3.根据权利要求1所述的独立的移动组件动态加载方法,其特征在于,通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端,具体包括:在移动设备中移动应用的业务功能被触发后,移动应用中的组件启动组件中心客户端加载流程;当移动设备不存在组件中心客户端时,从组件中心服务端中下载组件中心客户端;当移动设备存在组件中心客户端时,确定组件中心客户端是否为最新版本,以将组件中心客户端更新为最新版本。4.根据权利要求1所述的独立的移动组件动态加载方法,其特征在于,在认证成功后,将组件中心客户端对应组件包更新为最新版组件包,具体包括:通过移动应用向组件中心客户端传递组件信息;其中,组件信息至少包括:组件id、组件方法名和组件参数;当不存在组件信息时,确定移动设备没下载过组件包,向组件中心服务端请求下载最新组件包;当存在组件信息时,向组件中心服务端请求下载最新组件包对应的最新版本的组件信息;确定最新版本的组件信息与移动应用传递的组件信息是否一致;在不一致时,向组件中心服务端下载最新版本组件包。5.根据权利要求1所述的独立的移动组件动态加载方法,其特征在于,通过组件中心客户端,完成最新版组件包的动态装载和运行,具体包括:通过组件中心客户端启动腾讯shadow框架,完成组件包中的组件动态加载;以dynamicpluginmanager作为加载入口,执行pluginmanagerimpl,以完成组件资源加载准备;其中,组件资源加载准备至少包括:将组件apk存放到预设路径、dex优化操作、解压so库放到预设位置、插件的入口加载、预加载准备;在pluginprocessservice服务中完成最新版组件包中组件的动态装载和运行。6.一种独立的移动组件动态加载系统,其特征在于,所述系统包括:上传模块,用于向组件中心服务端上传组件包,并将组件包上传至预设组件库;通过组件中心服务端,获取上传组件包的版本信息;根据触发指令,对预设组件库中不同版本的组件包进行上架或下架操作;安装模块,用于通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务
端对应的组件中心客户端;运行模块,用于通过组件中心客户端,对当前移动设备传入的用户信息进行用户认证;在认证成功后,将组件中心客户端对应组件包更新为最新版组件包;通过组件中心客户端,完成最新版组件包的动态装载和运行。7.根据权利要求6所述的独立的移动组件动态加载系统,其特征在于,安装模块包括安装单元,用于在移动设备中移动应用的业务功能被触发后,移动应用中的组件启动组件中心客户端加载流程;当移动设备不存在组件中心客户端时,从组件中心服务端中下载组件中心客户端;当移动设备存在组件中心客户端时,确定组件中心客户端是否为最新版本,以将组件中心客户端更新为最新版本。8.根据权利要求6所述的独立的移动组件动态加载系统,其特征在于,运行模块包括更新单元;用于通过移动应用向组件中心客户端传递组件信息;其中,组件信息至少包括:组件id、组件方法名和组件参数;当不存在组件信息时,确定移动设备没下载过组件包,向组件中心服务端请求下载最新组件包;当存在组件信息时,向组件中心服务端请求下载最新组件包对应的最新版本的组件信息;确定最新版本的组件信息与移动应用传递的组件信息是否一致;在不一致时,向组件中心服务端下载最新版本组件包。9.一种独立的移动组件动态加载设备,其特征在于,所述设备包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1-5任一项所述的一种独立的移动组件动态加载方法。10.一种非易失性计算机存储介质,其特征在于,其上存储有计算机指令,所述计算机指令在被执行时实现如权利要求1-5任一项所述的一种独立的移动组件动态加载方法。
技术总结
本申请公开了一种独立的移动组件动态加载方法、系统、设备及介质,主要涉及移动组件动态加载技术领域,用以解决现有的移动组件动态加载技术无法直接集成动态加载框架的问题。包括:向组件中心服务端上传组件包,并将组件包上传至预设组件库;通过组件中心服务端,获取上传组件包的版本信息;根据触发指令,对预设组件库中不同版本的组件包进行上架或下架操作;通过当前移动设备中的移动应用,向当前移动设备安装组件中心服务端对应的组件中心客户端;通过组件中心客户端,对当前移动设备传入的用户信息进行用户认证;在认证成功后,将组件中心客户端对应组件包更新为最新版组件包;通过组件中心客户端,完成最新版组件包的动态装载和运行。动态装载和运行。动态装载和运行。
技术研发人员:李强 李晓珍 刘迪 赵庆华 赵峰 宋卫平 张茜 王子恒 孟雨 李继成 李兆隆
受保护的技术使用者:国网信息通信产业集团有限公司
技术研发日:2023.05.16
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/