目录
摘要 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)内存占用尽量少,不能出现内存泄露的问题。
文章来源:https://www.toymoban.com/news/detail-501701.html
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();
}
}
}
文章来源地址https://www.toymoban.com/news/detail-501701.html
到了这里,关于基于安卓系统(android)记事本APP管理系统设计与实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!