公开/公告号CN114780260A
专利类型发明专利
公开/公告日2022-07-22
原文格式PDF
申请/专利权人 重庆长安汽车股份有限公司;
申请/专利号CN202210460031.X
申请日2022-04-28
分类号G06F9/54;G06F9/451;G06F8/76;G06F8/20;G06F8/38;
代理机构重庆博凯知识产权代理有限公司;
代理人陆瑞
地址 400020 重庆市江北区建新东路260号
入库时间 2023-06-19 16:06:26
法律状态公告日
法律状态信息
法律状态
2022-07-22
公开
发明专利申请公布
技术领域
本发明涉及软件开发技术领域,具体涉及一种APP的UI和逻辑分离开发框架。
背景技术
车载系统是用户和车载硬件的接口,同时也是车载硬件和上层软件的接口。车机操作系统的功能包括管理车载系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为上层软件提供支持。而车载APP利用车载系统的资源,将接收到数据、信号、音频、视频最大限度地发挥作用,提供各种形式的用户界面UI,使驾驶员有一个良好的驾驶环境,并有效的提供辅助驾驶、半自动驾驶、甚至自动驾驶。
车载APP因功能众多,HMI(人机交互界面)的表现形式也多种多样,因此可能不同的项目的UI会采用不同的HMI开发工具进行开发,比如Unity、Kanzi、QT、Android原生UI框架等。但APP的业务逻辑基本一致,如果UI和逻辑耦合,则需要针对各种工具在每个平台提供一套逻辑相同的业务逻辑代码。因此,同一款APP在不同的项目中,会有大量代码重复的情况,且移植过程中修改UI容易修改到稳定业务逻辑代码,有必要对这种情况进行针对性的架构设计,使得UI层可以使用不同的开发工具开发,运行在不同的UI渲染引擎平台,而业务逻辑则始终采用同一套代码,能同时兼容多个平台的UI。
但是UI和业务逻辑代码属于两种不同的工作,那么就需要将UI和逻辑完全分离,各行其责,分工开发,使得UI设计不局限于具体的平台,可以根据不同的项目有针对性的选择HMI开发工具。
发明内容
针对上述现有技术的不足,本发明所要解决的技术问题是:如何提供一种能够为在不同平台开发的UI兼容同一套业务逻辑代码的APP的UI和逻辑分离开发框架。
为了解决上述技术问题,本发明采用了如下的技术方案:
一种APP的UI和逻辑分离开发框架,包括UI层、UI适配层和业务逻辑层;
UI层包括View,View能够获取用户的输入信息,然后将输入信息传递给UI适配层,根据UI适配层提供的数据进行刷新;
UI适配层包括View代理和UI逻辑模块,View代理能够从UI层得到用户输入信息,UI逻辑模块能够从业务逻辑层获取数据,调用UI层提供的接口进行界面的刷新;还能够监听UI层的事件,根据不同的事件,调用业务逻辑层提供的相应功能;
业务逻辑层包含业务逻辑的实现代码,为UI适配层提供所有数据和逻辑处理。
作为优化,UI层采用HMI开发工具进行开发,HMI开发工具包括Unity、Kanzi、QT或Android。
作为优化,UI适配层得到用户输入信息,将输入信息进行相应的适配处理后,交给UI逻辑模块进行处理;UI逻辑模块根据事件类型,调用业务逻辑层获取数据;数据获取成功后,根据数据进行UI显示逻辑的处理;处理完成后通知View代理进行刷新,View代理根据当前View的实现方式,通知View进行界面刷新。
综上所述,本发明的有益效果在于:本发明通过UI适配层实现了界面展示和业务逻辑之间的隔离,可以灵活的采用不同的工具实现KanziView、UnityView或AndroidView,而UI逻辑控制模块和业务逻辑模块可以尽量保持不变,达到了本发明的目的。
附图说明
为了使发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
图1为本发明的整体框架图;
图2为本发明的流程图;
图3为本发明实施例中的示意图。
具体实施方式
下面结合附图对本发明作进一步的详细说明。
如图1和图2所示,本具体实施方式中的一种APP的UI和逻辑分离开发框架,包括UI层、UI适配层和业务逻辑层;
UI层包括View,View能够获取用户的输入信息,然后将输入信息传递给UI适配层,根据UI适配层提供的数据进行刷新;
UI适配层包括View代理和UI逻辑模块,View代理能够从UI层得到用户输入信息,UI逻辑模块能够从业务逻辑层获取数据,调用UI层提供的接口进行界面的刷新;还能够监听UI层的事件,根据不同的事件,调用业务逻辑层提供的相应功能;
业务逻辑层包含业务逻辑的实现代码,为UI适配层提供所有数据和逻辑处理。
本具体实施方式中,UI层采用HMI开发工具进行开发,HMI开发工具包括Unity、Kanzi、QT或Android。
本具体实施方式中,UI适配层得到用户输入信息,将输入信息进行相应的适配处理后,交给UI逻辑模块进行处理;UI逻辑模块根据事件类型,调用业务逻辑层获取数据;数据获取成功后,根据数据进行UI显示逻辑的处理;处理完成后通知View代理进行刷新,View代理根据当前View的实现方式,通知View进行界面刷新。
业务逻辑层负责所有业务逻辑的处理,为上层提供数据。
UI适配层为本发明的核心,通过接口的方式隔离UI层的差异,使得UI层可替换为不同平台的方案得以实现。
UI层可采用不同的HMI开发工具实现。
UI层和UI适配层之间通过接口的方式实现了解耦,新增一套UI实现方案,只需要针对该平台做少量适配。
如图3所示,在具体实施的时候:
Service是业务逻辑层提供的服务,提供getData方法给上层调用。
Presenter是UI逻辑处理模块,负责从Service获取数据,同时通知view进行刷新。Presenter不直接持有view,而是可以持有所有实现了IView接口的对象,这样Presenter可以和具体的view解耦,达到view可以替换的目的。
IView是和Presenter通信的接口,定义了一个更新view的方法:updateView。
KanziViewDelegate实现了IView接口,通过onEvent方法获取从KanziView传来的事件,然后对特定的事件类型进行特定处理。
UnityViewDelegate实现了IView接口,通过onEvent方法获取从UnityView传来的事件,然后对特定的事件类型进行特定处理。
AndroidViewDelegate也实现了IView接口,通过onEvent方法获取从AndroidView传来的事件,然后对特定的事件类型进行特定处理。
KanziView:Kanzi开发工具开发的界面。
UnityView:Unity开发工具开发的界面。
AndroidView:Android开发的界面。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管通过参照本发明的优选实施例已经对本发明进行了描述,但本领域的普通技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
机译: 一种用于从云中播放应用程序的方法,一种用于通过特定电信系统流式传输和回放应用程序(APP)的电信网络,以及一种用于流式传输和回放应用程序(APP)的电信网络的用途
机译: 提供用于按组分离AR信息的UI的AR UI供应设备及其方法
机译: 本发明提供了一种在移动电话或计算机上结合云服务平台,GNSS / GPS地图和App的方法和系统,以解决汽车/船/摩托车/自行车用户需要寻找机械工程师(有执照)来为其汽车服务的问题/小船/摩托车/自行车在近处。服务提供商可以轻松找到客户所在的位置,并且可以通过App,计算机和云系统进行通信以交换信息数据,并完成所有服务。