安卓课程设计文档

安卓课程设计文档
安卓课程设计文档

Android技术应用

课程设计(论文)说明书题目:APP玩转校园

学生姓名:余清泉

院系:电子信息学院

专业:软件外包服务

学号:20130216100

指导教师:张勇

目录

ANDROID技术应用 (1)

课程设计(论文)说明书 (1)

第一章前言 (1)

1.1项目背景及应用环境 (1)

1.2研究意义 (1)

1.3进度安排及分组情况 (1)

第二章开发环境的集成 (2)

2.1 eclipse的安装配置 (2)

2.1.1 JDK的安装和Java环境变量的设置 (2)

2.1.2 安装Eclipse (2)

2.1.3 安装Android SDK (3)

2.1.4 安装配置ADT (3)

2.2 SQLite Expert Professional 3的安装 (4)

第三章系统需求分析及实现目标 (4)

3.1系统需求分析 (4)

3.2系统实现目标 (5)

第四章APP玩转校园系统设计 (5)

4.1 APP玩转校园系统模块划分 (5)

4.2 APP玩转校园系统的数据库结构及功能 (6)

第五章实现过程 (7)

5.1 用户登录注册模块的实现 (7)

5.3校园卡模块的实现 (9)

第六章系统测试 (10)

第七章总结 (10)

致谢 (12)

第一章前言

1.1项目背景及应用环境

当今网络技术越来越发达,各种高科技术遍布全世界,人们充分把这些优势利用到生活娱乐中。当代大学生更是利用各种技术了解校园,学生在校不仅仅是学习,还要关心学校的一切事情,包括学校的新闻、动态、通知等。新生更要了解学校的简介,还要知道该学校的地理位置,交接学校的基本概况。校园卡消费也是学生关注的对象。APP玩转校园主要是针对在校的学生对学校的进一步了解,

1.2研究意义

为了给学生提供对学校情况更加了解的机会,使他们随时、及时的掌握学校下发的通知和有关新闻,对学校的基本情况和位置进行了解,对校园卡进行充值和查看余额,本课题研究了APP玩转校园系统,主要是解决以上的学生问题,给学生提供了很大的方便。

1.3进度安排及分组情况

本系统设计时间为只有一周,需合理安排时间:

星期一、星期二:完成项目的登录和注册的布局和功能,要求注

册后能正常登录;

星期三:完成登录页面中的学校简介、校内新闻、校内通知、入

学指导功能

星期四:实现校园卡的充值和查询余额

星期五:实现校园卡的修改密码和查看信息,加以完善页面。

分组:雷丽艳、胡少丹、兰光耀、余清泉(四个成员遇到问题

一起讨论,共同完成)

第二章开发环境的集成

2.1 eclipse的安装配置

所需的工具:JDK、ADT、 SDK

2.1.1 JDK的安装和Java环境变量的设置

(1)JDK下载地址

JDK下载地址:https://www.360docs.net/doc/d018918591.html,/technetwork/java/javase/downloads/index.html JDK(Java Development Kit)是整个Java的核心,包括一系列Java开发的东西,安装完毕需要配置一下环境变量。

(2) JAVA_HOME

JDK的安装路径,这个环境变量本身不存在,需要创建,创建完则可用%JAVA_HOME%作为统一引用路径,其值为:jdk在你电脑上的安装路径。(3)PATH

PATH属性已存在,可直接编辑。作用是用于配置路径,简化命令的输入,其值为:%JAVA_HOME%\bin。

(4)CLASSPATH

用于编译时JAVA类的路径,注意这里设置的是两个值,(.;)表示的是JVM 先搜索当前目录。其值为:.;%JAVA_HOME%\lib\tools.jar。

(5)配置完毕后,通过cmd运行以下命令:java -version,javac 如果出现

返回信息,则设置成功。

2.1.2 安装Eclipse

Eclipse下载地址

Eclipse下载地址:https://www.360docs.net/doc/d018918591.html,/downloads/? (选择Eclipse

Standard版本即可)。

Eclipse为Java及Android开发的IDE。Eclipse不需要安装,把解压包解压后,剪切eclipse文件夹到你想安装的地方,打开时设置你的工作目录即可。

2.1.3 安装Android SDK

(1)Android SDK下载地址

Android SDK下载地址:

https://www.360docs.net/doc/d018918591.html,/sdk/index.html。

Andorid SDK为Android管理开发包工具,提供了Android各级平台的开发包和工具。注意,因为我们是独立安装,不是一体化(集成系列工具)所以需要单独下载SDK。

(2)运行安装文件,并把安装目录下tools文件夹路径设置进PATH环境变量。

(3)去到安装目录运行SDK Manager,一开始什么平台和工具也没有,需要下载回来。公司内网的话需要使用代理来下载。

(4)到 Tools -> Options…把代理填上,点击 Close 后则会出现众多平台列表,把Android Tools 选上安装,另外建议把2.2以上的全部下载安装。

2.1.4 安装配置ADT

安装ADT

(1)启动Eclipse,点击 Help菜单 -> Install New Software… ?,点击 ?Add… ?,输入地址:https://www.360docs.net/doc/d018918591.html,/android/eclipse/。

(2)选取要安装的项,一路Next完成安装并重启。这样ADT就安装完毕了。

(3)配置ADT

选择 Window -> Preferences ,在弹出面板中就会看到Android设置项,填上安装的SDK路径,则会出现刚才在SDK中安装的各平台包,按OK则完成配置。此时Android的环境就搭建完毕,可以进行Android项目的开发了。

2.2 SQLite Expert Professional 3的安装

SQLite Expert Professional是一款可视化的数据库管理工具,允许用户在 SQLite 服务器上执行创建、编辑、复制、提取等操作。SQLite Expert支持所有的图形界面的SQLite特征。它包括一个可视化查询生成器,一个SQL编辑与语法突出和代码自动完成,强大的table和view设计与导入导出功能。只需下载安装包安装就可以。

第三章系统需求分析及实现目标

3.1系统需求分析

为了更好的服务学生,特此设计了APP玩校系统,简称“玩校”。玩校是实现从入学到毕业不同阶段的需求,提供丰富的掌上应用,集学习、生活、交友、娱乐、消费、于一体的全新校园APP。玩校是对现有校园信息化建设的有力补充,更多的关注在校学生,注重学生的需求,为他们提供更加便捷高效的应用,增强学校、学生、沟通渠道与交流,伴随一个新生菜鸟到职场达人的人生历程;同时,也为喜好软件开发的同学提供一个开放式平台,让他们的作品在平台中展示,让更多有梦想有创意的青年加入,成为下一代互联网创业者的“摇篮”。

本组做的安卓课程设计(玩校),它是针对全国大学生在校生活中必不可少的一部分,其的功能有校园卡余额查询,校内通知,校内新闻,学校介绍、学校的地理位置等。

1.校园卡余额查询、余额充值:

登录卡号可以随时随地的看到自己校园卡的余额,不用去刷卡机上查询余额也不用去一卡通中心充值,直接可以在线充值。并且还可以修改密码和查看个人信息。

2.校内通知:

可以通过此系统查看学校的通知、新闻等,不用发文件或者进学校官网进行查看,可以节约资源,并且可以节约时间。

3.学校介绍:

刚来的新生肯定对校园环境不熟悉,玩校上面有学校介绍,包括楼宇、常见问题以及学校的地理位置等,可以充分的对校园环境进行熟悉。

3.2系统实现目标

学生永远关注校园的一切,为了使学生更好的了解校园,APP玩转校园应该实现以下功能:

(1)用户的登录注册

用户是使用自己的卡号和密码登陆,如果卡号和密码错误便不能登录。没有没有卡号,便可以注册,在注册时,必须满足要求才能注册。只有注册后才能登录本系统。

(2)学校简介、校内新闻、校内通知

登录后的用户可以查看学校简介,这便于新生了解学校。查看学校的新闻以及下发的通知,方便学生了解学校的情况。

(3)校园卡

实现对校园卡的充值、查询余额、修改密码、查看信息(卡号、密码、电话等)。可以随时随地充卡。特别方便。

从总体上考虑,本系统还应该实现以下功能:

有关学校的新闻和动态是自动更新的,从发布那天起,用户便可查看到。

可以对校园卡进行挂失,如果有人丢失了校园卡,挂失后便不能再使用此卡中余额;捡到校园卡可以进行登记,便于管理员看到与失主联系。

查看课程表和校历。

第四章APP玩转校园系统设计

4.1 APP玩转校园系统模块划分

根据APP玩转校园系统的功能,可以将本项目划分为三大模块:用户登录注册、校园情况、校园卡。如图4-1所示:

