摘 要: 针对传统纸质版投票过程中繁琐费时的问题,提出一种基于Android手机与Internet投票系统的设计方法。搭建了一个通用的手机开发环境,开发出一个以Android手机为硬件基础,以ASP.NET环境设计的服务器以及Eclipse环境开发的手机投票软件为核心的投票系统。该系统通过WiFi 连接到局域网,具有操作简易、安全易扩展、统计结果快速高效的特点,有很强的应用价值和推广前景。
关键词:核心期刊论文发表, Android,Internet,Eclipse,投票系统,WiFi
Design and implementation of voting system based on Android mobile phone and Internet
ZHANG Jie1, ZHU Ye?ping1,2, LIU Dan1, XU Jin?pu1,3
(1. Agricultural Information Institute of Chinese Academy of Agricultural Sciences, Beijing 100081, China;
2. Key Laboratory of Agricultural Information Service Technology, Ministry of Agriculture, Beijing 100081, China;
3. College of Animation & Communication , Qingdao Agricultural University, Qingdao 266109, China)
Abstract: Aiming at the problems of cumbersome and time?consumption in traditional voting process of paper, a new design approach of voting system based on Android mobile phones and Internet is proposed. A universal environment for mobile phones development was constructed. A voting system based on the hardware of mobile phones with Android system and software which is consist of a server designed by ASP.NET and a mobile phone voting software developed by Eclipse, was developed. The system can be connected with local network through WiFi. It is easy to operate and extend, and has the characteristics of safety and fast statistics. It has a high application value and promotion prospect.
Keywords: Android; Internet; Eclipse; voting system; WiFi
0 引 言
法律规定选举权和被选举权是公民的基本政治权利之一,为了保证公民切实行使该权利,通常采取投票方式。从班级选举班委到国家选举主席都会遇到投票问题,然而大部分仍然采取传统的手写处理、人工监督和统计等方式,此方法费时费力,结果统计不够灵活快捷,已不能满足快节奏信息时代背景下人们的需要 [1?3]。
近年来,科学技术突飞猛进,信息技术更是日新月异,先进的科技产品极大地方便了人们日常生活。据统计,到2012年6月底,我国手机上网用户量已高达3.88亿,手机的智能性以及低廉价格促使很多人从普通手机转向手机上网[4]。Android是由Google公司开发的面向移动设备的操作系统,现在其市场用户占有量已超过塞班和IOS,成为国内第一大智能手机操作系统[5?7]。Android操作系统完全开源,使用 Linux内核[8?9],方便广大程序员开发出各种功能新奇的应用软件。基于这种背景和需求,本研究开发出一种基于Android手机与 Internet的投票软件,该系统能很好地模拟现实投票,快速高效地统计出投票结果。
1 开发环境的构建
1.1 Android系统
Android是Google公司于2007年11月推出的一款针对智能手机、平板电脑等移动设备的操作系统,国内称之为“安卓”。它基于Linux内核,由操作系统、中间件、用户界面和应用软件组成,是一个开发而完整的移动“软件栈”[10]。其次,Android系统采用分层架构,从高到低依次是应用程序层、应用程序框架层、系统运行库层和Linux内核层[11]。代码的开源性、不受运营商的束缚、丰富的硬件选择、无缝结合的Google应用等特点已使得Android操作系统成为目前全球最大的智能手机操作系统。
1.2 应用程序开发环境的搭建
基于Android手机与Internet的投票系统开发环境包括2部分:客户端(Android手机)和服务器端(电脑)。客户端的开发环境分为以下几个环节[12]:
(1) JDK。JDK即为Java开发工具包(Java Development Kit)的简称,是一切Java应用程序的基础,它提供Java开发类库,是一种构建在Java平台上发布应用程序和组件的开发环境。本次开发所用的JDK版本是1.6。 (2) Eclipse。这是一个集成开发环境,是开发Java软件的一个工具,使用十分广泛,本次开发使用的版本号是4.2。
(3) Android SDK。这是安卓软件开发工具包(Software Development Kit)的简写,提供基础的Android开发类库和丰富的控件,帮助程序员设计和开发Android应用软件。其支持线性布局、绝对布局和相对布局 [13],此次版本号为4.2。手机端开发环境界面如图1所示。服务器端使用ASP.NET和ACCESS数据库。
图1 手机端开发环境界面
2 系统框架
2.1 软件框架
系统分为客户端和服务器端两部分,二者在同一个局域网内即可完成投票功能。客户端主要功能有:IP验证、获取候选人名单、投票、提交结果、退出系统。服务器的功能为:登录系统、修改用户名、显示或隐藏IP地址、上传候选人名单、名单相关操作、开始投票、统计结果、清空结果、结束投票等。软件框架图如图2 所示。
2.2 投票原理
投票系统的核心是手机端和服务器端的数据交互。本设计采取Internet访问的方式连接服务器,因而要从手机端输入服务器IP地址。为了便于用户知道网络地址,系统自动获取,只需要使用者点击页面上“获取IP地址”按钮即可。具体投票流程为:首先,投票管理员登录系统后,自动获取服务器IP地址,同时用户动态上传候选人名单;其次,评委手动输入IP地址并直接获取候选人名单和允许的投票数量,接着投票并提交结果;最后,管理员点击服务器端统计按钮即可得到最终结果。注意,输入IP地址后,系统会先后检查手机设备惟一标示符以及IP地址,当二者合格后才会返回候选人名单。其中设备惟一标示符合格的条件是:服务器端确定开始投票后该设备第一次投票,即不可能在一轮投票中多次投票。投票流程如图3所示。
图2 软件框架图
2.3 数据处理
投票系统的分析对象是数据,获取候选人名单并稳定地传到服务器进行统计是投票过程的关键。手机端使用Android系统自带的SQLite数据库,由姓名和编号字段构成。为保证投票系统服务器端方便快速地部署到各个电脑上,服务器端利用轻便的Access 2007数据库管理数据,这样避免用户安装SQL Server等大型软件。Access中有CandinateName,DeviceIDs,T_User等表格,分别用来存储候选人名单及得票数、手机惟一标示符、管理员账号等数据。数据处理原理如下:
(1) 投票管理员将本地候选人名单(XLS或XLSX格式)上传到服务器;
(2) 通过验证后的手机从服务器获取名单数据并存入SQLite中;
(3) 评委提取SQLite中名单,勾选候选人并提交结果;
(4) 结果传到服务器数据库中。因为投票过程中存在多用户同时和服务器进行数据交换,为避免数据混乱,采用Session(会话)方式处理[14?16]。
图3 投票流程图
3 系统实现
3.1 手机端
手机端利用Eclipse和Android SDK开发。在Eclipse软件中选择File/new/project/Android Application Project,即可建立一个Android应用工程。其中主要文件有:源程序文件src、资源文件res和应用配置文件 AndroidMainfest.xml[17]。源代码主要集中在以下4个文件中:
(1) MainActivity.java是应用中的组件,为用户提供可视化界面以及触动按钮所引发的事件编码,是本系统的主程序;
(2) CandinateOper.java完成客户端和服务器之间的数据交互;
(3) DeviceID.java获取手机惟一标示符并传递给服务器;
(4) Perpon.java完成SQLite数据库中的数据交互。界面布局集中在res/layout路劲下的activity_main.xml文件中,使用线性布局和表格布局。
图4 手机客户端系统界面
图5 手机端程序测试界面
3.2 服务器端
服务器端开发工具包括:ASP.NET 2010,C#,ACCESS。系统使用VS自带的Gridview模板。在开始投票前能编辑、删除候选人名单,开始投票后,自动按照票数排序,同时表格不允许做任何修改。点击统计结果,系统实时刷新投票结果以及此时已经投票的评委数量。在不清空结果的情况下,点击开始投票可在保留上次结果下进行第二轮投票。本系统核心是保证客户端和服务器端稳定的数据传输,因而采用HTTP协议。
4 系统设置与测试
基于Android手机和 Internet的投票系统包含VoteSystem.apk应用程序和服务器端发布程序VoteSystem,前者安装在Android手机上,后者部署到IIS上。注意,只有当二者在同一个局域网下才能实现投票功能。首先,手机通过WiFi连接到局域网,然后输入服务器端显示的IP地址即可实现数据传输。手机端程序测试界面如图5所示。服务器端系统测试界面图如图6所示。
图6 服务器端系统测试界面
5 结 语
本文在充分研究现实投票环节的基础上,利用“Eclipse+JDK+Android SDK+ADT”和Visual Studio2010开发了一个基于Android手机和Internet的投票系统。系统以Android操作系统手机为硬件基础,以ASP.NET环境设计的服务器以及借助Eclipse环境开发的手机投票软件为核心,采用局域网和移动设备通讯技术传输数据,将现实中繁琐的投票环节程序化,有很强的应用价值,能帮助用户公平、公开、公正地进行投票。具有以下特点:
(1) 降低传统纸质版投票时间,减少监票环节,快速准确地统计出结果;
(2) 支持多用户同时投票且不发生冲突,服务器端候选人名单传输、投票过程以及结果统计完全公开,投票结果公正可信;
(3) 操作简单,使用方便,支持多轮重复投票(在前期投票结果基础上继续投票);
(4) 系统适应性强,便于移植。只要Android系统的手机设备以及局域网即可使用该系统,很容易完成软件安装及环境部署;
(5) 易于扩展、使用安全。系统中投票人员名单、允许投票数量、IP地址等都是动态设置,投票在局域网下进行,不受外网攻击,保证投票安全。
注:本文通讯作者为诸叶平。
参考文献
[1] 戴红芳,丁顺新.通用 PHP 网上投票系统的设计与实现[J].农业网络信息,2009(11):84?87.
[2] 郭政慧,王岩.网络投票系统的防注入数据技术探讨[J].电脑知识与技术:学术交流,2006(9):12?14.
[3] 吴志辉.在线投票系统[J].科技经济市场,2007(3):9?10.
[4] 黄经.基于Android手机平台的交通调查计数系统的设计与实现[D].广州:华南理工大学,2012.
[5] 郭定聪.基于Web服务器的Android手机管理系统的设计与实现[D].成都:电子科技大学,2013.
[6] 刘昌平,范明钰,王光卫,等.Android手机的轻量级访问控制[J].计算机应用研究,2010(7):2611?2613.
[7] 孙晓宇.Android手机界面管理系统的设计与实现[D].北京:北京邮电大学,2009.