基于安卓系统(android)记事本APP管理系统设计与实现

目录
摘要 I
Abstract II
1 绪论
1.1 课题来源、目的和意义 1
1.2 国内外基本研究情况 1
2 需求分析
2.1 用户需求 4
2.2 功能需求 4
2.3 数据库选择 6
2.4 性能需求 6
3 概要设计
3.1 功能概要设计 7
3.2 数据库概要设计 13
4 详细设计
4.1 功能设计 15
4.2 数据库设计 30
5 系统功能实现
5.1 系统架构设计 33
5.2 记事模块 33
5.3 闹钟模块 36
5.4 分享模块 38
6 系统实例
6.1 概述 40
6.2 添加文本 40
6.3 添加图片 41
6.4 添加音频 42
6.5 添加闹钟 43
6.6 分享 45
7 总结与展望
7.1 总结 46
7.2 展望 46
致谢 48
参考文献 49
附录 英文缩写词 50
2需求分析
2.1用户需求
2.1.1用户需求分析
经过用户需求调研,对用户的需求得出以下几点:
1)可以把每天的工作列一个清单,安排自己每天的工作
2)可以把重要的事情记录下来保存
3)可以随心随地的记录一些所见所闻,而不用额外的带一些纸笔
4)对怕忘记的事情,用户希望可以利用记事本来提醒自己,比如一个会议
5)用户添加闹钟选择日期时,可能也想知道这一天的农历是多少
6)用户不想打字了,可以拍照或者录音频来做记录
7)用户觉得重要的事情或者有趣的事情,可以把它分享给大家
2.1.2预期目标
通过对用户需求的分析,此次记事本产品希望能够最大程度的满足用户的需求,不仅在功能上丰富实用,如简单记事,添加图片语音,闹钟提醒等,而且在交互上,能够符合用户的行为习惯。
总体来说,此次产品希望能够帮助用户管理日常的生活和工作学习。
2.2功能需求
2.2.1功能描述
该记事本应用包括的主要功能有文本记事,添加图片记事,添加音频记事,添加闹钟以及分享记事内容,具体功能描述如下:
1)记事
① 基本操作
包括新建记事、删除记事、修改记事。
② 文本记事
主要通过文字来添加记事。
③ 图片记事
新建记事时,可以添加图片来记事。添加图片主要通过两种方式:可以直接调用图库,从图库中选择图片;也可以调用系统的照相机,拍照来添加图片。
④ 音频记事
新建记事本时,能够通过录入一段音频来添加记事。
2)闹钟
① 基本操作
基本操作包括闹钟的添加、删除和修改
② 提醒次数
在设置闹钟时,可以选择提醒的次数,比如提醒一次、提醒两次、提醒三次等;如果没有选择提醒次数,则默认只提醒一次。
③ 提醒间隔
在设置闹钟时,如果选择的提醒次数多于一次,则需要选择提醒的时间间隔,如间隔1分钟、2分钟、3分钟等;如果没有选择提醒间隔,则默认间隔1分钟。
④ 日历
在添加闹钟需要选择日期,日期的选择是以日历的方式呈现的,通常的日历只提供了阳历,但是按照中国用户的习惯来说,农历也是很重要的,所以本文设计的日历,不仅可以支持阳历,还可以支持农历。通过一定的转化算法将相应的阳历转换成农历。
⑤ 闹钟过期处理
在闹钟过期后,可以选择修改闹钟或者删除闹钟。
3)分享
① 分享出去
用户可以把记事的内容分享出去,可以分享到网络应用(如花瓣,evernote),还可以短信分享给朋友,可以微信分享,可以分享到微博,也可以用邮件的方式分享等等。
② 接收分享
此应用不仅可以把记事的内容分享出去,也可以从其他应用(例如短信)接受分享进来的内容,作为一个新的记事。
2.2.2功能亮点和难点
此次记事本主要有两个亮点和难点:
1)记事本支持日历,而且日历同时支持阳历和农历
现有的记事本或者便签,都没有日历这个功能,在添加闹钟选择日期,日期并不是以日历的方式呈现的,更没有农历[19],而对于中国用户,对农历的需求是很大的,中国的一些节日甚至一些人的生日都是用农历来算的,比如同学三月初三的生日,用户担心自己会忘记,于是新建了一个记事,添加闹钟,选择日期时,如果只有阳历,用户就不知道应该选择哪一天是对的,于是他要先查一遍三月初三的阳历是多少,才能选择,如果记事本本身支持农历,那么用户就可以直接选择日期了,对用户来说很方便。
要想实现农历的支持,就需要用一定的算法来把阳历转换成农历,目前还没有成熟的函数可以实现,android也没有控件可以使用,只能自己来实现,其中还有很多细节都需要考虑,所有做起来比较复杂,这也是日历的难点所在。
2)支持音频记事和图片记事
大部分的记事本便签只支持文本记事,支持图片记事和音频的比较少。用户有时候可能不愿意输入太多的文字来记录一件事,更希望直接通过录入一段音频来记事,所以音频的功能对用户来说是很方便。
另外,用户有时候会很需要用图片来记录事情,比如出行需要记录下地铁路线,就可以拍照来添加记事,同时添加一些题注,方便查看。
由于系统的资源有限,所以拍照出来的图片或者音频都需要进行压缩[20]处理,另外还有考虑到它们的分享,所以图片和音频功能也有一定的难度。
2.3 数据库选择
此次的记事本应用,是基于android手机的,而且数据要存储在本地,考虑到手机资源和内存的限制,要求记事本应用占用的资源和内存要尽量少,所以在选择数据库时,要选择资源占用少,操作简单,本文转载自http://www.biyezuopin.vip/onews.asp?id=13346响应速度快的数据库,综合各方面的因素,此次开发选择的数据库是SQLite。
SQLite的优点主要有以下几点:
1)它是一款轻型的数据库,占用的资源非常低
2)能够和多种语言结合,包括java,php,c等
3)SQLite独立,没有额外的依赖
4)它是连接到程序中成为它的一部分,不需要独立的进程,在消耗总量、延迟时间上有积极的作用
5)简单轻松的API,可以减少开发的难度
2.4 性能需求
由于android系统本身的资源限制以及用户手机设备的硬件性能问题,该记事本在性能上需要满足以下几点要求:
1)CPU资源占用尽量少,各种交互操作响应速度要快,不能出现卡死或者不流畅的问题。
2)能够兼容低版本的android系统。
3)内存占用尽量少,不能出现内存泄露的问题。
在这里插入图片描述

package com.xue.yynote;

import com.xue.yynote.view.MainView;
import com.xue.yynote.tools.DBHelper;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class MainActivity extends Activity {

	private MainView mMainView;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		this.mMainView = new MainView(this);
		this.setContentView(this.mMainView);

	}

	protected void onResume() {
		super.onResume();
	}

	// 获得activity传来的noteId,刷新列表
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if (resultCode == RESULT_OK) {
			Bundle bundle = data.getExtras();
			this.mMainView.refreshAdapter(bundle.getInt("NOTE_ID"));
		}
	}

	public MainView getMainView() {
		return this.mMainView;
	}

	protected void onPause() {
		super.onPause();
		this.mMainView.saveSequence();
	}

	@Override
	protected void onStop() {
		super.onStop();
		this.mMainView.saveSequence();
		DBHelper.getInstance(this).close();
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		this.mMainView.saveSequence();
		DBHelper.getInstance(this).close();
	}

	public void onBackPressed() {
		if (mMainView.getCancelBtnVisible() == 0) {
			mMainView.clearDeleteButton();
			mMainView.hideDeleteCancelButton();
		} else {
			super.onBackPressed();
		}
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shejizuopin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值