设为首页收藏本站优领域

优领域

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
优领域 优领域 电子领域 嵌入式 Android 查看内容

基于Android与互联网的手机投票系统设计

2014-7-30 17:19| 发布者: dzly| 查看: 1816| 评论: 0|原作者: 王建 ,杨晓东 ,刘志军

摘要: 将Android手机与Windows电脑端通过互联网连接,设计了以手机端为客户端、电脑端为服务端的手机投票系统。该系统在Android手机端具有留言功能与投票功能,在电脑端开发的Java桌面应用程序具有查看留言功能与统计投票功能。该投票系统只需手机与电脑处于同一个局域网内,具有较好的运行效果。

  引言

  目前多数的投票系统还沿用手写,网络投票逐渐兴起。基于手机与互联网的投票系统实用性强,适用范围广,可充分利用科技带来的成果,对节约资源有着极大的帮助。本投票系统结合Java与Android的广泛性以及易用性,通过局域网的连接,实现手机端投票、电脑端接收并且能实时地显示投票数据,还可以提供留言。
1 手机投票系统原理
  基于手机与互联网的公众投票系统的主要功能是实现手机投票及留言,在电脑端显示,实现可现场即时投票,即时显示的投票功能。涉及的技术关键包括3个方面:首先是手机端的数据处理功能,其次是电脑端的数据处理功能,最后是手机端与电脑端数据传输的稳定性保证。
  在Android平台进行开发,要注重控件的重构和界面构建,应在简洁明了、快速使用的前提下,对客户端的界面布局进行构建,必要的特殊效果需要对Android原控件进行修改。
  在整个客户端运行的背后,网络传输框架是核心,需注意线程之间的处理互不影响,并且不阻碍UI线程的更新。
  服务端的开发界面使用Java自带的Swing框架进行搭建,利于开发与使用。每个投票的用户的记录会保存在服务端,确保不会出现重复投票的情况。
1.1 Android手机投票系统开发环境
  在进行Android客户端开发的过程中,安装的开发环境是JDK 1.7版本和Android SDK 2.0版本,开发使用IDE工具为Eclipse 3.5。在使用Eclipse进行Android开发的过程中,需要在Eclipse里面添加Android插件,然后设置Android SDK的安装路径。设置完成后使用SDK Manager下载需要的Android 2.3版本。在使用Eclipse进行开发时,新建项目中选中Android project选项。Java Swing 是一个为Java设计的图形用户界面(GUI)工具包,它是 Java基础类的一部分,包括了GUI器件,如文本框、按钮、分隔窗格和表等。客户端与服务端通过Eclipse里面的编译工具进行编译,生成APK文件以及JAR文件,其中APK文件为手机端安装程序,而JAR文件则作为电脑端使用程序。
1.2 Android设计的原理
  Android以Java为编程语言,是Google基于Linux平台开发的开源智能手机操作系统名称。从接口到功能,有多种变化。该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。Android系统采用了分层的架构,Android四层从高到低分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。应用程序框架中可访问核心应用程序所使用的API框架,该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块,并且任何其他的应用程序都可以使用其所发布的功能块。Android的用户界面(UI)可以有两种实现方式:使用XML或者使用Java代码。XML中定义的元素是View,或是ViewGroup,View类似于组件,ViewGroup类似于Swing中的JPanel,负责对其包含的所有View进行布局。XML的根节点须是ViewGroup,或者是一个单一的Widget(整个XML只有一个元素)。Android的布局方式主要有5种:AbsoluteLayout、FrameLayout、LinearLayout、RelativeLayout、TableLayout。
1.3 数据处理功能
  手机端的数据处理功能是统一的,基于Android系统的手机投票客户端适用于各种类型的Android手机。关键技术选取的区别主要在于电脑端的数据处理功能的方式选择和两种不同设备之间通信方式的选择。Android系统一共提供了4种数据存储方式,分别是SharePreference、SQLite、Content Provider和File。由于Android系统中数据基本都是软件私有的,默认存放于“data/data/程序包名”目录下。
  在本投票系统设计中,需要一些固定的常量,将需要设置的常量数值设定为静态常量,每次开启软件的时候,可自动加载到内存中。系统中存储的资料为手机用户的个人资料,以及手机客户端常用参数。在客户端首选的数据存储方式就是SQLlite以及SharePreference方式,同时使用这两种方式很好地解决了单个存储方式带来的问题,而且不同的存储方式各尽其职,方便开发使用,缩短软件开发时间。
2 公众投票系统的框架
2.1 软件框架
  公众投票系统的框架如图1所示。

图1 软件框架图
2.2 投票流程
  手机投票流程图如图2所示。
2.3 相关子函数
2.3.1 Java桌面程序部分
  服务器端采用Java自带的Swing框架编程,主要包括Main类——工作人员设置信息类;Main_Comp类——比赛界面显示类;TeamInfo类——队伍信息传递类;LogiThread类——处理客户访问线程类。软件总体框架如图3所示。

