蔡群英
摘要:通过分析Android的技术体系和流行的JAVA EE服务器端SSH框架,给出了Android客户端与服务器端的数据交互方式。
关键词:移动互联网;Android客户端;服务器端;SSH;数据交互
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2020)16-0055-02
Abstract:Through the analysis of Android technology architecture and popular Java EE server-side SSH frame, the data interaction mode between Android client and server-side is given.
Key words:mobile Internet; Android client; server-side; SSH; data interaction
1引言
手机作为移动互联网的终端,相比较原来的计算机终端,Android有其内存少,运行速度慢等特点,要求网络传输数据量小,开发以手机为终端的移动互联网项目,需要解决的关键技术就是智能终端如何与服务器端进行数据交互,本文就此方面展开介绍。
2 Android与SSH
2.1 Android的技术体系
Android是Google公司于2007年11月发布的基于Linux平台的开源手机操作系统,基于Linux技术,由操作系统、中间件、用户界面和应用软件组成。Android的体系结构是由五大部分组成:Linux内核、Android Runtime、Libraries、Application Framework和Application。在Android的Android Runtime中,提供了大部分java语言核心库的功能,系统支持的运用一般都是使用java语言并基于Android SDK进行开发,而对于那些大规模运算和执行效率要求高的应用,使用c/c++语言来开发,开发完成后编译生成类库添加到应用中,但整个应用程序如界面绘制、进度调试等核心机制都是部署到框架层通过java来实现[1]。
Android应用程序的组件有四种类型:Activity组件、Intent组件、Service组件和用户界面。用户界面和控制是分离的,用户界面是一个xml文件,activity是用于控制用户界面的,使之与系统进行交互,每一个用户界面,都需要编写与之对应的activity程序,要从一个用户界面进入另一个界面,通过调用activity的startActivity()方法来实现。AndroidMainfesg.xml是整个Android应用程序的配置文件,在这里对Activity、Intent、Service等组件进行配置,并进行应用程序的权限声明。
2.2 SSH
JAVA EE是JAVA语言体系中的三大技术平台之一,用于开发企业级的应用程序。在移动互联网时代,很多web应用项目的客户端都同时部署到Android平台上,并使用JAVA EE搭建服务器端。在JAVA EE的体系结构中,SSH(Struts2、Hibernate和Spring)是一个流行的轻量级框架组合。
3 Android客户端与服务器端的数据交互
3.1什么是JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式,是目前比较流行的数据交换语言,在网络数据传输中应用非常广泛。JSON中对象以“{”开始,以“}”结束,对象中的每一个item都是一个键值对,表现为“key:value”的形式,键值对之间使用逗号分隔。以对象address用JSON格式来表示为例,{“city”:”chaozhou”,”street”:”xiyang road”,”zip”:521000}
JSON相比较XML,更适合处理格式简单的数据,JSON传输数据不需要将数据保存为一个独立的文件,直接编写成字符串就可以,并且通常传输的数据是有规则的数据,具有一定的结构的,符合JSON数据解析的特点。
3.2解析服务器端返回的JSON数据
从服务器端响应过来的数据是JSON格式的,需要在客户端进行解析,然后将解析后的内容显示在智能终端的界面上[2]。Android自带JSON处理,通过org.json包进行解析,主要有JSONObject类、JSONStringer类和JSONArray类。解析时服务器端返回的字符串作为JSONArray的参数,通过循环,将字符串中的每个对象读取出来,保存在JSONObject对象中。通过JSONObject对象的getString()方法取得每个键值。
3.3 SSH架构的客户端与服务器端的数据交互
整个WEB应用程序采用MVC的设计模式,M是模型;V是视图,由Android客户端的界面来实现;C是控制器,由action来实现。分为表现层、控制层、业务逻辑层和数据访问层。表现层由Struts2框架实现,业务逻辑层和数据访问层的组件交给Spring框架来管理,通过Hibernate实现对象关系映射,将数据访问层对表的操作映射为对对象的操作。
在Struts2框架中,服务器端向客户端传送数据,是使用Struts2的JSON数据封装功能自动将对象封装并返回JSON数据;而客户端向服务器端传送数据,是将JSON转换成对象。
以查询所有用户为例,包括登录界面main.xml和显示所有用户界面showAllUser.xml,分别对应两个程序来处理:MainActivity.java和ShowAllUserActivity.java,由Activity来处理与服务器端的action进行交互。
登录界面main.xml,相應的处理程序是MainActivity.java,由MainActivity.java访问服务器端的login.action,并传递了两个参数username和password,由login.action执行了之后,判断如果有返回值,并且等于“1”,表示登录成功,接着跳转到showAllUserActivity.java程序,在ShowAllUserActivity.java程序控制访问服务器端的showallUser_Android( ),查询所有用户,返回结果all,是List
在struts.xml文件中,设置返回的类型是“json”,则在服务器端将all封装为JSON数据,在Android客户端的showAllUserActivity.java程序中取得返回值json数据,按json的格式,读取出每个对象,显示在界面上showAllUser.xml。
4总结
本文简单地介绍移动互联网中Android客户端与服务器端的数据交互,通过使用JSON进行数据交互,能够提高系统的信息传输效率。
参考文献:
[1] 胡文发,白中英.基于J2ME/J2EE的JSON数据交换的探讨[J].电子设计工程,2009,17(12):102-103.
[2] 樊红林.Android平台与SSH2的通信[J].电脑知识与技术,2015,11(13):35,37.
【通联编辑:王力】