设备管理论文

您当前的位置:学术堂 > 管理学论文 > 设备管理论文 >

基于安卓车载终端平台的设备管理框架构建

来源:学术堂 作者:朱老师
发布于:2016-09-24 共4781字
  摘要

         近几年来,随着移动互联网时代的到来,Android操作系统已经从最初的智能手机领域逐渐进入教育、医疗、军事、汽车、家居等重要领域,并已经成为移动平台领域当之无愧的王者。 2011年1月至3月,Android占领了全球大部分的手机市场,市场份额首次超过了塞班系统上升到全球第一[1];2012年第一季度数据显示,Android占领了中国68.4%的智能手机操作系统市场,在全球市场占有率为52.5%[2]. Android在 国内的发展不仅仅局限于作为智能手机操作系统,现在已经开始向作为其他移动终端操作系统的方向发展,例如移动互联网设备、数字机顶盒、车载移动终端等领域。
  
  Android平 台是一个标准的通用平台,而在多媒体车载终端项目中增加了许多Android原生系统中没有的设备,例如DVD、GPIO、音频管理设备等。针对这些设备的控制,在Android原 生 系 统 中 最 常 用 的 做 法 就 是 使 用JNI方 式 进 行控 制。
  
  JNI是Java Native Interface的缩写,即“Java本地接口”.在Android系统代码层次结构中,JNI处于Java代码层与C/C++本地代码层之间的位置。在Android系统中提供JNI机制,使得在Java虚拟机内部运行的Java代码能够调用C/C++本地层的应用程序和库,从而将Java代码和C/C++本地层代码紧密联系在一起[3].但 是,在Android车 载终端平台上使用常规JNI方式进行设备管理的缺点在于:
  
  使 用JNI方 式 进 行 应 用 程 序 开 发 需 要 同 时 实 现Java、JNI、C/C++ 3个层次的代码,开发工作量大,开发难度也较大;应用程序如果要移植到其它平台上,C/C++本地层代码需要重新编写,移植的工作量较大;从逻辑结构方面考虑,一个JNI动 态库一般只适合管理一个外围设备,随着外围设备的不断增加,难以对这些设备进行统一管理;而且系统使用过程中存在多个应用程序同时访问一个设备的可能,易造成设备访问不可控,系统稳定性差。此外,Java虚拟机为Java代码提供了完善的安全机制使得Java代码不会导致程序崩溃、滥用数据等,而一旦使用了JNI机制,这种安全机制就无能为力了[4].
  
  可见,在包含较多非Android原始设备的Android车载终端平台上,对这些设备进行统一管理变得非常重要。为了实现 对 这 些 设 备 的 统 一 管 理,本 文 提 出 并 设 计 了 一 种 基 于Android Local Socket 和 Service 的方式,实现专门针对 Android车载终端平台的设备管理框架。该框架能够实现对系统中非Android 原生的众多设备进行统一控制和管理。
  
  1 设备管理框架的逻辑结构图
  
  基于 Android 车 载终 端 平 台 的 设 备 管 理 框 架 的 逻 辑 结构,如图 1 所示。
  
  设备管理框架的逻辑结构图
  
  设备管理框架包括下述层次:应用程序、设备管理服务、守护进程、设备功能动态库、内核设备驱动,以及设备硬件。
  
  2 设备管理框架的实现原理
  
  按照从上到下的调用层次关系,整个设备管理框架的设计实现原理如下。
  
  2.1 应 用程序层
  
  系统中对设备管理框架的调用操作均由应用程序发起。Android 应 用程序通过服务绑定接口绑定设备管理服务,绑定之后应用程序可获得设备管理服务中的 DVD、GPIO、音频管 理 等 所 有 设 备 的 AIDL(Android Interface DefinitionLanguage, 即 Android 接 口描述语言)接口。这些接口就是DVD、GPIO、 音 频 管 理 等 所 有 设 备,通 过 设 备 管 理 服 务 的AIDL 接 口提供给应用程序调用的功能接口。
  
  2.2 设备管理服务层
  
  设备管理服务位于 Android 系统中的 Java 框架层,介于Android 应 用 程 序 和 设 备 管 理 守 护 进 程 之 间,并 通 过 提 供AIDL 接 口为应用程序提供接口调用。设备管理服务向上层应用程序提供 AIDL 调用接口,与下层的设备管理守护进程通过 Socket 通信方式进行数据通信,作用至关重要。通过对整个设备管理框架的功能划分,设备管理服务需要实现如下功能:
  
  1)设 备管理服务感知应用程序的调用操作,并将应用程序 的 调 用 转 化 为 命 令 格 式,并 将 这 个 命 令 通 过 AndroidLocal Socket(本 质上即为 Socket 套 接字)通信传送给设备管理守护进程进行处理。
  
  2)建 立和维护与设备管理守护进程之间的数据通信,确定一套合理规范的通信协议。由于传输命令的内容较为简单,设备管理服务向设备管理守护进程传输的命令格式定义为:“Device Name @ Function # parameter1 # parameter2 # …#parameter N”,其中“Device Name” 表 示设备名称,“Function” 表示 功 能 接 口 名 称,“parameter1#parameter2#…#parameter N”则表 示 传 递 的 参 数,参 数 之 间 使 用 符 号 '#' 分 隔。以 命 令“GPIO@GPIO_UP#fmpowon” 为 例,其 中“GPIO” 表 示 设 备 名称,“GPIO_UP”表示功能接口名称,“fmpowon”表示功能接口的参数。
  
  3) 为 DVD、GPIO、 音 频 管 理等 每 个 设备 各 创 建(即 手 动编辑生成)一个 AIDL 接口文件,以供应用程序调用。这里的AIDL 文 件只是接口声明,需要在设备管理服务的其它 Java文件中完成这些 AIDL 接口的代码实现,实现的主要内容是生成命令格式并向守护进程发送该命令。
  
  由于设备管理服务对应用程序提供了设备管理框架内管理的所有设备的功能接口,设备管理服务的主要功能之一就是生成命令格式,命令格式中的“Device Name”字段即包含了要调用的外围设备模块,设备管理服务通过这个字段就可以将 AIDL 接口与外围设备联系起来。
  
  4) 能 稳定地为 Android 应 用程序提供服务,数据处理及时,协调应用程序之间的执行和数据同步。
  
  
相关内容推荐
相关标签:
返回:设备管理论文