当前位置:首页 > 嵌入式 > 嵌入式软件

摘 要: 在深入分析Android的系统架构及其应用程序组成的基础上,设计和实现了一款基于Android的智能家居终端。终端主要包括主控制模块、信号处理模块、网络管理模块、媒体流管理模块及信息存取模块等功能模块。较好地融合了Android与智能家居终端,具有较强的实用价值和开发指导意义。
关键词: 智能家居;Android系统;家居安防;可视对讲;智能终端

自2007年Google推出开源手机操作系统Android以来,Android的应用开发一时间风靡全球,各高科技领域应用都在向Android进军。Android的盛行取决于其独特的优势。首先,Android是一款基于Linux内核的开源系统,它具有操作系统、中间件和关键应用程序。对第三方应用开发完全开放、人员具有较大的自由度[1]。其次,Android应用程序的开发采用Java语言,通过应用框架层提供的API,开发简单、周期短。第三,Android具有很强的开放性和灵活性。虽然现在市场上已经出现各种各样的智能家居终端,但Android的出现及其广泛应用,使得很多智能家居厂商正投入很大的人力物力进行研究开发基于Android的智能家居终端。
1 Android系统
1.1 Android架构
Android是一个包括操作系统、中间件和关键应用程序的移动设备软件堆。其作为一个开发式的系统平台,包含了众多的功能和庞大的基于Linux的代码,在用户空间又分为本地代码(C/C++)和Java代码。Android系统可以分为以下各层次:
自底向上依次为Linux操作系统及其驱动层、本地代码框架和Java虚拟机层、Java框架层和Java应用程序层[2]。在各层之间存在相应的分界线接口。如图1所示。

作为开放式的系统,Android提供了丰富的组件和视图控件。大部分的开发只需要调用Android应用框架层提供的API就可以方便地完成,并且在Android的SDK中提供了丰富的实例供参考学习,使得应用开发简单易行。Android各层次的功能如表1所示。

1.2 Android应用程序的组成
一个程序可以调用另外一个程序的程序片段。这是Android程序框架的基本设计理念。例如,在Windows操作系统中,资源管理器可以浏览图片文件,当浏览到这个图片文件时,双击该图片文件,便启动图片浏览软件。Android的程序理念便是如此,所不同的是,在Windows中,打开图片会启动图片浏览软件的全部功能,虽然实际上只是需要查看图片;Android中是把一个程序的功能分为各种不同的程序片段,每个程序片段都能单独启动。
  Android应用程序由Activity、Service、Broadcast Receiver和Content Provider四大组件构成。这四大组件也称为Android的四种类型的程序片段,且每种类型都可以独立运行。
  Activity在四大组件中最复杂。从视觉上看,一个Activity占据当前的窗口,响应所有窗口事件,具有控件、菜单等界面元素,为用户提供一个与界面交互的平台。从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的工作,还需要妥善管理生命周期和一些转跳逻辑。
  Service就是剥离了界面的Activity,都是封装有一个完整的功能逻辑实现,只不过Service不抛头露脸,默默提供后台服务。举例,当用户处理其他问题时,服务可以播放背景音乐,或者可以从网上获取数据、计算、提高,提供给活动所需要的结果。
Broadcast Receiver只能接收广播,一个广播可以有很多广播接收器对它认为重要的通知作出反应。Android系统提供了一个sendBroadcast()方法,Application Framework内部调用该方法发送广播,比如有新短信息、有来电等广播消息,Broadcast Receiver会响应这些系统消息的独立执行单元[4]。
Content Provider提供了一套特殊的可供其他应用使用的数据。这些数据可以存储在文件系统中、SQLite数据库中或者其他有意义的形式。实现了一套标准的允许其他用户检索、储存数据的方法。通过使用ContentProvider的实例,调用它的方法。
Intent是Android中一个特殊的类,组件之间的通讯,由Intent协助完成。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent在这里起着实现调用者与被调用者之间的解耦作用,如图2所示。

