基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx

上传人:b****6 文档编号:18354398 上传时间:2022-12-15 格式:DOCX 页数:40 大小:1.03MB
下载 相关 举报
基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx_第1页
第1页 / 共40页
基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx_第2页
第2页 / 共40页
基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx_第3页
第3页 / 共40页
基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx_第4页
第4页 / 共40页
基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx

《基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。

基于Linux服务器的温度控制系统安卓客户端设计论文Word文档下载推荐.docx

View;

TCP/IP;

Datastore

第一章绪论

1.1引言

近年来,手机的功能日新月异,朝着智能化的方向迅猛发展。

如今的手机,作为人们最常用的工具之一,被附加了除电话通信以后的诸多属性,早已不再是只具备简单功能的便携通讯工具。

随着手机操作系统和硬件技术的更新换代,手机具备了可以媲美PC的强大扩展性,成为了集通讯,多媒体,游戏娱乐等功能于一体的便携式移动终端,同时也成为人们访问互联网的最主要入口之一。

根据相关的数据统计分析,经历了多年法阵的中国智能手机市场,目前的规模已接近5亿部,且Android系统占据了约90%的市场份额。

在强大的市场规模驱动下,智能手机所支持的功能将日益完善。

因此,手机在通信功能以外的附加值将会越来越高,在丰富的应用支持下,智能手机会拥有越来越好的用户体验,人们对智能手机的依赖性也会越来越强。

国内的物联网革命已初露锋芒,智能手机具备多数设备无法具备的便携性,无可厚非地成为革命中的引领者。

市场上越来越多的智能设备接入到互网络,已涌现了大批诸如小米摄像头一类的,可通过网络与手机进行信息交换的智能监控设备。

Android的是目前世界上装机量最大的移动操作系统,在这场革命中的低位更是举足轻重。

1.2背景及意义

自20008年9月Google正式发布Android1.0以来,Android系统在随后的几年内以惊人的速度发展,至今已发布了近二十个版本,成为目前世界上市场占有率最高的移动操作系统。

在Google为Android系统建立的生态系统中,手机制造商、应用软件开发人员、手机用户之间互相依存,共同推进Android系统的迅速演进,使其成为时下最热门的移动操作系统之一。

随着智能设备的兴起,越来越多的消费类电子产品接入互联网,如空调、电视、空气净化器等等,手机逐渐成为各式各样智能设备的监控终端。

温度监控在工业领域,有着轻重的低位,自18世纪工业革命以来,就与工业的发展息息相关。

这类技术发展至今,已经应用到生活的方方面面,成为各种智能家居、硬件设备的重要组成部分,并且随着物联网技术在国内起步,通过手机、PC对物联网设备远程实施温度监控的门槛将大大降低。

不仅如此,并且随着计算机技术的发展,电子产品的集成度将越来越高,成本越来越低,势必会一大批可以连接到互联网的嵌入式硬件设备。

所以,研究Android客户端在远程温控系统中的应用,符合现代社会的发展趋势,且对湿度、光照、视频等其他监控系统具有借鉴意义。

1.3国内外发展现状

Android平台底层采用Linux内核进行硬件资源的调度,致力于开源与开放,允许任何移动设备制造厂商对其进行修改,在世界范围内拥有大批的软硬件厂商以及应用开发人员。

国内外拥有大批的开源爱好者,无数开发人员为开源世界倾注了毕生的心血,开源的Android系统更是受到开发人员的热捧,因此,国内外有Android开发都是最热门的话题。

同时,国内手机消费群体日益增多,且购买力越来越强,使得国内的手机生厂商不断革新自身的技术,推进了Android智能手机的迅速普及。

因此,Android在国内手机市场中,占据着主导地方,拥有广阔的发展空间。

首先是国内的互联网技术发展迅猛,特别是手机网络技术迅猛发展,Android作为目前准入门槛较低的开源系统,拥有十分完善的生态系统,可以预见,Android系统会被更加广泛的应用在移动智能移动上网设备上。

其次,并且随着智能设备的兴起,以及硬件技术的高速发展,越来越多的消费类智能设备可以使用定制化的Android系统,比如当前热门的智能手表,以及智能平板等。

另外,Android系统除了作为智能手机的操作系统,目前也被大量应用在智能家电等产品中,并且Google为了进一步扩大Android的市场版图,发布了适用于手机、手表等多种平台的专用操作系统,这也能在一定程度上扩大Android系统市场占有率。

Google的意图是通过建立一个开放的移动平台,促进创新,给移动设备用户更好的应用程序和体验。

这使得移动设备厂商可以从开源世界获得许多资源来研发自家的设备,并且可以对系统任意进行修改。

针对国内用户,做出定制化的功能,设计更符合国内用户体验的UI,所以各大国产手机厂商都对Android系统怀有浓厚的兴趣,这些厂商的快速成长和大力宣传,也会促进Android在国内的发展。

伴随着传感器技术的不断革新,目前市面上出现了量低成本、小体积的超低功耗传感器。

这类一类传感器,非常适用于嵌入到各式各样的智能设备中。

温湿度传感器,作为检测环境指标最基本的元件,拥有独特的价值,更是成为智能设备领域的宠儿。

温湿度控制系统作为联网的智能设备检测环境的重要组成部分,用于实时监测和调节居住环境的温湿度,达到节能减排和提高居住舒适度的目的。

手机作为最便携的移动联网终端之一,已成为联网智能设备最主要的远程控制工具,未来生活的主旋律必然将是信息的紧密互联,而手机将是连结这个信息的最大的入口。

毫无疑问,Android正在做出这方面的努力,不断升级的功能和用户体验势必会让其成为这个入口中的领导者。

1.4核心问题及研究方向

本论文以Linux服务器以及Android网络编程技术为基础,设计了一款可与远程服务器建立socket通信的Android客户端软件,用于实时的远程监控。

安卓APP作为远程控制端,提供友好的用户交互界面,可靠的网络传输服务,实现对远程服务器的数据访问和下载,并创建数据库,将数据存储在Android设备的本地文件系统中,实现数据的持久化。

主要研究内容集中在Android应用层编程技术,以TCP/IP协议作为基础,实现了Android和Linux服务器的跨平台信息交换,从而实现远程的温度监控。

1.5本设计的工作及其意义

本论文基于Android系统—目前市场占有率最高的移动操作系统,设计了一款Android应用层软件,用于实现与远程服务器建立socket通信。

并以此为基础,实现远程温度监控功能,同时实现了数据的持久化以及友好的用户交互逻辑。

论文的主要内容包括Android应用层软件开发环境的介绍,Android系统架构的介绍,调试工具LogCat的简单使用办法,以及APP的详细开发步骤。

以及本论文主要内容包括5章,主要的研究工作如下:

第1章为绪论,首先介绍了设计研究的背景以及意义,该部分主要内容为安卓平台的国内外发展现状,安卓平台的温度控制系统发展趋势;

接着介绍了本设计要研究的核心问题以及研究方向;

最后概括本论文要做的主要工作。

第2章简单介绍了Android系统架构、应用开发环境、常用日志工具LogCat的使用。

这些知识都是开发Android应用必须了解知识,LogCat更是调试软件的得力助手。

第3章介绍了要达到设计要求,软件的UI部分和代码逻辑部分需要实现的功能。

第4章详细讲解软件各大功能的具体实现方法,其中的活动管理讲解了如何创建一个BaseActivity作为所有活动的父类,以及创建ActivityCollector活动管理类,实现更快捷方便的活动管理,以及以此为基础实现的软件关闭功能;

用户登录、温度监控、查询历史,则分模块介绍了三个主要功能的详细实现过程。

第5章对使用到的关键技术做了详细的介绍,讲解了如何实现数据的持久化,以及如果通过代码和xml文件来实现UI的个性化定制。

第二章设计开发平台的选用

2

2.1总体思路

设计选用开源移动操作系统Android作为开发平台,基于该平台应用层进行软件开发,使用Eclipse搭建IDE(集成开发环境),软件调试采用LogCat打印信息作为最基本的调试办法。

2.2平台系统架构

Android系统平台架构,从高层往低层,大致分为四层架构,五块区域。

分别是应用程序层(应用软件和窗口小部件),应用程序框架层(应用程序设计接口),系统运行库层(包括C/C++库和安卓运行时环境),以及Linux内核层[1]。

系统架构如图2.1所示。

图2.1安卓系统架构

应用程序层包括Google为Android平台预装的软件(比如电话薄,短信等)和普通使用者安装的软件。

应用程序采用JAVA语言开发,通过系统中的应用框架层提供的应用编程接口(API)来调用类库。

此外,也可以通过NDK(NativeDevelopmentKit),在程序中运用C/C++编程语言来调用原生的函数。

系统运行库层为安卓提供了底层支援。

同时,系统运行库层还包括了Android运行时环境。

运行时环境提供了一些核心库,为开发者使用Java语言编写Android应用程序提供了支持。

这个环境包括一个为Android量身定制的虚拟机(上图所示的Dalvik虚拟机),它使得每个应用程序能够运行在独立的进程中,并为应用程序管理它们的生命周期提供支持。

应用程序框架层为开发者提供所有被应用使用到的组件。

这些组件有应用程序管理(安装,执行),窗体管理和图形化界面,事件处理等,开发者可通过该层提供的这些组件构建自己的应用程序[2]。

Linux内核层提供了硬件接口和内存管理、进程管理、电源管理等单元。

这一层为包含了Android设备中各种硬件的底层驱动程序,如显示器,音频,照相机,蓝牙,WIFI,USB等的驱动。

2.3软件开发环境

Android上层应用程序采用Java语言编写,在开发中也常用到Java的标准API,因此搭建Android开发环境首先要安装JDK和配置相关的环境变量。

除了JDK,还需要Google提供的开发工具—AndroidSDK。

AndroidSDK提供了开发应用程序时需要使用的相关API,同时还包含了一个可以运行在PC上的手机模拟器,在应用的开发过程中,可以使用该模拟器来调试和运行自己编写的程序。

除了开发所需的库,还需要一款强大的IDE(集成开发环境)来提高开发效率。

Eclipse作为主流的Java开发工具,同样使用于开发使用Java语言编写的Android应用。

开源的Eclipse拥有丰富的插件支持,其中就有用于支持Android应用开发的ADT。

ADT全称AndroidDevelopmentTools,是Google提供的高度集成Android开发环境的Eclipse插件。

Eclipse安装ADT后,可以联机调试自己的应用程序,并且可以模拟各种手机事件,以及分析应用软件的性能。

ADT无需下载,可以在Eclipse中在线安装。

2.4LogCat调试工具

调试是应用程序开发中必不可少的环节,编程调试中最简单有效的办法就是在输出信息,Java的开发中,常用到System.out.println()来想控制台(Console)输出调试信息,在Android依然可以使用System.out来输出调试信息,只是调试信息不在打印在Console中,而是打印在LogCat。

Android的LogCat(android.util.Log)类是一款强大的日志工具,通过Log.v()、Log.d()、Log.i()、Log.w()、Loge.e()来打印不同级别的调试信息,对应的级别分别是verbose(Android日志中级别最低的一种)、debug、info、warn、error。

第三章软件概要设计

3

3.1界面部分

主要包含以下用户界面:

a)用户登录;

b)服务器IP和端口配置;

c)登录过渡;

d)监控;

e)历史记录;

f)设置。

3.2逻辑部分

负责数据的存储和与服务器建立连接,主要完成以下工作:

a)用户数据存储;

b)网络通信;

c)UI数据刷新;

d)活动管理;

e)退出。

第四章软件详细设计与实现

4.1活动管理

活动启动模式采用Android默认的Standard启动模式,在该模式下,每当启动一个新的活动,它就会在返回中入栈,并且处于栈顶位置。

在应用的运行过程往往会连续的启动多个活动,例如从用户登录界面跳转到监控界面,再由监控界面打开设置界面。

当启动了多个活动以后,栈中就会保存多个活动的,当要退出程序时,就需要多次按手机Back才能退出软件,并且在调试的过程中,并且在调试的过程中不能清楚的了解到每个活动的当前状态。

因此在软件的开发之前,需要设计一些技巧要解决上述问题,从而给后续的开发带来更高的效率。

4.1.1活动状态监控

为了在程序的运行过程中可以方便的知晓当前活动处在生命周期中的哪个状态,更方便的利用声明周期来编写程序,可以建立一个继承自Activity类的BaseActivity类,之后创建的所有活动继承该类。

重写BaseActivity类的onCreate()、onDestroy()、onPause()等方法。

部分代码如下:

publicclassBaseActivityextendsActivity{

……

@Override

protectedvoidonCreate(BundlesavedInstanceState){

//TODOAuto-generatedmethodstub

super.onCreate(savedInstanceState);

Log.d("

BaseActivity"

"

Create:

"

+getClass().getSimpleName());

}

……

}

在onCreate()方法中添加了Log信息,并通过getClass().getSimpleName()取得启动的活动类名。

同理,可以重写onDestroy()等其他方法,添加对应的Log信息。

在创建每个新的活动时,都继承自BaseActivity类,这样就能通过Log信息,准确的判断每个活动的生命周期状态。

4.1.2活动的创建和销毁

为了能够在任何活动界面,更快捷的退出程序,返回主界面,而不是按Home键把程序挂起,可以创建一个专门的集合类来对所有活动的创建和销毁进行管理。

可以新建一个ActivityCollector类作为活动的管理器:

publicclassActivityCollector{

publicstaticList<

Activity>

activities=newArrayList<

();

publicstaticvoidaddActivity(Activityactivity){

activities.add(activity);

publicstaticvoiddeleteActivity(Activityactivity){

activities.remove(activity);

publicstaticvoidfinishAll(){

for(Activityactivity:

activities){

if(!

activity.isFinishing())

activity.finish();

}

创建好该活动管理器后,需要在BaseActivity类的OnCreate()方法中加入代码ActivityCollector.addActivity(this),在OnDestroy()方法中加入ActivityCollector.deleteActivity(this),这样在活动被创建的时候,就会被加入到List中,销毁时便会从List中移除,调用该管理类的finishAll(),便可以将List中的所有活动销毁。

4.1.3活动的启动

启动活动,首先要通过ntent实例,构建出当前的”意图”,然后调用startActivity()或者startActivityForResult()方法来启动活动,同时,可以通过Intent将需要传递的数据传递要启动的活动。

为了更方便启动活动,以及传递参数,可以在上述的Activity类中添加一个方法,例如在继承自BaseAvtivity的LoginActivity类中添加如下方法:

publicstaticvoidactionStart(Contextcontext,Stringdata1,Stringdata2){

Intentintent=newIntent(context,LoginActivity.class);

intent.putExtra("

param1"

data1);

param2"

data2);

context.startActivity(intent);

这样既能简化启动活动的代码,不用每次启动活动都去重复写上述方法中的代码,同时也给在活动之间传递参数带来更便捷和清楚的操作。

若启动某个活动不需要传入参数是,data1和data2可以传递null,需要参数时,便可传入对应的参数,既方便快捷,又增加程序的可读性,极大的方便后续的维护和开发。

4.1.4添加退出按钮

为了更方便快捷的退出程序,增加软件的易用性。

需要重写BaseActivity类中onCreateOptionsMenu方法(该方法为活动创建选项菜单,使用add方法向菜单中加入选项),以及onOptionsItemSelected方法(该方法在用户电机选项菜单后被回调)。

这两个方法继承自Activity父类,通过重写这两个方法,可以为Android中最常用的选项菜单,添加特定的功能,该菜单通过点击menu按键弹出,在这个菜单中添加退出功能,便可在任何界面,点击menu键,选择对应的选项来关闭软件。

publicbooleanonOptionsItemSelected(MenuItemitem){

switch(item.getItemId()){

case1:

ActivityCollector.finishAll();

break;

……

publicbooleanonCreateOptionsMenu(Menumenu){

//Inflatethemenu;

thisaddsitemstotheactionbarifitispresent.

menu.add(0,1,1,"

退出"

);

returntrue;

在BaseActivity.onCreateOptionsMenu方法中添加退出选项,并在BaseActivity.onOptionsItemSelected()实现了该选项的功能,调用ActivityCollector.finishAll()结束所有的活动,从而关闭软件。

如图4-1:

图4-1退出按钮展示

4.2用户登录

登录界面为软件启动的第一个活动,在该活动中,可打开配置界面进行服务器地址和端口号的配置,并将文本框中的用户名和密码发送到远端服务器。

在用户录入正确的信息,并登录后,便可跳转至温度监控界面。

登录界面如图4-1所示。

4.2.1IP和端口配置

首次安装软件进行登录操作之前,需要配置服务器的IP和端口号,可以点击登录界面左下角的配置按钮进行配置。

如图4-2:

图4-2IP和Port配置

配置好正确的服务器地址和端口号以后,可以点击测试连接按钮进行测试,保存修改后,返回登录界面。

测试连接的部分功能代码如下:

classConnectThreadextendsThread{

@Override

publicvoidrun(){

//TODOAuto-generatedmethodstub

super.run();

if(ip.matches("

\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"

)){

//ignore

}else{

updateStatus("

ip地址格式错误"

isConnectFailed=true;

return;

}

if(port<

8000||port>

65535){

端口号不在8000~65535之间"

try{

正在连接服务器"

//创建serversocket对象,并等待连接

s=newSocket();

SocketAddresssocAddress=newInetSocketAddress(ip,port);

s.connect(socAddress,500

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1