一种基于车载系统的APP组件化控制系统和方法技术方案

技术编号:30313597 阅读:32 留言:0更新日期:2021-10-09 22:56
本发明专利技术请求保护一种基于车载系统的APP组件化方法,采用分层开发,构建包括通用层、中间层和业务层的多层APP组件系统,其中,通用层包含APP中组件都需要依赖的公共库,业务组件将各自的能力注入到中间层,实现不同业务组件之间的解耦,业务层包含一系列业务组件,单个业务组件独立,业务之间的调用和通信通过中间层转发。每个业务组件采用MVP模式进行分层分库开发,实现UI逻辑和数据的分离。本发明专利技术可以有效地提高开发效率,不同的业务划分为独立的组件,使得编译时间大大缩短,容易排查定位问题模块。模块。模块。

【技术实现步骤摘要】
一种基于车载系统的APP组件化控制系统和方法


[0001]本专利技术涉及一种车载APP的组件化开发技术,具体涉及在多平台、多项目等多个场景下实现车载APP的快速移植和测试,实现业务复用。

技术介绍

[0002]车载系统是用户和车载硬件的接口,同时也是车载硬件和上层软件的接口。车机操作系统的功能包括管理车载系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为上层软件提供支持。而车载APP利用车载系统的资源,将接收到数据、信号、音频、视频最大限度地发挥作用,提供各种形式的用户界面UI,使驾驶员有一个良好的驾驶环境,并有效的提供辅助驾驶、半自动驾驶、甚至自动驾驶。目前,因车载系统的特殊性,考虑到驾驶安全和操控方便,车载业务APP相对于手机APP来说,交互设计更简单和易操作,层级也更少。同一个APP在多个车型的项目的车载系统中,会更换UI风格和布局,但交互基本一致,也会有少量交互不一致的情况,但大部分业务逻辑都相同。因此,同一款APP在不同的项目中,会存在大量代码重复的情况,且移植过程中容易修改到源代码。同时,不同的APP可能会有相同的业务模块,如果所有代码都以APP的维度进行开发和维护,会造成重复开发,且不同APP相同业务模块难以保持一致的问题。
[0003]另外,车载APP需要获取硬件状态以及对硬件发送信号进行操作,而目前不同的车型的硬件供应商可能不一样,因此,移植过程中,可能会因为硬件的更换,导致原有功能使用异常。而APP和硬件的通信过程涉及Framework层和MCU等多方交互,不容易排查问题归属,因此需要更好的控制APP本身质量。
[0004]中国专利技术专利嵌入式软件开发配置的管理系统,公开一种嵌入式软件开发管理系统,包括表现层、中间层、业务逻辑层和数据层。表现层(客户端)通过web form和win form与中间层(WEB服务器)和业务逻辑层(应用服务器),WEB服务器包括soap/XML Http和IISWeb服务器,应用服务器包括接口、事务逻辑、ADO.Net和基础类库;所述数据层:数据层用于数据的存储和提取,通过database与应用服务器的ADO.Net连接。通过数据库服务器进行数据的处理,通过web服务器和应用服务器作为软件开发管理的中间层,通过客户端进行实时的过程表现,实现软件产品的完整性,通过控制、机理、追踪对软件的修改生成的软件组成部件来实现对软件产品的管理功能。该系统没有涉及车载系统的特殊性,没有考虑驾驶安全和操控方便,车载业务APP交互设计更简单和层级更少的 问题。目前已有的组件化开发方案,更多的是解决软件系统开发中模块间解耦问题,而对于车载领域如何快速进行多项目适配,UI逻辑分离,快速替换UI,提供模拟数据快速验证,测试驱动等方面,现有技术不能提供完整的解决方案。

技术实现思路