2 智能家居终端
2.1 终端主要功能
智能家居终端的主要功能如下[5]:
(1)可视对讲。室内机与门口机进行可视对讲;室内机可以监视门口情况;访客留影;两个或多个室内机进行视频对话。
(2)家居安防。防区设定:对室内和室外安装的监视器进行独立的设定;报警:监视器侦测到异常发出报警;家居安防模式设定:外出、在家、就寝等。
(3)家居控制。灯光控制;窗帘控制;空调控制;电源控制;燃气阀控制;电梯控制。
(4)生活资讯。天气预报;万年历;常用电话;物业服务。
(5)系统管理。常用设置;使用说明;安防设置;家居设置。
系统结构功能如图3所示。


2.2 软件系统架构
 整个软件系统架构分为四个层次,每个层次的功能分别如下:
(1)操作系统层。对下为各种硬件设备提供外围设备驱动,控制硬件工作,如音视频的采集播放设备、各类传感器、摄像头等;对上为库函数提供各种设备的驱动接口,以使得上层可以调用设备。
(2)库和接口层。该主要提供给应用框架层一些基本的类库和接口,包括Android的C/C++库、RTP/RTCP库和多媒体的处理接口。
(3)应用框架层。该层采用模块化开发方法,通过使用其下层的函数库提供的接口,将实现相同或相似功能的封装成为一个模块进而供应用层来开发使用。
(4)应用层。通过与应用框架层提供的模块相互交互、资源分配等,基于Android的四大组件及其他相关视图控件完成界面设计,为用户提供一个可视的界面平台。在该软件架构下,涉及到的功能模块有信号处理模块、网络管理模块、媒体流管理模块以及信息存取模块。
2.3 功能模块的实现
2.3.1 主控制模块
最上层为主控制模块,是系统的主要模块,通过使用Android的各种组件和控件,在应用层实现系统的主要功能。一方面,通过 Android的资源文件如布局、菜单、视图等提供的各种类和方法来完成系统的GUI设计,提供给用户一个统一的图形化接口给用户。另一方面,通过使用应用框架中的信号处理、网络管理、媒体流管理、信息存储等功能模块接口,分别实现门磁控制、家居安防、家居控制、生活资讯、可视对讲及系统管理的功能。在此模块中的门磁控制可以直接控制房门的开关[6]。
所有的功能都聚集在主模块中,这就需要一个合理的布局才能使系统使用起来比较协调。由于每个Activity中包含一个Window,每个Window中包含一个View Group,而每个View Group中包含更多的View和View Group。在主模块中的布局如图4所示。

2.3.3 网络管理模块
网络管理模块主要为生活资讯提供服务。此模块提供服务的分为两种。一种为局域网服务,如物业服务。这里实现起来比较简单,用户根据系统所提供的设备名称向中心管理机报备需要服务的设备。例如:点击某个设备,终端向中心管理机发送一条“智能设备需要服务”指令。物业收到该指令后,会主动联系该用户。另一种为Intenet服务,需要提供各种信息的Web服务,如天气。
2.3.4 媒体流管理模块
媒体流管理模块是为可视对讲提供服务的。在系统中通过调用Android的OpenCORE接口来实现音视频的编解码。OpenCORE是Android多媒体框架的核心,所有Android平台的音频、视频的采集以及播放等操作都是通过它来实现的。它主要包含了两个大方面的内容:
PVPlayer:提供媒体播放器的功能,完成各种音频、视频流的回放功能。
PVAuthor:提供媒体流记录的功能,完成各种音频、视频流以及静态图像的捕获功能。
当门口机需与室内机请求对讲时,室内机只需要对门口机传输过来的音视频进行解码播放,即Android调用MediaPlayer类用来播放音频、视频。
当两个室内机进行视频对讲时,双方机器要同时进行音视频的编码解码。这时就要同时调用MediaPlayer类和MediaRecorder类。MediaRecorder类用来进行媒体采样,包括音频和视频。
2.3.5 信息存取模块
信息存取模块主要为系统管理提供开发接口以实现对系统的管理。如智能家居系统的终端系统管理模块主要提供本机设置、安防设置、家居设置、使用帮助等功能。本机设置包括本机的网络设置、楼栋单元号房间号设置、密码设置等;安防设置可以对室内的各个安防设备进行布防和撤防设置;家居设置则可以调整家用电器的断电或启动时间;使用帮助则是关于本机的使用说明。设置的一般过程为先通过相应的get方法获得要设置的状态,然后通过set方法保存设置。
2.4 模块封装

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