图4-1 APP 玩转校园模块图

4.2 APP 玩转校园系统的数据库结构及功能

本系统用到数据库的地方比较多,但是数据库中的表只有一张user 表,user 表用来存放用户的信息,卡号、密码、电话、卡余额。该表如图所示:

表4-1 user 表结构

字段

字段名 类型 长度 备注 卡号

Username char 16 主键 密码

Pwd char 6 手机号

Phone char 10 卡金额 Money int

10 初始值为0

APP 玩转校园

校园情况 校园卡

第五章实现过程

5.1 用户登录注册模块的实现

(1)用户登录

用户登录,首先必须进行验证,判断用户名和密码是否正确或者是否为空,将用户名和密码与数据库中存在的进行对比,验证正确性。其中关键代码如下:

//在数据库中按卡号和密码查找

String sql="select * from user where Username=='"+str1+"' and

Pwd=='"+str2+"'";

if(kahao.length()==0||pwd.length()==0)

{

Toast.makeText(MainActivity.this, "用户名或密码不能为空!",

Toast.LENGTH_LONG).show();

}

else

{

//得到结果集

Cursor result=db.rawQuery(sql, null);

//判断此用户名是否存在

if(result.getCount()>0)

{

//传参(卡号)

kahao=(EditText)findViewById(R.id.phone);

String name=kahao.getText().toString();

//进入下一页面

Intent intent=new Intent(MainActivity.this,Login.class);

intent.putExtra("hsd", name);

startActivity(intent);

}else

{

Toast.makeText(MainActivity.this, "用户名或密码输入错误,请重新输入!", Toast.LENGTH_LONG).show();

kahao.setText("");

pwd.setText("");

kahao.requestFocus();

}

}

(2)用户注册

用户注册也需要验证,用户名和密码为空,两次输入密码不一致,用户已注册,没有同意协议都不能注册成功,关键在于注册成功后必须把注册后的信息存入到数据库中,可以进行正常登录,注册页面如图5-1所示。重点代码:

//在数据库中查找,得到结果集

Cursor result=db.rawQuery(sql, null);

//移动指针到满足条件的记录

result.moveToFirst();

//没有注册

if(result.getCount()==0)

