APP下载

基于Android 的高效抄表APP 系统设计与开发

2022-07-11隆杰孙健彭跃彪

电子技术与软件工程 2022年10期
关键词:网络通讯水表控件

隆杰 孙健 彭跃彪

(湖南文理学院计算机与电气工程学院 湖南省常德市 415006)

近几年来,中国的水表抄表发展还处于一个不太高的水平,现在水表百分之七十还是人工抄表,人工抄表具有众多弊端。例如由于抄表的数据量比较庞大,容易生错、漏等;或是由于管理不合理,出现很多窃水现象,对国家经济造成重大的损失。

尽管水表行业发展迅速,但智能表的普及仍然仅在欧美一些比较发达的国家,而在大部分发展中国家,仍然是机械表占据了主要的市场地位。在欧美一些国家中,人工费是十分昂贵的,因此智能表的普及是可以预见的,但在中南亚及一些其他发展中国家里,人工费便是较为廉价的,因此这些国家为了测查水表信息会招收大量抄表员,但受限于技术发展,仍处于一个较低的水平。

随着我国经济的快速发展和“一表一户”工程政策的全面实施,城镇居民对水的需求量越来越大,同时对抄表管理水平有了更高的要求,但目前普遍采用的还是人工抄表方式,弊端较多,因此,越来越多的水表将计算机、抄表测量技术和现代通信技术结合在一起,提高抄表效率,方便用水数据统计与管理。

1 系统设计

系统的架构包括本地持久层,Activity 及业务层,通讯层,服务层,数据持久层。抄表员通过APP 处理,即业务层处理,完成相关操作后通过网络通信,即通讯层与后台服务器进行数据交互,后台将处理好的信息存储于数据库,APP 同时将本地需要存储的数据存储于Sqlite 轻量型数据库中。

1.1 本地持久层

本层主要是针对各界面中需要存储本地的数据进行处理,如抄表册数据的记录,抄表状态的修改等数据库处理功能。

1.2 Activity及业务层

本层主要是各种功能的设计与使用,包含对UI 界面的设计、抄表员信息设置、数据持久化存储、模糊查询、登录账号绑定、存储空间的管理、服务器端口的设置、系统权限检取、网络通讯等。

1.3 通讯层

通过网络通讯来实现端口连接、数据上传下载、系统版本的更新检测等功能。是实现夸平台交互最重要的一层,也是应用程序能否被拓展的最关键的一层,包括抄表数据上传、故障信息处理、近期水量查询、抄表册下载、图片上传、用户参数上传等异步队列。

1.4 服务层

该层主要是接收处理网络通讯与数据库传来的数据,并作为中间商快速的将这些数据上传到数据持久层或通讯层,从而来实现数据的高效交互与更替。

1.5 数据持久层

为保证数据的管理与存储,采用SQL 数据库对服务层传过来的数据进行处理,方便管理人员进行查询、删除、审核等业务需求功能的实现。如图1 所示。

图1: 系统框图

1.6 数据库设计

该项目系统主要采用了Litepal 轻量型数据库作为整个项目数据库的设计,主要分为抄表员管理,抄表册管理,抄表管理3 个重要的数据库。如表1、表2、表3 所示。

表1: 抄表员管理数据库

表2: 抄表册管理数据库

表3: 抄表管理数据库

1.7 安卓界面设计

本系统主要使用了TextView、Button、EditText、RecycleListVew、Dialog 等控件。具体设计如下:

TextView 控件,主要用于各种数据的显示,使用时首先在XML 文件中进行注册,随后在对应界面进行初始化。

Button 控件用于各种界面跳转的开关,控件初始化后为了UI 的美观,用xml 文件编写Button 的背景,编写单击事件来触发界面转出或弹框。

EditText 主要被用于各种需要手动填写的数据或需要修改的内容,如抄表实际数字和抄表反馈等,首先在注册初始化控件后需要对EditText 内容进行约束,在实际抄表数EditText 填写框中将其内容与上期抄表数进行联系,当两者间的差大于上期抄表数百分之20 时变会爆红提醒抄表员数据误差过大。

