本发明涉及终端应用硬件模块应用开发技术领域,特别是涉及一种android系统终端设备一套驱动sdk支持应用跨平台开发的方法及介质。
背景技术:
使用android系统作为操作系统的自助终端设备,具备智能化、更便捷、高效率、低成本、稳定性强不易出错等优点。但是在不断的发展过程中,也暴露一些问题,尤其体现在在以下两个问题,一是android系统支持多种平台开发,如javascript、kotlin、c/c 、c#、html等,在设备应用开发过程导致一个驱动sdk无法满足多平台应用兼容的需求;二是因为各个硬件模块制造商、固件型号不同也存在着需要更换模块厂家或型号是产生的驱动变更导致应用需要进行同步升级,这样就导致设备应用无法很好的满足多平台和多版本兼容问题。
现有的各设备厂家提供的处理方案都只能处理上述两个问题中的一个,无法很好的实现android系统下多平台应用开发与不同型号模块兼容的问题。
技术实现要素:
本发明主要解决的技术问题是提供一种支持应用跨平台开发的方法及介质,能够解决平台兼容问题,实现终端应用可自由选择开发平台,并可以使用一套sdk实现对不同模块厂家、不同型号模块的完美兼容。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种支持应用跨平台开发的方法,包括:
s100、建立中间件与服务端的连接,定义模块插件接口,管理模块驱动插件,定义中间件通讯协议,建立中间件通讯线程,中间件管理通讯报文;
s200、终端通过客户端向中间件发送指令;
s300、中间件根据指令调用接口;
s400、模块插件将指令执行接口返回中间件;
s500、中间件将执行结果返回给终端。
进一步,所述步骤s100中定义模块插件接口包括对相同类型模块定义统一接口,对不同类型模块进行统一接口开发模块驱动插件。
进一步,所述步骤s100中管理模块驱动插件包括将已开发完成的模块驱动插件进行加载,并根据所需要的模块配置内容管理模块驱动插件;将各模块驱动插件拷贝进入终端设备上指定的模块驱动安装目录下,并在终端设备上安装上中间件软件。
进一步,所述步骤s100中管理通讯报文包括接收应用发送的通讯报文,解析后,调用指定类型的模块驱动插件,在操作执行完成后通过建立的中间件通讯线程向应用返回数据。
进一步,所述步骤s200具体包括:根据建立中间件与服务端的连接,通过定义的中间件通讯协议向中间件发送指令;中间件将指令进行解析,获取终端需要调用的硬件模块的指定接口。
进一步,所述步骤s300具体包括:中间件根据指令解析出需要调用的模块类型,针对该模块类型加载设备上对应的模块插件并获取模块插件,再通过定义好的模块插件接口调用模块对应的动作指令,完成中间件与模块插件之间的连通和调用,模块插件执行中间件调用的指令后。
进一步,所述步骤s400具体包括:当模块插件执行完中间件调用的指令动作后,模块插件将执行结果返回给中间件,中间件会将执行结果根据中间件通讯协议,将模块执行结果进行组装。
一种支持应用跨平台开发的介质,用于储存为上述支持应用跨平台开发的方法所用的计算机软件指令,其包含用于执行上述为支持应用跨平台开发的方法所设计的程序。
本发明的有益效果是:本发明适用于银行、证券、保险、通讯、电力等行业的自助服务、收费系统等项目的自助终端设备,能够实现终端应用可自由选择开发平台,并可以使用一套sdk实现对不同模块厂家、不同型号模块的完美兼容。
附图说明
图1是本发明一种支持应用跨平台开发的方法的流程图;
图2是所示一种支持应用跨平台开发的方法执行时的流程图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
本发明实施例包括:
一种支持应用跨平台开发的方法,通过使用android原生开发,利用websocket通讯连接的方式与android插件管理的技术,开发出一套中间件与插件的驱动体系,达到一套驱动sdk支持应用跨平台开发的方法,所述方法包括:
定义模块插件接口,对相同类型模块定义统一接口,对不同类型模块进行统一接口开发模块驱动插件;
管理模块插件加载,将已开发完成的模块驱动插件进行加载,并根据所需要的模块配置内容管理模块驱动插件;
定义通讯协议,即应用与中间件通讯的协议;
创建通讯,创建应用与中间件通讯的websocket线程,用于数据传送;
管理通讯报文,接收应用发送的通讯报文,解析后,调用指定类型的模块驱动插件,在操作执行完成后通过websocket线程向应用返回数据。
见图1,本发明具体包括如下的步骤:
步骤s101、终端应用通过websocket客户端向中间件服务端端发送请求;在发起的对应模块动作的指令请求时,需要先根据事先建立与中间件之间的websocket服务端的连接,通过定义好的用于应用与中间件的websocket通讯协议向中间件websocket服务端发送指令。之后需要中间件根据接收到的指令内容进行解析,获取终端应用需要调用的指定硬件模块的指定接口。
步骤s102、中间件对调用指定硬件模块的指定接口;当终端应用发起对应模块动作的指令请求后,中间件内部首先解析出需要调用的模块类型,之后会针对该模块类型加载设备上对应的模块插件并获取模块插件类,再通过该模块事先定义好的模块插件化接口调用模块对应的动作指令,完成中间件与模块插件之间的连通和调用。之后模块插件在执行完中间件调用的指令接口后,将执行结果返回。
步骤s103、模块插件将指令执行接口返回给中间件进行处理;当模块插件执行完中间件调用的指令动作后,模块插件会将执行结果返回给中间件,之后中间件会将执行的结果根据事先定义好的应用与中间件的websocket通讯协议的返回内容,将模块执行结果进行websocket通讯协议的组装。
步骤s104、中间件的websocket服务端将执行结果返回给终端应用的客户端;当中间件接收到指定模块的指定接口返回的执行结果后,会根据通讯协议的内容,通过websocket服务端将执行结果发送给终端应用的websocket客户端,完成本次硬件模块的指定接口的调用过程。
参考图2,本发明执行时,包括如下步骤:
步骤v101、中间件服务开启与模块插件加载;在中间件服务开启与模块插件加载时,需要先建立一个中间件服务并确保该中间件服务会随终端设备启动而率先启动而且不会出现服务崩溃的问题。在服务开启成功之后,需要根据终端设备的需要加载事先配置好的配置文件,这里以driverconfig.xml文件为例,需要配置好模块插件的插件名称、模块类型、模块连接端口信息、模块逻辑服务名、模块基础参数等。在根据已经配置好的内容,在设备本地存储下找到对应的模块插件文件进行加载。之后再模块加载成功后,再开启中间件需要的websocket服务端线程,用来接收终端应用的客户端发送的指令请求,并根据指令内容调用对应的模块设备层。
步骤v102、中间件通过设备层获取对应的模块插件类;当中间件websocket服务接收到指令请求后,中间件会跟具指令内容调取对应的设备层,并由设备层根据指令中指定的接口命令去调用对应的模块插件类的对应接口(既driver层接口)。
步骤v103、当模块插件驱动driver层接口被设备层调用后,模块插件根据所被调用的接口指令执行指定的动作,并将执行结果通过接口返回或者回调的方式反馈给设备层进行处理。
步骤v104、模块插件将指令执行结果反馈给中间件服务层;当模块插件驱动层执行完成指令动作后,会通过设备层将执行结果最终反馈给中间的websocket服务线程,之后交由websocket服务将指令执行结果进行处理后返回给终端应用客户端。
步骤v105:中间件服务端将执行结果返回给终端应用的客户端;当中间件的websocket服务接收到驱动层和设备层返回的执行结果后,根据通讯协议的内容,通过websocket服务端将执行结果发送给终端应用的websocket客户端,完成本次硬件模块的指定接口的调用过程。
基于与前述实施例中实现方法同样的发明构思,本说明书实施例还提供一种支持应用跨平台开发的介质,用于储存为上述支持应用跨平台开发的方法所用的计算机软件指令,其包含用于执行上述为支持应用跨平台开发的方法所设计的程序。
本发明包括中间件软件、中间件websocket服务端开发sdk、终端设备各模块驱动插件。首先将各模块驱动插件拷贝进入终端设备上指定的模块驱动安装目录下,并在终端设备上安装上中间件软件,然后终端应用可以根据中间件websocket通讯协议开启websocket客户端向中间件发送指令的方式实现对终端设备上各模块的调用;或者通过引入sdk,根据中间件sdk接口文档,通过调用sdk中对应的接口实现对终端设备上各模块的调用。本发明适用于银行、证券、保险、通讯、电力等行业的自助服务、收费系统等项目的自助终端设备,能够实现终端应用可自由选择开发平台,并可以使用一套sdk实现对不同模块厂家、不同型号模块的完美兼容。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
1.一种支持应用跨平台开发的方法,其特征在于,包括:
s100、建立中间件与服务端的连接,定义模块插件接口,管理模块驱动插件,定义中间件通讯协议,建立中间件通讯线程,中间件管理通讯报文;
s200、终端通过客户端向中间件发送指令;
s300、中间件根据指令调用接口;
s400、模块插件将指令执行接口返回中间件;
s500、中间件将执行结果返回给终端。
2.根据权利要求1所述的一种支持应用跨平台开发的方法,其特征在于:所述步骤s100中定义模块插件接口包括对相同类型模块定义统一接口,对不同类型模块进行统一接口开发模块驱动插件。
3.根据权利要求2所述的一种支持应用跨平台开发的方法,其特征在于:所述步骤s100中管理模块驱动插件包括将已开发完成的模块驱动插件进行加载,并根据所需要的模块配置内容管理模块驱动插件;将各模块驱动插件拷贝进入终端设备上指定的模块驱动安装目录下,并在终端设备上安装上中间件软件。
4.根据权利要求3所述的一种支持应用跨平台开发的方法,其特征在于:所述步骤s100中管理通讯报文包括接收应用发送的通讯报文,解析后,调用指定类型的模块驱动插件,在操作执行完成后通过建立的中间件通讯线程向应用返回数据。
5.根据权利要求1所述的一种支持应用跨平台开发的方法,其特征在于:所述步骤s200具体包括:根据建立中间件与服务端的连接,通过定义的中间件通讯协议向中间件发送指令;中间件将指令进行解析,获取终端需要调用的硬件模块的指定接口。
6.根据权利要求1所述的一种支持应用跨平台开发的方法,其特征在于:所述步骤s300具体包括:中间件根据指令解析出需要调用的模块类型,针对该模块类型加载设备上对应的模块插件并获取模块插件,再通过定义好的模块插件接口调用模块对应的动作指令,完成中间件与模块插件之间的连通和调用,模块插件执行中间件调用的指令后。
7.根据权利要求1所述的一种支持应用跨平台开发的方法,其特征在于:所述步骤s400具体包括:当模块插件执行完中间件调用的指令动作后,模块插件将执行结果返回给中间件,中间件会将执行结果根据中间件通讯协议,将模块执行结果进行组装。
8.一种支持应用跨平台开发的介质,其特征在于,用于储存为上述权利要求1-7中任一项所述支持应用跨平台开发的方法所用的计算机软件指令,其包含用于执行上述为支持应用跨平台开发的方法所设计的程序。
技术总结