目錄
摘要 I
Abstract II
1 緒論
1.1 課題來(lái)源、目的和意義 1
1.2 國(guó)內(nèi)外基本研究情況 1
2 需求分析
2.1 用戶需求 4
2.2 功能需求 4
2.3 數(shù)據(jù)庫(kù)選擇 6
2.4 性能需求 6
3 概要設(shè)計(jì)
3.1 功能概要設(shè)計(jì) 7
3.2 數(shù)據(jù)庫(kù)概要設(shè)計(jì) 13
4 詳細(xì)設(shè)計(jì)
4.1 功能設(shè)計(jì) 15
4.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 30
5 系統(tǒng)功能實(shí)現(xiàn)
5.1 系統(tǒng)架構(gòu)設(shè)計(jì) 33
5.2 記事模塊 33
5.3 鬧鐘模塊 36
5.4 分享模塊 38
6 系統(tǒng)實(shí)例
6.1 概述 40
6.2 添加文本 40
6.3 添加圖片 41
6.4 添加音頻 42
6.5 添加鬧鐘 43
6.6 分享 45
7 總結(jié)與展望
7.1 總結(jié) 46
7.2 展望 46
致謝 48
參考文獻(xiàn) 49
附錄 英文縮寫(xiě)詞 50
2需求分析
2.1用戶需求
2.1.1用戶需求分析
經(jīng)過(guò)用戶需求調(diào)研,對(duì)用戶的需求得出以下幾點(diǎn):
1)可以把每天的工作列一個(gè)清單,安排自己每天的工作
2)可以把重要的事情記錄下來(lái)保存
3)可以隨心隨地的記錄一些所見(jiàn)所聞,而不用額外的帶一些紙筆
4)對(duì)怕忘記的事情,用戶希望可以利用記事本來(lái)提醒自己,比如一個(gè)會(huì)議
5)用戶添加鬧鐘選擇日期時(shí),可能也想知道這一天的農(nóng)歷是多少
6)用戶不想打字了,可以拍照或者錄音頻來(lái)做記錄
7)用戶覺(jué)得重要的事情或者有趣的事情,可以把它分享給大家
2.1.2預(yù)期目標(biāo)
通過(guò)對(duì)用戶需求的分析,此次記事本產(chǎn)品希望能夠最大程度的滿足用戶的需求,不僅在功能上豐富實(shí)用,如簡(jiǎn)單記事,添加圖片語(yǔ)音,鬧鐘提醒等,而且在交互上,能夠符合用戶的行為習(xí)慣。
總體來(lái)說(shuō),此次產(chǎn)品希望能夠幫助用戶管理日常的生活和工作學(xué)習(xí)。
2.2功能需求
2.2.1功能描述
該記事本應(yīng)用包括的主要功能有文本記事,添加圖片記事,添加音頻記事,添加鬧鐘以及分享記事內(nèi)容,具體功能描述如下:
1)記事
① 基本操作
包括新建記事、刪除記事、修改記事。
② 文本記事
主要通過(guò)文字來(lái)添加記事。
③ 圖片記事
新建記事時(shí),可以添加圖片來(lái)記事。添加圖片主要通過(guò)兩種方式:可以直接調(diào)用圖庫(kù),從圖庫(kù)中選擇圖片;也可以調(diào)用系統(tǒng)的照相機(jī),拍照來(lái)添加圖片。
④ 音頻記事
新建記事本時(shí),能夠通過(guò)錄入一段音頻來(lái)添加記事。
2)鬧鐘
① 基本操作
基本操作包括鬧鐘的添加、刪除和修改
② 提醒次數(shù)
在設(shè)置鬧鐘時(shí),可以選擇提醒的次數(shù),比如提醒一次、提醒兩次、提醒三次等;如果沒(méi)有選擇提醒次數(shù),則默認(rèn)只提醒一次。
③ 提醒間隔
在設(shè)置鬧鐘時(shí),如果選擇的提醒次數(shù)多于一次,則需要選擇提醒的時(shí)間間隔,如間隔1分鐘、2分鐘、3分鐘等;如果沒(méi)有選擇提醒間隔,則默認(rèn)間隔1分鐘。
④ 日歷
在添加鬧鐘需要選擇日期,日期的選擇是以日歷的方式呈現(xiàn)的,通常的日歷只提供了陽(yáng)歷,但是按照中國(guó)用戶的習(xí)慣來(lái)說(shuō),農(nóng)歷也是很重要的,所以本文設(shè)計(jì)的日歷,不僅可以支持陽(yáng)歷,還可以支持農(nóng)歷。通過(guò)一定的轉(zhuǎn)化算法將相應(yīng)的陽(yáng)歷轉(zhuǎn)換成農(nóng)歷。
⑤ 鬧鐘過(guò)期處理
在鬧鐘過(guò)期后,可以選擇修改鬧鐘或者刪除鬧鐘。
3)分享
① 分享出去
用戶可以把記事的內(nèi)容分享出去,可以分享到網(wǎng)絡(luò)應(yīng)用(如花瓣,evernote),還可以短信分享給朋友,可以微信分享,可以分享到微博,也可以用郵件的方式分享等等。
② 接收分享
此應(yīng)用不僅可以把記事的內(nèi)容分享出去,也可以從其他應(yīng)用(例如短信)接受分享進(jìn)來(lái)的內(nèi)容,作為一個(gè)新的記事。
2.2.2功能亮點(diǎn)和難點(diǎn)
此次記事本主要有兩個(gè)亮點(diǎn)和難點(diǎn):
1)記事本支持日歷,而且日歷同時(shí)支持陽(yáng)歷和農(nóng)歷
現(xiàn)有的記事本或者便簽,都沒(méi)有日歷這個(gè)功能,在添加鬧鐘選擇日期,日期并不是以日歷的方式呈現(xiàn)的,更沒(méi)有農(nóng)歷[19],而對(duì)于中國(guó)用戶,對(duì)農(nóng)歷的需求是很大的,中國(guó)的一些節(jié)日甚至一些人的生日都是用農(nóng)歷來(lái)算的,比如同學(xué)三月初三的生日,用戶擔(dān)心自己會(huì)忘記,于是新建了一個(gè)記事,添加鬧鐘,選擇日期時(shí),如果只有陽(yáng)歷,用戶就不知道應(yīng)該選擇哪一天是對(duì)的,于是他要先查一遍三月初三的陽(yáng)歷是多少,才能選擇,如果記事本本身支持農(nóng)歷,那么用戶就可以直接選擇日期了,對(duì)用戶來(lái)說(shuō)很方便。
要想實(shí)現(xiàn)農(nóng)歷的支持,就需要用一定的算法來(lái)把陽(yáng)歷轉(zhuǎn)換成農(nóng)歷,目前還沒(méi)有成熟的函數(shù)可以實(shí)現(xiàn),android也沒(méi)有控件可以使用,只能自己來(lái)實(shí)現(xiàn),其中還有很多細(xì)節(jié)都需要考慮,所有做起來(lái)比較復(fù)雜,這也是日歷的難點(diǎn)所在。
2)支持音頻記事和圖片記事
大部分的記事本便簽只支持文本記事,支持圖片記事和音頻的比較少。用戶有時(shí)候可能不愿意輸入太多的文字來(lái)記錄一件事,更希望直接通過(guò)錄入一段音頻來(lái)記事,所以音頻的功能對(duì)用戶來(lái)說(shuō)是很方便。
另外,用戶有時(shí)候會(huì)很需要用圖片來(lái)記錄事情,比如出行需要記錄下地鐵路線,就可以拍照來(lái)添加記事,同時(shí)添加一些題注,方便查看。
由于系統(tǒng)的資源有限,所以拍照出來(lái)的圖片或者音頻都需要進(jìn)行壓縮[20]處理,另外還有考慮到它們的分享,所以圖片和音頻功能也有一定的難度。
2.3 數(shù)據(jù)庫(kù)選擇
此次的記事本應(yīng)用,是基于android手機(jī)的,而且數(shù)據(jù)要存儲(chǔ)在本地,考慮到手機(jī)資源和內(nèi)存的限制,要求記事本應(yīng)用占用的資源和內(nèi)存要盡量少,所以在選擇數(shù)據(jù)庫(kù)時(shí),要選擇資源占用少,操作簡(jiǎn)單,本文轉(zhuǎn)載自http://www.biyezuopin.vip/onews.asp?id=13346響應(yīng)速度快的數(shù)據(jù)庫(kù),綜合各方面的因素,此次開(kāi)發(fā)選擇的數(shù)據(jù)庫(kù)是SQLite。
SQLite的優(yōu)點(diǎn)主要有以下幾點(diǎn):
1)它是一款輕型的數(shù)據(jù)庫(kù),占用的資源非常低
2)能夠和多種語(yǔ)言結(jié)合,包括java,php,c等
3)SQLite獨(dú)立,沒(méi)有額外的依賴
4)它是連接到程序中成為它的一部分,不需要獨(dú)立的進(jìn)程,在消耗總量、延遲時(shí)間上有積極的作用
5)簡(jiǎn)單輕松的API,可以減少開(kāi)發(fā)的難度
2.4 性能需求
由于android系統(tǒng)本身的資源限制以及用戶手機(jī)設(shè)備的硬件性能問(wèn)題,該記事本在性能上需要滿足以下幾點(diǎn)要求:
1)CPU資源占用盡量少,各種交互操作響應(yīng)速度要快,不能出現(xiàn)卡死或者不流暢的問(wèn)題。
2)能夠兼容低版本的android系統(tǒng)。
3)內(nèi)存占用盡量少,不能出現(xiàn)內(nèi)存泄露的問(wèn)題。文章來(lái)源:http://www.zghlxwxcb.cn/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傳來(lái)的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();
}
}
}
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-501701.html
到了這里,關(guān)于基于安卓系統(tǒng)(android)記事本APP管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!