首页> 中国专利> 一种APP的UI和逻辑分离开发框架

一种APP的UI和逻辑分离开发框架

摘要

本发明公开了一种APP的UI和逻辑分离开发框架,包括UI层、UI适配层和业务逻辑层;UI层包括View,View能够获取用户的输入信息,然后将输入信息传递给UI适配层,根据UI适配层提供的数据进行刷新;UI适配层包括View代理和UI逻辑模块,View代理能够从UI层得到用户输入信息,UI逻辑模块能够从业务逻辑层获取数据,调用UI层提供的接口进行界面的刷新;还能够监听UI层的事件,根据不同的事件,调用业务逻辑层提供的相应功能;业务逻辑层包含业务逻辑的实现代码,为UI适配层提供所有数据和逻辑处理。本发明通过UI适配层实现了界面展示和业务逻辑之间的隔离。

著录项

  • 公开/公告号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开发的界面。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管通过参照本发明的优选实施例已经对本发明进行了描述,但本领域的普通技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号