手机APP移动开发论文之欧阳道创编Word格式.docx
《手机APP移动开发论文之欧阳道创编Word格式.docx》由会员分享,可在线阅读,更多相关《手机APP移动开发论文之欧阳道创编Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
为了更好的保护客户的隐私要求,进入日记本之后还可以选择设置密码,显得更为人性化的服务。
此软件在使用过程中并不需要上网,因此也不会造成客户流量的浪费。
虽然本项目只是一款基础的日记本,但是会在今后不断的探索中将功能与维护性进一步的修正、改造与完善,满足各类客户的需求。
【关键词】AndroidSQLiteeclipseBaseAdapter密码手机日记
引言
随着科技的进步与人们生活质量的提高,手机也成为了人们日常生活不可缺少的一部分。
据准确数据调查,全球人口已超过65亿,其中,互联网使用人数在2014年8月已超过二十亿。
相对于书本知识,人们更加与侧重与手机搜索,或是以打字来代替生活中的一些手写。
其中,书信的减少就是最明显的一项变化。
电话与短信以及现在更加流行的腾讯产品都成为了手机用户日常中重要的交流工具。
随之也有着越来越多的生活中常用的东西被制作成APP软件,便于手机用户更加便捷的使用,其中个人日记本就是一项较为流行的成果。
Android是一套真正意义上的开放性移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。
Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。
Android平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的产品。
因此,它具有很大的市场发展潜力。
经过多年的发展,第三代数字通信(3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。
随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。
因此,移动终端的应用软件和需要的服务将会有很大的发展空间。
第一章项目概述
1.1项目设计背景
Android是一个以Linux系统为基础的开源移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的OpenHandsetAlliance持续领导与开发中。
此外,现在Android已发布的最新版本为Android6.0。
Android最初是由AndyRubin等人开发制作,最初开发这个系统的主要目的是为了创建一个以数码相机为主的先进操作系统,但是后来随着时间的发现这在市场上的需求并不够大,且加上智能手机市场快速成长,于是Android被改造为一款面向智能手机的操作系统。
在2005年8月被美国科技企业Google收购。
底层以Linux内核工作为基础,由C语言开发,只提供基本功能;
中间层包括函数库Library和虚拟机VirtualMachine,由C++开发。
最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。
不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。
Android手机是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,例如:
手机。
在2011年第一季度,Android手机在全球的市场份额首次超过塞班系统,跃居全球第一。
2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。
2014年第一季度,Android平台手机已占所有移动平台流量来源的42.8%,首都超越ios。
由以上数据可知,电子产品的日益扩大与发展,人们逐渐离不开了手机与电脑,基本上各个出门就是低头一族,为了延续与继承日记本的良好习性,本人逐渐衍生出要研发一款专门在手机上使用的个人日记。
此个人日记本是一项基于人们往日手写日记的习惯制作而成,主要侧重于女生群体,以简单而又小清新的色调为主,能让用户在使用的时候心情能够更加的放松,并且此日记本并不需要消耗流量,能时时刻刻,想写就写。
每个人都会有着多多少少的小秘密,或是一些难以与人沟通的话语,那么就都可以倾诉给个人日记本。
表露了自己的心情后,能释放心中的压力。
如果有些密码不想让别人看到或者是担心谁误拿了自己的手机,怕被看到里面的日记,所以在设计时,体贴而又人性化的在设置中可以进行自行添加密码,是否需要添加密码,全由用户自主选择。
当然,一旦你选择了添加密码,你便为为自己的小秘密增添了一份枷锁,谁也偷窥不到啦。
为了更加有真实感,特地模拟了实际日记本所特有的日期记录,使用时先说明今天年份月份及日子,讲述自己一天以来的所见所闻和感受,最后别忘了给自己这特殊的一天赋予一个心情,毕竟每个人每天的心情都会有所差别的。
写完日记记得返回主界面,除了写日记一个选项外,还有查看日记,搜索日记,设置密码三个主按钮。
点击进入查看日记,你可以看到按日期排布的你以往所写的所有日记,偶尔看看其中一篇,顿时令你想起当日情景,这是多么美好的一件事件啊,帮你留住自己的记忆。
如果你有一天突然想看一篇日记,但又想不起来具体日期了,那么你就选择搜索按钮,进入后输入关键字,进行全数据库搜索。
这样是不是就能节省你不少的时间了?
好处多多,想必关于设置密码也就不用过多介绍了吧,自主选择是否要对日记进行加密。
本日记本在设计方面,使用Android的Activity的布局及组件设计;
使用Android的Intent组件完成各个Activity的数据传递及页面跳转;
Java对象在互联网传输中的数据对象序列化。
目的在于掌握Java手机应用开发技术和移动软件平台开发技术。
像是在数据库DiaryDao中,分别放置了delete、search、insert、query来进行删除、查询、插入、获取功能。
而在锁设置方面,有check、clear、getlock和savelock来检查、清除、获取密码、保存密码。
在以Java语言为基础,结合Android移动开发平台,并利用Android提供的SDK,完成在Android平台上运行的“日记”查询软件,形成一款具有一定功能的手机应用软件。
个人日记本的使用,使用户减缓了心中的压力与不快,能够更好的与他人相处,促进了人与人之间的融洽。
用它,于你,于他,于大家,人人和谐。
1.2本人要完成的主要工作
在此次毕业作品设计中,本人主要需要做的是依据现有的Android编程技术设计一款适合安卓智能手机使用的日记本软件。
使其数据能够即使记录,并在用户有需要的时候可以查看。
将一个现实中的日记本完整的还原到手机端上。
在设计项目时,本人是在Java环境下,采用Eclipse开发环境,利用AndroidSDK插件模拟手机平台,使用各种课堂上学到的知识运用到软件中,完成所定制的各项功能。
该项目有专门设计的数据库,及时记录与保存用户每次所写的日记。
以上就是本人本次的工作任务。
第二章项目设计
2.1项目总体架构
该项目主要分为写日记、查看日记、搜索日记、设置密码、替换背景、用户帮助6个子模块。
open
设置密码
more
写日记
查看日记
搜索日记
退出
日期
心情
标题栏
正文
往日日记
搜索
帮助
无密码
数字密码
图
图2-1项目设计图
2.2数据库设计
本系统后台数据库选用SQLite数据库,数据库中有多张数据表,介于多数表格内容有相似重合的地方,所以为了方便浏览,仅简单的截取了两张数据表以供参考,这两张数据表分别是日记表(diary),密码表(lock)具体表结果如下:
日记表:
diary
字段名
数据类型
说明
data
主键、自动增长
week
datetime
非空
diarytitle
varchar(255)
标题
title
feeling
varchar(40)
密码表:
lock
int
确定lock
double(6,2)
非空
Nolock
Varcahr(40)
null
第三章各项目的设计与实现
3.1项目初界面
使用过只能手机App的用户都知道,每次登陆一个App都会有个最初的登录界面,所以在设计时,我也先进行设计了一个初级界面,如下图所示:
因为只是一个简单的界面,只有一个按钮,所以代码也来的相对的简单,关键代码如下:
protectedvoidonCreate(BundlesavedInstanceState){
//TODOAuto-generatedmethodstub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.open);
open=(Button)this.findViewById(R.id.open);
open.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
sp=getSharedPreferences("
pass"
Context.MODE_PRIVATE);
StringpassWay=sp.getString("
passway"
null);
Intenti=newIntent(OpenActivity.this,MainActivity.class);
startActivityForResult(i,0);
......
3.2主界面
在主界面中放了五个按钮,分别为写日记、查看日记、日记搜索、日记加密、退出,另外在左下角还有一个小小的图标“more”,点击进入能够查看用户帮助,提供基本操作。
图3-2主界面
以下为主界面的主要代码,先对文本中会用到的数据进行定义:
privatevoidinit(){
setContentView(R.layout.set_diary);
addDiary=(Button)this.findViewById(R.id.diary_add);
seeDiary=(Button)this.findViewById(R.id.see_diary);
searchDiary=(Button)this.findViewById(R.id.search_diary);
protectedvoidonResume(){
super.onResume();
}
classMyListenerimplementsOnClickListener{
switch(v.getId()){
caseR.id.diary_add:
Intentintent=newIntent(MainActivity.this,
AddActivity.class);
startActivity(intent);
break;
//退出界面
privatevoidexitDialog(){
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setIcon(R.drawable.quit);
builder.setTitle(getString(R.string.quit));
builder.setMessage(getString(R.string.is_quit));
builder.setPositiveButton(getString(R.string.ok),
newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacedialog,intwhich){
dialog.dismiss();
finish();
});
builder.setNegativeButton(getString(R.string.cancel),
builder.setCancelable(false);
builder.create().show();
3.2.1写日记
点击“写日记”按钮,你会看到如下界面,分为日期部分,心情部分,标题部分,正文部分。
其中心情部分区内共有六种心情,分别为开心、无奈、伤心、哭泣、生气、害羞。
用户可以根据当天的心情选择适合自己的表情。
图3-3写日记
如果你在任何东西都没填写的状态下按下返回键,那么会有提示框告诉你:
“sorry,savefail!
”
只有在填写了内容的情况下退出才会正常保存日记。
在代码方面其实并没有做特别多的功能,除了基本的文本,日期,时间等等外,就是在离开的时候进行了判断,判断是否有值在文本编辑框内放入,若是有,则退出时自动保存;
若是没有,那么显示保存失败。
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.add_diary);
preferences=getSharedPreferences("
image"
MODE_PRIVATE);
date=cal.getTime();
simpleDateFormat=newSimpleDateFormat("
yyyy-MM-dd"
);
timeTextView=(TextView)this.findViewById(R.id.time);
timeTextView.setText(simpleDateFormat.format(date));
weekendTextView=(TextView)this.findViewById(R.id.weekend);
weekendTextView.setText(DateToWeek(date));
feelingSpinner=(Spinner)this.findViewById(R.id.feeling);
context=(EditText)this.findViewById(R.id.edit_diary_context);
diaryTitle=(EditText)this.findViewById(R.id.edit_title);
back=(ImageView)this.findViewById(R.id.back_add_diary);
back.setOnClickListener(newBackListener());
ArrayAdapter<
CharSequence>
adapter=ArrayAdapter.createFromResource(this,
R.array.feeling,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
feelingSpinner.setAdapter(adapter);
feelingSpinner.setPrompt(getString(R.string.feeling));
setBackground();
数据库方面代码如下:
publicclassDiary{
privateStringdate;
privateStringweekend;
privateStringfeeling;
privateStringcontext;
privateStringdiaryTitle;
privateintid;
publicStringgetDate(){
returndate;
publicvoidsetDate(Stringdate){
this.date=date;
publicStringgetWeekend(){
returnweekend;
publicStringtoString(){
return"
Diary[date="
+date+"
weekend="
+weekend+"
feeling="
+feeling+"
context="
+context+"
diaryTitle="
+diaryTitle+"
id="
+id+"
]"
;
3.2.2查看日记
当你点击“查看日记”按钮,并且此时里面并没有日记时,会出现如下提示框,当点击“确定”键,用户会直接跳转到写日记的界面。
以下为查看日记界面的基本代码,当用户进入查看日记按钮后,程序会自行进行文本刷新,将所有文本按写的先后顺序排序出来。
setContentView(R.layout.set_info_diary);
diaryDao=newDiaryDao(this);
diaries=newArrayList<
Diary>
();
back=(ImageView)this.findViewById(R.id.see_back_diary);
context=(ListView)this.findViewById(R.id.diary_list);
refresh();
myDialog();
back.setOnClickListener(newOnClickListener(){
myReceiver=newBroadcastReceiver(){
publicvoidonReceive(Contextcontext,Intentintent){
};
IntentFilteriFilter=newIntentFilter();
iFilter.addAction("
com.android.receivemsg"
iFilter.setPriority(Integer.MAX_VALUE);
//注册广播接收器
registerReceiver(myReceiver,iFilter);
//用户所有的日记
privatevoidmyDialog(){
if(diaries.isEmpty()||diaries.size()<
0){
builder.setTitle(getString(R.string.prompt));
//提示
builder.setIcon(R.drawable.warning);
builder.setMessage(getString(R.string.is_add_diary));
Intentintent=newIntent();
intent.setClass(SeeActivity.this,
unregisterReceiver(myReceiver);
bu