最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

基于Android平台的手机签到管理系统与设计20160821

IT圈 admin 50浏览 0评论

2024年4月25日发(作者:盍辰宇)

基于Android平台的手机签到管理系统与设计

1.选题缘由和意义

在我们日常生活中,学生上课由老师进行点名考勤,参加工作后工作单位有打卡或者按

指纹出勤考勤系统,参加某项活动需要纸质签到;在学习、工作、活动等等,考勤/签到管

理系统是必不可缺少的。

传统的签到模式不仅低效繁琐、占用时间,而且也为管理人员带来极其繁重的统计工作。

新兴签到方式,如指纹签到,只能应用于个别有条件的场景下,无法普及。因此设计实现一

个方便快捷、适合多方面多场景使用,而且便于普及的签到系统迫在眉睫。

目前企事业单位对员工的考勤管理,基本上都是采用传统的打卡、指纹识别等被动考勤

制度,而对位于高层写字楼(特别是电梯资源又比较紧张的)的企业员工常会因为等电梯而

迟到几分钟。而且现有考勤系统已经不能满足客户的各种需求了,原因如下:

(1)现有系统RS485型居多,它布线麻烦、施工工期长、网络不稳定、系统总费用高昂、

后期网络维护和更改困难。

(2)系统功能单一,需要安装考勤系统、数据采集系统、工控监测几套系统,才能满足考

勤门禁收费、生产数据采集、生产设备监测等需要。

(3)系统不灵活,客户的需求需要提交到系统制造商那里进行个性化定制,造成客户、供

应商陷入频繁的功能定制的漩涡里

现代社会,随着计算机技术和网络通信技术的不断发展和迅速崛起我们的生产生活方式

也发生了巨大的变化。特别是智能手机的快速发展和互联网时代的到来,同时由计算机设计

的一些软件和系统为我们的生活提供了许多方便,从而也代替了一些较复杂的手工程序。基

于这种思想,本文设计实现了一个基于Android平台的手机签到系统。相比于传统的签到方

式如教师点名签到方式,利用手机GPS定位发送位置进行签到既可以节省时间,又解决了

代签的问题,既方便又快捷,也提高了管理质量,能够准确反映出勤情况。

基于Android平台的手机签到管理系统主要包括二大组成部分:

(1)Android应用软件,即android app;用户在android手机上安装该app,通过相关进行

登记,实现一键式签到

(2)后台web服务

基于掌握Android手机应用开发技术设计制作一款动态考勤系统。本系统以Java语言为

基础,结合Android移动开发平台,并利用Android提供的SDK,完成在Android平台上运

行签到管理软件,形成一款具有考勤等功能的手机应用软件。该软件可以通过验证用户点击

签到功能,并根据系统服务时间来实现签到、签出,人员信息录入可以将人员姓名、性别、

身份证号、头像上传到服务器,也可以根据道路实时状况信息拍照上传到服务器,管理员可

以后台网站进行管理设置,每个登录人员可以通过点击签到记录来查看签到、签出的时间。

2、Android平台选择与系统简介

2.1 智能手机平台对比

当今时代我们使用的智能手机系统平台不是android即是iphone(ios),两大平台的对

比,最显著的区别在于:android开放,而iphone(封闭)。

移动互联网是Android平台最重要的应用,无论系统内核、应用软件还是硬件设计,几

乎都是围绕着快捷的移动互联网应用所展开,同时Android与PC平台存在先天的基因联系,

可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。

至于iPhone,它只是苹果公司的封闭平台,用户无法在iPhone中自行安装应用,所有的

东西都应该苹果自行设计制造,从而确保利润不被第三方分享。苹果自己为iPhone开发了

嵌入系统以及完整的应用,但它并不宣扬iPhone的软件设计,而是将iPhone作为一个包含

软硬件卖点的手机产品出售。同样,苹果式的奢华与时尚让iPhone大获成功,以至于成为

手机市场的风向标。

与苹果相反,Android则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为

业界所公认是自由软件高度活跃,错误可以被快速修正,新的应用、新的创意可以不断出现。

Android平台的另外一个优势是标准化和跨平台。

Android和操作系统进行了紧密的整合,从而可以方便地使用操作系统的功能。这与难

于使用操作系统功能的J2ME相比,无疑对开发者有很大的吸引力。并且从图形应用界面的

开发上面来看,Android可以使用配置文件来描述图形控件的布局,用Java代码编写实际响

应代码,这样方便得多。当然由于Android己经提供了大量现成的应用API和应用工具,使

得常规智能手机功能的开发变得非常容易和简单。

相对iphone(ios),android更便捷、快速、开放;而且能够快速发布已开发完成的app,

所以整个签到系统基于android平台而开发。

2.2系统简介

Android,是一个以Linux为基础的开源移动设备操作系统。该平台由操作系统、中间

件、用户界面和应用软件组成。它采用软件堆层的架构,主要分为三部分:底层以Linux内

核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual

Machine,由C++开发。最上层是各种应用软件,包括通话程序、短信程序等,应用软件则

由各公司自行开发,以Java作为编写程序的一部分。由于Android和操作系统进行了紧密

的整合并提供了许多API和工具,所以用户可以方便地使用Android手机。

3、国内外研究现状

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如

智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初

由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,

Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良

Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。

第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,

如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞

班系统,跃居全球第一。 2012年11月数据显示,Android占据全球智能手机操作系统市

场76%的份额,中国市场占有率为90%。2013年09月24日谷歌开发的操作系统Android

在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

随着Android手机的普及和智能手机的快速发展,并且国内外互联网时代的推动,越来

越多的企事业单位都走在了移动办公的道路上,移动办公,即通过手机进行相关事务的处理

和审批,移动互联网给我们带来了很多便利,如通过支付宝进行支付,不再是传统的现金支

付和POS支付;公司相关工作流程都转移到了手机上,实现远程高效办公。

与传统签到方式对比,互联网的推动,手机签到更加高效、便捷、准确;减少很大的人

工投入,与时俱进。

4.拟解决的主要问题

第一,掌握Android应用软件,即Android app的开发技术与技巧;进行快速功能迭代和更

第二,整个签到管理系统的框架设计,使其适用于多种场景,如学生签到,上班签到,活动

