移动开发实践成果报告.docx
- 文档编号:28910907
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:46
- 大小:1.25MB
移动开发实践成果报告.docx
《移动开发实践成果报告.docx》由会员分享,可在线阅读,更多相关《移动开发实践成果报告.docx(46页珍藏版)》请在冰豆网上搜索。
移动开发实践成果报告
软件学院
实践成果一报告
课题名称:
__Android日程管理小助手开发
专业:
软件工程
班级:
卓越131
学号:
201307104107
学生姓名:
王萌彦
指导老师:
____________韩玉民__________________
2014年12月
中原工学院软件学院
实践成果一设计任务书
姓名
王萌彦
软件工程卓越131
题目
Android端日程管理小助手
设
计
任
务
系统主要功能包括:
第一、用户可以新建日程来记录自己近来需要办理的事务;
第二、查看日程,用户可以通过分类的不同来查看不同的事务记录;
第三、编辑日程,即用户可以对其进行修改,或者删除日程;
第四、用户可以设置是否设置登录密码;
第五、用户可以调换不同的视图来查看当前日期,分别以月试图、周视图、日视图来显示;
第六、链接12306网站来方便用户购买火车票;
第七、关于本软件的系统信息了。
时
间
进
度
第14周(2014.12.8.~2014.12.14):
主要任务是对整个系统进行需求分析,设计出数据库,写出各表间的关系,设计出结构图,设计并创建数据库。
把基本界面实现,例如试题库的增删改查,以及用户管理。
第15周(2014-12-15-~2014-12-21):
对系统的核心模块,也就是对日程的增删改查这几功能,开始编写。
第16周(2014-10-22-~2014-11-28):
主要任务是完成系统设置的功能,以及联网功能。
第17周(2014~09-29---2015~01-04):
对程序进行调试,并撰写报告
原主
始要
资参
料考
与文
献
[1]李刚.疯狂Android讲义[M]:
北京:
电子工业出版社,2011.7
[2]杨丰盛.Android应用开发揭秘[M]:
北京:
机械工业出版社,2011.12
[3]李宁.Android/OPhone开发完全讲义[M]:
北京:
中国水利水电出版社
[4]李钟尉陈丹丹.Java开发实战1200例[M]:
清华大学出版社
摘要
随着移动设备越来越普及,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。
目前国内最常见的移动开发平台有塞班,iPhone,Windowsphone以及当下正在逐步兴起的Android。
目前为止国内已经有很多Android的忠实粉丝。
不论是用户还是开发者都已经有了相当数量,Android已经成为国内移动开发平台不可忽视的力量。
Android作为一款十分优秀的移动开发平台十分适合国内的开发环境。
尤其是中小企业开发团队低成本以及源代码的分享可以为企业节省大量资金,这对于中小企业来说无疑是最大的诱惑。
青年网络推出的"星网睿话"就是国内成功的Android开发产品。
我对Android也产生了很大的好奇心,所以我不断地学习,不断地攻破难关。
在本文中主要讲的是对日程管理小助手的数据库设计,以及实现分析作了阐述,其中日程管理的主要模块有:
第一、用户可以新建日程来记录自己近来需要办理的事务,根据需要可以调整日程时间,设置提醒方式,选择日程类型,添加日程联系人,还可以将声音片段或者短信内容添加到日程中;第二、用户可以通过分类的不同来查看不同的事务记录,也可以查看全部事务,另外,可以通过输入关键字进行模糊查询;第三,编辑日程,日程建立之后,用户可以对其进行修改,或者删除日程;第四、用户可以设置是否设置登录密码,也可以设置日程到期时的提示音;第五、用户可以调换不同的视图来查看当前日期,分别以月试图、周视图、日视图来显示;第六、为方便用户使用,本软件特别实现链接12306网站来方便用户购买火车票;第七、关于本软件的系统信息。
关键字:
日程管理;助手;Android;SlidingDrawer
第1章引言
在现在的时代,随着社会的竞争力越来越大,总是有各种各样的事情要办,可能事情太多就会遗漏了某件事,这时我们也许就会需要一个日程管理助手在手边,帮助我们整理琐事。
1.1课题背景
目前,由于社会的竞争越来越大,人们面临的挑战也越来越多,大家都在百忙中中去争取自己在社会中生存的机会,所以就会计划很多的事情,但是计划的事情太多,可能就记不太清楚了,因而就会耽误许多的事情,此款软件就是针对人们对于事物的处理,不管是哪一方面的事情都可以记录在当前软件中,并且在用户设定的时间点提示,并且在业务上很很方便用户操作。
这款日程管理小助手是基于Android平台设计的,Android平台是目前发展最快、最具市场前景的智能手机操作系统。
1.2日程管理助手功能分析
第一、用户可以新建日程来记录自己近来需要办理的事务,根据需要可以调整日程时间,设置提醒方式,选择日程类型,添加日程联系人,还可以将声音片段或者短信内容添加到日程中;第二、用户可以通过分类的不同来查看不同的事务记录,也可以查看全部事务,另外,可以通过输入关键字进行模糊查询;第三,编辑日程,日程建立之后,用户可以对其进行修改,或者删除日程;第四、用户可以设置是否设置登录密码,也可以设置日程到期时的提示音;第五、用户可以调换不同的视图来查看当前日期,分别以月试图、周视图、日视图来显示;第六、为方便用户使用,本软件特别实现链接12306网站来方便用户购买火车票;第七、也就是关于本软件的系统信息了。
大体上该小助手也就实现了这些功能。
第2章系统分析
本章主要对小助手系统进行综合型分析,对设计系统的思路以及技术进行分析,
2.1设计思路
日程管理助手是一款帮助用户记录事务的软件,采用3种不同的视图来显示日期,分别是月试图、周视图、日视图,可以在这三个视图上都可以直接进入到日程的修改,所以就利用了Android中的抽屉控件来实现该功能,并且实现对日程的增删改查功能,另外可以对密码设定和铃声提示做出修改,甚至在一定程度上可以实现链接网络的功能,在新建日程时,可以像短信一样添加附件,尽量设计的符合用户习惯。
2.2技术分析
Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。
由于Android带有相当浓郁的Linux血统这也就意味着他拥有开源Linux的众多优点:
安全、运算速度快、易于开发等等。
正因为Android具有上述的优点,所以它在国内具有相当强劲的竞争优势。
青年网络的主要负责人潘长华先生说到:
Android作为一款十分优秀的移动开发平台十分适合国内的开发环境。
尤其是中小企业开发团队低成本以及源代码的分享可以为企业节省大量资金,这对于中小企业来说无疑是最大的诱惑。
青年网络推出的"星网睿话"就是国内成功的Android开发产品。
日程管理助手的开发和数据库的开发,都是基于Android本身实现的,数据库的实现时使用Android自带的SQLite数据库,本软件是基于Android系统的,是使用ADT开发工具进行的,ADT的开发环境的搭建是基于Eclipse的,是在AndroidSDK与Eclipse开发的插件ADT下完成的,采用的API是使用19版本的。
2.3结构分析
日程管理助手功能结构图如图2-1所示:
图2-1日程管理助手结构图
第3章数据库设计与分析
当前正是面临大数据的时代,数据存储是一个问题,而目前Android提供的几种数据存储中,我们常见的SharedPreference、内置的SQLite数据库,ContentProvide实现数据共享这三种数据存储方式,它们都有不一样的特色,而针对于当前小助手的需要,采用的是SQLite数据存储方式。
3.1数据库表分析
对于该日程管理小助手来说,采用SQLite数据库来存储数据,在该数据库中涉及的有提醒时间表、充值设置表、日程信息表、内容信息表以及日程类别表。
下边介绍各个表的设计及表之间的联系。
1、日程信息表(eventtable)
用于记录日程的基本信息,主要属性有id、title(日程标题)、content(日程内容)、type(类型编号)、person(添加的联系人)、alertstyle(提醒方式),如表3-1所示:
表3-1日程信息表(eventtable)结构
字段名称
数据类型
字段大小
是否主键
备注
id
Integer
20
是
日程事件编号
title
char
20
否
日程标题
content
Integer
8
否
日程内容编号
type
Integer
20
否
类型编号
person
char
30
否
联系人
alertstyle
char
20
否
提醒方式
2、内容信息表(contenttable)用于记录日程的文本、声音信息,主要属性有id,text(内容),sound(声音路径),如表3-2所示:
表3-2内容信息表(contenttable)结构
字段名称
数据类型
字段大小
是否主键
备注
id
Integer
8
是
日程内容编号
text
char
50
否
文本信息
sound
char
50
否
声音路径
3、日程类别表(typetable)用于记录日程的类型信息,主要属性有id,type(类型名称),如表3-3所示:
表3-3日程类别表(typetable)结构
字段名称
数据类型
字段大小
是否主键
备注
id
Integer
20
是
类型编号
type
char
20
否
类型名称
4、重复设置表(timetable)用于提醒时间表与日程信息表的连接,主要有属性id,eventid(日程事件编号),alerttime(提醒事件编号),如表3-4所示
表3-4重复设置表(timetable)结构
字段名称
数据类型
字段大小
是否主键
备注
id
Integer
20
是
日程内容编号
eventid
Integer
20
否
日程时间编号
alerttime
Integer
20
否
提醒事件编号
5、提醒时间表(alerttable)用于记录日程提醒的时间,主要属性有alerttime(编号)、nowtime(日程新建时间)、alertone(正点提醒时间)、alerttwo(提醒5分钟提醒)、alertthree(提醒10分钟提醒)、alertfour(提醒30分钟提醒)、alertfive(提醒1小时提醒)、alertsix(提醒1天提醒)、alertseven(提醒1周提醒),如表3-5所示:
表3-5提醒时间表(alerttable)结构
字段名称
数据类型
字段大小
是否主键
备注
alerttime
Ineteger
20
是
提醒时间编号
nowtime
char
20
否
日程的创建时间
alertone
char
20
否
正点提醒时间
alerttwo
char
20
否
提醒5分钟提醒时间
alertthree
char
20
否
提醒10分钟提醒时间
alertfour
char
20
否
提醒30分钟提醒时间
alertfive
char
20
否
提醒1小时提醒时间
alertsix
char
20
否
提醒1天提醒时间
alertseven
char
20
否
提醒1周提醒时间
3.2数据库表关系分析
本软就爱你的主要数据库表有提醒时间表、重复设置表、日程信息表、内容信息表以及日程类别表。
下面介绍各个表的数据表之间的联系,通过数据表的关系如图3-1所示:
图3-1数据表关系图
第4章系统实现
4.1数据库的开发
由于日程管理小助手是基于数据库的,所以说数据库的开发就显得尤为重要,数据库的开发设计到表的创建,以及将要使用到的方法,当然,方法要结合到后边的开发慢慢整理,首先,先说日程信息表(eventtable)、内容信息表(contenttable)、日程类别表(typetable)重复设置表(timetable)和提醒时间表(alerttable)的创建。
4.2欢迎界面
日程管理小助手首先以动画进入,实现淡入淡出的效果,给用户很好的视觉体验,欢迎界面效果如图4-1、4-2所示:
图4-1欢迎界面1图4-2欢迎界面2
淡入淡出的欢迎界面代码如下所示:
publicMySurfaceView(ScheduleManagerActivitycontext){
super(context);
this.activity=context;
this.getHolder().addCallback(this);//设置生命周期回调接口的实现者
paint=newPaint();//创建画笔
paint.setAntiAlias(true);//消除锯齿
//加载图片
logos[0]=BitmapFactory.decodeResource(activity.getResources(),R.drawable.c);
logos[1]=BitmapFactory.decodeResource(activity.getResources(),R.drawable.b);}
@SuppressLint("WrongCall")
@Override
publicvoidsurfaceCreated(SurfaceHolderholder){//创建时被调用
newThread(){
publicvoidrun(){
for(Bitmapbm:
logos){
currentLogo=bm;
//计算图片位置
currentX=screenWidth/2-bm.getWidth()/2;
currentY=screenHeight/2-bm.getHeight()/2;
for(inti=255;i>-10;i=i-10)
{//动态更改图片的透明度值并不断重绘
currentAlper=i;
if(currentAlper<0)
currentAlper=0;
SurfaceHoldermyholder=MySurfaceView.this.getHolder();//SurfaceView的SurfaceHolder对象holder
Canvascanvas=myholder.lockCanvas();//获取画布只有在此方法以及Destroyed方法中才获得画布,其他方法中获取到的是空
try{
synchronized(myholder){
onDraw(canvas);//绘制
}
}
catch(Exceptione){
e.printStackTrace();
}
finally{
if(canvas!
=null)
myholder.unlockCanvasAndPost(canvas);//画图结束后调用holder.unlockCanvasAndPost()就把图画在窗口中了。
}
try{//当出现下一张图片时
if(i==255)
Thread.sleep(1000);
Thread.sleep(sleepSpan);
catch(Exceptione)
{
e.printStackTrace();
}}}
activity.hdd.sendEmptyMessage(0);}}.start();}
publicvoidonDraw(Canvascanvas)
{
//绘制黑填充矩形背景
paint.setColor(Color.BLACK);//绘制画笔颜色
paint.setAlpha(255);//透明度设为最大
canvas.drawRect(0,0,screenWidth,screenHeight,paint);
//进行平面贴图
if(currentLogo==null)
return;
paint.setAlpha(currentAlper);
canvas.drawBitmap(currentLogo,currentX,currentY,paint);
}
4.3视图界面
日程管理小助手主要向用户呈现3种视图界面,分别是月视图、周视图、日视图,下边分别对着三种视图做出一一解释:
(1)月视图:
以日历的形式把每个月呈现给用户;
(2)日视图:
以上午、下午、晚上的形式显示日程
(3)周视图:
以一周的形式显示日程
若是用户第一次使用,则默认显示月视图,周视图(有Bug,待修改)暂未实现,月试图效果如图4-3所示、日视图效果如图4-4所示:
图4-3月试图界面图4-4日视图界面
4.4主菜单
日程管理小助手主要是通过一个SlidingDrawer控件来实现的,运行效果如图4-5所示:
图4-5主菜单界面
主菜单界面主要代码如下:
publicvoidshowSlidingDrawer(){
//得到抽屉控件,抽屉的拉手及抽屉内容的GridView的引用
sliding=(SlidingDrawer)findViewById(R.id.sliding01);
gv=(GridView)findViewById(R.id.contentShow);
hi=(ImageView)findViewById(R.id.handleImage);
//创建一个GridAdaper适配器给gv添加
GridAdapterga=newGridAdapter(this,icons,textSliding);
//给gridview添加适配器
gv.setAdapter(ga);
//给抽屉添加打开的监听/
sliding.setOnDrawerOpenListener(newSlidingDrawer.OnDrawerOpenListener(){
@Override
publicvoidonDrawerOpened(){
hi.setImageResource(R.drawable.close);
//设为主页面分支,按返回键关闭抽屉
curr=Constant.MAIN_BRANCH;}});
//给关闭抽屉添加监听
sliding.setOnDrawerCloseListener(newSlidingDrawer.OnDrawerCloseListener(){
@Override
publicvoidonDrawerClosed(){
hi.setImageResource(R.drawable.open);}});}
4.5新建日程
对于用户来说,每天的事务可能都不一样,在新建日程模块里边,主要实现了用户对不同类型事务的记录,以及提醒日期,提醒方式的设置,在添加附件时,可以选择添加联系人、手机内的短信或者声音,这样会更加方便用户的使用,同时,用户不必拘泥于系统提供的类型设置,用户可以自由的添加类型或删除类型,在新建日程时,用户必须添加标题这一属性,是为了在提醒时间到时,能够准确明了的提醒用户该做某件事情了,一定程度上方便了用户,新建日程的效果界面如图4-6所示:
图4-6新建日程界面
新建日程主要代码如下:
curr=Constant.MAIN_BRANCH;
this.currdate=date;//接收参数显示相应的日期,此处显示的是默认的日期
//添加日期的id号码唯一的标识符
finalinttempid=db.geteventID(ScheduleManagerActivity.this,1);
id=tempid;
setContentView(R.layout.newschedule);
//============设置标题============
TextViewnewOredit=(TextView)findViewById(R.id.title);
newOredit.setText("日程新建");
//=============初始化类型==============
db.getstype(this);
Spinnersp=(Spinner)findViewById(R.id.typespinner);//显示项目
BaseAdapterba=newBaseAdapter(){//为Spinner准备内容适配器
@Override
publicintgetCount(){
returnalType.size();
}
@Override
publicObjectgetItem(intposition){
returnalType.get(position);
}
@Override
publiclonggetItemId(intposition){
returnposition;
}
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
LinearLayoutll=newLinearLayout(ScheduleManagerActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
TextViewtv=newTextView(ScheduleManagerActivity.this);
tv.setText(alType.get(position));
selectedtype=alType.get(position);//新建日程的类型、
type=position;
tv.setTextSize(20);
tv.setTextColor(R.color.black);
returntv;}};
sp.setAdapter(ba);
//=========为类型添加按钮添加监听=============
ImageViewbt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动 开发 实践 成果 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)