3.2.2 基于socket实现Android终端远程访问服务器数据库
本文中手机终端和监控中心之间的通信是基于Socket通信,Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链接的句柄。利用Socket进行通信时,服务器端的程序可以打开多个线程与多个客户进行通信,还可以通过服务器使各个客户之间进行通信。如果协议设计的比较好,Socket性能毫无疑问是最高,同时灵活性和复杂度也最高,效率也高。Socket依赖于TCP/IP协议提供的可靠性链接进行数据传送。Socket通信的一般流程图如图
监控中心
手机终端 Socket通信流程图
建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为Client Socket,另一个运行于服务器端,称为Server Socket 。套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
3.2.3 利用JSON 实现Android 客户端与Web 服务器间的数据交互
由于移动设备的性能及内存等无法与台式机及笔记本电脑相比,访问数据库也不可能像桌面安装各种数据库的客户端,而且目前绝大多数数据库也没有直接运行在移动设备的客户端。为了能够让移动设备访问后台数据库,本文借用Web服务接口以及轻量级的JSON数据格式作为Android设备访问远程数据库的中间桥梁,再通过web应用服务器访问数据库,实现了Android跨平台、快速、安全
地访问远程服务器端数据。
其中,现在服务器和手机之间传输的数据格式比较流行的有XML和JSON。很多服务器都提供以上两种格式,但由于Android系统已经对JSON的数据格式进行了封装,所有处理JSON格式的数据要比XML效率高。本文也就采用了JSON数据格式,来把服务器端的数据传输到手机中,手机接收到信息后解析JSON数据。
Android客户端访问远程数据库的具体实现方式:(1)Android客户端提交请求;(2)服务器根据提交的请求,生成相应的SQL语句访问数据库服务器,把读取的数据信息封装成JSON格式,以JSON格式返回到Android客户端;(3)Android客户端得到响应后,对JSON数据解析,并展示到相应的UI上。
JSON数据交互流程图
3.3 Android系统概述 本方案提出的水质监测系统终端应用程序的开发是基于Android开发的。Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android结构分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。其中各个模块的功能如下:
(1)应用程序:Android本身提供很多核心应用程序包括主屏幕(Home)
、联系人
(Contact)、电话(Phone)、測览器(Browers),同时Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。由于应用层主要是实现系统和用户交互的功能,所以我们也可以使用Android应用框架提供的接口自己编写一些实用的应用程序。这也是Android巨大潜力的体现。
(2)应用程序框架: 开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用; 任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。并且隐藏在每个应用程序后面的是一系列的服务和系统,其中包括: 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
(3)系统运行库: Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务包含了核心库、第三方库和dalvik虚拟机。
(4)Uinux内核:主要负责内存管理、进程调度等系统管理以及终端的硬件驱动。Android 是运行于Linux kernel之上。Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo是Android用来辅助Git工作的一个工具。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到Userspace,使得Linux driver与Linux kernel彻底分开。Bionic/Libc/Kernel/ 并非标准的Kernel header files。
Android的Kernel header 是利用工具由Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。 3.4数据库管理系统
每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库—SQLite。SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了。SQLite已经被多种软件和产品使用,Mozilla FireFox就是使用SQLite来存储配置数据的,Android和iPhone都是使用SQLite来存储数据的。SQLite数据库是D.Richard Hipp用C语言编写的开源嵌入式数据库,支持的数据库大小为2TB。它具有如下特征:
1、轻量级:SQLite和C\S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能。而且那个动态库的尺寸也相当小。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说公务员考试基于Android的源水水质监测手机终端软件开发(3)在线全文阅读。
相关推荐: