物联网技术入门——系列文章3

手机APP已经成为物联网用户终端最主要的形式,这次写博客主要是通过编写温度监测的应用程序这个例子,简单介绍一下Android APP开发的入门知识。

物联网技术入门——系列文章1
物联网技术入门——系列文章2

1.Andriod开发环境搭建

Andriod开发环境搭建过程如下:首先是JDK的安装。JDK作为java语言的开发工具包,是开发和运行java程序的基本前提。在安装完成后,打开cmd窗口,输入java-version检查JDK安装是否成功。其次是eclipse的安装。eclipse是一个开放源代码的、基于Java的可扩展开发平台。在安装完eclipse之后,需要在环境变量里设置PATH变量的值,添加JDK的bin目录的路径,否则elipse不能启动。操作步骤为:在计算机的属性中找到高级系统设置,打开环境变量,在系统变量中新建。然后是ADT的安装。将A/DT-15.0.0.zip复制到eclipse文件夹下,点击eclipse.exe,进入菜单中的“Help”->“Install New Software”。安装ADT。最后是Andriod SDK安装。解压Andriod-sdk-windows_rar到当前文件,进入菜单中的“windows”->“Preferences”,后创建AVD。在完成对开发平台及各开发工具包的安装后,通过import导入工程将编写好的整个Andriod源码导入eclipse,再对程序进行编译和运行。启动AVD,将andriod apk文件安装到Andriod设备上,搭建好的开发环境如下图。

物联网技术入门——系列文章3_第1张图片

2.Android 工程文件介绍

一个Android工程最重要的两个目录是src、res。

物联网技术入门——系列文章3_第2张图片

src目录中放置源文件,我们编应用程序时主要在这个目录下写代码。本程序主要包括三个Activity:Application应用程序、MainActivity通信连接程序、RtchatsActivity温度监测程序其中,应用程序部分主要将套接字socket定义为全局变量,使其在整个应用程序运行的过程中都起作用。通信连接程序部分,客户端的socket通过描述它要连接的服务器的IP地址和使用的端口号,通过服务器端的响应,从而完成客户端socket与服务器socket的连接。温度监测程序主要分为两个线程:主线程与子线程,主线程与子线程通过对定时器操作完成数据的接收及刷新显示。

res目录中放置的是应用的资源文件,其中layout目录中放置用到的布局文件,在设计应用程序的UI时在此目录下。例如我设计的这个程序就有两个UI,其中activity_main.xml用于网络连接的界面布局设计,rtchat.xml用于温度监测界面布局设计。

物联网技术入门——系列文章3_第3张图片

物联网技术入门——系列文章3_第4张图片

3.应用程序的设计逻辑

对于终端请求连接程序,在application应用程序中将socket定义为全局变量后,建立socket连接,由客户端的套接字提出连接请求,通过socket描述它要连接服务器套接字,指出服务器端的地址和端口号,当服务器端套接字监听到或接收到客户端套接字的连接请求时,它就响应客户端套接字请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。对于监测显示界面操作而言:先输入目的IP和端口号,点击连接,在连接成功后,点击实时温度监测,进入温度监测界面。

温度监测的Activity包括两个线程,主线程负责图形绘制,子线程负责请求温度数值。之所以使用两个线程,是为了避免在数据通信的过程中出现阻塞问题,导致软件卡死。

主线程软件工作流程:首先通过create()函数进入主界面,完成温度采集初始化的任务,随后创建socket数据收发的子线程,创建并启动定时器New Timer,程序设定创建的定时器每300ms进入定时器Handle处理函数,启动子线程,在子线程中完成数据的接收过程,并返回消息给主线程,当主线程判断子线程数据接收完毕后,刷新当前的温度及温度监测曲线,继续等待定时器时间消息。若数据接收未完成,主线程继续等待自子线程数据接收完毕。

物联网技术入门——系列文章3_第5张图片

子线程软件工作流程:首先客户端通过子线程入口,向服务器发送温度数据请求gettemperature(),随后子线程中接收到服务器端发送的温度数据,数据接收完毕后,由子线程向主线程发送数据接收完毕的消息,然后进入主线程消息处理函数。

物联网技术入门——系列文章3_第6张图片

完成后的软件界面如下:

物联网技术入门——系列文章3_第7张图片

物联网技术入门——系列文章3_第8张图片

这里仅写了局域网内的温度监测,实际上我还借助yilink的第三方服务器实现了远程的温度监测,可以去的CSDN账号下下载源代码,如果积分不够可以邮箱联系我。

物联网技术入门——系列文章3_第9张图片

你可能感兴趣的:(物联网技术)