首页 > 嵌入式软件 > android

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

本文引用地址: http://www.21ic.com/embed/software/android/201811/80506.html

自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 模块封装

换一批

延伸阅读

[行业资讯] 为满足被动原器件国内市场缺口,富满电子拟在天津开展 MLCC 研发制造

为满足被动原器件国内市场缺口,富满电子拟在天津开展 MLCC 研发制造

全球家电市场、PC 市场、5G 市场、智能终端和汽车电子市场等电子制造用量大幅上升,造成被动器件 MLCC 用量需求大幅增加。富满电子拟在天津开展 MLCC 研发制造,满足被动原器件国内市场缺口。 ......

关键字:被动器件 MLCC 智能终端

[行业资讯] 武汉加速!6大项目开工 总投资达64亿元

武汉加速!6大项目开工 总投资达64亿元

7月9日,武汉开发区(汉南区)6大项目开工,总投资达64亿元。 ......

关键字:机器人 智能家居 武汉

[行业资讯] 在路上!我国自主智能终端操作系统日趋成熟

在路上!我国自主智能终端操作系统日趋成熟

长期以来,智能终端操作系统基础软件一直是我国短板领域。随着智能手机的普及,研发自主、可控、成熟的智能终端操作系统成为迫切需求。在国家大力支持和行业的共同努力下,近年来,我国涌现了一批以syberos为代表的自主智能终端操作系统填补空白,自主......

关键字:智能终端 操作系统 芯片

[行业资讯] GPU/FPGA/ASIC 三种芯片有什么不同

GPU/FPGA/ASIC 三种芯片有什么不同

根据赛迪咨询发布报告,2016年全球人工智能市场规模达到293亿美元。我们预计2020年全球人工智能市场规模将达到1200亿美元,复合增长率约为20%。人工智能芯片是人工智能市场中重要一环,根据英伟达,AMD,赛灵思,谷歌等相关公司数据,我......

关键字:芯片 云端 终端

[行业资讯] 没屏幕的智能家居!苹果高管认为是有欠缺的

没屏幕的智能家居!苹果高管认为是有欠缺的

现在许多人家中的客厅都已经摆上了智能扬声器,你可以通过语音命令用它完成打开点灯和关闭空调等操作。 但是,苹果负责全球市场营销的高级副总裁菲尔o席勒(Phil Schiller)......

关键字:智能家居 屏幕

[新鲜事] 康宁“大猩猩玻璃新对手!三星开发出可弯曲“摔不碎”屏幕

康宁“大猩猩玻璃新对手!三星开发出可弯曲“摔不碎”屏幕

北京时间7月26日晚间消息,三星今日宣布,近期研发出一种“不破碎”的柔性显示面板,预计很快用于智能手机和其他消费电子产品中。对于传统的智能手机屏幕,其上面通常被玻璃覆盖,因此容易开裂或破碎。而三......

关键字:三星 康宁 显示屏

[疯狂史] 忆当年硬件开发梦:就俩字,TM青涩!

忆当年硬件开发梦:就俩字,TM青涩!

此文仅献给那些刚刚踏上硬件之路和还在徘徊的同学们,在此我简要的记录了我的学习经历和其间自己所获的一些心得,以帮助初学者少走弯路。......

关键字:硬件开发 硬件学习

[新鲜事] 阿根廷队告别俄罗斯世界杯,罗永浩:梅西巅峰期已过

阿根廷队告别俄罗斯世界杯,罗永浩:梅西巅峰期已过

6月30日晚,俄罗斯世界杯的赛场上上演16强焦点之战,阿根廷对法国。面对拥有身高、年龄、速度等优势,并坚持打高吊、防反的法国队,阿根廷队显得没有什么办法。虽然两次被幸运女神眷顾并一度以2:1领先,但法国队最......

关键字:阿根廷 世界杯
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14