CN118092886A - 移动应用中间层组件调用方法、装置、设备及存储介质 - Google Patents
移动应用中间层组件调用方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN118092886A CN118092886A CN202410508559.9A CN202410508559A CN118092886A CN 118092886 A CN118092886 A CN 118092886A CN 202410508559 A CN202410508559 A CN 202410508559A CN 118092886 A CN118092886 A CN 118092886A
- Authority
- CN
- China
- Prior art keywords
- component
- mobile application
- middle layer
- mobile
- library
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000011161 development Methods 0.000 claims abstract description 130
- 230000006870 function Effects 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 22
- 238000005516 engineering process Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 7
- 230000000712 assembly Effects 0.000 claims description 6
- 238000000429 assembly Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 239000002245 particle Substances 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 15
- 238000012423 maintenance Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000002035 prolonged effect Effects 0.000 description 5
- 239000002131 composite material Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种移动应用中间层组件调用方法、装置、设备及存储介质,涉及计算机技术领域,该方法包括:对历史移动应用主工程进行组件拆分,获取中间层组件;将中间层组件进行组合预处理,获得包管理混合组件;基于移动操作系统平台的公用工具构建基础公用私有库;在接收到组件功能请求时,调用基础公用私有库和包管理混合组件进行移动应用开发。由于本申请将历史移动应用主工程中的中间层组件进行拆分,并构建移动操作系统平台的基础公用私有库,并进行统一管理,在应用开发时,不同团队人员仅需关注组件功能,不需要额外关注组件的实现,抹平了iOS和Android两个平台之间的差异性,缩短了单个应用开发时长,从而提高了开发效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种移动应用中间层组件调用方法、装置、设备及存储介质。
背景技术
随着互联网的发展,移动应用在大众的日常生活中占据着越来越重要的地位,因此各个公司对移动应用开发越来越重视。一般的公司移动应用都包括iOS和Android两个平台,两个平台的应用的界面和业务基本一致,但是开发却需要编写两套不一样的代码,导致开发效率受到限制。为解决上述问题,提出了React Native开发框架,可跨平台开发移动应用。在这个开发框架下,开发人员可以使用同一套编码在两个平台上面运行,开发效率得以提升。
但是因为不同公司对自身移动应用的要求不一样,开发者需要自定义开发特殊的组件以满足公司业务需求,这样还是需要iOS和Android两个平台的开发者协作考虑两个平台组件呈现的特性来完成两个平台需求的开发,增加了不必要的单个应用的开发时长,从而影响了开发效率。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请的主要目的在于提供了一种移动应用中间层组件调用方法、装置、设备及存储介质,旨在解决传统的移动应用开发过程中需协作考虑iOS和Android两个平台组件呈现的特性来完成开发,增加了不必要的单个应用的开发时长,从而影响了开发效率的技术问题。
为实现上述目的,本申请提出一种移动应用中间层组件调用方法,所述的方法包括:
对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件;
将所述中间层组件进行组合预处理,获得包管理混合组件;
提取移动操作系统平台的公用工具,并基于所述公用工具构建所述移动操作系统平台的基础公用私有库;
在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
在一实施例中,所述对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件的步骤,包括:
获取当前公司的历史移动应用主工程;
对所述历史移动应用主工程进行拆分,获取所述历史移动应用主工程的中间工程组件,所述中间工程组件包括基础组件、功能组件和UI组件;
筛除所述基础组件、所述功能组件和所述UI组件的业务代码,获得所述历史移动应用主工程对应的中间层组件。
在一实施例中,所述筛除所述基础组件、所述功能组件和所述UI组件的业务代码,获得所述历史移动应用主工程对应的中间层组件的步骤之后,还包括:
基于所述中间层组件的组件类型提取所述基础组件、所述功能组件和所述UI组件的功能信息;
根据所述功能信息对所述中间层组件进行颗粒度拆分,获得所述中间层组件对应的多个颗粒度组件;
根据所述多个颗粒度组件构建中间层组件库;
相应的,所述将所述中间层组件进行组合预处理,获得包管理混合组件的步骤,包括:
基于所述中间层组件库进行组合预处理,获得包管理混合组件。
在一实施例中,所述移动操作系统平台包括iOS移动操作系统平台和Android移动操作系统平台,所述中间层组件库的组件架构包括系统服务层、React Navite层、基础原生组件层、中间层以及业务层;所述系统服务层包括所述iOS移动操作系统平台及所述Android移动操作系统平台的系统服务层;所述中间层包括所述多个颗粒度组件。
在一实施例中,所述基于所述中间层组件库进行组合预处理,获得包管理混合组件的步骤,包括:
判断所述中间层组件库中对应的中间层组件的语言实现类型;
在所述语言实现类型为JS代码类型时,基于所述中间层组件库进行颗粒度组合,获得纯JS组件;
在所述语言实现类型为原生代码类型时,通过JS Bridge桥接技术对所述中间层组件进行封装,获得原生混合组件;
基于所述纯JS组件和所述原生混合组件,在React Native框架下确定包管理混合组件。
在一实施例中,所述在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发的步骤之前,还包括:
获取历史移动应用主工程的业务流程及页面;
基于React Native框架对所述业务流程及页面进行重构,获得所述历史移动应用主工程对应的重构页面;
将所述包管理混合组件接入所述重构页面;
相应的,所述在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发的步骤,包括:
在接收到组件功能请求时,通过所述重构页面调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
在一实施例中,所述在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发的步骤之后,还包括:
在接收到版本更新指令时,根据所述版本更新指令确定待更新移动应用工程;
提取所述包管理混合组件的组件版本号;
根据所述组件版本号对所述待更新移动应用工程进行组件版本更新。
此外,为实现上述目的,本申请还提出一种移动应用中间层组件调用装置,所述装置包括:
组件拆分模块,用于对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件;
组件处理模块,用于将所述中间层组件进行组合预处理,获得包管理混合组件;
私有库模块,用于提取移动操作系统平台的公用工具,并基于所述公用工具构建所述移动操作系统平台的基础公用私有库;
组件调用模块,用于在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
此外,为实现上述目的,本申请还提出一种移动应用中间层组件调用设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的移动应用中间层组件调用方法的步骤。
此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的移动应用中间层组件调用方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的移动应用中间层组件调用方法的步骤。
本申请提出的一个或多个技术方案,至少具有以下技术效果:本申请先对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件;然后将所述中间层组件进行组合预处理,获得包管理混合组件;接着提取移动操作系统平台的公用工具,并基于所述公用工具构建所述移动操作系统平台的基础公用私有库;最后在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。由于本申请将历史移动应用主工程中的中间层组件进行拆分,并构建移动操作系统平台的基础公用私有库,通过统一管理中间层组件,在多应用开发时,不同团队人员仅需关注组件功能,不需要额外关注组件的实现,避免了在开发过程中需要iOS和Android两个平台的开发者协作考虑两个平台组件呈现的特性的情况,从而抹平了iOS和Android两个平台之间的差异性,缩短了单个应用开发时长,减少了开发工作量,进而提高了移动应用的开发效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请移动应用中间层组件调用方法实施例一提供的流程示意图;
图2为本申请实施例一提供的组件库代码托管和版本管理的关系示意图;
图3为本申请移动应用中间层组件调用方法实施例二提供的流程示意图;
图4为本申请实施例二提供的中间层组件库的架构示意图;
图5为本申请实施例二提供的组件库多移动应用使用的关系示意图;
图6为本申请实施例移动应用中间层组件调用装置的模块结构示意图;
图7为本申请实施例中移动应用中间层组件调用方法涉及的硬件运行环境的设备结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请的技术方案,并不用于限定本申请。
为了更好的理解本申请的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
由于一般的公司移动应用都包括iOS和Android两个平台,两个平台的应用的界面和业务基本一致,但是开发却需要编写两套完全不一样的代码。虽然在React Native这种开源的跨平台移动应用开发框架下,开发人员可使用同一套编码在两个平台上面运行,但是因为不同公司对自身移动应用的要求不一样,开发者一般需要自定义开发特殊的组件以满足公司业务需求,这样还是需要iOS和Android两个平台的开发者协作才能完成两个平台需求的开发。
在这种情况下,存在诸多的开发问题:开发人员开发不同的移动应用时,不仅应用的组件存在差异,还需要考虑两个平台组件呈现的特性;同时,存在太多有差异性的组件,使得产品经理与开发之间需要大量沟通才能了解现有应用提供的能力,增加产生需求的人力成本,从而影响不同移动应用的代码开发,影响了开发效率。
为解决上述问题,本申请提供一种解决方案,将开发项目中的基础组件、功能组件和UI组件进行分离,与业务逻辑解耦并统一管理,在多应用开发时,不同团队人员仅需关注组件功能,不需要额外关注组件的实现,抹平了iOS和Android两个平台之间的差异性,缩短了单个应用开发时长,增强了多团队合作能力。同时由于上述中间层组件的拆分,还可方便开发人员对中间层组件进行开发和维护,降低维护成本,进一步提高了开发效率。
需要说明的是,本实施例的执行主体可以是一种组件拆分、私有库构建以及组件调用功能的计算服务设备,例如个人电脑、服务器等,或者是一种能够实现上述功能的电子设备、执行本申请移动应用中间层组件调用方法的调用设备等,本实施例对此不加以限制。以下以调用设备为例,对本实施例及下述各实施例进行说明。
基于此,本申请实施例提供了一种移动应用中间层组件调用方法,参照图1,图1为本申请移动应用中间层组件调用方法实施例一提供的流程示意图。
本实施例中,所述移动应用中间层组件调用方法包括步骤S10~S40:
步骤S10:对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件。
需要说明的是,历史移动应用主工程是公司自研开发的移动应用所对应的项目结构工程,一般来说,工程中包括了移动应用的主要代码库或者主要模块,负责整个应用的主要功能和架构,包含了移动应用的主要逻辑、界面、数据处理等内容。通过历史移动应用主工程,可保留早期版本移动应用的代码,方便追溯、维护和回滚。
应理解的是,中间层组件是在各个历史移动应用主工程中有着相似功能的中间通用组件,例如基础组件、功能组件、UI组件、网络请求组件、数据存储组件、导航组件等,本实施例对此不加以限制。通过拆分中间层组件,在移动应用的开发过程中可帮助开发者实现代码的模块化和复用性,提高开发效率。
可以理解的是,在组件拆分的过程中,可基于所有移动应用来拆分通用的中间层组件,也可以根据不同类别的移动应用来拆分特殊的中间层组件,本实施例对此不加以限制。
步骤S20:将所述中间层组件进行组合预处理,获得包管理混合组件。
需要说明的是,包管理混合组件是将上述中间层组件进行预处理,使其可跨平台(例如iOS和Android移动操作系统平台)进行移动应用开发的组件。
因为历史移动应用主工程是混合开发的,可能包含原生代码(原生代码是程序直接编译成单独的可执行文件)还有JS代码(即JavaScript代码,其中,JavaScript是一种具有函数优先的轻量级、解释型或即时编译型的编程语言)。所以拆分出来的中间层组件有些可能原来是基于原生代码实现的,有些可能直接是用JS代码实现得。因此,为统一开发过程,使中间层组件能够在iOS和Android两个平台跨平台开发使用,可利用上述的ReactNative开发框架对中间层组件进行预处理,实现为可用于React Native开发框架的npm(Node Package Manager,一种包管理工具)组件,即上述的包管理混合组件,以此提高开发效率。
应理解的是,在组合预处理过程中,由于各个组件中包含原生代码还有JS代码实现的组件,对于由JS代码实现的组件,可先将其拆分成合适的颗粒度再重新进行组合;对应原来由原生代码实现的组件,可通过JS Bridge桥接技术对其进行封装。使各个中间层组件可以在React Native开发框架下使用。
另外的,需要说明的是,JS Bridge(JavaScript Bridge)桥接技术是在Web应用程序中,通过JavaScript代码与原生(Native)代码之间建立联系和通信的技术手段。由于由原生代码实现的组件通常难以直接访问设备硬件或原生功能,因此需要通过JS Bridge来实现中间件与原生应用的交互。
步骤S30:提取移动操作系统平台的公用工具,并基于所述公用工具构建所述移动操作系统平台的基础公用私有库。
需要说明的是,移动操作系统平台是移动应用开发的平台,例如iOS和 Android移动操作系统平台。通过iOS和 Android移动操作系统平台可进行移动应用开发。
由于在两个平台上开发应用的界面和业务基本一致,但却需要编写两套完全不一样的代码。因此,为进一步提高开发效率,对于上述npm组件和历史移动应用主工程在iOS和Android移动操作系统平台上都需要用到的公用工具(例如本地化工具、调试工具、版本控制工具等),可分别拆分出来作为基础公用私有库。
另外的,需要说明的是,对于拆分出来的基础公用私有库,可通过CocoaPods(CocoaPods是一个流行的iOS开发依赖管理工具,主要用于管理第三方库)和Gradle(Gradle是项目自动化构建的开源工具,用于管理第三方库的依赖关系)管理依赖关系,本实施例对此不加以限制。
进一步的,考虑到中间层组件和基础公用私有库的管理和维护,具体的,可对中间层组件以及两个平台的基础公用私有库代码通过私有代码托管平台管理,中间层组件经过测试后发布到私有npm服务器上。可参考图2,图2为本申请实施例一提供的组件库代码托管和版本管理的关系示意图。具体关系如下所示:
1、各个移动应用主工程(如图主工程A、主工程B)、React Native中间层组件和iOS、Android两个平台的基础公用私有库存放在代码托管平台上。
2、每个中间层组件为npm包。包含iOS、Android文件夹,index.js、package.json文件等。iOS和Android的原生代码在各自的文件夹,编写完成后,通过index.js向外提供接口。package.json文件中可以配置组件名称、版本、描述、依赖等信息。后续其他移动应用使用中间层组件时,可以根据实际情况选择不同版本进行开发使用。
3、React Native中间层组件(如图中间层组件1、中间层组件2、中间层组件3、中间层组件4、中间层组件5、中间层组件6)交由指定的开发人员进行本地开发和维护,经过验证后,发布到私有的npm私有服务器上。各移动应用使用时,从npm私有服务器下载中间层组件。
4、在各个移动应用主工程中,通过在package.json设置所需的中间层组件并指定版本,最后命令安装。
5、在各个移动应用主工程原生代码,iOS通过设置Podfile文件(iOS特有的文件配置),Android通过设置build.gradle文件(Android特有的文件配置),配置当前工程和中间层组件所需的基础公用私有库和第三方开源库并指定版本或分支, 并执行安装。通过配置Podfile文件和build.gradle文件,开发者可灵活地控制移动应用开发中所使用的第三方库、插件和依赖项,使开发过程更加高效和便捷。
在开发工程中,因为中间层组件已经统一管理,在多应用开发中,开发人员无需过多的重新熟悉与组件相关的逻辑代码,可直接根据业务需求进行代码开发和调整即可。
步骤S40:在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
需要说明的是,组件功能请求是在移动开发中,进行组件调用的请求,以实现特定的开发任务。
本实施方式中,可先对历史移动应用主工程进行组件拆分,获取中间层组件,在组件拆分的过程中,可基于所有移动应用来拆分通用的中间层组件,也可以根据不同类别的移动应用来拆分特殊的中间层组件,本实施例对此不加以限制。通过拆分中间层组件,在移动应用的开发过程中可帮助开发者实现代码的模块化和复用性,提高开发效率。然后再将中间层组件进行组合预处理,考虑到各个组件中包含原生代码还有JS代码实现的组件,对于由JS代码实现的组件,可先将其拆分成合适的颗粒度再重新进行组合;对应原来由原生代码实现的组件,可通过JS Bridge桥接技术对其进行封装使各个中间层组件可以在ReactNative开发框架下使用,获得包管理混合组件。进一步考虑到由于在两个平台上开发应用的界面和业务基本一致,但却需要编写两套完全不一样的代码。因此,对于上述npm组件和历史移动应用主工程在iOS和 Android移动操作系统平台上都需要用到的公用工具(例如本地化工具、调试工具、版本控制工具等),可分别拆分出来作为基础公用私有库,以进一步提高开发效率。最后在移动应用的开发过程中,可基于组件功能请求时调用基础公用私有库和包管理混合组件进行移动应用开发。从而可避免在开发过程中需要iOS和Android两个平台的开发者协作考虑两个平台组件呈现的特性的情况,抹平了iOS和Android两个平台之间的差异性,缩短了单个应用开发时长,减少了开发工作量,进而提高了移动应用的开发效率。
在一种可行的实施方式中,本实施例步骤S40之前还包括:获取历史移动应用主工程的业务流程及页面;基于React Native框架对所述业务流程及页面进行重构,获得所述历史移动应用主工程对应的重构页面;将所述包管理混合组件接入所述重构页面;相应的,所述步骤S40包括:在接收到组件功能请求时,通过所述重构页面调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
需要说明的是,重构页面是基于React Native框架对历史移动应用主工程的业务流程及页面进行重构的页面。由于上述的中间层组件和基础公用私有库是基于ReactNative框架实现,因此为便于历史移动应用主工程后续的维护和管理,可对历史移动应用主工程的业务流程及页面进行重构,以适应React Native框架的跨平台开发。
本实施方式中,考虑到上述的中间层组件和基础公用私有库基于React Native框架实现,为便于开发统一,可先获取历史移动应用主工程的业务流程及页面;基于ReactNative框架对业务流程及页面进行重构,获得重构页面;将所述包管理混合组件接入所述重构页面;在接收到组件功能请求时,通过重构页面调用基础公用私有库和包管理混合组件进行移动应用开发,以便于历史移动应用主工程后续的维护和管理,提高移动应用在React Native框架的跨平台开发的适应性。
在一种可行的实施方式中,本实施例步骤S40之后还包括:在接收到版本更新指令时,根据所述版本更新指令确定待更新移动应用工程;提取所述包管理混合组件的组件版本号;根据所述组件版本号对所述待更新移动应用工程进行组件版本更新。
需要说明的是,版本更新指令对移动应用中使用的组件进行版本更新的操作指令。待更新移动应用工程是涉及到更新现有组件(如库、框架、插件等)的移动应用工程。组件版本号是包管理混合组件在不同时期版本的号码,用于区分组件的不同版本。
本实施方式中,由于在移动应用开发和维护过程中,经常会涉及到更新现有组件(如库、框架、插件等)的版本,以获得新的功能、修复bug、提高性能或提供安全补丁等目的。因此调用设备在接收到版本更新指令时,可根据版本更新指令确定待更新移动应用工程;并提取包管理混合组件的组件版本号;最后根据组件版本号对待更新移动应用工程进行组件版本更新,以便于实现移动应用的开发和维护。
本实施例提供了一种移动应用中间层组件调用方法,可先对历史移动应用主工程进行组件拆分,获取中间层组件,在组件拆分的过程中,可基于所有移动应用来拆分通用的中间层组件,也可以根据不同类别的移动应用来拆分特殊的中间层组件,本实施例对此不加以限制。通过拆分中间层组件,在移动应用的开发过程中可帮助开发者实现代码的模块化和复用性,提高开发效率。然后再将中间层组件进行组合预处理,考虑到各个组件中包含原生代码还有JS代码实现的组件,对于由JS代码实现的组件,可先将其拆分成合适的颗粒度再重新进行组合;对应原来由原生代码实现的组件,可通过JS Bridge桥接技术对其进行封装使各个中间层组件可以在React Native开发框架下使用,获得包管理混合组件。进一步考虑到由于在两个平台上开发应用的界面和业务基本一致,但却需要编写两套完全不一样的代码。因此,对于上述npm组件和历史移动应用主工程在iOS和 Android移动操作系统平台上都需要用到的公用工具(例如本地化工具、调试工具、版本控制工具等),可分别拆分出来作为基础公用私有库,以进一步提高开发效率。最后在移动应用的开发过程中,可基于组件功能请求时调用基础公用私有库和包管理混合组件进行移动应用开发。从而可避免在开发过程中需要iOS和Android两个平台的开发者协作考虑两个平台组件呈现的特性的情况,抹平了iOS和Android两个平台之间的差异性,缩短了单个应用开发时长,减少了开发工作量,进而提高了移动应用的开发效率。
基于本申请第一实施例,在本申请第二种实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,请参照图2,图2为本申请移动应用中间层组件调用方法实施例二提供的流程示意图。
本实例步骤S10还包括步骤S11~S12:
步骤S11:获取当前公司的历史移动应用主工程。
步骤S12:对所述历史移动应用主工程进行拆分,获取所述历史移动应用主工程的中间工程组件,所述中间工程组件包括基础组件、功能组件和UI组件。
需要说明的是,中间工程组件是在各个历史移动应用主工程中有着相似功能及相似代码的通用组件,与上述中间层组件的区别在于,不仅包括组件的功能架构,还包括移动应用的业务代码。
另外的,需要说明的是,基础组件是包括了移动应用中涉及到的各种基础模块(如网络、数据存储、定位等基础模块)的组件。功能组件是包括了移动应用中涉及到的各种功能模块(例如人脸检测、支付、分享等功能)的组件。UI组件是包括了移动应用中涉及到的外观样式(例如主题、动画等外观样式)的组件。
步骤S13:筛除所述基础组件、所述功能组件和所述UI组件的业务代码,获得所述历史移动应用主工程对应的中间层组件。
需要说明的是,考虑到中间工程组件不仅包括组件的功能架构,还包括移动应用的业务代码,为提高组件的调用效率,降低组件的不必要存储,可筛除基础组件、功能组件和UI组件的业务代码,获得历史移动应用主工程中仅包括功能架构的中间层组件。
本实施方式中,考虑到中间工程组件不仅包括组件的功能架构,还包括移动应用的业务代码,为降低组件的不必要存储。调用设备可先获取当前公司的历史移动应用主工程;然后对历史移动应用主工程进行拆分,获取包括组件功能架构和业务代码的中间工程组件。最后筛除其中的业务代码,获得历史移动应用主工程中仅包括功能架构的中间层组件,以提高组件的调用效率。
在一种可行的实施方式中,本实施例步骤S13之后还包括:基于所述中间层组件的组件类型提取所述基础组件、所述功能组件和所述UI组件的功能信息;根据所述功能信息对所述中间层组件进行颗粒度拆分,获得所述中间层组件对应的多个颗粒度组件;根据所述多个颗粒度组件构建中间层组件库;相应的,所述步骤S20包括:基于所述中间层组件库进行组合预处理,获得包管理混合组件。
需要说明的是,功能信息是基础组件、功能组件和UI组件所对应的具体功能,例如UI组件是为了统一移动端设计风格,基础组件是满足开发中各种基础服务例如网络、本地存储等,功能组件则是各种特定场景需要使用的功能模块,例如活体检测、银行卡扫描等。
本实施方式中,为进一步提高中间层组件的调用效果,可根据不同组件的具体功能对其进行颗粒度拆分。例如UI组件是为了统一移动端设计风格,基础组件是满足开发中各种基础服务例如网络、本地存储等,功能组件则是各种特定场景需要使用的功能模块,例如活体检测、银行卡扫描等。因此,可基于上述不同的具体功能信息对中间层组件进行颗粒度拆分,获得对应的多个颗粒度组件,并构成中间层组件库。在开发过程中,若需要调用拥有复杂功能的组件时,可由中间层组件库的颗粒度组件组成,从而进一步提高中间层组件的调用效果。
在另一种可行的实施方式中,本实施例所述移动操作系统平台包括iOS移动操作系统平台和Android移动操作系统平台,所述中间层组件库的组件架构包括系统服务层、React Navite层、基础原生组件层、中间层以及业务层;所述系统服务层包括所述iOS移动操作系统平台及所述Android移动操作系统平台的系统服务层;所述中间层包括所述多个颗粒度组件。
需要说明的是,React Navite层是React Native框架的基础设施层。基础原生组件层是移动应用的主工程和中间层共同引用的相关基础原生组件的架构层。中间层包括了上述中间层组件,例如基础组件、功能组件和UI组件等。业务层是移动应用开发过程中实现业务需求的架构。
为便于理解,参考图4,图4为本申请实施例二提供的中间层组件库的架构示意图。中间层组件库的架构主要包括:
1、最下层放入是iOS和Android的系统服务层。
2、倒数第二层是React Navite层,提供React Native框架的基础设施。
3、再上一层是基础原生组件层,包括了工程的第三方开源库和私有库,主工程和中间层共同引用的相关基础原生组件也在这一层,iOS和Android平台分别通过CocoaPods和Gradle管理,主工程和中间层对这一层有依赖关系。
4、第四层是中间层(即React Native中间层),分别包括UI组件库、基础/功能组件库。
其中,UI组件包括了样式、主题、动画等基础的UI工具,为了统一移动应用的UI风格。还包括了基础组件、扩展组件和复合组件。基础组件通过纯JS组件实现,兼容iOS和Android两个平台间的差异,专注于通用性,不做定制化处理,并且颗粒度足够细,提供良好的拓展性。扩展组件针对特定的业务场景,组合和继承基础组件进行定制化处理,满足需求的实现;还有通过JS+Native实现的复合组件。主要包括Native组件的Bridge部分和Native组件在JS侧的封装。Native组件分为iOS和Android,依赖各自的模块,提供原生的业务能力。UI组件库通过现有需求分析建立后,产品团队的人员可以通过查看UI组件库,快速了解移动应用现有的UI组件,帮助产品团队迅速的分析、搭建出新的业务流程。开发人员再通过在UI组件库的基础上产生的需求,可以快速使用现有组件,搭建出需求的界面。
而基础/功能组件库包括了移动应用中涉及到的各种基础模块,如网络、数据存储、定位、埋点,以及其他功能类模块,如OCR(OpticalCharacter Recognition,一种通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其他印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的文本的计算机输入技术)、活体人脸检测、支付、分享等。这些模块所依赖的第三方库及本地库会被抽离到CocoaPods和Gradle中管理,通过iOS和Android通信桥梁对其利用通用的方法进行封装。功能库模块间相互独立,可以直接复用。
中间层通过向外提供一套统一接口,内部的实现逻辑和交互表现基本一致,在iOS和Android两个平台上表现趋于相同,可以让使用中间层组件的开发人员可以快速开始业务需求的开发,而无须像传统方式一样关注不同平台或者不同应用中相似组件的实现,从而减少了开发时长,实现一个开发人员就可以完成大部分业务需求开发的场景。
5、最上面一层是业务层,实现业务需求。
在一种可行的实施方式中,本实施例步骤S20可以包括:判断所述中间层组件库中对应的中间层组件的语言实现类型;在所述语言实现类型为JS代码类型时,基于所述中间层组件库进行颗粒度组合,获得纯JS组件;在所述语言实现类型为原生代码类型时,通过JSBridge桥接技术对所述中间层组件进行封装,获得原生混合组件;基于所述纯JS组件和所述原生混合组件,在React Native框架下确定包管理混合组件。
需要说明的是,语言实现类型是历史移动应用主工程中各中间层组件的代码编译类型,例如原生代码、JS代码等类型。
因为历史移动应用主工程是混合开发的,可能包含原生代码(原生代码是程序直接编译成单独的可执行文件)还有JS代码(即JavaScript代码,其中,JavaScript是一种具有函数优先的轻量级、解释型或即时编译型的编程语言)。所以拆分出来的中间层组件有些可能原来是基于原生代码实现的,有些可能直接是用JS代码实现得。
本实施方式中,为统一开发过程,使中间层组件能够在iOS和Android两个平台跨平台开发使用,可利用上述的React Native开发框架对中间层组件进行预处理,在语言实现类型为JS代码类型时,可根据上述中间层组件库进行颗粒度组合,获得纯JS组件;在语言实现类型为原生代码类型时,通过JS Bridge桥接技术对所述中间层组件进行封装,获得原生混合组件(即上述的JS+Native实现的复合组件);最后在React Native框架下实现为可用于React Native开发框架的npm组件,以此提高开发效率。
为便于理解本申请的移动应用中间层组件调用方法,基于上述实施例一以及实施例二进行说明,其具体实现过程如下:
1、从原来各个项目工程中,拆分出基础组件、功能组件和UI组件。这些组件不包含业务代码,而且根据具体功能,拆分的颗粒度尽量小。拥有复杂功能的组件由其他颗粒度更小的组件组成。
2、将各个组件实现为可以用于React Native框架开发的npm组件,npm组件包括纯JS实现的组件以及涉及原生和JS实现的混合组件。
3、对于npm组件和主工程都需要用到的公用工具,iOS和Android两个平台分别拆分出来作为基础公用私有库,通过CocoaPods和Gradle管理依赖关系。
4、对中间层组件、两个平台的基础公用私有库通过私有代码托管平台管理,中间层组件经过测试后发布到私有npm服务器上。
5、原各个项目工程通过Reac tNative框架重构相关业务流程和页面,根据不同需要有选择的接入中间层组件。
6、后续开发过程中,中间层组件改动由两个平台的开发人员同时开发、维护。中间层做到两个平台表现一致。单独应用开发时使用中间层组件时,无须关注组件具体实现,使用React Native开发时使用一个组件适配两个平台,实现一个开发人员即可完成同一个业务流程的开发工作。
7、当需要排查问题或版本升级时,根据移动应用工程中对应的中间层组件版本进行操作。
通过以上方式,本申请将开发过程中两个平台UI组件、基础组件和功能组件从原工程中进行拆分,并统一管理维护,可提高后续业务需求的开发效率,减少开发工作量,缩短需求完成时间。并通过统一管理中间层组件,多应用开发时,可有效的控制每个应用使用的组件版本,让开发人员更加清晰的使用组件实现业务代码编程,减少每个组件的学习成本。产品经理也可以根据UI组件库,快速了解移动应用可以=提供的界面构成,缩短业务需求制定和与开发人员沟通的时间。
示例性地,为了助于理解本实施例结合上述实施例一和实施例二后所得到的移动应用中间层组件调用方法的实现流程,请参照图5,图5为本申请实施例二提供的组件库多移动应用使用的关系示意图,具体地:
在多个不同的移动应用的开发周期中,都可以根据当前项目需求,引入不同的中间层组件进行开发。如项目A可以使用网络组件、数据缓存组件,项目B可以使用UI扩展组件、基础功能组件、日志组件,项目C可以使用UI基础组件、UI复合组件等。各个项目间开发互不干扰。从而实现了基于React Native框架为基础的中间层组件库,达到了iOS和Android两端基础组件、功能组件和UI组件的统一,使得在原需要分配两名开发人员进行需求开发的情况下,缩减为一名开发人员即可实现开发,在两端运行,减少了公司开发移动应用的人力成本。同时因为中间层组件的表现在两端是一致的,也可以减少测试人员的测试时间。整体提高了公司的开发和测试效率,满足了公司对需求快速迭代的要求;
同时的,对中间层组件库进行清晰、有效和规范的代码托管和发布管理,让开发可以更好的支持多应用开发场景的要求。不同的应用可以通过自己实际的业务要求和发版情况,对中间层组件不同的版本的依赖进行调整,在后续排查问题和分析代码逻辑时,也可以更简单和清晰的定位问题的位置,增强了代码的可读性和健壮性。为公司多应用和多团队合作开发打下基础。
需要说明的是,上述示例仅用于理解本申请,并不构成对本申请移动应用中间层组件调用方法的限定,基于此技术构思进行更多形式的简单变换,均在本申请的保护范围内。
本实施例考虑到中间工程组件不仅包括组件的功能架构,还包括移动应用的业务代码,为降低组件的不必要存储。调用设备可先获取当前公司的历史移动应用主工程;然后对历史移动应用主工程进行拆分,获取包括组件功能架构和业务代码的中间工程组件。最后筛除其中的业务代码,获得历史移动应用主工程中仅包括功能架构的中间层组件,以提高组件的调用效率。为进一步提高中间层组件的调用效果,还可根据不同组件的具体功能对其进行颗粒度拆分。例如UI组件是为了统一移动端设计风格,基础组件是满足开发中各种基础服务例如网络、本地存储等,功能组件则是各种特定场景需要使用的功能模块,例如活体检测、银行卡扫描等。因此,可基于上述不同的具体功能信息对中间层组件进行颗粒度拆分,获得对应的多个颗粒度组件,并构成中间层组件库。在开发过程中,若需要调用拥有复杂功能的组件时,可由中间层组件库的颗粒度组件组成,从而进一步提高中间层组件的调用效果。
本申请还提供一种移动应用中间层组件调用装置,请参照图6,图6为本申请实施例移动应用中间层组件调用装置的模块结构示意图;所述移动应用中间层组件调用装置包括:
组件拆分模块601,用于对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件;
组件处理模块602,用于将所述中间层组件进行组合预处理,获得包管理混合组件;
私有库模块603,用于提取移动操作系统平台的公用工具,并基于所述公用工具构建所述移动操作系统平台的基础公用私有库;
组件调用模块604,用于在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
本申请提供的移动应用中间层组件调用装置,采用上述实施例中的移动应用中间层组件调用方法,能够解决传统的移动应用开发过程中需协作考虑iOS和Android两个平台组件呈现的特性来完成开发,增加了不必要的单个应用的开发时长,从而影响了开发效率的技术问题。与现有技术相比,本申请提供的移动应用中间层组件调用装置的有益效果与上述实施例提供的移动应用中间层组件调用方法的有益效果相同,且所述移动应用中间层组件调用装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
本申请提供一种移动应用中间层组件调用设备,移动应用中间层组件调用设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的移动应用中间层组件调用方法。
下面参考图7,图7为本申请实施例中移动应用中间层组件调用方法涉及的硬件运行环境的设备结构示意图,其示出了适于用来实现本申请实施例的移动应用中间层组件调用设备的结构示意图。本申请实施例中的移动应用中间层组件调用设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(Personal Digital Assistant:个人数字助理)、PAD(Portable Application Description:平板电脑)、PMP(Portable MediaPlayer:便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的移动应用中间层组件调用设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,移动应用中间层组件调用设备可以包括处理装置1001(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM:Read Only Memory)1002中的程序或者从存储装置1003加载到随机访问存储器(RAM:Random Access Memory)1004中的程序而执行各种适当的动作和处理。在RAM1004中,还存储有移动应用中间层组件调用设备操作所需的各种程序和数据。处理装置1001、ROM1002以及RAM1004通过总线1005彼此相连。输入/输出(I/O)接口1006也连接至总线。通常,以下系统可以连接至I/O接口1006:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置1007;包括例如液晶显示器(LCD:Liquid Crystal Display)、扬声器、振动器等的输出装置1008;包括例如磁带、硬盘等的存储装置1003;以及通信装置1009。通信装置1009可以允许移动应用中间层组件调用设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的移动应用中间层组件调用设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置1003被安装,或者从ROM1002被安装。在该计算机程序被处理装置1001执行时,执行本申请公开实施例的方法中限定的上述功能。
本申请提供的移动应用中间层组件调用设备,采用上述实施例中的移动应用中间层组件调用方法,能解决传统的移动应用开发过程中需协作考虑iOS和Android两个平台组件呈现的特性来完成开发,增加了不必要的单个应用的开发时长,从而影响了开发效率的技术问题。与现有技术相比,本申请提供的移动应用中间层组件调用设备的有益效果与上述实施例提供的移动应用中间层组件调用方法的有益效果相同,且该移动应用中间层组件调用设备中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
应当理解,本申请公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
本申请提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令(即计算机程序),计算机可读程序指令用于执行上述实施例中的移动应用中间层组件调用方法。
本申请提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体地例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM:Random Access Memory)、只读存储器(ROM:Read Only Memory)、可擦式可编程只读存储器(EPROM:Erasable Programmable Read Only Memory或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM:CD-Read Only Memory)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency:射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是移动应用中间层组件调用设备中所包含的;也可以是单独存在,而未装配入移动应用中间层组件调用设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被移动应用中间层组件调用设备执行时,使得移动应用中间层组件调用设备:对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件;将所述中间层组件进行组合预处理,获得包管理混合组件;提取移动操作系统平台的公用工具,并基于所述公用工具构建所述移动操作系统平台的基础公用私有库;在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN:Local Area Network)或广域网(WAN:Wide Area Network)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本申请提供的可读存储介质为计算机可读存储介质,所述计算机可读存储介质存储有用于执行上述移动应用中间层组件调用方法的计算机可读程序指令(即计算机程序),能够解决传统的移动应用开发过程中需协作考虑iOS和Android两个平台组件呈现的特性来完成开发,增加了不必要的单个应用的开发时长,从而影响了开发效率的技术问题。与现有技术相比,本申请提供的计算机可读存储介质的有益效果与上述实施例提供的移动应用中间层组件调用方法的有益效果相同,在此不做赘述。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的移动应用中间层组件调用方法的步骤。
本申请提供的计算机程序产品能够解决传统的移动应用开发过程中需协作考虑iOS和Android两个平台组件呈现的特性来完成开发,增加了不必要的单个应用的开发时长,从而影响了开发效率的技术问题。与现有技术相比,本申请提供的计算机程序产品的有益效果与上述实施例提供的移动应用中间层组件调用方法的有益效果相同,在此不做赘述。
以上所述仅为本申请的部分实施例,并非因此限制本申请的专利范围,凡是在本申请的技术构思下,利用本申请说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本申请的专利保护范围内。
Claims (10)
1.一种移动应用中间层组件调用方法,其特征在于,所述的方法包括:
对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件;
将所述中间层组件进行组合预处理,获得包管理混合组件;
提取移动操作系统平台的公用工具,并基于所述公用工具构建所述移动操作系统平台的基础公用私有库;
在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
2.如权利要求1所述的方法,其特征在于,所述对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件的步骤,包括:
获取当前公司的历史移动应用主工程;
对所述历史移动应用主工程进行拆分,获取所述历史移动应用主工程的中间工程组件,所述中间工程组件包括基础组件、功能组件和UI组件;
筛除所述基础组件、所述功能组件和所述UI组件的业务代码,获得所述历史移动应用主工程对应的中间层组件。
3.如权利要求2所述的方法,其特征在于,所述筛除所述基础组件、所述功能组件和所述UI组件的业务代码,获得所述历史移动应用主工程对应的中间层组件的步骤之后,还包括:
基于所述中间层组件的组件类型提取所述基础组件、所述功能组件和所述UI组件的功能信息;
根据所述功能信息对所述中间层组件进行颗粒度拆分,获得所述中间层组件对应的多个颗粒度组件;
根据所述多个颗粒度组件构建中间层组件库;
相应的,所述将所述中间层组件进行组合预处理,获得包管理混合组件的步骤,包括:
基于所述中间层组件库进行组合预处理,获得包管理混合组件。
4.如权利要求3所述的方法,其特征在于,所述移动操作系统平台包括iOS移动操作系统平台和Android移动操作系统平台,所述中间层组件库的组件架构包括系统服务层、React Navite层、基础原生组件层、中间层以及业务层;所述系统服务层包括所述iOS移动操作系统平台及所述Android移动操作系统平台的系统服务层;所述中间层包括所述多个颗粒度组件。
5.如权利要求3所述的方法,其特征在于,所述基于所述中间层组件库进行组合预处理,获得包管理混合组件的步骤,包括:
判断所述中间层组件库中对应的中间层组件的语言实现类型;
在所述语言实现类型为JS代码类型时,基于所述中间层组件库进行颗粒度组合,获得纯JS组件;
在所述语言实现类型为原生代码类型时,通过JS Bridge桥接技术对所述中间层组件进行封装,获得原生混合组件;
基于所述纯JS组件和所述原生混合组件,在React Native框架下确定包管理混合组件。
6.如权利要求1所述的方法,其特征在于,所述在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发的步骤之前,还包括:
获取历史移动应用主工程的业务流程及页面;
基于React Native框架对所述业务流程及页面进行重构,获得所述历史移动应用主工程对应的重构页面;
将所述包管理混合组件接入所述重构页面;
相应的,所述在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发的步骤,包括:
在接收到组件功能请求时,通过所述重构页面调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
7.如权利要求1至6任一项所述的方法,其特征在于,所述在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发的步骤之后,还包括:
在接收到版本更新指令时,根据所述版本更新指令确定待更新移动应用工程;
提取所述包管理混合组件的组件版本号;
根据所述组件版本号对所述待更新移动应用工程进行组件版本更新。
8.一种移动应用中间层组件调用装置,其特征在于,所述装置包括:
组件拆分模块,用于对历史移动应用主工程进行组件拆分,获取所述历史移动应用主工程对应的中间层组件;
组件处理模块,用于将所述中间层组件进行组合预处理,获得包管理混合组件;
私有库模块,用于提取移动操作系统平台的公用工具,并基于所述公用工具构建所述移动操作系统平台的基础公用私有库;
组件调用模块,用于在接收到组件功能请求时,调用所述基础公用私有库和所述包管理混合组件进行移动应用开发。
9.一种移动应用中间层组件调用设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至7中任一项所述的移动应用中间层组件调用方法的步骤。
10.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的移动应用中间层组件调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410508559.9A CN118092886A (zh) | 2024-04-26 | 2024-04-26 | 移动应用中间层组件调用方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410508559.9A CN118092886A (zh) | 2024-04-26 | 2024-04-26 | 移动应用中间层组件调用方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118092886A true CN118092886A (zh) | 2024-05-28 |
Family
ID=91162003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410508559.9A Pending CN118092886A (zh) | 2024-04-26 | 2024-04-26 | 移动应用中间层组件调用方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118092886A (zh) |
-
2024
- 2024-04-26 CN CN202410508559.9A patent/CN118092886A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7337436B2 (en) | System and method for cross platform and configuration build system | |
US8707263B2 (en) | Using a DSL for calling APIS to test software | |
US8347272B2 (en) | Call graph dependency extraction by static source code analysis | |
US9684786B2 (en) | Monitoring an application in a process virtual machine | |
US8875106B2 (en) | Automated testing process | |
US11182276B2 (en) | Development-time awareness of a production dependency injection environment | |
US10268465B2 (en) | Executing local function call site optimization | |
CN113885849A (zh) | 基于工业互联网平台的应用开发方法、装置及终端设备 | |
KR20060063642A (ko) | 서브시스템 간의 자원 공유를 가능하게 하는 방법 및시스템 | |
US11243868B2 (en) | Application containerization based on trace information | |
US20100058305A1 (en) | Automatic Generation of Language Bindings for Libraries Using Data from Compiler Generated Debug Information | |
US11288170B1 (en) | Log analysis debugging without running on real production environment | |
CN113900704A (zh) | 应用程序安装包的发布方法、装置、可读介质及电子设备 | |
Hilbrich et al. | A consolidated view on specification languages for data analysis workflows | |
EP1445694A2 (en) | Modularization for J2ME platform implementation | |
CN115248680A (zh) | 软件构建方法、系统、设备、介质和程序产品 | |
CN118092886A (zh) | 移动应用中间层组件调用方法、装置、设备及存储介质 | |
US20160246704A1 (en) | Smart programming playgrounds | |
CN113778451A (zh) | 文件加载方法、装置、计算机系统和计算机可读存储介质 | |
CN111782196A (zh) | 基于mvp架构的开发方法及装置 | |
CN111880775A (zh) | 多模块分层架构实现方法、装置、电子设备、存储介质 | |
Abeille et al. | State of the Tango controls kernel development in 2019 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 | |
Madushan | Cloud Native Applications with Ballerina: A guide for programmers interested in developing cloud native applications using Ballerina Swan Lake | |
US11809861B2 (en) | Development environment organizer with enhanced state switching and sharing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |