《基于ANDROID平台的支持双向通信的设备管理方法.pdf》由会员分享,可在线阅读,更多相关《基于ANDROID平台的支持双向通信的设备管理方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103902389 A (43)申请公布日 2014.07.02 CN 103902389 A (21)申请号 201410080212.5 (22)申请日 2014.03.06 G06F 9/54(2006.01) G06F 9/44(2006.01) (71)申请人 厦门雅迅网络股份有限公司 地址 361000 福建省厦门市软件园产业基地 二期观日路 46 号 (72)发明人 李培明 杨磊 范少卓 李琦 鲁林华 任赋 (74)专利代理机构 厦门市新华专利商标代理有 限公司 35203 代理人 朱凌 (54) 发明名称 基于 android 平台的支持双向通信的设备。
2、管 理方法 (57) 摘要 本发明提供一种基于 android 平台的支持双 向通信的设备管理方法, 包括由所述应用程序层 依次通过设备管理服务层、 管理守护进程、 功能动 态库层以及内核驱动层主动发起调用与设备硬件 进行自上而下通信, 还包括从设备硬件主动通过 内核驱动层、 设备管理守护进程、 设备管理服务层 向应用程序层上报数据信息进行自下而上通信。 本发明大大拓宽了设备管理框架的应用场合, 有 效节约系统资源, 提高系统的稳定性。 (51)Int.Cl. 权利要求书 1 页 说明书 5 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书5。
3、页 附图2页 (10)申请公布号 CN 103902389 A CN 103902389 A 1/1 页 2 1. 一种基于 android 平台的支持双向通信的设备管理方法, 从上至下设置有应用程序 层、 设备管理服务层、 管理守护进程、 功能动态库层、 内核驱动层以及设备硬件, 所述方法包 括由所述应用程序层依次通过设备管理服务层、 管理守护进程、 功能动态库层以及内核驱 动层主动发起调用与设备硬件进行自上而下通信, 其特征在于 : 还包括从设备硬件主动向 应用程序层上报数据信息进行自下而上通信, 即 : 步骤 10、 设备硬件工作过程中主动上报数据或状态信息 ; 步骤 20、 设备内核驱。
4、动层通过与设备硬件的数据通信接口实时获取数据信息, 并通过 netlink 方式将信息上报给管理守护进程 ; 步骤 30、 设备管理守护进程通过 netlink 方式接收设备内核驱动层发送的数据, 并将 接收的数据包通过 LocalSocket 方式原样上报给设备管理服务层 ; 步骤 40、 设备管理服务层通过 LocalSocket 方式从管理守护进程接收数据包并根据数 据类型进行处理 : 步骤 40、 应用程序层通过调用外围设备的 AIDL 接口文件中的接口获取设备的数据信 息, 或者通过广播接收器接收并处理设备管理服务层发出的广播。 2. 根据权利要求 1 所述的基于 android 平。
5、台的支持双向通信的设备管理方法, 其特征 在于 : 所述步骤 20 中, 设备内核驱动层上报给管理守护进程时发送数据包的格式结构为 : ACTIVEDeviceNameDataName#DataType#DataLength#Data, 其中 ACTIVE 表示数据包 是由底层设备硬件主动上报的信息 ; DeviceName 表示设备名称 ; DataName 表示数据名称 ; DataType 表示数据类型, DataLength 表示信息有效数据的长度 ; Data 则表示有效数据。 3. 根据权利要求 2 所述的基于 android 平台的支持双向通信的设备管理方法, 其特征 在于 : 。
6、所述数据类型包括数据信息和信号处理信息, 如果数据包类型为数据信息, 则所述处 理为更新保存信息, 以备应用程序层后续调用 ; 如果数据包类型为信号处理信息, 则所述处 理为将该信号以广播的形式向系统发出。 4. 根据权利要求 1 所述的基于 android 平台的支持双向通信的设备管理方法, 其特 征在于 : 所述设备管理守护进程还通过发送心跳包检测链路机制监测和更新客户端连接情 况。 5. 根据权利要求 1 所述的基于 android 平台的支持双向通信的设备管理方法, 其特征 在于 : 所述外围设备包括车载信号设备、 IC 卡模块以及 PIC 模块 ; 所述设备管理服务层为车载信号设备、。
7、 IC 卡模块以及 PIC 模块各创建一个 AIDL 接口 文件给所述应用程序层调用 ; 所述应用程序层通过绑定接口绑定设备管理服务, 绑定之后即可获得设备管理服务中 车载信号设备、 IC 卡模块、 PIC 模块的 AIDL 接口。 权 利 要 求 书 CN 103902389 A 2 1/5 页 3 基于 android 平台的支持双向通信的设备管理方法 技术领域 0001 本发明涉及一种基于 android 平台的支持双向通信的设备管理方法。 背景技术 0002 Android 平台是一个标准的通用平台, 在车载终端项目中, 我们新增了许多 Android 原生平台所没有的设备, 如 : 。
8、DVD、 音频管理设备等。针对这些设备的控制, 我们 于 2013.09.03 申请的, 申请号为 201310394192.4, 并于 2014-01-01 公开的, 公开号为 103488478A 的中国发明是通过使用 LocalSocket 及 Android 服务的方式, 设计并实现了专 门针对外围设备进行管理的设备管理框架, 将新增的非 Android 原生设备进行统一控制和 管理。 0003 虽然该发明的设备管理框架可以管理多个外围设备模块, 但该框架仅支持由上层 应用程序端主动发起调用, 与底层设备硬件进行通信 (即单向通信) , 却无法支持从底层设 备硬件主动向应用程序上报数据。
9、信息。 无法支持双向通信这一点大大限制了设备管理框架 的应用场合。仅以车载信号采集模块为例, 车载终端系统需要实时采集车上多达数十个车 载信号, 如果不通过设备管理框架进行采集, 则需要另行设计一套涵盖 android 系统各个 软件层次的软件框架, 工作量很大, 同时大大增加了系统后续维护的工作量。 如果使用单向 通信的设备管理框架进行采集, 为了保证车载信号采集的实时有效性, 需要在应用程序中 同时调用几十个采集接口不间断地进行采集, 这不但消耗了大量系统资源, 对设备管理框 架而言亦是不堪重负的负担, 系统的稳定性也将变得极其脆弱。 而实际上, 车载信号的变化 并不频繁, 而且每次变化的。
10、信号只有一两个, 系统实现者只需把变化的车载信号上报即可。 0004 正是基于此, 本技术方案在单向通信的设备管理框架的基础上, 提出并设计实现 了专门针对多媒体车载终端, 基于 android 平台的支持双向通信的设备管理服务框架, 将 系统中所有非 android 原生的外围设备模块进行统一控制和管理。 发明内容 0005 本发明要解决的技术问题, 在于提供一种基于 android 平台的支持双向通信的设 备管理方法, 大大拓宽了设备管理框架的应用场合, 有效节约系统资源, 提高系统的稳定 性。 0006 本发明是这样实现的 : 一种基于 android 平台的支持双向通信的设备管理方法,。
11、 从上至下设置有应用程序层、 设备管理服务层、 管理守护进程、 功能动态库层、 内核驱动层 以及设备硬件, 所述方法包括由所述应用程序层依次通过设备管理服务层、 管理守护进程、 功能动态库层以及内核驱动层主动发起调用与设备硬件进行自上而下通信, 其中 : 还包括 从设备硬件主动向应用程序层上报数据信息进行自下而上通信, 即 : 步骤 10、 设备硬件工作过程中主动上报数据或状态信息 ; 步骤 20、 设备内核驱动层通过与设备硬件的数据通信接口实时获取数据信息, 并通过 netlink 方式将信息上报给管理守护进程 ; 说 明 书 CN 103902389 A 3 2/5 页 4 步骤 30、 。
12、设备管理守护进程通过 netlink 方式接收设备内核驱动层发送的数据, 并将 接收的数据包通过 LocalSocket 方式原样上报给设备管理服务层 ; 步骤 40、 设备管理服务层通过 LocalSocket 方式从管理守护进程接收数据包并根据数 据类型进行处理 : 步骤 40、 应用程序层通过调用外围设备的 AIDL 接口文件中的接口获取设备的数据信 息, 或者通过广播接收器接收并处理设备管理服务层发出的广播。 0007 进一步的, 所述步骤 20 中, 设备内核驱动层上报给管理守护进程时发送数据包的 格式结构为 : ACTIVEDeviceNameDataName#DataType#D。
13、ataLength#Data, 其中 ACTIVE 表示数据包 是由底层设备硬件主动上报的信息 ; DeviceName 表示设备名称 ; DataName 表示数据名称 ; DataType 表示数据类型, DataLength 表示信息有效数据的长度 ; Data 则表示有效数据。 0008 进一步的, 所述数据类型包括数据信息和信号处理信息, 如果数据包类型为数据 信息, 则所述处理为更新保存信息, 以备应用程序层后续调用 ; 如果数据包类型为信号处理 信息, 则所述处理为将该信号以广播的形式向系统发出。 0009 进一步的, 所述设备管理守护进程还通过发送心跳包检测链路机制监测和更新客。
14、 户端连接情况。 0010 进一步的, 所述外围设备包括车载信号设备、 IC 卡模块以及 PIC 模块 ; 所述设备管 理服务层为车载信号设备、 IC 卡模块以及 PIC 模块各创建一个 AIDL 接口文件给所述应用 程序层调用 ; 所述应用程序层通过绑定接口绑定设备管理服务, 绑定之后即可获得设备管 理服务中车载信号设备、 IC 卡模块、 PIC 模块的 AIDL 接口。 0011 本发明具有如下优点 : 本发明方法是基于申请号为 201310394192.4 的中国发明 的进一步完善和优化, 本发明方法不仅具有由应用程序层主动发起调用与设备硬件的自上 而下通信功能, 还具有从设备硬件主动向。
15、应用程序层上报数据信息的自下而上通信功能, 使系统中所有非 android 原生的外围设备模块的管理得到了真正的统一, 大大拓宽了这种 设备管理框架的应用场合, 有效节约系统资源, 使底层和上层的数据互通更为高效, 并提高 了系统的稳定性。 附图说明 0012 下面参照附图结合实施例对本发明作进一步的说明。 0013 图 1 为本发明方法执行流程框图。 0014 图 2 为本发明方法中从底层的设备硬件主动向上层应用程序上报信息的设备管 理框架的逻辑结构示意图。 具体实施方式 0015 如图 1 和图 2 所示, 本发明的基于 android 平台的支持双向通信的设备管理方法, 从上至下设置有应。
16、用程序层、 设备管理服务层、 管理守护进程、 功能动态库层、 内核驱动层 以及设备硬件, 所述方法包括由所述应用程序层依次通过设备管理服务层、 管理守护进程、 功能动态库层以及内核驱动层主动发起调用与设备硬件进行自上而下通信 (如图 1 中左半 部分所示的内容) , 其中 : 还包括从设备硬件主动向应用程序层上报数据信息进行自下而上 说 明 书 CN 103902389 A 4 3/5 页 5 通信 (如图 1 中右半部分所示的内容) , 即 : 步骤 10、 设备硬件工作过程中主动上报数据或状态信息 ; 步骤 20、 设备内核驱动层通过与设备硬件的数据通信接口实时获取数据信息, 并通过 ne。
17、tlink 方式将信息上报给管理守护进程 ; 设备内核驱动层上报给管理守护进程时发送数 据包的格式结构为 : ACTIVEDeviceNameDataName#DataType#DataLength#Data, 其中 ACTIVE 表示数据包 是由底层设备硬件主动上报的信息 ; DeviceName 表示设备名称 ; DataName 表示数据名称 ; DataType 表示数据类型, DataLength 表示信息有效数据的长度 ; Data 则表示有效数据。 0016 步骤 30、 设备管理守护进程通过 netlink 方式接收设备内核驱动层发送的数据, 并将接收的数据包通过 LocalS。
18、ocket 方式原样上报给设备管理服务层 ; 步骤 40、 设备管理服务层通过 LocalSocket 方式从管理守护进程接收数据包并根据数 据类型进行处理 : 其中, 所述数据类型包括数据信息和信号处理信息, 如果数据包类型为数 据信息, 则所述处理为更新保存信息, 以备应用程序层后续调用 ; 如果数据包类型为信号处 理信息, 则所述处理为将该信号以广播的形式向系统发出。 0017 步骤 40、 应用程序层通过调用外围设备的 AIDL 接口文件中的接口获取设备的数 据信息, 或者通过广播接收器接收并处理设备管理服务层发出的广播。 0018 其中, 本发明中所述外围设备包括车载信号设备、 IC。
19、 卡模块以及 PIC 模块 ; 所述设 备管理服务层为车载信号设备、 IC 卡模块以及 PIC 模块各创建一个 AIDL 接口文件给所述 应用程序层调用 ; 所述应用程序层通过绑定接口绑定设备管理服务, 绑定之后即可获得设 备管理服务中车载信号设备、 IC 卡模块、 PIC 模块的 AIDL 接口。 0019 为方便理解本发明, 以下是对所述应用程序层、 设备管理服务层、 管理守护进程、 功能动态库层、 内核驱动层以及设备硬件的功能进行汇总 : 1、 设备硬件 设备模块硬件在工作过程中主动上报数据和状态信息。 0020 2、 设备内核驱动层 设备内核驱动层通过与设备模块硬件的通信接口 (例如I。
20、2C接口等) 从设备硬件获取数 据信息, 并通过 netlink 方式将数据信息发送给设备管理守护进程。 0021 其中, Netlink 是基于 socket 的通信机制, 由于 socket 本身的双共性、 突发性、 不 阻塞特点, 使得 netlink 机制能够很好地满足内核与用户空间小量数据的及时交互。同时, netlink支持多播, 内核模块或应用可以把消息多播给一个netlink组, 属于该neilink 组 的任何内核模块或应用都能接收到该消息。考虑到设备管理框架要求管理多个设备, 即多 个设备内核驱动均需要与守护进程进行交互通信, 设备内核驱动与守护进程的通信机制就 充分利用了。
21、这一特性, 该 netlink 组内任何对某个模块事件感兴趣的内核模块和应用都能 收到并处理该模块发送的事件。 0022 设备内核驱动层通过 netlink 方式主动上报的数据格式为 : ACTIVEDeviceNameDataName#DataType#DataLength#Data, 其中 ACTIVE 表示数据包 是由底层设备硬件主动上报的信息 ; DeviceName 表示设备名称 ; DataName 表示数据名称 ; DataType 表示数据类型, 并用 19 的数字标示, 1 表示数据信息, 需要更新保存在设备管理 服务层, 以备应用程序层后续调用获取, 2 表示信号处理信息,。
22、 只需发出广播即可, 39 预留 说 明 书 CN 103902389 A 5 4/5 页 6 后续使用 ; DataLength 表示信息有效数据的长度 ; Data 则表示有效数据。 0023 3、 设备管理守护进程 设备管理守护进程位于 Android 系统中的 HAL 层 (Hardware Abstract Layer, 即硬件 抽象层) , 介于设备管理服务层和设备内核驱动层之间, 通过 netlink 方式与设备内核驱动 层进行通信, 向上则通过Android LocalSocket与上层设备管理服务层进行数据通信, 起着 信息枢纽的作用。通过对支持从底层设备硬件主动上报信息的设。
23、备管理框架的功能细分, 设备管理守护进程至少需要实现如下功能 : 1) 通过 netlink 方式与设备内核驱动层进行通信, 接收设备内核驱动层发送的数据。 0024 2) 通过LocalSocket与设备管理服务层进行Socket数据通信, 通过发送心跳包检 测链路机制监测和更新客户端连接情况, 将从 netlink 接收的数据包原样发送给设备管理 服务层。 0025 3)能及时接收设备内核驱动层上报的数据, 并稳定地为设备管理服务层提供 socket 服务端, 数据处理及时可靠。 0026 4、 设备管理服务层 设备管理服务层位于 Android 系统中的 Java 框架层, 介于 And。
24、roid 的程序应用层和设 备管理守护进程之间, 向上层应用程序提供 AIDL 调用接口, 与下层设备管理守护进程通过 Socket 通信方式进行数据通信, 作用至关重要。通过对支持从底层设备硬件主动上报信息 的设备管理框架的功能细分, 设备管理服务层至少需要实现如下功能 : 1) 建立和维护与设备管理守护进程之间的数据通信, 确定一套合理规范的上报数据通 信协议。 0027 由于上报信息的内容较为简单, 设备守护进程向设备管理服务层传输的数据包采 用与设备内核驱动通过 netlink 主动上报的数据包一样的格式, 即 : ACTIVEDeviceName DataName#DataType#。
25、DataLength#Data, 其中 ACTIVE 表示数据包是由底层设备硬件主动上 报的信息 ; DeviceName 表示设备名称 ; DataName 表示数据名称 ; DataType 表示数据类型 (19) , 1 表示数据信息, 需要更新保存在设备管理服务层, 以备应用程序层后续调用获取, 2 表示信号处理信息, 只需发出广播即可, 39 预留后续使用 ; DataLength 表示信息有效数据 的长度 ; Data 则表示有效数据。 0028 以收到的数据包 “ACTIVEBUSSIGNALACC_STATE#2#1#0” 为例,“ACTIVE” 表示该 数据包是底层设备硬件主。
26、动上报信息,“BUSSIGNAL” 表示车载信号设备名称,“ACC_STATE” 表示车载 ACC 信号状态,“2” 表示该信息将通过广播处理,“1” 表示信息的有效数据长度为 1 个字节,“0” 表示 ACC 信号状态为 0(即低电平) 状态。 0029 2) 设备管理服务层通过 Android LocalSocket(本质上即为 Socket 套接字) 通信 从设备管理守护进程接收主动上报信息, 并对信息进行处理 : 如果数据包类型为 1, 则保存 或更新信息, 以 AIDL(Android Interface Definition Language, 即 Android 接口描述语 言)。
27、 接口文件的形式提供给应用程序以备需要时调用 ; 如果数据包类型为 2, 则将该信号以 广播的形式向系统发出。 0030 3) 为车载信号、 IC 卡等每个外围设备分别创建 (手动编辑生成) 一个 AIDL 接口文 件给应用程序调用, 注意AIDL文件只是接口声明, 需要在设备管理服务的其他Java源文件 中完成这些 AIDL 接口的代码实现, 即保存和更新设备的数据、 状态等信息。 说 明 书 CN 103902389 A 6 5/5 页 7 0031 4) 数据处理及时, 能稳定地为 Android 应用程序提供服务, 协调应用程序之间的 执行和数据同步。 0032 5、 应用程序 系统应。
28、用程序主要通过以下两种方式使用设备管理框架提供的功能 : 1) 系统应用程序发起对设备管理框架接口的调用。 0033 Android 应用程序通过绑定接口绑定设备管理服务层, 绑定之后即可获得设备管 理服务层中车载信号、 IC 卡模块、 PIC 模块等外围设备的 AIDL 接口, 这些接口就是车载信 号、 IC 卡模块、 PIC 模块等外围设备对应用程序层提供的功能。 0034 2) 应用程序层接收并处理广播消息。 0035 Android 应用程序层需要注册广播接收器, 并定义需要接收处理的具体广播。 0036 综上所述, 本发明方法是基于申请号为 201310394192.4 的中国发明的。
29、进一步完 善和优化, 本发明方法不仅具有由应用程序层主动发起调用与设备硬件的自上而下通信功 能, 还具有从设备硬件主动向应用程序层上报数据信息的自下而上通信功能, 使系统中所 有非 android 原生的外围设备模块的管理得到了真正的统一, 大大拓宽了这种设备管理框 架的应用场合, 有效节约系统资源, 使底层和上层的数据互通更为高效, 并提高了系统的稳 定性。 0037 虽然以上描述了本发明的具体实施方式, 但是熟悉本技术领域的技术人员应当理 解, 我们所描述的具体的实施例只是说明性的, 而不是用于对本发明的范围的限定, 熟悉本 领域的技术人员在依照本发明的精神所作的等效的修饰以及变化, 都应当涵盖在本发明的 权利要求所保护的范围内。 说 明 书 CN 103902389 A 7 1/2 页 8 图 1 说 明 书 附 图 CN 103902389 A 8 2/2 页 9 图 2 说 明 书 附 图 CN 103902389 A 9 。