基于Android的农技推广信息化平台设计、实现及示范应用.doc_第1页
基于Android的农技推广信息化平台设计、实现及示范应用.doc_第2页
基于Android的农技推广信息化平台设计、实现及示范应用.doc_第3页
基于Android的农技推广信息化平台设计、实现及示范应用.doc_第4页
基于Android的农技推广信息化平台设计、实现及示范应用.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Android的农技推广信息化平台设计、实现及示范应用 尹国伟,王文生,孙志国,王曦光 (中国农业科学院农业信息研究所,北京100081) 摘要:基于Android的农技推广信息化平台结合移动智能设备特点,有针对性地为农技员设计服务农户、报送信息、分享交流等功能,进一步丰富农技推广工作的信息化手段。Android端农技推广移动应用是WEB版的延伸和补充;通过将字符处理、图片处理、音频处理、终端控制、通信交互等功能块进行有机组合以满足农技员需求;在示范应用过程中,要重视示范点的确定、示范农技员的遴选、移动终端的配备、通信流量的设定、移动应用的使用培训、用户的反馈响应等环节。 关键词:android;农技推广;信息化平台;设计思路;示范应用 :S126文献标志码:B论文编号:xx-0340 Design,ImplementationandDemonstrationoftheAndroidVersionofAgro-TechniqueExtensionInformationPlatform YinGuowei,WangWensheng,SunZhiguo,WangXiguang (AgriculturalInformationInstituteofCAAS,Beijing100081,China) Abstract:TheAndroidversionofagro-techniqueextensioninformationplatformwhichfurtherenrichedthemeansofagro-techniqueextensiontargetedfortheagro-techniqueextensionworkers.Thefunctionsoffarmerservice,informationsubmissionandexperiencesharingweredesignedwithmobileintelligentequipmentcharacteristics.ThispaperreviewedthedesignideaoftheAndroidterminalmobileapplication;thecharacterprocessing,imageprocessing,audioprocessing,terminalcontrol,municationinteractionfunctionwasexplainedbriefly.Intheprocessofdemonstration,thedemonstrationpointdetermination,demonstrationmemberselection,themobileterminalequipment,municationflowsetting,trainingintheuseofmobileapplicationsanduserfeedbackresponsewereallindispensablelinkandneedtopayenoughattentionto. Keywords:Android;Agro-TechniqueExtension;InformationPlatform;DesignIdea;Demonstration 0引言 中央一号文件已连续多年聚焦三农相关问题,随着国家对三农工作的大力扶持和现代农业的不断推进,农技推广体系在三农工作中的作用亟需得到充分发挥1。国内农技推广体系庞杂,农技推广人员素质参差不齐,为有效地管理农技推广体系、提升农技推广人员素质能力,国家农业部等相关部门充分发挥信息技术的优势,促进了农技推广信息化的进一步发展。农技推广信息化平台是专门面向农技推广体系、为农技推广人员提供服务的信息系统,是农技推广信息化的重要组成部分,在四化同步背景下,农技推广工作的发展起到了良好的促进作用。农技推广信息化平台是在总结中国农业推广网多年运营经验的基础上,结合农业部相关部门的信息上报系统,通过实地调研、三农信息资源机构的合作洽谈和专家论证进行了长期的设计和开发。 系统前期开发工具选用微软.Net平台,可以通过台式机和3G上网本的浏览器获取B/S模式提供的信息服务2,并开发了基于Android3-4的浏览器和客户端本地化融合的移动应用原型;后期迁移到开放的Java平台,伴随智能手机的快速普及,主要通过浏览器和Android智能手机提供信息服务;目前服务端和移动端的开发采用敏捷方式进行快速迭代5,以及时对用户反馈作出响应,不断完善功能,持续提升用户体验。笔者主要以农技员角色下的应用服务为例进行,就基层农技推广信息化平台Android端移动应用的设计思路、实现方式及示范应用情况进行总结分享,供相关工作人员参考。 1设计 1.1设计思路 基层农技推广信息化平台Android端移动应用的设计源于Android智能手机的快速普及和浏览器展现形式的扩充需求。为了快速开发移动应用原型,初期设定的策略为:将移动应用作为浏览器的延伸,将浏览器中比较容易在Android系统中实现的功能进行移植6,在智能移动终端采用“本地化壳子排布链接+浏览器端内容嵌套”的模块化方式。随着深入开发的推进,目前移动端应用的本地化程度已经非常高,并且逐步加入了能够体现移动端优势的功能,如拍照、录音、定位服务等。图1为农技推广信息化平台设计演进路线。 1.2功能描述 基层农技推广信息化平台的用户主要农技推广体系,包括农技员、各级管理员、农技专家等,在浏览器版中对用户角色进行了划分,不同角色配置了各自对应的权限。笔者主要就基层农技推广信息化平台Android端移动应用中涉及农技员角色的相关功能做简单介绍。 通过账号登录Android客户端应用之后,农技员角色主要涉及的功能分为6个模块推广服务、信息采集、经验交流、快速链接、登录、更多配置(如图2)。6个模块又细分为28个功能点,功能框架如图3所示。 农技员通过Android终端应用登录基层农技推广信息化平台,可以享受浏览器版的基本功能,并能够体验移动应用所带来的便捷,移动终端应用、服务器、数据存储部件之间的数据交互抽象序列(7如图4、图5)。 移动应用中的功能展现形式及内容,是依据用户需求和移动终端特点所设定。这些功能是由有限的基本功能块通过不同组合得出的,这些基本功能块包括字符处理、图片处理、音频处理、数据存储、终端控制、通信交互等。 基本功能块可继续细分为各个操作点:字符处理包括字符的输入、输出,时间的获取、校验,地理位置信息的获取、解析、展示;图片处理包括拍照、压缩、图片存储、图片选择;音频处理包括加载录音插件、执行录音、音字转换、结果显示;数据存储主要是指在终端对数据进行暂存的一些操作;终端控制包括适应性界面展示、网络状态判断、拨打电话、应用升级;通信交互包括移动终端与服务器端之间不同种类数据的上传下载、版本检测等。 2实现 基层农技推广信息化平台Android端移动应用所使用的开发工具为Eclipse8,编程语言为Java,采用面向对象的开发模式,引入敏捷开发的理念来实施相关设计方案。以下就各基本功能块的实现方式作简要介绍。 2.1基本功能块的实现 2.1.1字符处理字符处理包括字符的输入、输出,时间的获取、校验,地理位置信息的获取、解析、展示;由于Android系统及SDK9,具有较完备的基本字符处理控件、类、方法、地理数据恢复机制10等,在处理过程中根据业务需要进行适当调用即可,大致流程如图6所示。 代码片段: /基本字符; importandroid.widget.EditText; privateEditTextcontentEt; contentEt=(EditText)findViewById(R.id. log_write_et_content); /时间; privateTextViewserviceTimeTv; serviceTimeTv=(TextView)findViewById(R.id. log_write_tv_serviceTime); Calendarcalendar=Calendar.getInstance(); intyear=calendar.get(Calendar.YEAR); intmonthOfYear=calendar.get(Calendar. MONTH); intdayOfMonth=calendar.get(Calendar.DAY_OF_MONTH); Stringtext=year+-+(monthOfYear+1)+-+dayOfMonth; serviceTimeTv.setText(text); /地理位置; importandroid.location.Criteria; importandroid.location.Location; importandroid.location.LocationListener; importandroid.location.LocationManager; privateLocationManagerlocationManager; privateSharedPreferencesmanager; manager=PreferenceManager. getDefaultSharedPreferences(this); locationManager=(LocationManager) getSystemService(Context. LOCATION_SERVICE); Criteriacriteria=newCriteria(); criteria.setAuracy(Criteria. ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria. POWER_LOW); Stringprovider=LocationManager. GPS_PROVIDER; Locationlocation=locationManager. getLastKnownLocation(provider); getGPS(location); locationManager.requestLocationUpdates(provider,60*1000,100, locationListener); 2.1.2图片处理图片处理包括拍照、压缩、图片存储、图片选择;其中拍照功能是调用Android系统自带的相机控制类,图片的压缩则使用AndroidSDK中提供的位图工厂类等提供的相应方法11-12,大致处理流程如图7所示。 /图片处理 importandroid.graphics.Bitmap; importandroid.graphics.BitmapFactory; BitmapFactory.Optionsoptions=newBitmapFactory.Options(); options.inJustDecodeBounds=true; Bitmapimage=null; image=BitmapFactory.decodeFile(path,options);doubleratio=1D; if(maxWeight0&maxHeight0&maxWeight0&maxWeight0) doubleratio_height=options.outHeight/maxHeight; doubleration_weight=options.outWidth/maxWeight; ratio=ratio_heightration_weight? ratio_height:ration_weight; if(ratio1) options.inSampleSize=(int)ratio; else options.inSampleSize=1; options.inJustDecodeBounds=false; options.inPreferredConfig=Bitmap.Config. RGB_565; image=BitmapFactory.decodeFile(path,options); returnimage; 2.1.3音频处理音频处理(appliedresearchonandroidofwebservices)13-14包括加载录音插件、执行录音、音字转换、结果显示;音频处理主要借助讯飞语音输入插件,完成音频的获取工作,整体流程如图8所示。 /音频处理 import.iflytek.speech.RecognizerResult; import.iflytek.speech.SpeechError; import.iflytek.speech.SpeechConfig.RATE; import.iflytek.ui.RecognizerDialog; import.iflytek.ui.RecognizerDialogListener; publicvoidonResults(ArrayListresults,booleanisLast) StringBuilderbuilder=newStringBuilder(); for(RecognizerResultrecognizerResult: results) builder.append(recognizerResult.text); mResultText.append(builder); mResultText.setSelection(mResultText.length(); 2.1.4终端控制终端控制包括适应性界面展示、网络状态判断、拨打电话、应用升级;其中适应性界面的构建过程,一方面基于Android项目已有的配置形式,一方面需要借助Android类库提供的关于布局及获取屏幕信息的类和方法,再通过程序将2个方面进行结合,就能比较好地呈现出具有良好体验的界面,如图9所示。 /适应性界面 importandroid.content.res.Configuration; publicvoidonConfigurationChanged(Configuration newConfig) super.onConfigurationChanged(newConfig); if(this.getResources().getConfiguration(). orientation=Configuration. ORIENTATION_LANDSCAPE) elseif(this.getResources().getConfiguration(). orientation=Configuration. ORIENTATION_PORTRAIT) /网络检测 publicstaticbooleanisNetworkAvailable(Contextcontext) ConnectivityManagercm= (ConnectivityManager)context .getSystemService(Context. CONNECTIVITY_SERVICE); if(cm=null) returnfalse; NetworkInfoinfo=cm. getActiveNetworkInfo(); if(info=null) returnfalse; if(info.isAvailable()returntrue; returnfalse; /拨打电话 publicvoidonClick(Viewv) EditTextphonenumber=(EditText)findViewById(R.id.phonenumber); Stringnumber=et_phonenumber.getText().toString(); Intentintent=newIntent(Intent. ACTION_CALL,Uri.parse(tel: +number); startActivity(intent); /安装新版本 protectedvoidinstallAPK(FileapkFile) Intentintent=newIntent(); intent.addFlags(Intent. FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent. ACTION_VIEW); intent.setDataAndType(Uri.fromFile(apkFile), application/vnd.android.packagearchive); startActivity(intent); 2.1.5通信交互通信交互包括移动终端与服务器端之间不同种类数据的上传下载、版本检测等。在通信交互过程中,目前主要基于KSOAP调用WebService15、协议以及SOCKET3种方式。 代码片段: /数据上传 protectedStringupLoad(Contextcontext,Map Stringmap,Stringurl) NetUtilUtil=newHttpClientImplUtil (context,map,url); ProgressThreadprogressThread=new ProgressThread(Util); progressThread.setDoPost(); Threadthread=newThread(progressThread. getDoPost(); thread.start(); Stringresult=; while(result.equals() result=progressThread.getResult(); returnresult; /版本检测 protectedvoidcheckVersion(finalContextcontext) Mapmap=newHashMap String(); map.put(clientVersion.versionCode, getVersionName(); NetUtilUtil=new HttpClientImplUtil(context,map, VERSION_CHECK); ProgressThreadprogressThread=new ProgressThread(Util); progressThread.setDoPost(); Threadthread=newThread(progressThread. getDoPost(); thread.start(); Stringresult=; while(result.equals() result=progressThread.getResult(); try JSONObjectobj=newJSONObject (result); if(!obj.getString(msg).equals (suess) toastShow(obj.getString(data); return; booleanupdateVersion=obj.getBoolean (data); VersionUtilsutils=newVersionUtils (context); if(!updateVersion) utils.versionNoUse(map); else utils.versionUpdate(map); catch(JSONExceptione) toastShow(数据异常!); e.printStackTrace(); 2.2界面展示 截取了Android端应用中的登录、推广服务、信息采集、经验交流、快捷方式、系统配置、填写日志、填写处方、发布交流等界面,如图10所示。 由图10可看出,整体界面风格简约,以模块化为主,不超过4次界面切换即可到达任何功能的最终界面:打开应用、登录、选择功能、执行操作。 3示范应用 目前,基层农技推广信息化平台Android端移动应用的版本为V2.35,已经在北京、河南、江苏16、云南、河北等省市的县一级农技推广机构中开展了示范应用。在示范应用过程中,示范点的确定、示范农技员的遴选、移动终端的配备、通信流量的设定、移动应用的使用培训、用户的反馈响应等是必不可少的环节,需要给予足够的重视,以便于开展示范应用的各相关工作。 示范点要选取信息化基础设施较完备、农技推广体系运转高效、能起到示范带动作用的区域;示范农技员则要将信息化水平、信息化意识、业务能力、个人影响力等作为遴选标准;移动终端的配备要充分考虑经费、终端便携程度、易操作程度、电量续航能力、拍照质量好坏等因素;通信流量要注意与运营商、当地政府等充分合作,制定适宜的套餐资费,有效地控制流量成本;移动应用的使用培训要确保培训场地的网络通畅,提前了解用户的基本情况,将如何安装移动应用作为培训的一部分内容,通过手机管理软件用投影实时地向用户展示操作流程,充分发挥信息化水平高的用户的帮带作用;要与用户充分沟通,深入挖掘用户需求,及时响应用户反馈。 示范应用的目的是通过部分区域、少量用户的使用,带动其他地区、更多用户能够更便捷地使用该移动应用。通过到实地现场培训农技员使用基层农技推广信息化平台Android端移动应用,以及用户的使用反馈,总结了很多经验教训,在使平台逐步完善的基础上,利于以后开展更大范围的示范应用。 4结语 随着示范区域和用户的增加,农技推广信息化平台将面临的大用户量访问对系统运行稳定性的挑战,服务端的设计架构以及服务端与客户端的交互模式将进行适当调整,以满足不断变化的需求。 基于Android的农技推广信息化平台为农技推广体系提供了一种信息化手段来开展农技工作,为农技员配置了一套信息化工具来提升工作效率,为推进农业

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论