一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种APP的UI和逻辑分离开发框架的制作方法

2022-07-23 00:39:10 来源:中国专利 TAG:

一种app的ui和逻辑分离开发框架
技术领域
1.本发明涉及软件开发技术领域,具体涉及一种app的ui和逻辑分离开发框架。


背景技术:

2.车载系统是用户和车载硬件的接口,同时也是车载硬件和上层软件的接口。车机操作系统的功能包括管理车载系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为上层软件提供支持。而车载app利用车载系统的资源,将接收到数据、信号、音频、视频最大限度地发挥作用,提供各种形式的用户界面ui,使驾驶员有一个良好的驾驶环境,并有效的提供辅助驾驶、半自动驾驶、甚至自动驾驶。
3.车载app因功能众多,hmi(人机交互界面)的表现形式也多种多样,因此可能不同的项目的ui会采用不同的hmi开发工具进行开发,比如unity、kanzi、qt、android原生ui框架等。但app的业务逻辑基本一致,如果ui和逻辑耦合,则需要针对各种工具在每个平台提供一套逻辑相同的业务逻辑代码。因此,同一款app在不同的项目中,会有大量代码重复的情况,且移植过程中修改ui容易修改到稳定业务逻辑代码,有必要对这种情况进行针对性的架构设计,使得ui层可以使用不同的开发工具开发,运行在不同的ui渲染引擎平台,而业务逻辑则始终采用同一套代码,能同时兼容多个平台的ui。
4.但是ui和业务逻辑代码属于两种不同的工作,那么就需要将ui和逻辑完全分离,各行其责,分工开发,使得ui设计不局限于具体的平台,可以根据不同的项目有针对性的选择hmi开发工具。


技术实现要素:

5.针对上述现有技术的不足,本发明所要解决的技术问题是:如何提供一种能够为在不同平台开发的ui兼容同一套业务逻辑代码的app的ui和逻辑分离开发框架。
6.为了解决上述技术问题,本发明采用了如下的技术方案:一种app的ui和逻辑分离开发框架,包括ui层、ui适配层和业务逻辑层;ui层包括view,view能够获取用户的输入信息,然后将输入信息传递给ui适配层,根据ui适配层提供的数据进行刷新;ui适配层包括view代理和ui逻辑模块,view代理能够从ui层得到用户输入信息,ui逻辑模块能够从业务逻辑层获取数据,调用ui层提供的接口进行界面的刷新;还能够监听ui层的事件,根据不同的事件,调用业务逻辑层提供的相应功能;业务逻辑层包含业务逻辑的实现代码,为ui适配层提供所有数据和逻辑处理。
7.作为优化,ui层采用hmi开发工具进行开发,hmi开发工具包括unity、kanzi、qt或android。
8.作为优化,ui适配层得到用户输入信息,将输入信息进行相应的适配处理后,交给ui逻辑模块进行处理;ui逻辑模块根据事件类型,调用业务逻辑层获取数据;数据获取成功后,根据数据进行ui显示逻辑的处理;处理完成后通知view代理进行刷新,view代理根据当
前view的实现方式,通知view进行界面刷新。
9.综上所述,本发明的有益效果在于:本发明通过ui适配层实现了界面展示和业务逻辑之间的隔离,可以灵活的采用不同的工具实现kanziview、unityview或androidview,而ui逻辑控制模块和业务逻辑模块可以尽量保持不变,达到了本发明的目的。
附图说明
10.为了使发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:图1为本发明的整体框架图;图2为本发明的流程图;图3为本发明实施例中的示意图。
具体实施方式
11.下面结合附图对本发明作进一步的详细说明。
12.如图1和图2所示,本具体实施方式中的一种app的ui和逻辑分离开发框架,包括ui层、ui适配层和业务逻辑层;ui层包括view,view能够获取用户的输入信息,然后将输入信息传递给ui适配层,根据ui适配层提供的数据进行刷新;ui适配层包括view代理和ui逻辑模块,view代理能够从ui层得到用户输入信息,ui逻辑模块能够从业务逻辑层获取数据,调用ui层提供的接口进行界面的刷新;还能够监听ui层的事件,根据不同的事件,调用业务逻辑层提供的相应功能;业务逻辑层包含业务逻辑的实现代码,为ui适配层提供所有数据和逻辑处理。
13.本具体实施方式中,ui层采用hmi开发工具进行开发,hmi开发工具包括unity、kanzi、qt或android。
14.本具体实施方式中,ui适配层得到用户输入信息,将输入信息进行相应的适配处理后,交给ui逻辑模块进行处理;ui逻辑模块根据事件类型,调用业务逻辑层获取数据;数据获取成功后,根据数据进行ui显示逻辑的处理;处理完成后通知view代理进行刷新,view代理根据当前view的实现方式,通知view进行界面刷新。
15.业务逻辑层负责所有业务逻辑的处理,为上层提供数据。
16.ui适配层为本发明的核心,通过接口的方式隔离ui层的差异,使得ui层可替换为不同平台的方案得以实现。
17.ui层可采用不同的hmi开发工具实现。
18.ui层和ui适配层之间通过接口的方式实现了解耦,新增一套ui实现方案,只需要针对该平台做少量适配。
19.如图3所示,在具体实施的时候:service是业务逻辑层提供的服务,提供getdata方法给上层调用。
20.presenter是ui逻辑处理模块,负责从service获取数据,同时通知view进行刷新。presenter不直接持有view,而是可以持有所有实现了iview接口的对象,这样presenter可以和具体的view解耦,达到view可以替换的目的。
21.iview是和presenter通信的接口,定义了一个更新view的方法:updateview。
22.kanziviewdelegate实现了iview接口,通过onevent方法获取从kanziview传来的事件,然后对特定的事件类型进行特定处理。
23.unityviewdelegate实现了iview接口,通过onevent方法获取从unityview传来的事件,然后对特定的事件类型进行特定处理。
24.androidviewdelegate也实现了iview接口,通过onevent方法获取从androidview传来的事件,然后对特定的事件类型进行特定处理。
25.kanziview:kanzi开发工具开发的界面。
26.unityview:unity开发工具开发的界面。
27.androidview:android开发的界面。
28.最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管通过参照本发明的优选实施例已经对本发明进行了描述,但本领域的普通技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。


技术特征:
1.一种app的ui和逻辑分离开发框架,其特征在于:包括ui层、ui适配层和业务逻辑层;ui层包括view,view能够获取用户的输入信息,然后将输入信息传递给ui适配层,根据ui适配层提供的数据进行刷新;ui适配层包括view代理和ui逻辑模块,view代理能够从ui层得到用户输入信息,ui逻辑模块能够从业务逻辑层获取数据,调用ui层提供的接口进行界面的刷新;还能够监听ui层的事件,根据不同的事件,调用业务逻辑层提供的相应功能;业务逻辑层包含业务逻辑的实现代码,为ui适配层提供所有数据和逻辑处理。2.根据权利要求1所述的一种app的ui和逻辑分离开发框架,其特征在于:ui层采用hmi开发工具进行开发,hmi开发工具包括unity、kanzi、qt或android。3.根据权利要求1所述的一种app的ui和逻辑分离开发框架,其特征在于:ui适配层得到用户输入信息,将输入信息进行相应的适配处理后,交给ui逻辑模块进行处理;ui逻辑模块根据事件类型,调用业务逻辑层获取数据;数据获取成功后,根据数据进行ui显示逻辑的处理;处理完成后通知view代理进行刷新,view代理根据当前view的实现方式,通知view进行界面刷新。

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


技术研发人员:詹斌 张英鹏 刘大全 张磊
受保护的技术使用者:重庆长安汽车股份有限公司
技术研发日:2022.04.28
技术公布日:2022/7/21
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献