一种应用于地图开发的组件化系统、实现方法及存储介质技术方案

技术编号:33891744 阅读:15 留言:0更新日期:2022-06-22 17:27
本发明专利技术公开了一种应用于地图开发的组件化系统、实现方法及存储介质,包括,Service组件,集成有图商提供的SDK,用于提供SDK服务;HMI组件,与用户交互,用于地图的展示和供用户操作;AIDL接口组件,用于提供Service组件与HMI组件通信的跨进程接口。本发明专利技术将地图SDK和上层HMI应用开发完全剥离开,使得HMI应用和地图SDK服务可以独立开发,完成后,地图应用APP将由HMI应用和SDK服务组成,二者之间单独运行在各自的进程中;由AIDL接口实现进程间通信。通过将功能接口和底图都通过服务的方式提供给上层HMI开发,实现整个地图应用开发的组件化,在后期地图维护和车型适配中降低相应的开发成本。发成本。发成本。

【技术实现步骤摘要】
一种应用于地图开发的组件化系统、实现方法及存储介质


[0001]本专利技术属于车载应用中地图开发
,更具体涉及一种应用于地图开发的组件化系统、实现方法及存储介质。

技术介绍

[0002]目前基于安卓系统的车载导航应用,主要是基于不同地图厂商的SDK(software development kit 软件开发工具包)进行差异化定制。导航应用通常前台页面所需要的的功能本身其实是基本固定的,但是不同车型往往需要不同的HMI(human machine interface 人机交互界面)展示。地图SDK通常会提供所需要的功能接口和底图图层。
[0003]通常地图SDK主图(用来显示地图道路、水系、建筑等基本元素)是以自定义VIEW的方式提供。导航相关能力如搜索、算路、引导等是以API的方式集成在SDK中。在实际开发中,通常需要在项目直接引用SDK作为依赖库。此时导航应用与SDK产生强依赖。如果需要更新或者更换SDK、或者为其他车型平台开发应用,都需要可能带来应用的再次开发,提高了开发和维护成本。

技术实现思路

[0004]为解决上述问题,本专利技术提供了一种应用于地图开发的组件化系统、实现方法及存储介质,解决了现有车载导航应用开发和维护难度大、成本高的问题。
[0005]为了解决上述技术问题,本专利技术采用的技术方案是这样的:一种应用于地图开发的组件化系统,包括,Service组件,集成有图商提供的SDK,用于提供SDK服务;HMI组件,与用户交互,用于地图的展示和供用户操作;AIDL接口组件,用于提供Service组件与HMI组件通信的跨进程接口。
[0006]基于上述系统,本专利技术还提供了一种应用于地图开发的组件化实现方法,包括以下步骤,S1、建立如权利要求1所述的Service组件和HMI组件;S2、将图商提供的SDK集成到Service组件中;S3、建立AIDL接口组件,实现Service组件和HMI组件之间的通信,HMI组件通过AIDL接口组件调用Service组件中的服务,并向用户展示和供用户操作。
[0007]作为优化,所述AIDL组件的建立,包括以下步骤,S301、在Service组件中,建立一个AIDL文件,用于约束跨进程接口名称和参数;S302、在Service组件中建立java类实现所述跨进程接口,同时建立一个Service类用于通过binder的方式实现进程间的通信;S303、在HMI组件中,建立与Service组件中的AIDL文件同样包名和文件名的AIDL文件,并通过binder方式与Service组件建立通信连接。
[0008]作为优化,所述跨进程接口包括核心接口和功能接口;所述核心接口包括主图初
始化接口,参数为Surface;事件监听接口,参数为相关事件的回调函数;所述功能接口包括搜索和/或导航和/或设置。
[0009]作为优化,HMI组件通过AIDL接口组件调用Service组件中的服务,包括获取主图和对主图进行操作,其中,所述获取主图包括在HMI组件中定义一个SurfaceView作为主图的载体,将SurfaceView所持有的Surface通过AIDL接口组件传到Service组件中,由Service组件在传入的Surface上完成主图绘制,并向用户展示和供用户操作;所述对主图进行操作,包括HMI 组件通过AIDL提供的事件注册接口将接口回调Service组件中进行注册,完成注册后,用户在HMI上的操作调用Service组件中提供的服务,并将调用结果通过HMI组件展示给用户。
[0010]基于上述方法,本专利技术还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序被处理器运行时,执行所述的应用于地图开发的组件化实现方法的步骤。
[0011]与现有技术相比,本专利技术具有如下优点:本专利技术通过MAP SDK和HMI分别单独进行开发,其中功能通过安卓提供的进程间通信方式(AIDL)方式进行。在HMI进行布局页面开发时使用SurfaceView作为地图主图的承载体,业务图层通过帧布局(FrameLayout)的方式动态加载。HMI层通过AIDL接口将SurfaceView所持有的Surface传递到MAP SDK中,并调用图商提供的初始化接口在传入的Surface上绘制相关地图的主图。另外对于主图的操作(如点击、双指缩放、拖动等),通过AIDL接口将接口回调MAP SDK中进行注册。由此实现主图跨进程显示和事件响应。对于其他业务操作,HMI层直接调用AIDL接口,并根据返回的结果数据,在页面展示。
[0012]本专利技术将地图SDK和上层HMI应用开发完全剥离开,使得HMI应用和地图SDK服务可以独立开发,完成后,地图应用APP将由HMI应用和SDK服务组成,二者之间单独运行在各自的进程中;由AIDL接口实现进程间通信。通过将功能接口和底图都通过服务的方式提供给上层HMI开发,实现整个地图应用开发的组件化,在后期地图维护和车型适配中降低相应的开发成本。
附图说明
[0013]图1为本专利技术的整体架构设计图;图2为本专利技术的整体设计图;图3为本专利技术的基础时序图。
具体实施方式
[0014]下面将结合附图及实施例对本专利技术作进一步说明。
[0015]实施例:参见图1

图3,一种应用于地图开发的组件化系统,如图2所示,包括,Service组件,集成有图商提供的SDK,用于提供SDK服务;HMI组件,与用户交互,用于地图的展示和供用户操作;AIDL接口组件,用于提供Service组件与HMI组件通信的跨进程接口。
[0016]基于上述系统,本专利技术还提供了一种应用于地图开发的组件化实现方法,包括以
下步骤,S1、建立如权利要求1所述的Service组件和HMI组件;S2、将图商提供的SDK集成到Service组件中;S3、建立AIDL接口组件,实现Service组件和HMI组件之间的通信,HMI组件通过AIDL接口组件调用Service组件中的服务,并向用户展示和供用户操作。所述AIDL组件的建立,包括以下步骤,S301、在Service组件中,建立一个AIDL文件,用于约束跨进程接口名称和参数;S302、在Service组件中建立java类实现所述跨进程接口,同时建立一个Service类用于通过binder的方式实现进程间的通信;所述跨进程接口包括核心接口和功能接口;所述核心接口包括主图初始化接口,参数为Surface;事件注册接口,参数为相关事件的回调函数;所述功能接口包括搜索和/或导航和/或设置等。
[0017]S303、在HMI组件中,建立与Service组件中的AIDL文件同样包名和文件名的AIDL文件,并通过binder方式与Service组件建立通信连接。
[0018]HMI组件通过AIDL接口组件调用Service组件中的服务,包括获取主图和对主图进行操作,其中,所述获取主图包括在HMI组件中定义一个SurfaceView作为主图的载体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于地图开发的组件化系统,其特征在于,包括,Service组件,集成有图商提供的SDK,用于提供SDK服务;HMI组件,与用户交互,用于地图的展示和供用户操作;AIDL接口组件,用于提供Service组件与HMI组件通信的跨进程接口。2.一种应用于地图开发的组件化实现方法,其特征在于,包括以下步骤,S1、建立如权利要求1所述的Service组件和HMI组件;S2、将图商提供的SDK集成到Service组件中;S3、建立AIDL接口组件,实现Service组件和HMI组件之间的通信,HMI组件通过AIDL接口组件调用Service组件中的服务,并向用户展示和供用户操作。3.根据权利要求2所述的一种应用于地图开发的组件化实现方法,其特征在于,所述AIDL组件的建立,包括以下步骤,S301、在Service组件中,建立一个AIDL文件,用于约束跨进程接口名称和参数;S302、在Service组件中建立java类实现所述跨进程接口,同时建立一个Service类用于通过binder的方式实现进程间的通信;S303、在HMI组件中,建立与Service组件中的AIDL文件同样包名和文件名的AIDL文件,并通过binder方式与Service组件建立通信连...

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

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

1