[0005]本专利技术针对现有技术汽车APP在多个车型项目的车载系统中进行移植时代码重复开发工作量大,工作效率低下,硬件更换容易导致原有功能使用异常,不容易排查问题归属
等方面问题,提供一种通用的APP组件化开发系统和方法。
[0006]本专利技术解决上述技术问题的技术方案是,采用分层开发方案构建APP组件化开发系统,多层APP组件化系统包括通用层、中间层和业务层,其中,通用层包括APP组件依赖的公共库,公共库根据车载APP应用功能导入;中间层构建组件化框架,实现业务解耦;业务层包括:一系列相互独立的业务组件,业务组件之间的调用和通信通过中间层转发,每个业务组件采用数据显示逻辑处理分离的MVP模式进行分层分库开发,实现用户界面UI、逻辑和数据的分离,依赖注入的方式对业务层中的一系列业务进行解耦。业务组件将各自需要对外提供的功能抽象成不同的服务接口,所有业务组件的服务接口都在中间层定义。而业务组件中的服务,需要完成中间层定义的服务接口的功能实现。将业务组件的服务和中间层的服务接口进行绑定,业务组件之间的功能调用,只能通过调用中间层的服务接口实现。不同业务组件之间实现了解耦。
[0007]进一步地,通用层的公共库包括基础类库、工具类库、日志类库、网络库等APP组件需要依赖的公共库,业务层包含如业务组件1,业务组件2,
……
,业务组件N等一系列业务组件,业务组件之间相互独立,业务组件之间的调用和通信通过中间层转发。
[0008]业务组件进一步包括:业务逻辑库CoreComponent、UI库、软件开发工具包SDK,业务逻辑库CoreComponent负责所属业务组件的所有业务逻辑,从SDK中获取汽车相关的数据进行组装和处理,根据不同的数据控制界面的展示,业务逻辑库加载不同风格的UI库,实现同一业务逻辑,展示不同的界面和交互,UI库和业务逻辑完全隔离,实现UI和逻辑的解耦,SDK向外部服务获取数据,提供数据给CoreComponent向上层提供接口。其中,业务逻辑库进一步包含:一系列界面相关的抽象接口IView、一系列Presenter(业务逻辑层处理类)、一系列Model(数据层处理类),例如ICarInfoView是用于定义汽车信息界面的接口,UI库中的CarInfoView(汽车信息界面类)实现ICarInfoView(汽车信息界面的接口)接口,调用CarInfoPresenter(汽车信息相关业务逻辑处理类)提供的方法处理相应的业务逻辑,同时接受CarInfoPresenter的调用进行相应的界面刷新;Presenter用于处理业务逻辑,接受UI库的调用,并从数据模型CarInfoModel(汽车信息数据处理类)获取数据,进行业务逻辑处理,并通知UI层进行刷新;Model调用SDK提供的接口获取不同数据源的数据,对数据进行整合和加工,返回不同类型的数据。
[0009]本专利技术还提出一种基于车载系统的APP组件化控制方法,构建包括通用层、中间层和业务层的多层APP组件化系统,根据车载APP应用功能导入构建通用层中APP组件依赖的公共库;中间层构建组件化框架,实现业务解耦;业务层包括:一系列相互独立的业务组件,业务组件之间的调用和通信通过中间层转发,每个业务组件采用数据显示逻辑处理MVP模式进行分层分库开发,实现用户界面UI、逻辑和数据的分离,依赖注入的方式对业务层中的一系列业务进行解耦,业务组件将各自的能力抽象成不同的服务接口,服务接口在中间层定义业务组件中具体的服务实现服务接口定义的功能,将服务和服务接口绑定,其他业务组件通过服务接口获取具体的服务完成调用。
[0010]本专利技术每个业务组件采用数据显示逻辑处理MVP( Model

View

Presenter)模式进行分层分库开发,实现用户界面UI、逻辑和数据的分离,能快速实现多项目适配,UI逻辑分离,快速替换UI,提供模拟数据快速验证,测试驱动等。本专利技术可以有效地提高开发效率,代码可复用性强,容易移植,模块功能一致性强,使得开发人员只需要专注于各自维护的独
立业务组件,且独立模块更容易做到可扩展、可复用,不同的业务划分为独立的组件,使得编译时间大大缩短,容易排查本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于车载系统的APP组件化控制系统,其特征在于,多层APP组件化系统包括通用层、中间层和业务层,其中,通用层包括APP组件依赖的公共库,公共库根据车载APP应用功能导入;中间层构建组件化框架,实现业务解耦;业务层包括:一系列相互独立的业务组件,业务组件之间的调用和通信通过中间层转发,每个业务组件采用数据显示逻辑处理分离的MVP模式进行分层分库开发,实现用户界面UI、逻辑和数据的分离,依赖注入的方式对业务层中的一系列业务进行解耦,业务组件将各自的功能抽象成不同的服务接口,服务接口在中间层定义业务组件中具体的服务实现服务接口定义的功能,将服务和服务接口绑定,业务组件通过服务接口获取具体的服务完成调用。2.根据权利要求1所述的系统,其特征在于,业务组件进一步包括:业务逻辑库CoreComponent、UI库、软件开发工具包SDK,业务逻辑库CoreComponent负责所属业务组件的所有业务逻辑,从SDK中获取数据进行组装和处理,根据不同的数据控制界面的展示,业务逻辑库加载不同风格的UI库,实现同一业务逻辑,展示不同的界面和交互,UI库和业务逻辑完全隔离,实现UI和逻辑的解耦,SDK向外部服务获取数据,提供数据给CoreComponent向上层提供接口。3.根据权利要求1所述的系统,其特征在于,业务逻辑库进一步包含:一系列界面相关的抽象接口IView、一系列Presenter、一系列Model,其中,ICarInfoView用于定义UI的行为,UI库实现ICarInfoView接口,调用CarInfoPresenter提供的方法处理相应的业务逻辑,同时接受CarInfoPresenter的调用进行相应的界面刷新;Presenter用于处理业务逻辑,接受UI库的调用,并从数据模型CarInfoModel获取数据,进行业务逻辑处理,并通知UI层进行刷新;Model调用SDK提供的接口获取不同数据源的数据,对数据进行整合和加工,返回不同类型的数据。4.一种基于...

【专利技术属性】
技术研发人员:张磊张英鹏詹斌谢乐成
申请(专利权)人:重庆长安汽车股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1