RecycleListView 应用于大量数据显示和数据拖动等功能需求界面,由于基本每个界面的需求都不一样,所以先让适配器绑定需用使用RecycleListView,然后新建一个界面作为适配器的主界面。

Dialog 对话框用于显示上传是否成功或是否完成某项操作后,使用AlartDialog,通过编写对话框属性。

1.8 网络通讯设计

由于Retrofit 采用标注方式进行接口连接,在多接口连接时十分便捷,本系统有十几个接口,但只有两个是多文件多参数进行传输的,因此,为了开发周期更短,仅两个接口采用OkGo 框架,其余都采用Retrofit 框架进行网络通讯。

Retrofit 框架使用时首先需要导入jar 包,导包后需要注册服务来联系接口与服务器的网络连接,由于大部分接口如抄表册下载等传输数据较大,内容类型也十分多,因此若不进行数据解析则会有大量乱码的出现。在Retrofit 框架中只需addConvererFactory(GsonConverterFactory)便能实现数据的Gson 解析,解析成果后在OnResponse 反馈方法中将接收的数据存储到本地数据库中。

OkGo 的框架使用首先在服务注册时可直接在OkGo.execute()方法中直接注册,注册后直接在此方法中进行Gson 格式数据解析,多文件上传时,params()来设置上传参数的类型与变量名,addFileParams()来指定文件集。若成功接收数据则在OnSuccess 方法中存储到本地数据库中,否则通过tag 标志在OnFault 方法中进行错误类型提醒,如服务器不存在tag 便是404。此外与服务器通讯传来的数据仅在OnSuccess 中可用,不可在其他方法中调用这些数据。

2 系统测试

2.1 各界面功能展示与测试

2.1.1 抄表计划测试

进入“抄表计划下载”页面,如图1 所示,表册可以单独下载也可以全部下载,下载后数据才会出现在本地。

2.1.2 抄表管理主页面查看已下载好的表册的基本信息,如图2 所示,并且通过点击某条表册信息进来相应的表册详细信息界面。

图2: 抄表计划界面

2.1.3 抄表管理详细页面

该页面分为“待抄”、“已抄”、“已审”、“异常”和“顺序”,如图3 所示,点击前四项可以查看到该分类下的基本用户数据,点击“查看地图”查看水表具体位置,点击用户数据将进入抄表页面,“顺序”下可以调整待抄用户的顺序,需要点击“保存”才能生效。若出现抄表错误时,可点击用户表上分灰色字体部分进行复抄未审核用户表。

图3: 抄表管理主页面

2.1.4 抄表页面

分为“抄表”和“表况”,如图4 所示,在该页面内进行抄表,点击“上一户”或“下一户”可在本页面内快速切换用户,点击右上方的感叹号可以进入用户信息页面。

图4: 抄表管理详细页面

2.2 非功能需求测试

不同的算法与框架的使用会导致每个界面的功能的响应速度都是不一样的,为了保证用户的良好体验,本论文对APP 流畅性做了测试,结果如表4 所示。

表4: APP 反应时间测试

3 结论

基于Android 的高效抄表APP 系统设计能够实现监督抄表员按时精确的完成抄表,当抄表员下载了表册后,表册会在一定期限后无效,即抄表员无法继续抄表,同时通过GPS定位查看抄表员抄表轨迹,避免抄表员采用估算方法进行偷懒。基于此,抄表公司不仅减轻了每月对抄表数据统计的繁重任务,同时督促了抄表员的抄表效率,给水表公司带来了更大的效益。

猜你喜欢

网络通讯水表控件
水表普查与水表挂接子系统建设
水表检定装置不确定度分析计算的相关思考
关于网络通讯中信息安全的保障研究
水表在检定周期内超差原因与解决措施
ASP.NET服务器端验证控件的使用
基于现代网络通讯工具的中医诊断学教学实践与探索
计算机远程网络通讯技术
Spreadsheet控件在Delphi数据库系统中的编程与应用