图2 投票流程图  图3 服务器软件总体框架
  其中,处理客户访问线程类部分定义了套接字Socket,主要程序如下:
public class LogiThread extends Thread {
  private Socket msocket;
  String msg=null;
  Main_Comp mmain_comp;
  private boolean threadRunning=true;
  public LogiThread(Main_Comp main_Comp, Socket socket){
    this.msocket=socket;
    this.mmain_comp=main_Comp;
  }
}
2.3.2 Android应用软件部分

图4 Android程序包的总体框架
  Android应用软件包括源程序文件src、资源文件res、应用配置文件AndroidManifest.xml等,如图4所示。
  其中,生成项目中源src包括主要类有:
  Main类:软件的主界面;
  VoteFun类:管理投票模块中4个分模块的类;
  PersonFun类:个人资料登记的模块类;
  BasicActivity类:各个显示类的基础父类;
  Infomation类:投票模块中的资料显示类;
  Message类:投票模块中的留言功能类;
  Vote:类投票模块中的投票功能类;
  WarInfo类:投票模块中的战况显示类;
  NetSocket类:网络通信中的主要类;
  DataManager类主要用于个人资料存储的数据库操作类;FinalMsg类主要存储基本常量属性的类;Share类主要是存储软件操作过程中在各不同类中需要使用的变量类。在com.YXD.dialog中所建立的类主要是自定义弹出窗口类。
  Main、Message等类中利用了Android提供了消息提示框机制Toast,如:
public void inputnum(CharSequence num) {
  if (tv.length()<3) {
    tv.append(num);
  } 
  else {
    Toast.makeText(this, "输入的号码超出规定", Toast.LENGTH_SHORT).show();
  }
}
  VoteFun类中利用Android提供的Intent机制来协助应用间的交互与通信,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android据此找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。部分程序如下:
public class VoteFun extends TabActivity implements OnTabChangeListener {
  TabHost tb;
  ImageView iv;
  ImageView title;
  float imgWidth;
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  getWindow().setFormat(PixelFormat.TRANSLUCENT);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
  DisplayMetrics dm=new DisplayMetrics();
  getWindowManager().getDefaultDisplay().getMetrics(dm);
  imgWidth=dm.widthPixels/4;
  setContentView(R.layout.votemain);
  setIPDialog();
  tb=getTabHost();
  tb=(TabHost) findViewById(android.R.id.tabhost);
  tb.addTab(tb.newTabSpec("留言").setIndicator("")
  .setContent(new Intent(this, Message.class)));
  }
}
3 公众投票系统设置与测试
3.1 Android客户端的安装

图5 下载APK程序
  先用电脑将Android程序“投,你所好.APK”这个手机端软件从所挂主页下载,如图5所示。
  将手机连接电脑,在电脑中打开手机的内部存储空间,在手机中进入文件夹管理软件,找到需要安装的程序。点击程序,选择安装的按钮,一直单击下一步,显示安装完成即说明本安装程序已经成功安装。安装好之后的运行界面如图6所示。

图6 程序运行界面
3.2 服务端软件的使用
  当服务端初始界面显示时如图7所示,需输入官方比赛名称,参赛队伍数量以及参赛队伍的名称和选号。

图7 服务端初始界面
  图8为投票主界面。在进入投票主界面后,需要操作的共有3个按钮:当投票正式开始时,点击“接收信息”按钮,开始接收投票或者留言;“停止接收”按钮用于比赛结束或者中间暂停阶段时,停止接收留言或者投票;每个用户在每一轮中只有一次投票机会,每进行一轮后,设定投票重新开始,用户选择“投票开始”按钮继续投票。

图8 投票主界面
3.3 网络的设置
  首先进入手机设置功能,查看无线和网络的选项,若手机有设置无线热点WiFi功能,可看到有网络共享与便携式热点的选项。进入此选项,选择开启便携式WiFi热点,在开启功能后,点击配置WiFi热点进入设置界面。设置好用户名和密码,即可使其他手机或者电脑通过WiFi寻找到手机发出的热点。然后输入密码,通过验证再进行通信设置IP。当服务端和手机端同时处于一个局域网内时,通过获取服务端的IP,然后在手机端设置IP地址。当设置完成后,即可实现手机端与服务端的数据传输。
结语
  基于手机与互联网的手机投票系统是将Android系统手机与Windows系统的电脑端通过局域网连接,以手机端为客户端,电脑端为服务端的投票系统。在未来的智能化应用中,手机投票系统有着良好的前景。

参考文献
[1] 林城. Google Android 2.X应用开发实战[M].北京:清华大学出版社,2011.
[2] 吴亚峰,苏亚光. Android 2.0游戏开发实战宝典[M]. 北京:人民邮电出版社,2010.
[3] 埃克尔. Java编程思想[M]. 4版. 北京:机械工业出版社,2007.

网站统计|优领域|优领域 ( 粤ICP备12011853号-1 )  

GMT+8, 2019-3-21 05:58 , Processed in 0.047919 second(s), 12 queries .

Copyright © 2008-2014 优领域

回顶部