课题:基于android的移动数据终端程序设计
学 院:信息工程及自动化学院
专 业:自动化
姓 名:
指导教师:
2013年6月
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
1.研究背景
2.系统设计
3.环境搭建
4.客户端与服务器的数据传递
5. 功能模块实现
6.系统测试
7.结束语
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
研究背景:
随着网络技术的发展,移动通信产业已经走向真正的移动信息时代,移动终端从简单的通话工具变为综合信息处理平台。Android操作系统是一个真正意义上的开源和免费的移动终端操作系统,市场占有率高。鉴于其自身的优点及平台技术的不断成熟,其在工业生产领域中也将得到广泛应用。在钢铁生产的过程中,钢材的质检数据采集监测是钢厂对钢材进行质量管理的一个重要控制环节,该环节运行的好坏,直接影响到钢材的生产效率、生产成本。目前这一环节中大部分工作和数据通过计算机进行信息处理与管理,但部分重要工作如表面质量检测需要质检人员在现场查看表面质量,利用纸质表格记录相关数据,再回到机房输入管理系统和查看成分数据,十分不方便。毕业设计提出的方案开发基于Android的质量判定数据终端系统,可以在移动设备上查看钢材的成份,进行表面质量判定数据上传,改变钢铁生产现有的质检方式,方便高效。
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
系统设计:
质量判定系统从总体上可以划分为移动终端和服务器端两大功能模块
服务器端主要是数据管理模块,通过WebService接口为移动终端提供数据信息。移动终端主要划分为三大功能模块,分别是用户功能模块、主功能模块、数据传输功能模块。用户功能主要包括各部门对应密码的设定,保证信息的安全性;主功能模块包括分炉信息处理、表面缺陷处理、表面质量判定模块,是进行钢坯数据处理与质量判定的主要模块;传输模块主要包括数据存储和数据回传两部分,主要是为了完成服务器端与智能终端的数据交互
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
环境搭建:
1. eclipse
2. java JDK
3.更新Android SDK包
4.添加AVD
平台搭建成功
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
客户端与服务器的数据传递:
1.用Ksoap2来调用Webservice:
WebService 是一种基于SOAP协议的远程调用标准。通过WebService可以将不同操作系统平台,不同语言、不同技术整合到一起。WebService部署在Web服务器之上,是由Web服务器来管理的,它是实现一种异构程序之间方法调用的机制,是远程调用及分布式系统实现的重要手段。WebService通过一种XML格式的特殊文件来描述参数、方法、调用及返回值,这种XML格式的文件称为WSDL,全称为“WebService Description Language”,是一种Web服务的描述语言,描述服务器端口的访问方式及所使用协议的具体细节,用于辅助服务器和客户端代码及配置信息的生成。
因为Android平台目前还没有提供WebService客户端的开发类库,所以要引入第三方客户端的开发类库——SOAP(Simple Object Access Protocol),即简单对象访问协议。这是分布式网络环境下的用于信息交换的通信协议,在这个协议下,软件组件和应用程序可以通过Web协议进行通信。
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
2. android终端与服务器数据交互的实现
数据的获取和上传都是通过webservice的接口函数来实现的:
(1)指定WebService的命名空间和调用的方法名,代码如下:
SoapObject request = new SoapObject("http://service", "getName");
SoapObject类的第1个参数表示WebService的命名空间,可以从WSDL文档中找到WebService的命名空间。第2个参数表示要调用的WebService方法名。
(2)设置调用方法的参数值,这一步是可选的,如果方法没有参数,可以省略这一步。设置方法的参数值的代码如下:
("param1", "value1");
("param2", "value2");
要注意的是,addProperty方法的第1个参数虽然表示调用方法的参数名,但该参数值并不一定与服务端的WebService类中的方法参数名一致,只要设置参数的顺序一致即可。
(3)生成调用WebService方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述,代码如下:
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope();
= request;
创建SoapSerializationEnvelope对象时需要通过SoapSerializationEnvelope类的构造方法设置SOAP协 议的版本号。该版本号需要根据服务端WebService的版本号设置。在创建SoapSerializationEnvelope对象后,不要忘了设置 SoapSerializationEnvelope类的bodyOut属性,该属性的值就是在第1步创建的SoapObject对象。
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
(4)创建HttpTransportSE对象。通过HttpTransportSE类的构造方法可以指定WebService的WSDL文档的URL,代码如下:
HttpTransport ht = new HttpTransportSE(":8080/axis2/services/SearchProductService?wsdl");
(5)使用call方法调用WebService方法,代码如下:
(null, envelope);
call方法的第1个参数一般为null,第2个参数就是在第3步创建的SoapSerializationEnvelope对象。
(6)使用getResponse方法获得WebService方法的返回结果,代码如下:
SoapObject soapObject = (SoapObject) ();
3.解析返回的XML数据
从服务器返回的数据,不能直接被客户端引用,需要解析返回的结果,并以字符串形式返回数据 。
下面以部门信息解析为例:
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
private static List<String> parse(String str) {
String temp;
List<String> list = new ArrayList<String>();
if (str != null && () > 0) {
temp = str;
int endindex = (";");
int index = (";");
int beginindex = 41; //解析字符串开始的位置
do{
((beginindex, endindex));
beginindex = endindex+1;
temp = (beginindex, ()-1);
index = (";");
endindex = beginindex + index;
}while (endindex != (";"));
}
return list;
}
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
功能模块的实现:
1.登录界面
登录界面是主要作用是核实用户的身份信息,是系统运行时与用户交互的第一个界面。由于客户端与服务器端完成数据交互,则部门和用户就能提取出来,在相应的选择框中选择要登录的用户,输入密码后点击登录,验证用户信息。这里主要用到Android中的下拉菜单组件——Spinner组件,这个组件的选项是从与它相关联的ArrayAdapter(适配器)中获取的,在使用的过程中,每次只能选择下拉菜单中的一项。在登录部分用到两个Spinner组件,分别放置部门列表和用户列。
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
2.系统主功能的界面
系统通过用户信息的验证,则系统进入主要功能界面,登录后选择所需应用功能,进入所需的子菜单功能。设置外层的窗体格式为LinearLayout,并在内层LinearLayout中放置四个TextView分别设置为分炉信息、表面质检、表面缺陷和板坯数据,另外放置一个Button设置为注销。
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
3.分炉信息功能界面
在系统的主要功能界面中选择分炉信息功能,便可以进入分炉操作功能的界面。在布局文件中使用了7个TextView控件,主要设置炉号、冶炼号、连浇号、规格、实际定尺、物料号及操作信息,4个Spinner控件,分别表示送检员、判定操作员、计划钢号及计划轧制规格,3个Button控件分别表示重置、提交和返回。
在这个类中,使用getString(标记,数据)方法获取类传送过来的数据。用户通过这个界面进行钢坯信息的记录,并将这些信息存入数据库。
public class furnace extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
(savedInstanceState);
//加载布局文件
setContentView();
//获得Bundle对象,即从Intent中传递过来的数据
Intent intent =getIntent();
Bundle b = ();
//获取key为usrname、passwordstr的数据
userstring = ("usrname");
passwordstring = ("passwordstr");
}
}
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
4.表面质检功能界面
在系统的主要功能界面中选择表面质检功能,进入表面质量判定功能的界面。布局方法与之前几个界面类似,要注意的是炉号信息的获取与更新 。
String SOAP_ACTION = "
SoapObject request=new SoapObject(nameSpace,methodName);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope();
=true;
=request;
(new MarshalBase64()).register(envelope);
HttpTransportSE ht=new HttpTransportSE(url);
(request);
=true;
try{
(SOAP_ACTION, envelope);
if (() != null) {
(());
temp = ();
uploadresult = ( ("UploadJudgementResultByMobileResult")+36, ()-3);
return uploadresult;
}
}catch(IOException e){
();
}
return uploadresult;}
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
5.表面缺陷功能界面
界面在应用程序中对应的布局文件和表面质检功能极为相似,同样是窗体格式LinearLayout和TableLayout内嵌于LinearLayout,最终得到的功能界面截图如图所示。
在这里将钢坯的表面缺陷归为五类,即脱方、短尺、弯扭、裂纹和其它类,以下拉菜单的方式显示在功能界面中,方便工作人员记录板柸的表面缺陷。
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
6.板坯数据功能界面
在主功能界面中点击板坯数据便可以进入板坯数据功能界面,这个界面中以同样采用LinearLayout格式的布局,以2个Button控件表示刷新和退出,刷新是显示分炉操作中刚产生的钢坯信息,2个TextView表示浇铸日期和炉号,以对应ListView中所显示的板坯数据。
在这个功能界面中将显示一炉号所出的钢坯的具体信息,如牌号规格,及化学成分等。在类文件中首先要分析数据的详细信息,再对这些数据信息进行判定,看其是否合格,并将不合格的信息用红色显示出来。
判定是否合格的主要代码:
public static String judge(String elementstr,String str){
String maxstr,minstr;
Float max,min;
maxstr = (("<数据上限>")+6, ("</数据上限>"));
minstr = (("<数据下限>")+6, ("</数据下限>"));
max = (maxstr);
min = (minstr);
if ((str)>max) return "1" ;
if ((str)<min) return "1" ;
else return "-1" ;}
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
6.系统测试
本文介绍的钢铁质量判定系统终端程序是在计算机上开发完成的,测试主要是在Android模拟器AVD上进行测试,
功能测试:
输入了两个具体的数据进行测试,得到的部分结果如图所示:
本文介绍的钢铁质量判定系统终端程序是在计算机上开发完成的,测试主要是在Android模拟器AVD上进行测试,
功能测试:
本文介绍的钢铁质量判定系统终端程序是在计算机上开发完成的,测试主要是在Android模拟器AVD上进行测试,
功能测试:
本文介绍的钢铁质量判定系统终端程序是在计算机上开发完成的,测试主要是在Android模拟器AVD上进行测试,
功能测试:
对系统的各个功能项进行测试,看其能否完成功能需求。主要是对功能的正确性和完整性进行测试。
本文介绍的钢铁质量判定系统终端程序是在计算机上开发完成的,测试主要是在Android模拟器AVD上进行测试,
功能测试:
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
7.结束语
通过利用java,SDK以及eclipse实现了Android的钢厂质量数据移动终端程序设计,当登录相应部门的用户信息以后,通过服务器传回未通过判定的炉号,最终以表格形式表示出来,这时候从服务器传回的炉号显示了钢铁的各种信息其中包括:炉号,冶炼号,牌号,规格,计划钢号,计划规格,实际定尺,以及各种化学成分,通过判定分为合格以及不合格的钢铁,合格的钢铁则需要选择热送和冷松两种方式,不同的方式需要选择不同的块数,选择好了以后在发回服务器,而不合格的钢铁则需要把表面有缺陷的块号记录下来,发回服务器。
在此要感谢我们的指导老师车老师对我悉心的指导和帮助。
基于android的移动数据终端程序设计
信息工程及自动化学院 自动化专业
谢谢!