{

helper=new DBHelper(this);

db=helper.getWritableDatabase();

//添加数据

ContentValues values = new ContentValues();

values.put("Username", ka);

values.put("Pwd", userpwdfirst);

values.put("Phone", phone);

db.insert("user", null, values);

values.clear();

Toast.makeText(this, "提交成功!", Toast.LENGTH_LONG).show();

//回到登录页面

Intent intent=new Intent(Register.this,MainActivity.class);

startActivity(intent);

图5-1 用户注册图

5.3校园卡模块的实现

校园卡的实现是整个项目中的重点部分,每个人功能都涉及到数据库,按功能分为四大部分,充值、查看余额、修改密码、查看信息。如图5-3所示

校园卡

充值查看余额修改密码查看信息

图5-3 校园卡模块图

(1)充值

给当前登录的卡号充值,对卡号和密码为空和输入的卡号密码的正确性进行判断,利用数据库取出字段进行验证,如果错误,弹出相应的信息提示框。

判断为空:str1.equals("")||str2.equals(null)||str3.equals("")

判断是否正确:Cursor result2=db.rawQuery(sql, null);

result2.getCount()<0

充值成功,增加金额:

ContentValues values = new ContentValues();

String sql3="select * from user where username = '"+str1+"'";

//得到结果集

Cursor result=db.rawQuery(sql3, null);

//注意:移动指针到顶一个满足条件的记录

result.moveToFirst();

////得到所有字段内容

int int4=Integer.parseInt(str3);

int money;

money = result.getInt(3);

money += int4;

System.out.println("money"+money);

String sql2="update user set Money=='"+money+"' where username == '"+str1+"'"; db.execSQL(sql2);

Toast.makeText(Chongzhi.this, "充值成功", Toast.LENGTH_LONG).show();

db.close();

(2)查看余额

查看当前卡号的余额,必须将当前登录的卡号传递给此页面,在按卡号查

看余额,传参例如:

//传用户名(卡号)

String name=kahao.getText().toString();intent.putExtra("hsd", name);

//接受参数

String name1 = getIntent().getStringExtra("hsd").toString();

然后按卡号name1在数据库中查找

String sql3="select money from user where username = '"+name1+"'";

//得到结果集

Cursor result=db.rawQuery(sql3, null);

//注意:移动指针到顶一个满足条件的记录

result.moveToFirst();

//得到所有字段内容

int money=result.getInt(0);

//System.out.print("testcz" + money);

yue1.setText("您的余额为"+money);

第六章系统测试

该项目的效果可以在虚拟机上运行,不过效果较慢。大部分在手机上测试,速度快些,两种方式效果一样。测试登录和注册的正确性,与代码的功能是否一致;测试页面效果是否美观;测试校园卡的充值能否充进入,能否查看余额、修改密码、查看信息;测试校园的情况能否正常查看,若都能实现,则本项目的功能基本上完成。

第七章总结

一、对Android的初步认识有以下几方面:

1.Android是什么?Android是Google在2007年11月首次发布的,当时它被定位成一款针对智能手机的操作系统。现在是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Android SDK 提供了在Android平台上使用Java语言进行Android应用开发必须的工具和API(应用程序编程接口)。Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都

拥有一个独立的Dalvik虚拟机实例。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,而且依赖于linux操作系统。Android更是一款完整的操作系统和应用框架,设计用于ARM处理器(是一个32位元精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计)。Android也是一个平台,主要包括Linux微内核,中间件(SQLite等),而且提供JAVA框架,以及Android 中的JVM。 2.Android的特点:①具有关键类如:视图、ContentProviders(应用交互管理类)、ResourceManager(非编码资源管理类)、NotificationManager (通告管理类)、ActivityManager(生命周期管理类)。②应用构成一般由四个关键部分构成Acitvity、InerntRecciver、Service、ContentProvider,其中Acitvity 是必要部分。它们应用到的场合如下:Activity每个应用都是必须得,Activity 代表一个应用的一个具体的界面管理类,其本身并不显示。InerntRecciver可使应用对外部事件做出响应,比如,当应用正在执行,突然有了来电,这个时候可使用InerntRecciver做出处理使应用更健壮。Service Android应用的生命周期是由Android系统来决定的,不由具体的应用的线程左右,当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到Service。ContentProvider可以说ContentProvider封装很多Android当中的上下文环境,包括SQLite,这就使得在不同应用之间交互成为可能。③布局管理:FrameLayout:左上角只显示一个组件。LinearLayout:线性布局管理器,分为水平和垂直两种,中能进行单行布局。TableLayout:任意行和列的表格布局管理器。其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。AbsoluteLayout:绝对布局管理器,坐标轴的方式,左上角是(0,0)点,往右X轴弟增,往下Y轴递增。RelativeLayout:相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。④Activity交互:Intent方式:Intent其实就是用来在Activity之间做交互用的。SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置。它类似过去Windows系统上inti配置文件,但分多种权限,可以全局共享访问,最终是以XML方式来保存,效率不如Intent,但可共享,所以可以再Activity交互,但其效率比SQLite要高。

⑤生命周期:每一个Android应用都是以一个进程的方式运行的,其生命周期不是有自身控制,而是由系统根据运行的应用的一些特征来决定。如应用的初始化应该放到onCreate方法中,应用暂停的时候应用重写onPause方法来保存当前应用操作结果。⑥SQLite是Android中提供的内置DB,也是开源产品,比MySql 更轻巧。

在这次课程设计中,我也难免会遇到不少困难,主要原因是自己的知识不到

位,开发的经验不足。安卓项目使用个语言是java,但是我对java知识学的不够深,还有数据库的操作,不是很会,导致有许多困难,这次课程设计对我来说是一个全新的尝试,巩固了知识,学到了新知识,整个卡法过程并不是很顺利,却使我从中体会到学习的快乐,程序也得到一步步的完善,使我明白,所学知识远远不够,后续仍要继续努力。

致谢

在本次课程设计中,遇到过许多问题,尽管自己绞尽脑汁也没有做出来,请教了老师和同学,老师的开拓进取的精神和高度的责任心将使我们受益终生,同学的热心帮助和花费很多宝贵时间和精力值得称赞,通过老师的细心指引与教导和同学的耐心、无言帮助下,最终我得以完成此课程设计,在此,对你们表示深深的感谢,没有你们的帮助,我最终不可能这么快的完成项目,请再次接受我诚挚的谢意!谢谢你们!

相关文档
最新文档