节目签到等等;让系统能够通过动态设置,以适应不同场景和使用范围

第三,系统三大模块的开发和设计,两大模块为:android 应用软件、后台功能服务。android

应用软件,即手机签到软件;后台功能服务,即签到数据采集及统计分析功能。

5.研究思路与研究方法

5.1研究思路

按照Android应用软件app开发的软件工程规范、方法、技巧进行Android App开发

按照标准的软件开发流程及方法,对后台及管理网站进行开发设计

按照软件开发设计思路,对整个平台进行功能需求分析及框架设计

5.2 研究方法

5.2.1文献研究法

文献研究法是学位论文的基本研究方法。本文通过对高校教育信息化相关文献的查阅、

整理和分析,总结前人在该领域的研究成果和不足,奠定本文的理论研究基础。

5.2.2实证研究法

实证研究法是本文使用的主要方法。通过项目亲身实践开发,掌握第一手数据,发现项

目开发实施过程中的问题。

6.研究的重点和难点

6.1研究的重点

本论文是基于android平台的手机签到管理系统,可将整个系统分为三大组成部分:

android应用软件、后台服务、后台管理网站

android应用软件按照功能模块可分为:普通用户功能模块、管理员功能模块、签到功

能模块、权限管理模块、数据查看功能模块

后台服务按照功能模块可分为:签到功能模块、用户登录模块、数据查询模块

6.2研究的难点

研究过程中的难点在于数据库建模和数据库设计、Android app快速的迭代开发、签到

数据的有效性对比。所有的用户数据及签到相关数据,必须通过一定的数据模型关联起来,

进行可靠的数据库建模,存储有用的数据,其相关的逻辑结构、数据结构、数据类型等等,

必须通过详细设计,保证数据库建模的正确性和可靠性。android app 讲究的是快速迭代,

发现问题立刻解决,同时必须保证签到数据的准确性和有效性,防止用户伪造。

7.研究框架

1、绪论

1.1 背景

在我们日常生活中,学生上课由老师进行点名考勤,参加工作后工作单位有打卡或者按

指纹出勤考勤系统,参加某项活动需要纸质签到;在学习、工作、活动等等,考勤/签到管

理系统是必不可缺少的。

目前企事业单位对员工的考勤管理,基本上都是采用传统的打卡、指纹识别等被动考勤

制度,而对位于高层写字楼(特别是电梯资源又比较紧张的)的企业员工常会因为等电梯而

迟到几分钟。而且现有考勤系统已经不能满足客户的各种需求了,原因如下:

(1)现有系统RS485型居多,它布线麻烦、施工工期长、网络不稳定、系统总费用高昂、

后期网络维护和更改困难。

(2)系统功能单一,需要安装考勤系统、数据采集系统、工控监测几套系统,才能满足考

勤门禁收费、生产数据采集、生产设备监测等需要。

(3)系统不灵活,客户的需求需要提交到系统制造商那里进行个性化定制,造成客户、供

应商陷入频繁的功能定制的漩涡里

现代社会,随着计算机技术和网络通信技术的不断发展和迅速崛起我们的生产生活方式

也发生了巨大的变化。特别是智能手机的快速发展和互联网时代的到来,同时由计算机设计

的一些软件和系统为我们的生活提供了许多方便,从而也代替了一些较复杂的手工程序。基

于这种思想,本文设计实现了一个基于Android平台的手机签到系统。相比于传统的签到方

式如教师点名签到方式,利用手机GPS定位发送位置进行签到既可以节省时间,又解决了

代签的问题,既方便又快捷,也提高了管理质量,能够准确反映出勤情况。

1.2 开发平台选择

当今时代我们使用的智能手机系统平台不是android即是iphone(ios),两大平台的对

比,最显著的区别在于:android开放,而iphone(封闭)。

移动互联网是Android平台最重要的应用,无论系统内核、应用软件还是硬件设计,几

乎都是围绕着快捷的移动互联网应用所展开,同时Android与PC平台存在先天的基因联系,

可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。

至于iPhone,它只是苹果公司的封闭平台,用户无法在iPhone中自行安装应用,所有的

东西都应该苹果自行设计制造,从而确保利润不被第三方分享。苹果自己为iPhone开发了

嵌入系统以及完整的应用,但它并不宣扬iPhone的软件设计,而是将iPhone作为一个包含

软硬件卖点的手机产品出售。同样,苹果式的奢华与时尚让iPhone大获成功,以至于成为

手机市场的风向标。

与苹果相反,Android则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为

业界所公认是自由软件高度活跃,错误可以被快速修正,新的应用、新的创意可以不断出现。

Android平台的另外一个优势是标准化和跨平台。

Android和操作系统进行了紧密的整合,从而可以方便地使用操作系统的功能。这与难

于使用操作系统功能的J2ME相比,无疑对开发者有很大的吸引力。并且从图形应用界面的

开发上面来看,Android可以使用配置文件来描述图形控件的布局,用Java代码编写实际响

应代码,这样方便得多。当然由于Android己经提供了大量现成的应用API和应用工具,使

得常规智能手机功能的开发变得非常容易和简单。

相对iphone(ios),android更便捷、快速、开放;而且能够快速发布已开发完成的app,所

以整个签到系统基于android平台而开发。

2、android构架分析

Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机

上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application

framework之上。

Android主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体

系结构的机器上同样可以运行。

android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库

层和linux核心层。蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿

色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。在Application

Framework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。

1) 应用程序

所有的应用程序都是使用JAVA语言编写的,每一个应用程序由一个或者多个活动组成,

活动必须以Activity类为超类,活动类似于操作系统上的进程,但是活动比操作系统的进程

要更为灵活,与进程类似的是,活动在多种状态之间进行切换。

利用JAVA的跨平台性质,基于Android框架开发的应用程序可以不用编译运行于任何

一台安装有android系统的平台,这点正是Android的精髓所在。

2) 应用程序框架

应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且

任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。帮助

程序员快速的开发程序,并且该应用程序重用机制也使用户可以方便的替换程序组件。

隐藏在每个应用后面的是一系列的服务和系统, 其中包括:

a.丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网

格(grids),文本框(text boxes),按钮(buttons),甚至可嵌入的web浏览器。

b.内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联

系人数据库),或者共享它们自己的数据。

c.资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和

布局文件(layout files)。

d.通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示

信息。

e.活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功

能。

3) 系统运行库

a)程序库

Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过

Android应用程序框架为开发者提供服务。以下是一些核心库:

Bionic系统C库。

媒体库,基于PacketVideo OpenCORE。

Surface Manager 顾名思义,用于管理Surface。

Webkit,LibWebCore 浏览器,基于Webkit引擎。

SGL 底层的2D图形引擎

3D libraries 基于OpenGL ES 1.0 APIs实现

FreeType 位图(bitmap)和矢量(vector)字体显示。

SQLite 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

b)Android 运行库

Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每

一个 Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的

Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所

有的类都经由JAVA编译器编译,然后通过SDK中的 "dx" 工具转化成.dex格式由虚拟机执

行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

4) Linux 内核

Android 的核心系统服务依赖于 Linux 2.6 内核 ,如安全性,内存管理,进程管理, 网

络协议栈和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。

3、技术介绍

3.1 Java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以

理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言

作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维

方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动

态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用

程序等。

3.2 HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网

络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发

布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信

息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根

基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组

(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的

RFC 2616定义了HTTP 1.1。3.4 sql server数据库

3.3 web api

Web API是网络应用程序接口。包含了广泛的功能,其中的大部分均可以通过API(应

用程序编程接口)访问。

4、签到管理系统软件实现

开发一个基于Android平台的手机签到管理系统。该系统软件可以通过验证用户点击签

到功能,根据系统服务时间和GPS定位来实现签到、签出。通过人员信息的预录入,可以

将人员的姓名、身份证号、头像等相关信息进行关联,并且可以修改信息,管理员可以设置

签到配置,如每周需要签到的日期、签到的有效时间等等,每个登录人员可以通过点击签到

记录来查看每天的签到详细信息。

开发环境:Android SDK 4.4.4

开发平台:Eclipse

开发语言:java

后台开发:C#、.NET web api

4.1 需求分析

签到管理系统软件主要应完成以下七种功能:

1) 登录功能

登录功能进行用户身份认证,验证用户是否存在,账号和密码是否匹配。由手机app

客户端将账号和密码通过一定的安全机制通过网络访问服务器,服务器进行数据库

查询对比,如匹配则用户登录成功,并且分配认证口令token,以便日后免登陆;

如不匹配则返回错误信息提示,并在手机app前端显示给用户。

2) 签到功能

签到功能的实现,根据手机GPS定位和签到时间进行判断,服务器已预设好签到设

置的情况下,手机把用户及GPS定位信息发送到服务器,服务器根据用户名、GPS

定位、服务器时间进行对比;若符合设定好的签到条件,则提示签到成功,否则提

示签到失败。

3) 签出(签离)功能

签出(签离)功能的实现,与签到功能逻辑类似;根据用户名、GPS定位、服务器

自身时间和签出(签离)规定的时间进行对比,如符合则签出(签离)成功,否则

进行警告,并且在后台服务数据库做记录,记录异常签出情况。

4) 人员信息录入功能

人员信息录入功能就是将用户的姓名、身份证、编号(学生号/员工编号)、类型、

头像等人员相关信息上传到服务器进行预登记。也可用户通过手机app进行注册验

证,由后台服务进行匹配对比。

5) 签到信息查询功能

签到信息查询功能即每个人都可以通过手机app查看每天签到的记录,包括签到/

签出时间和地点、异常情况信息;让用户详细掌握每天的签到/签出记录。

6) 时间设置

时间设置,即管理人员可以通过手机app客户端进行签出签离时间界限的设定,通

常为每周设定、每月设定、工作日设定及特殊日期设定。

7) 管理员设置

管理员设置功能实现,即设置哪些用户为管理员,具备哪些高级权限。

4.2 框架设计

基于Android平台的手机签到系统是以Android app为主体,并结合后台服务功能和数

据库而开发设计的。其框架为APP、web api、sqlserver数据库。

Android APP作为整个手机签到系统的主题,并且为使用者前端客户端。

Web api即手机签到系统的后台服务,为app提供业务逻辑接口,并将数据保存到数据

库中。

Sqlserver即数据库,所有数据的存储和读取。

手机签到系统主要流程如下:

开始

是否已登录

登录

否是

是否到达签到

地点

采集GPS并进行签

到/签出

后台进行逻辑判断是否

有效签到/签出

签到/签出完成

1) 当用户打开APP时,先登录自己的账号

2) 登录成功后,当用户到达签到/签出的地点,使用APP的签到/签出功能

3) 手机采集GPS定位,并向服务器发送相关数据

4) 服务器进行相关逻辑处理,判断签到/签出是否有效,如有效签到/签出成功并进行数据

登记;否则提醒用户,并由用户重新进行签到/签出

根据签到系统主要业务流程,开发设计如下:

Android APP:java编程语言和android开发环境,进行UI开发及功能开发

Web api:c#编程语言,采用MVC Web api开发技术进行接口功能开发,开发环境为Visual

Studio 2015,采用.Net开发平台,其优点为快速便捷开发,并且通过IIS继续后台服务,即

方便也减少配置工作量,同时便于更新维护。

Sqlserver:数据库,结合Visual Studio 2015的.net开发平台,能够进行快速访问,web api

已集成了对sqlserver数据库访问的支持,无需添加其他第三方支持库,并且统一为Windows

平台作为后台服务器系统环境。

通信机制:采用HTTP访问,数据格式采用JSON格式,便于解析。

安全机制:采用MD5加密算法对用户密码进行加密,在通信过程中采用服务器分配的动态

秘钥进行关键数据加密,确保关键数据的安全性和可靠性。

4.3 数据库建模和设计

数据库建模主要是针对关键数据进行建模和设计,包括人员信息、登录认证信息、签到

/签出信息、管理员信息、时间设置五大部分。

1) 人员信息

关键数据名称

姓名

证件类型

证件号码

登录用户名

登录密码

出生年月

绑定手机号码

一级单位(单位/公司名称)

二级单位(学院/部门)

三级单位(班级/科室)

录入时间

管理员认证

2) 登录认证信息

关键数据名称

用户名

登录时间

认证口令

分配密钥

认证口令和密钥过期时间

数据类型

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Datetime

数据类型

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Datetime

Nvarchar(100)

管理员认证,即填写管理员的用户名,如果没有管理员进行认证,则为空

认证口令:登录后分配的认证令牌,用于app客户端进行免登陆认证。

分配密钥:动态密钥,每次登录后产生,app客户端用于对关键数据进行加密。

3) 签到/签出信息

关键数据名称

用户名

GPS定位

签到/签出类型

签到/签出时间

是否有效

手机序列号

手机型号

对应签到/签出日期

4) 时间设置

关键数据名称

是否签到/签出

录入时间

修改时间

修改管理员

5) 管理员信息

关键数据名称

用户名

录入时间

登记手机序列号

数据类型

Nvarchar(100)

Datetime

Nvarchar(100)

数据类型

Int

Int

Int

Int(1代表是,0代表否)

Datetime

Datetime

Nvarchar(100)

数据类型

Nvarchar(100)

Nvarchar(100)

Int(1代表签到,2代表签出)

Datetime

Int(1代表有效,0代表无效)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

登记手机型号 Nvarchar(100)

管理人员只能在授权的手机上才能具备相关管理员管理及时间设置权限。

4.4 功能模块设计

功能模块按照需求分析进行划分,可总结为四大主要模块,分别是:登录认证模块、人

员信息录入模块、签到/签出模块、时间设置模块。

1) 登录认证模块

登录认证流程如下:

开始

是否已注册

录入相关信息进行

注册

输入用户名和密码

进行登录认证

联系管理员进行关

键信息修改(包括

密码重置)

后台逻辑分析

是否认证成功

分配认证口令和动

态密钥

登录成功

A、 用户通过用户名(手机号)和密码进行登录,如为注册,先录入信息进行注册。

B、 后台进行认证,如果认证失败,则联系管理员进行相关设置调整;如果认证成功,则分

配对应的认证口令和动态密钥。

2) 人员信息录入模块

人员信息录入必须包括数据库建模里面的关键信息,人员信息录入的方式有两种,分别

是:管理员录入、用户注册。

A、 管理员预录入

管理员提前对需要签到/签出的人员进行信息登记,并且设置固定密码;由用户登录后

进行密码修改

B、 用户注册

用户根据app客户端的流程进行注册,并且自己填写相关信息,默认情况下都是可以注

册成功的,后续有管理员进行认证;管理员认证成功的列入正常统计范围。

3) 签到/签出

签到/签出流程如下:

开始

是否已登录登录

签到/签出按钮

不通过

采集GPS定位

向服务端发送请求

服务器对签到/

签出进行验证

通过

签到/签出成功

A、 用户必须在登录的情况下,才能进入到APP里面进行签到/签出功能

B、 用户按签到/签出功能进行签到/签出,手机采集GPS定位信息,并向服务器发送请求

C、 服务器对接收到的信息进行验证,如验证成功,签到/签出成功,并在服务器数据库进

行数据登记;验证不通过,即重复进行请求。

4) 时间设置

时间设置,是管理人员拥有的功能,可以对需要签到/签出的日期和时间进行设置;签

到时间为设定的XX时刻之前,签出时间为XX时刻之后,管理员只需设定固定的XX时

间界限即可。

时间设置是精确到每天,不区分工作日;也可以设定工作日。但建议管理人员预先设定

好至少三个月以上的签到/签出时间。

5、关键问题解决

5.1 通讯机制

当前主流的通信协议为sokect(tcp/udp)和http协议,tcp通信是实时通信并且可以是

双向的,但是占用后台资源较大;http协议是当前主要采用的通信协议,所以选择http作

为通信协议,具备的优点有:支持高并发、占用服务资源小、编程便捷。同时,数据格式采

用JSON格式,便于前后端对数据进行解析。

在整个通讯机制中,为了提供网络传输数据的安全性和可靠性,对关键数据进行加密,

同时要保证数据的可靠性与时效性,确保数据的真实性。对用户的密码进行MD5加密,确

保密码不会被泄露,增加验证机制,验证数据的时效性和真实性。

验证机制,即当用户登录的时候,由后台服务指定分配一条动态秘钥,手机端在传输关

键数据或者校验码的时候,由该秘钥进行加密,每个手机客户端的秘钥都不一样,算法为本

人自定义的算法。

通讯机制,即为HTTP+JSON格式数据+安全验证机制。

5.2 GPS定位

GPS定位,即通过手机GPS获取定位信息。但是当前手机GPS定位都会有一定的误差,

如何尽可能解决GPS定位误差,让误差尽可能小,控制在有效的范围内,确保每个人都能

正常的进行签到签出。

为了解决让手机GPS定位产生的误差进行能小,采用高德地图开发API接口,在手机

app前端集成了高德地图API接口,通过调用高德地图定位接口功能,更加准确的采集定位

信息,再通过联网和办公地点的GPS定位进行距离计算,如果定位距离相差在100米以内,

即用户签到有效,如果超过预设的距离,则签到无效。

通过为了防止特殊情况的发生,用户可通过与管理人员联系,登记特殊情况下无法正常

签到的相关数据。

7、结论

基于Android平台的手机签到系统。相比于传统的签到方式如教师点名签到方式,利用

手机GPS定位发送位置进行签到既可以节省时间,又解决了代签的问题,既方便又快捷,

也提高了管理质量,能够准确反映出勤情况。

8. 参考文献

[1] 汪永松.Android平台开发之旅[M].北京:机械工业出版社,2010

[2] 朱桂英.Android开发应用从入门到精通[M].北京:中国铁道出版社,2011

[3] Reto d高级编程[M].北京:清华大学出版社,2010

[4] 李刚.疯狂Android讲义[M].北京:电子工业出版社,2011

[5] 佘志龙.Google Android SDK开发范例大全[M].北京:人民邮电出版社,2010

[6] 李宁.Android /OPhone开发完全讲义[M].北京:中国水利水电出版社,2010

[7] 杨文志.Google Android程序设计指南[M].北京:电子工业出版社,2009

[8] 王向辉.Android应用开发[M].北京:清华大学出版社,2010

[9] 杨丰盛.Android应用开发揭秘[M].北京:机械工业出出版社,2010

2024年4月25日发(作者:盍辰宇)

基于Android平台的手机签到管理系统与设计

1.选题缘由和意义

在我们日常生活中,学生上课由老师进行点名考勤,参加工作后工作单位有打卡或者按

指纹出勤考勤系统,参加某项活动需要纸质签到;在学习、工作、活动等等,考勤/签到管

理系统是必不可缺少的。

传统的签到模式不仅低效繁琐、占用时间,而且也为管理人员带来极其繁重的统计工作。

新兴签到方式,如指纹签到,只能应用于个别有条件的场景下,无法普及。因此设计实现一

个方便快捷、适合多方面多场景使用,而且便于普及的签到系统迫在眉睫。

目前企事业单位对员工的考勤管理,基本上都是采用传统的打卡、指纹识别等被动考勤

制度,而对位于高层写字楼(特别是电梯资源又比较紧张的)的企业员工常会因为等电梯而

迟到几分钟。而且现有考勤系统已经不能满足客户的各种需求了,原因如下:

(1)现有系统RS485型居多,它布线麻烦、施工工期长、网络不稳定、系统总费用高昂、

后期网络维护和更改困难。

(2)系统功能单一,需要安装考勤系统、数据采集系统、工控监测几套系统,才能满足考

勤门禁收费、生产数据采集、生产设备监测等需要。

(3)系统不灵活,客户的需求需要提交到系统制造商那里进行个性化定制,造成客户、供

应商陷入频繁的功能定制的漩涡里

现代社会,随着计算机技术和网络通信技术的不断发展和迅速崛起我们的生产生活方式

也发生了巨大的变化。特别是智能手机的快速发展和互联网时代的到来,同时由计算机设计

的一些软件和系统为我们的生活提供了许多方便,从而也代替了一些较复杂的手工程序。基

于这种思想,本文设计实现了一个基于Android平台的手机签到系统。相比于传统的签到方

式如教师点名签到方式,利用手机GPS定位发送位置进行签到既可以节省时间,又解决了

代签的问题,既方便又快捷,也提高了管理质量,能够准确反映出勤情况。

基于Android平台的手机签到管理系统主要包括二大组成部分:

(1)Android应用软件,即android app;用户在android手机上安装该app,通过相关进行

登记,实现一键式签到

(2)后台web服务

基于掌握Android手机应用开发技术设计制作一款动态考勤系统。本系统以Java语言为

基础,结合Android移动开发平台,并利用Android提供的SDK,完成在Android平台上运

行签到管理软件,形成一款具有考勤等功能的手机应用软件。该软件可以通过验证用户点击

签到功能,并根据系统服务时间来实现签到、签出,人员信息录入可以将人员姓名、性别、

身份证号、头像上传到服务器,也可以根据道路实时状况信息拍照上传到服务器,管理员可

以后台网站进行管理设置,每个登录人员可以通过点击签到记录来查看签到、签出的时间。

2、Android平台选择与系统简介

2.1 智能手机平台对比

当今时代我们使用的智能手机系统平台不是android即是iphone(ios),两大平台的对

比,最显著的区别在于:android开放,而iphone(封闭)。

移动互联网是Android平台最重要的应用,无论系统内核、应用软件还是硬件设计,几

乎都是围绕着快捷的移动互联网应用所展开,同时Android与PC平台存在先天的基因联系,

可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。

至于iPhone,它只是苹果公司的封闭平台,用户无法在iPhone中自行安装应用,所有的

东西都应该苹果自行设计制造,从而确保利润不被第三方分享。苹果自己为iPhone开发了

嵌入系统以及完整的应用,但它并不宣扬iPhone的软件设计,而是将iPhone作为一个包含

软硬件卖点的手机产品出售。同样,苹果式的奢华与时尚让iPhone大获成功,以至于成为

手机市场的风向标。

与苹果相反,Android则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为

业界所公认是自由软件高度活跃,错误可以被快速修正,新的应用、新的创意可以不断出现。

Android平台的另外一个优势是标准化和跨平台。

Android和操作系统进行了紧密的整合,从而可以方便地使用操作系统的功能。这与难

于使用操作系统功能的J2ME相比,无疑对开发者有很大的吸引力。并且从图形应用界面的

开发上面来看,Android可以使用配置文件来描述图形控件的布局,用Java代码编写实际响

应代码,这样方便得多。当然由于Android己经提供了大量现成的应用API和应用工具,使

得常规智能手机功能的开发变得非常容易和简单。

相对iphone(ios),android更便捷、快速、开放;而且能够快速发布已开发完成的app,

所以整个签到系统基于android平台而开发。

2.2系统简介

Android,是一个以Linux为基础的开源移动设备操作系统。该平台由操作系统、中间

件、用户界面和应用软件组成。它采用软件堆层的架构,主要分为三部分:底层以Linux内

核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual

Machine,由C++开发。最上层是各种应用软件,包括通话程序、短信程序等,应用软件则

由各公司自行开发,以Java作为编写程序的一部分。由于Android和操作系统进行了紧密

的整合并提供了许多API和工具,所以用户可以方便地使用Android手机。

3、国内外研究现状

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如

智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初

由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,

Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良

Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。

第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,

如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞

班系统,跃居全球第一。 2012年11月数据显示,Android占据全球智能手机操作系统市

场76%的份额,中国市场占有率为90%。2013年09月24日谷歌开发的操作系统Android

在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

随着Android手机的普及和智能手机的快速发展,并且国内外互联网时代的推动,越来

越多的企事业单位都走在了移动办公的道路上,移动办公,即通过手机进行相关事务的处理

和审批,移动互联网给我们带来了很多便利,如通过支付宝进行支付,不再是传统的现金支

付和POS支付;公司相关工作流程都转移到了手机上,实现远程高效办公。

与传统签到方式对比,互联网的推动,手机签到更加高效、便捷、准确;减少很大的人

工投入,与时俱进。

4.拟解决的主要问题

第一,掌握Android应用软件,即Android app的开发技术与技巧;进行快速功能迭代和更

第二,整个签到管理系统的框架设计,使其适用于多种场景,如学生签到,上班签到,活动

节目签到等等;让系统能够通过动态设置,以适应不同场景和使用范围

第三,系统三大模块的开发和设计,两大模块为:android 应用软件、后台功能服务。android

应用软件,即手机签到软件;后台功能服务,即签到数据采集及统计分析功能。

5.研究思路与研究方法

5.1研究思路

按照Android应用软件app开发的软件工程规范、方法、技巧进行Android App开发

按照标准的软件开发流程及方法,对后台及管理网站进行开发设计

按照软件开发设计思路,对整个平台进行功能需求分析及框架设计

5.2 研究方法

5.2.1文献研究法

文献研究法是学位论文的基本研究方法。本文通过对高校教育信息化相关文献的查阅、

整理和分析,总结前人在该领域的研究成果和不足,奠定本文的理论研究基础。

5.2.2实证研究法

实证研究法是本文使用的主要方法。通过项目亲身实践开发,掌握第一手数据,发现项

目开发实施过程中的问题。

6.研究的重点和难点

6.1研究的重点

本论文是基于android平台的手机签到管理系统,可将整个系统分为三大组成部分:

android应用软件、后台服务、后台管理网站

android应用软件按照功能模块可分为:普通用户功能模块、管理员功能模块、签到功

能模块、权限管理模块、数据查看功能模块

后台服务按照功能模块可分为:签到功能模块、用户登录模块、数据查询模块

6.2研究的难点

研究过程中的难点在于数据库建模和数据库设计、Android app快速的迭代开发、签到

数据的有效性对比。所有的用户数据及签到相关数据,必须通过一定的数据模型关联起来,

进行可靠的数据库建模,存储有用的数据,其相关的逻辑结构、数据结构、数据类型等等,

必须通过详细设计,保证数据库建模的正确性和可靠性。android app 讲究的是快速迭代,

发现问题立刻解决,同时必须保证签到数据的准确性和有效性,防止用户伪造。

7.研究框架

1、绪论

1.1 背景

在我们日常生活中,学生上课由老师进行点名考勤,参加工作后工作单位有打卡或者按

指纹出勤考勤系统,参加某项活动需要纸质签到;在学习、工作、活动等等,考勤/签到管

理系统是必不可缺少的。

目前企事业单位对员工的考勤管理,基本上都是采用传统的打卡、指纹识别等被动考勤

制度,而对位于高层写字楼(特别是电梯资源又比较紧张的)的企业员工常会因为等电梯而

迟到几分钟。而且现有考勤系统已经不能满足客户的各种需求了,原因如下:

(1)现有系统RS485型居多,它布线麻烦、施工工期长、网络不稳定、系统总费用高昂、

后期网络维护和更改困难。

(2)系统功能单一,需要安装考勤系统、数据采集系统、工控监测几套系统,才能满足考

勤门禁收费、生产数据采集、生产设备监测等需要。

(3)系统不灵活,客户的需求需要提交到系统制造商那里进行个性化定制,造成客户、供

应商陷入频繁的功能定制的漩涡里

现代社会,随着计算机技术和网络通信技术的不断发展和迅速崛起我们的生产生活方式

也发生了巨大的变化。特别是智能手机的快速发展和互联网时代的到来,同时由计算机设计

的一些软件和系统为我们的生活提供了许多方便,从而也代替了一些较复杂的手工程序。基

于这种思想,本文设计实现了一个基于Android平台的手机签到系统。相比于传统的签到方

式如教师点名签到方式,利用手机GPS定位发送位置进行签到既可以节省时间,又解决了

代签的问题,既方便又快捷,也提高了管理质量,能够准确反映出勤情况。

1.2 开发平台选择

当今时代我们使用的智能手机系统平台不是android即是iphone(ios),两大平台的对

比,最显著的区别在于:android开放,而iphone(封闭)。

移动互联网是Android平台最重要的应用,无论系统内核、应用软件还是硬件设计,几

乎都是围绕着快捷的移动互联网应用所展开,同时Android与PC平台存在先天的基因联系,

可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。

至于iPhone,它只是苹果公司的封闭平台,用户无法在iPhone中自行安装应用,所有的

东西都应该苹果自行设计制造,从而确保利润不被第三方分享。苹果自己为iPhone开发了

嵌入系统以及完整的应用,但它并不宣扬iPhone的软件设计,而是将iPhone作为一个包含

软硬件卖点的手机产品出售。同样,苹果式的奢华与时尚让iPhone大获成功,以至于成为

手机市场的风向标。

与苹果相反,Android则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为

业界所公认是自由软件高度活跃,错误可以被快速修正,新的应用、新的创意可以不断出现。

Android平台的另外一个优势是标准化和跨平台。

Android和操作系统进行了紧密的整合,从而可以方便地使用操作系统的功能。这与难

于使用操作系统功能的J2ME相比,无疑对开发者有很大的吸引力。并且从图形应用界面的

开发上面来看,Android可以使用配置文件来描述图形控件的布局,用Java代码编写实际响

应代码,这样方便得多。当然由于Android己经提供了大量现成的应用API和应用工具,使

得常规智能手机功能的开发变得非常容易和简单。

相对iphone(ios),android更便捷、快速、开放;而且能够快速发布已开发完成的app,所

以整个签到系统基于android平台而开发。

2、android构架分析

Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机

上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application

framework之上。

Android主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体

系结构的机器上同样可以运行。

android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库

层和linux核心层。蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿

色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。在Application

Framework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。

1) 应用程序

所有的应用程序都是使用JAVA语言编写的,每一个应用程序由一个或者多个活动组成,

活动必须以Activity类为超类,活动类似于操作系统上的进程,但是活动比操作系统的进程

要更为灵活,与进程类似的是,活动在多种状态之间进行切换。

利用JAVA的跨平台性质,基于Android框架开发的应用程序可以不用编译运行于任何

一台安装有android系统的平台,这点正是Android的精髓所在。

2) 应用程序框架

应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且

任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。帮助

程序员快速的开发程序,并且该应用程序重用机制也使用户可以方便的替换程序组件。

隐藏在每个应用后面的是一系列的服务和系统, 其中包括:

a.丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网

格(grids),文本框(text boxes),按钮(buttons),甚至可嵌入的web浏览器。

b.内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联

系人数据库),或者共享它们自己的数据。

c.资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和

布局文件(layout files)。

d.通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示

信息。

e.活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功

能。

3) 系统运行库

a)程序库

Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过

Android应用程序框架为开发者提供服务。以下是一些核心库:

Bionic系统C库。

媒体库,基于PacketVideo OpenCORE。

Surface Manager 顾名思义,用于管理Surface。

Webkit,LibWebCore 浏览器,基于Webkit引擎。

SGL 底层的2D图形引擎

3D libraries 基于OpenGL ES 1.0 APIs实现

FreeType 位图(bitmap)和矢量(vector)字体显示。

SQLite 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

b)Android 运行库

Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每

一个 Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的

Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所

有的类都经由JAVA编译器编译,然后通过SDK中的 "dx" 工具转化成.dex格式由虚拟机执

行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

4) Linux 内核

Android 的核心系统服务依赖于 Linux 2.6 内核 ,如安全性,内存管理,进程管理, 网

络协议栈和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。

3、技术介绍

3.1 Java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以

理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言

作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维

方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动

态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用

程序等。

3.2 HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网

络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发

布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信

息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根

基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组

(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的

RFC 2616定义了HTTP 1.1。3.4 sql server数据库

3.3 web api

Web API是网络应用程序接口。包含了广泛的功能,其中的大部分均可以通过API(应

用程序编程接口)访问。

4、签到管理系统软件实现

开发一个基于Android平台的手机签到管理系统。该系统软件可以通过验证用户点击签

到功能,根据系统服务时间和GPS定位来实现签到、签出。通过人员信息的预录入,可以

将人员的姓名、身份证号、头像等相关信息进行关联,并且可以修改信息,管理员可以设置

签到配置,如每周需要签到的日期、签到的有效时间等等,每个登录人员可以通过点击签到

记录来查看每天的签到详细信息。

开发环境:Android SDK 4.4.4

开发平台:Eclipse

开发语言:java

后台开发:C#、.NET web api

4.1 需求分析

签到管理系统软件主要应完成以下七种功能:

1) 登录功能

登录功能进行用户身份认证,验证用户是否存在,账号和密码是否匹配。由手机app

客户端将账号和密码通过一定的安全机制通过网络访问服务器,服务器进行数据库

查询对比,如匹配则用户登录成功,并且分配认证口令token,以便日后免登陆;

如不匹配则返回错误信息提示,并在手机app前端显示给用户。

2) 签到功能

签到功能的实现,根据手机GPS定位和签到时间进行判断,服务器已预设好签到设

置的情况下,手机把用户及GPS定位信息发送到服务器,服务器根据用户名、GPS

定位、服务器时间进行对比;若符合设定好的签到条件,则提示签到成功,否则提

示签到失败。

3) 签出(签离)功能

签出(签离)功能的实现,与签到功能逻辑类似;根据用户名、GPS定位、服务器

自身时间和签出(签离)规定的时间进行对比,如符合则签出(签离)成功,否则

进行警告,并且在后台服务数据库做记录,记录异常签出情况。

4) 人员信息录入功能

人员信息录入功能就是将用户的姓名、身份证、编号(学生号/员工编号)、类型、

头像等人员相关信息上传到服务器进行预登记。也可用户通过手机app进行注册验

证,由后台服务进行匹配对比。

5) 签到信息查询功能

签到信息查询功能即每个人都可以通过手机app查看每天签到的记录,包括签到/

签出时间和地点、异常情况信息;让用户详细掌握每天的签到/签出记录。

6) 时间设置

时间设置,即管理人员可以通过手机app客户端进行签出签离时间界限的设定,通

常为每周设定、每月设定、工作日设定及特殊日期设定。

7) 管理员设置

管理员设置功能实现,即设置哪些用户为管理员,具备哪些高级权限。

4.2 框架设计

基于Android平台的手机签到系统是以Android app为主体,并结合后台服务功能和数

据库而开发设计的。其框架为APP、web api、sqlserver数据库。

Android APP作为整个手机签到系统的主题,并且为使用者前端客户端。

Web api即手机签到系统的后台服务,为app提供业务逻辑接口,并将数据保存到数据

库中。

Sqlserver即数据库,所有数据的存储和读取。

手机签到系统主要流程如下:

开始

是否已登录

登录

否是

是否到达签到

地点

采集GPS并进行签

到/签出

后台进行逻辑判断是否

有效签到/签出

签到/签出完成

1) 当用户打开APP时,先登录自己的账号

2) 登录成功后,当用户到达签到/签出的地点,使用APP的签到/签出功能

3) 手机采集GPS定位,并向服务器发送相关数据

4) 服务器进行相关逻辑处理,判断签到/签出是否有效,如有效签到/签出成功并进行数据

登记;否则提醒用户,并由用户重新进行签到/签出

根据签到系统主要业务流程,开发设计如下:

Android APP:java编程语言和android开发环境,进行UI开发及功能开发

Web api:c#编程语言,采用MVC Web api开发技术进行接口功能开发,开发环境为Visual

Studio 2015,采用.Net开发平台,其优点为快速便捷开发,并且通过IIS继续后台服务,即

方便也减少配置工作量,同时便于更新维护。

Sqlserver:数据库,结合Visual Studio 2015的.net开发平台,能够进行快速访问,web api

已集成了对sqlserver数据库访问的支持,无需添加其他第三方支持库,并且统一为Windows

平台作为后台服务器系统环境。

通信机制:采用HTTP访问,数据格式采用JSON格式,便于解析。

安全机制:采用MD5加密算法对用户密码进行加密,在通信过程中采用服务器分配的动态

秘钥进行关键数据加密,确保关键数据的安全性和可靠性。

4.3 数据库建模和设计

数据库建模主要是针对关键数据进行建模和设计,包括人员信息、登录认证信息、签到

/签出信息、管理员信息、时间设置五大部分。

1) 人员信息

关键数据名称

姓名

证件类型

证件号码

登录用户名

登录密码

出生年月

绑定手机号码

一级单位(单位/公司名称)

二级单位(学院/部门)

三级单位(班级/科室)

录入时间

管理员认证

2) 登录认证信息

关键数据名称

用户名

登录时间

认证口令

分配密钥

认证口令和密钥过期时间

数据类型

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Datetime

数据类型

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

Datetime

Nvarchar(100)

管理员认证,即填写管理员的用户名,如果没有管理员进行认证,则为空

认证口令:登录后分配的认证令牌,用于app客户端进行免登陆认证。

分配密钥:动态密钥,每次登录后产生,app客户端用于对关键数据进行加密。

3) 签到/签出信息

关键数据名称

用户名

GPS定位

签到/签出类型

签到/签出时间

是否有效

手机序列号

手机型号

对应签到/签出日期

4) 时间设置

关键数据名称

是否签到/签出

录入时间

修改时间

修改管理员

5) 管理员信息

关键数据名称

用户名

录入时间

登记手机序列号

数据类型

Nvarchar(100)

Datetime

Nvarchar(100)

数据类型

Int

Int

Int

Int(1代表是,0代表否)

Datetime

Datetime

Nvarchar(100)

数据类型

Nvarchar(100)

Nvarchar(100)

Int(1代表签到,2代表签出)

Datetime

Int(1代表有效,0代表无效)

Nvarchar(100)

Nvarchar(100)

Nvarchar(100)

登记手机型号 Nvarchar(100)

管理人员只能在授权的手机上才能具备相关管理员管理及时间设置权限。

4.4 功能模块设计

功能模块按照需求分析进行划分,可总结为四大主要模块,分别是:登录认证模块、人

员信息录入模块、签到/签出模块、时间设置模块。

1) 登录认证模块

登录认证流程如下:

开始

是否已注册

录入相关信息进行

注册

输入用户名和密码

进行登录认证

联系管理员进行关

键信息修改(包括

密码重置)

后台逻辑分析

是否认证成功

分配认证口令和动

态密钥

登录成功

A、 用户通过用户名(手机号)和密码进行登录,如为注册,先录入信息进行注册。

B、 后台进行认证,如果认证失败,则联系管理员进行相关设置调整;如果认证成功,则分

配对应的认证口令和动态密钥。

2) 人员信息录入模块

人员信息录入必须包括数据库建模里面的关键信息,人员信息录入的方式有两种,分别

是:管理员录入、用户注册。

A、 管理员预录入

管理员提前对需要签到/签出的人员进行信息登记,并且设置固定密码;由用户登录后

进行密码修改

B、 用户注册

用户根据app客户端的流程进行注册,并且自己填写相关信息,默认情况下都是可以注

册成功的,后续有管理员进行认证;管理员认证成功的列入正常统计范围。

3) 签到/签出

签到/签出流程如下:

开始

是否已登录登录

签到/签出按钮

不通过

采集GPS定位

向服务端发送请求

服务器对签到/

签出进行验证

通过

签到/签出成功

A、 用户必须在登录的情况下,才能进入到APP里面进行签到/签出功能

B、 用户按签到/签出功能进行签到/签出,手机采集GPS定位信息,并向服务器发送请求

C、 服务器对接收到的信息进行验证,如验证成功,签到/签出成功,并在服务器数据库进

行数据登记;验证不通过,即重复进行请求。

4) 时间设置

时间设置,是管理人员拥有的功能,可以对需要签到/签出的日期和时间进行设置;签

到时间为设定的XX时刻之前,签出时间为XX时刻之后,管理员只需设定固定的XX时

间界限即可。

时间设置是精确到每天,不区分工作日;也可以设定工作日。但建议管理人员预先设定

好至少三个月以上的签到/签出时间。

5、关键问题解决

5.1 通讯机制

当前主流的通信协议为sokect(tcp/udp)和http协议,tcp通信是实时通信并且可以是

双向的,但是占用后台资源较大;http协议是当前主要采用的通信协议,所以选择http作

为通信协议,具备的优点有:支持高并发、占用服务资源小、编程便捷。同时,数据格式采

用JSON格式,便于前后端对数据进行解析。

在整个通讯机制中,为了提供网络传输数据的安全性和可靠性,对关键数据进行加密,

同时要保证数据的可靠性与时效性,确保数据的真实性。对用户的密码进行MD5加密,确

保密码不会被泄露,增加验证机制,验证数据的时效性和真实性。

验证机制,即当用户登录的时候,由后台服务指定分配一条动态秘钥,手机端在传输关

键数据或者校验码的时候,由该秘钥进行加密,每个手机客户端的秘钥都不一样,算法为本

人自定义的算法。

通讯机制,即为HTTP+JSON格式数据+安全验证机制。

5.2 GPS定位

GPS定位,即通过手机GPS获取定位信息。但是当前手机GPS定位都会有一定的误差,

如何尽可能解决GPS定位误差,让误差尽可能小,控制在有效的范围内,确保每个人都能

正常的进行签到签出。

为了解决让手机GPS定位产生的误差进行能小,采用高德地图开发API接口,在手机

app前端集成了高德地图API接口,通过调用高德地图定位接口功能,更加准确的采集定位

信息,再通过联网和办公地点的GPS定位进行距离计算,如果定位距离相差在100米以内,

即用户签到有效,如果超过预设的距离,则签到无效。

通过为了防止特殊情况的发生,用户可通过与管理人员联系,登记特殊情况下无法正常

签到的相关数据。

7、结论

基于Android平台的手机签到系统。相比于传统的签到方式如教师点名签到方式,利用

手机GPS定位发送位置进行签到既可以节省时间,又解决了代签的问题,既方便又快捷,

也提高了管理质量,能够准确反映出勤情况。

8. 参考文献

[1] 汪永松.Android平台开发之旅[M].北京:机械工业出版社,2010

[2] 朱桂英.Android开发应用从入门到精通[M].北京:中国铁道出版社,2011

[3] Reto d高级编程[M].北京:清华大学出版社,2010

[4] 李刚.疯狂Android讲义[M].北京:电子工业出版社,2011

[5] 佘志龙.Google Android SDK开发范例大全[M].北京:人民邮电出版社,2010

[6] 李宁.Android /OPhone开发完全讲义[M].北京:中国水利水电出版社,2010

[7] 杨文志.Google Android程序设计指南[M].北京:电子工业出版社,2009

[8] 王向辉.Android应用开发[M].北京:清华大学出版社,2010

[9] 杨丰盛.Android应用开发揭秘[M].北京:机械工业出出版社,2010

发布评论

评论列表 (0)

  1. 暂无评论