2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  基于Android平臺(tái)的短信通的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘 要</b></p><p>  Android是Google于2007年11月5日宣布的基于Linux平臺(tái)開源手機(jī)操作系統(tǒng),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)平臺(tái)。Android在中國的前景十分廣闊,首先是有成熟的

2、消費(fèi)者,其次在國內(nèi)Android社區(qū)十分紅火,這些社區(qū)為Android在中國的普及做了很好的推廣作用。</p><p>  經(jīng)過使用發(fā)現(xiàn)Android自帶的短信發(fā)送功能十分簡單,不支持單號(hào)碼連發(fā)、定時(shí)短信等功能,然而Android開源的特性給開發(fā)者提供了一個(gè)完美的平臺(tái)。</p><p>  基于Android平臺(tái)的短信通彌補(bǔ)了市場(chǎng)的空白,把單號(hào)碼連發(fā),號(hào)碼段群發(fā)短信,清單群發(fā)短信,定時(shí)短信

3、四個(gè)功能整合在一起,對(duì)Android手機(jī)短信發(fā)送功能很好的進(jìn)行了完善。</p><p>  采用面向?qū)ο蟮姆椒ㄟM(jìn)行系統(tǒng)構(gòu)思、需求獲取、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)和類設(shè)計(jì),實(shí)現(xiàn)了單號(hào)碼連發(fā),號(hào)碼段群發(fā)短信,清單群發(fā)短信和定時(shí)短信四個(gè)功能。</p><p>  本文對(duì)短信群發(fā)定時(shí)短信軟件的功能設(shè)計(jì)以及實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析,并重點(diǎn)介紹該軟件的開發(fā)過程,另外還討論了一些關(guān)鍵技術(shù)的實(shí)現(xiàn)細(xì)節(jié)。&l

4、t;/p><p>  關(guān)鍵字:ANDROID,短信群發(fā),定時(shí)短信,開源</p><p>  Design and implementation of SMS software based on Android</p><p><b>  ABSTRACT</b></p><p>  Android is Google on

5、November 5, 2007 announced the Linux-based open-source mobile operating system platform, the platform is make up with the operating system, middleware, user interface and application software, which is the first mobile d

6、evice built for the truly open and complete mobile platform. Android has bright future in China, the first is a mature consumers, followed by the Android community is very prosperous in the country, these communities for

7、 the popularity of Android in China to </p><p>  After using text messages found Android self-contained function is very simple, and does not support single-number bursts, time messaging and other functions,

8、 however, the characteristics of Android open-source provide a perfect platform for developers. </p><p>  SMS-based Android platform make up for gaps in the market, the single number of bursts, number of seg

9、ments bulk SMS, sms group sending, timer sms sending, improving the sending text messages function of the Android phone. </p><p>  Object-oriented concept for system design, requirements capture, system anal

10、ysis, system design, database design and class design to achieve a single number of bursts, number of segments bulk SMS, bulk SMS and regular text messages list. </p><p>  In this paper, bulk SMS messaging s

11、oftware is used regularly design and implement a detailed analysis, and focus on the software development process, also discussed a number of key technical implementation details.</p><p>  KEY WORDS:android,

12、sms group sending, send timer sms, open source</p><p><b>  目 錄</b></p><p><b>  前 言1</b></p><p>  第1章 相關(guān)技術(shù)與理論3</p><p>  §1.1 Android架構(gòu)研究3

13、</p><p>  §1.1.1 應(yīng)用程序3</p><p>  §1.1.2 應(yīng)用程序架構(gòu)4</p><p>  §1.1.3 Linux內(nèi)核4</p><p>  §1.2 Android應(yīng)用的構(gòu)成和工作機(jī)制4</p><p>  §1.2.1 Andro

14、id的API4</p><p>  §1.2.2 Android應(yīng)用程序結(jié)構(gòu)解析5</p><p>  §1.3 使用的核心技術(shù)5</p><p>  §1.3.1 Intent的詳細(xì)解析5</p><p>  §1.3.2 Android活動(dòng)的生命周期6</p><p&g

15、t;  §1.3.3 Android進(jìn)程的生命周期7</p><p>  第2章 系統(tǒng)構(gòu)思8</p><p>  §2.1 形成系統(tǒng)概念8</p><p>  §2.1.1 簡化8</p><p>  §2.1.2 同類產(chǎn)品的比較和分析8</p><p>  §

16、;2.2 闡述概念8</p><p>  §2.2.1 使用用戶9</p><p>  §2.2.2 解決問題9</p><p>  §2.2.3 用戶需要9</p><p>  §2.2.4 可行性分析9</p><p>  §2.3 需求陳述10<

17、/p><p>  §2.3.1 開發(fā)環(huán)境10</p><p>  §2.3.2 運(yùn)行環(huán)境10</p><p>  §2.3.3 性能需求10</p><p>  §2.3.4 軟件實(shí)現(xiàn)原則10</p><p>  第3章 需求獲?。ㄓ美P停?2</p>&l

18、t;p>  §3.1 概述12</p><p>  §3.2 系統(tǒng)邊界12</p><p>  §3.3 參與者12</p><p>  §3.4 系統(tǒng)用例圖13</p><p>  §3.5 用例簡述13</p><p>  §3.5.1 單

19、號(hào)碼連發(fā)13</p><p>  §3.5.2 號(hào)碼段群發(fā)14</p><p>  §3.5.3 清單群發(fā)短信14</p><p>  §3.5.4 定時(shí)短信15</p><p>  §3.5.5 用戶自定義清單15</p><p>  第4章 系統(tǒng)分析17</

20、p><p>  §4.1 概述17</p><p>  §4.2 領(lǐng)域分析17</p><p>  §4.2.1 概述17</p><p>  §4.2.2 領(lǐng)域類模型17</p><p>  §4.2.3 領(lǐng)域狀態(tài)模型18</p><p>

21、;  §4.3 應(yīng)用分析19</p><p>  §4.3.1 概述19</p><p>  §4.3.2 應(yīng)用程序交互模型(時(shí)序圖)19</p><p>  §4.3.3 應(yīng)用程序交互模型(活動(dòng)圖)20</p><p>  §4.3.4 應(yīng)用類模型21</p><

22、;p>  §4.3.5 應(yīng)用狀態(tài)模型24</p><p>  第5章 系統(tǒng)設(shè)計(jì)27</p><p>  §5.1 概述27</p><p>  §5.2 估算性能27</p><p>  §5.2.1 估算發(fā)送性能27</p><p>  §5.2.2

23、估算數(shù)據(jù)存儲(chǔ)性能28</p><p>  §5.3 制定復(fù)用計(jì)劃28</p><p>  §5.3.1 庫28</p><p>  §5.3.2 模式28</p><p>  §5.4 將系統(tǒng)分成子系統(tǒng)28</p><p>  §5.5 確定并發(fā)性28<

24、;/p><p>  §5.5.1 識(shí)別內(nèi)部的并發(fā)性29</p><p>  §5.5.2 定義并發(fā)任務(wù)29</p><p>  §5.6 分配子系統(tǒng)29</p><p>  §5.7 管理數(shù)據(jù)存儲(chǔ)29</p><p>  §5.8 處理全局資源29</p&g

25、t;<p>  §5.9 軟件控制策略29</p><p>  §5.9.1 外部控制29</p><p>  §5.9.2 內(nèi)部控制30</p><p>  §5.10 處理邊界條件30</p><p>  §5.10.1 初始化30</p><p

26、>  §5.10.2 終止30</p><p>  §5.10.3 失效30</p><p>  §5.11 設(shè)置權(quán)衡優(yōu)先級(jí)30</p><p>  §5.12 系統(tǒng)架構(gòu)31</p><p>  第6章 數(shù)據(jù)庫設(shè)計(jì)和類設(shè)計(jì)32</p><p>  §6.

27、1 數(shù)據(jù)庫32</p><p>  §6.1.1 概述32</p><p>  §6.1.2 實(shí)現(xiàn)結(jié)構(gòu)—基礎(chǔ)32</p><p>  §6.1.3 實(shí)現(xiàn)結(jié)構(gòu)—高級(jí)34</p><p>  §6.1.4 封裝與查詢優(yōu)化35</p><p>  §6.2 類設(shè)計(jì)

28、38</p><p>  §6.2.1 概述38</p><p>  §6.2.2 實(shí)現(xiàn)用例38</p><p>  §6.2.3 代碼重構(gòu)和設(shè)計(jì)優(yōu)化51</p><p><b>  第7章 測(cè)試53</b></p><p>  §7.1 概述53

29、</p><p>  §7.2 測(cè)試環(huán)境53</p><p>  §7.3 測(cè)試結(jié)果及分析53</p><p>  §7.3.1 操作流暢性53</p><p>  §7.3.2 性能測(cè)試53</p><p>  第8章 應(yīng)用程序的發(fā)布55</p><

30、;p>  §8.1 生成數(shù)字簽名文件55</p><p>  §8.2 將程序發(fā)布到Google Project上55</p><p>  §8.3 將程序發(fā)布到掌上應(yīng)用匯56</p><p><b>  結(jié) 論57</b></p><p><b>  參考文獻(xiàn)58

31、</b></p><p><b>  致 謝59</b></p><p><b>  前 言</b></p><p><b>  研究背景及意義</b></p><p>  目前android平臺(tái)手機(jī)滲透到我們生活,20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下

32、基于android平臺(tái)手機(jī)的現(xiàn)代電子產(chǎn)品在我們生活的各個(gè)角落都能見到,有力地推動(dòng)了社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快?;赼ndroid平臺(tái)手機(jī)的發(fā)展趨勢(shì),本設(shè)計(jì)以android平臺(tái)手機(jī)為核心制作了一個(gè)短信通。</p><p>  本次設(shè)計(jì)運(yùn)用android平臺(tái)手機(jī)作為研究開發(fā)對(duì)象,配合Java語言程序設(shè)計(jì)以及面向?qū)ο笏枷朐O(shè)計(jì)了一種手機(jī)短信通。本設(shè)計(jì)完成后,能夠

33、實(shí)現(xiàn)以下功能:單號(hào)碼連發(fā)短信,號(hào)碼段群發(fā)短信,清單群發(fā)短信,定時(shí)發(fā)送短信。</p><p>  在設(shè)計(jì)時(shí),按照設(shè)計(jì)的要求,從安全性,經(jīng)濟(jì)性,可靠性三個(gè)方面進(jìn)行考慮,通過設(shè)計(jì)方案的比較,確定出來一套既經(jīng)濟(jì)又可行的方案。</p><p>  本次設(shè)計(jì)是對(duì)所學(xué)知識(shí)的綜合運(yùn)用,把理論知識(shí)和實(shí)踐相結(jié)合。在本次設(shè)計(jì)與檢驗(yàn)過程中遇到了許多實(shí)際問題,比如android平臺(tái)手機(jī)及其運(yùn)行環(huán)境的選擇,不熟悉開發(fā)

34、技巧,軟件運(yùn)行不穩(wěn)定,如何設(shè)計(jì)軟件的最佳外觀效果等。所有的這些問題,我們都通過查閱資料,咨詢老師一一解決了,為設(shè)計(jì)的成功提供了保障。</p><p>  本文通過方案確認(rèn),介紹了設(shè)計(jì)中所用到的技術(shù)、開發(fā)思想,以及android平臺(tái)的簡介,通過清晰的程序活動(dòng)圖,給程序的理解提供了方向。還介紹了程序調(diào)試軟件和硬件調(diào)試軟件,最后對(duì)本設(shè)計(jì)的軟件做了一個(gè)概述。</p><p><b>  

35、系統(tǒng)設(shè)計(jì)目標(biāo)</b></p><p>  Android手機(jī)的市場(chǎng)占有率已經(jīng)超過了Symbian成為全球第一大手機(jī)操作系統(tǒng),但是Android自帶的短信發(fā)送功能十分簡單,只支持即時(shí)發(fā)送單條短信,本項(xiàng)目的目的是開發(fā)一個(gè)支持短信群發(fā),定時(shí)短信的短信通軟件,實(shí)現(xiàn)的主要功能是單號(hào)碼連發(fā)短信(可設(shè)定發(fā)送條數(shù)和發(fā)送間隔),號(hào)碼段群發(fā)短信(輸入號(hào)碼段,可設(shè)置發(fā)送間隔),清單群發(fā)短信和定時(shí)短信四大功能,界面美觀,操作

36、簡單,功能實(shí)用。</p><p>  本項(xiàng)目是一款基于Android手機(jī)平臺(tái)的短信通軟件,使Android手機(jī)擁有更加強(qiáng)大的短信發(fā)送功能,使手機(jī)顯得生動(dòng)靈活化,與人們更為接近,讓手機(jī)的主人可以在節(jié)日群發(fā)節(jié)日短信,發(fā)送定時(shí)短信等,方便用戶的生活,也使設(shè)計(jì)者更加熟悉Android的技術(shù)和其他市場(chǎng)的特點(diǎn)。</p><p><b>  論文準(zhǔn)備工作</b></p>

37、<p>  前言,介紹了研究的背景及意義,系統(tǒng)的設(shè)計(jì)目標(biāo)和介紹論文的節(jié)構(gòu)。</p><p>  第一章為課題的相關(guān)技術(shù)與理論,研究的Android平臺(tái)的架構(gòu),分析了Android應(yīng)用的構(gòu)成和工作機(jī)制,最后介紹了本軟件使用的核心技術(shù)。</p><p><b>  相關(guān)技術(shù)與理論</b></p><p>  Android架構(gòu)研究&l

38、t;/p><p>  圖1-1 顯示的是Android架構(gòu)中的5個(gè)主要組成部分,每一部分會(huì)在下面具體描述。</p><p>  圖1-1 Android架構(gòu)</p><p><b>  應(yīng)用程序</b></p><p>  在Android SDK所用的手機(jī)模擬器及未來實(shí)體的手機(jī)中,都會(huì)有一系列Java語言撰寫的核心應(yīng)用程序

39、,包含電子郵件客戶端、SMS程序、日歷、瀏覽器、聯(lián)系人與其它一些應(yīng)用程序,讓使用者一開始就可以在手機(jī)上使用這些基本的功能。</p><p><b>  應(yīng)用程序架構(gòu)</b></p><p>  在Android SDK中,定義了讓開發(fā)者使用與核心應(yīng)用程序相同API的權(quán)限。</p><p>  應(yīng)用程序框架是為了要簡化組件的重新利用而設(shè)計(jì)的,應(yīng)用

40、程序可以發(fā)布功能并為其它應(yīng)用程序所使用。但是,這要受限于應(yīng)用程序架構(gòu)的安全機(jī)制,使用者可以用同樣的機(jī)制來新增、置換組件。</p><p>  目前所有的應(yīng)用程序是由服務(wù)及系統(tǒng)來組成,包含有:</p><p>  一套強(qiáng)大的可擴(kuò)展的視圖系統(tǒng):用來建構(gòu)一個(gè)應(yīng)用程序的基本組件,包含了在開發(fā)系統(tǒng)畫面時(shí),常用的列表、網(wǎng)格、文本框、按鈕等控制項(xiàng),甚至是內(nèi)嵌的Web瀏覽器。</p><

41、;p>  內(nèi)容提供者:使應(yīng)用程序可以訪問另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。</p><p>  資源管理器:提供各種非程序代碼的資源讓應(yīng)用程序去使用。例如:本地字符串、圖形文件或排版相關(guān)的布局文件。</p><p>  通知管理器:提供應(yīng)用程序在狀態(tài)欄中顯示應(yīng)用程序自定義的提示信息。</p><p>  活動(dòng)管理器:管理所有應(yīng)用程

42、序的生命周期及提供常用的導(dǎo)航回退功能。</p><p><b>  Linux內(nèi)核</b></p><p>  在Android SDK的作業(yè)系統(tǒng)是用Linux,其版本為2.6版。而所提供的核心系統(tǒng)服務(wù)有:安全機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)程序模型。Linux內(nèi)核也同時(shí)作為硬件與軟件棧之間的抽象層,用來做相互溝通的工作。</p><p&

43、gt;  Android應(yīng)用的構(gòu)成和工作機(jī)制</p><p>  Android的API</p><p>  Android API主要包含了以下幾個(gè)部分:</p><p>  AndroidManifest.xml。AndroidManifest.xml是系統(tǒng)的控制文件。</p><p>  活動(dòng)?;顒?dòng)就是一個(gè)有生命周期的對(duì)象。</p

44、><p>  視圖。視圖可以將其自身繪制到屏幕上。</p><p>  意圖。意圖是一個(gè)簡單的消息對(duì)象,它表示程序想做某事的“意圖"。</p><p>  服務(wù)。服務(wù)是運(yùn)行在后臺(tái)的代碼。它可以運(yùn)行在它自己的進(jìn)程,也可以運(yùn)行在其他應(yīng)用程序的進(jìn)程里,這取決于自身的需要。</p><p>  通知。通知將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過

45、與圖標(biāo)的交互式操來接收消息。</p><p>  內(nèi)容提供者。內(nèi)容提供者是用來提供對(duì)設(shè)備上數(shù)據(jù)進(jìn)行訪問。典型的例子就是使用內(nèi)容提供者來訪問聯(lián)系人列表。</p><p>  Android應(yīng)用程序結(jié)構(gòu)解析</p><p>  通常由以下四個(gè)組件來構(gòu)建一個(gè)完整的Android應(yīng)用程序:活動(dòng),意圖,接收器,服務(wù)內(nèi)容提供者。</p><p>  然而

46、,并不是所有的Android應(yīng)用程序都必須具備上面的四個(gè)組件,可以由上面的一個(gè)或幾個(gè)來組建。當(dāng)決定使用以上哪些組件來構(gòu)建Android應(yīng)用程序時(shí),需要將它們注冊(cè)在AndroidManifest.xml文件中,這是一個(gè)XML配置文件,在這個(gè)文件中可以聲明應(yīng)用程序組件以及它們的特性和要求。這個(gè)配置文件是每個(gè)Android應(yīng)用程序所必需的。</p><p><b>  使用的核心技術(shù)</b><

47、;/p><p>  Intent的詳細(xì)解析</p><p>  在一個(gè)Android應(yīng)用中,主要是由四種組件組成的,這四種組件可參考上一節(jié)的內(nèi)容。而這四種組件是獨(dú)立的,它們之間可以互相調(diào)用,協(xié)調(diào)工作,最終組成一個(gè)真正的Android應(yīng)用。</p><p>  例如,在一個(gè)聯(lián)系人維護(hù)的應(yīng)用中,當(dāng)在一個(gè)聯(lián)系人列表屏幕(假設(shè)對(duì)應(yīng)的Activity為listActivity)上

48、,點(diǎn)擊某個(gè)聯(lián)系人后,希望能夠調(diào)出此聯(lián)系人的詳細(xì)信息屏幕(假設(shè)對(duì)應(yīng)的Activity為detailActivity),為了實(shí)現(xiàn)這個(gè)目的,listActivity需要構(gòu)造一個(gè)Intent,這個(gè)Intent用于告訴系統(tǒng),要做“查看”動(dòng)作,此動(dòng)作對(duì)應(yīng)的查看對(duì)象是“某聯(lián)系人”,然后調(diào)用startActivity(Intent intent),將構(gòu)造的Intent傳入,系統(tǒng)會(huì)根據(jù)此Intent中的描述,到AndroidManifest.xml中找到

49、滿足此Intent要求的Activity。系統(tǒng)會(huì)調(diào)用找到的Activity,即為detailActivity,最終傳入Intent,detailActivity則會(huì)根據(jù)此Intent中的描述,執(zhí)行相應(yīng)的操作。</p><p>  Android活動(dòng)的生命周期</p><p>  Android應(yīng)用程序的生命周期是由Android框架進(jìn)行管理,而不是由應(yīng)用程序直接控制。通常,每一個(gè)應(yīng)用程序(

50、入口一般會(huì)是一個(gè)活動(dòng)的onCreate方法),都會(huì)占據(jù)一個(gè)進(jìn)程。當(dāng)系統(tǒng)內(nèi)存即將不足的時(shí)候,會(huì)依照優(yōu)先級(jí)自動(dòng)進(jìn)行進(jìn)程的回收。不管是使用者或開發(fā)者,都無法確定應(yīng)用程序何時(shí)會(huì)被回收。關(guān)于進(jìn)程的生命周期將在下一節(jié)中介紹,本節(jié)主要介紹活動(dòng)的生命周期。</p><p>  一個(gè)活動(dòng)類別除了OnCreate方法之外,還預(yù)先定義了OnPause(暫停)、OnResume(繼續(xù))等的基本方法,當(dāng)從一個(gè)活動(dòng)切換到另一個(gè)活動(dòng)的時(shí)候,原

51、來的活動(dòng)將經(jīng)過一連串的狀態(tài)改變。開發(fā)者可以在程序中添加一些各狀態(tài)相對(duì)應(yīng)的流程,每次活動(dòng)狀態(tài)改變時(shí),就會(huì)執(zhí)行相對(duì)應(yīng)的流程。</p><p>  要讓用戶有好的使用體驗(yàn),活動(dòng)需要在各個(gè)周期中負(fù)責(zé)保管狀態(tài)、恢復(fù)狀態(tài)、傳送資料等工作。</p><p>  Android的虛擬機(jī)(VM)是使用堆棧管理。主要有四種狀態(tài):活動(dòng)狀態(tài),暫停狀態(tài),停止?fàn)顟B(tài),已回收或未啟動(dòng)狀態(tài)。</p><

52、p>  已回收或未啟動(dòng)狀態(tài)是指活動(dòng)尚未被啟動(dòng)、已經(jīng)被手動(dòng)終止或已經(jīng)被系統(tǒng)回收的狀態(tài)。要手動(dòng)終止活動(dòng),可以在程序中調(diào)用finish方法。</p><p>  圖1-2 Android的Activity生命周期</p><p>  圖1-2所示的七個(gè)狀態(tài)又可以歸納成三組:資源分配(創(chuàng)建/銷毀),可見與不可見(啟動(dòng)/重新啟動(dòng)/停止),用戶取得屏幕的控制權(quán)(繼續(xù)/暫停)。</p>

53、<p>  Android進(jìn)程的生命周期</p><p>  在大多數(shù)情況下,每個(gè)Android應(yīng)用程序都運(yùn)行在自己的Linux進(jìn)程中。當(dāng)應(yīng)用程序的某些代碼需要運(yùn)行時(shí),這個(gè)進(jìn)程就被創(chuàng)建并一直運(yùn)行下去,直到系統(tǒng)認(rèn)為該進(jìn)程不再有用為止。然后系統(tǒng)將回收進(jìn)程占用的內(nèi)存以便分配給其它的應(yīng)用程序。</p><p>  為了決定在內(nèi)存不足時(shí)讓系統(tǒng)殺死哪個(gè)進(jìn)程,Android根據(jù)每個(gè)進(jìn)程中運(yùn)

54、行的組件以及組件的狀態(tài)把進(jìn)程放入一個(gè)“重要性分級(jí)"中。進(jìn)程的類型包括(按重要程度排序):前臺(tái)進(jìn)程,可見進(jìn)程,服務(wù)進(jìn)程,后臺(tái)進(jìn)程,空進(jìn)程。</p><p><b>  系統(tǒng)構(gòu)思</b></p><p><b>  形成系統(tǒng)概念</b></p><p><b>  簡化</b></p>

55、;<p>  Android系統(tǒng)自帶的短信發(fā)送功能十分簡單,只支持短信的即時(shí)發(fā)送,通過基于Android平臺(tái)的短信通的實(shí)現(xiàn)來讓Android用戶方便發(fā)送短信。</p><p>  同類產(chǎn)品的比較和分析</p><p>  雖然Android平臺(tái)是完全開源的,但是Android本身所帶的短信功能十分薄弱,不支持短信的群發(fā),單號(hào)碼連發(fā),號(hào)碼段群發(fā)短信以及定時(shí)短信功能,給用戶帶來了

56、很大的不便。當(dāng)前Android手機(jī)應(yīng)用市場(chǎng)上雖然有一些增強(qiáng)短信發(fā)送功能的軟件,但是并不支持短信群發(fā)和定時(shí)短信功能。</p><p>  而且Android應(yīng)用魚龍混雜,真正一款方便用戶群發(fā)短信和定時(shí)群發(fā)短信的軟件在市場(chǎng)上還是空白。</p><p>  當(dāng)前市場(chǎng)的短信軟件有:GO短信,飛信,Sms Timer等。</p><p>  GO短信主要還是對(duì)收發(fā)短信和通訊錄

57、的管理,并不支持短信的定時(shí)發(fā)送和短信群發(fā)功能。</p><p>  飛信雖然可以支持定時(shí)短信和短信群發(fā),但這只是針對(duì)于移動(dòng)的用戶之間,對(duì)于聯(lián)通和電信的用戶來說就可望而不可及了。</p><p>  Sms Timer是一款國外的定時(shí)短信應(yīng)用,雖然可用,但是不符合中國人的操作習(xí)慣。</p><p>  以上軟件都不能把定時(shí)短信和短信群發(fā)進(jìn)行不依賴于sim卡運(yùn)營商的整合

58、。</p><p>  因此此款短信通軟件有廣闊的市場(chǎng)前景,一定會(huì)吸引大量的用戶下載使用。</p><p><b>  闡述概念</b></p><p><b>  使用用戶</b></p><p>  用戶為所有使用Android智能操作系統(tǒng)的手機(jī)用戶。暫時(shí)不考慮使用Android平板電腦的用戶。

59、</p><p>  本系統(tǒng)的最終用戶是使用Android智能操作系統(tǒng)的手機(jī)用戶,暫時(shí)不考慮使用Android平板電腦的用戶。</p><p>  谷歌稱每天有30萬臺(tái)Android手機(jī)激活,從一個(gè)側(cè)面也反映了龐大的潛在用戶群體。</p><p>  Android手機(jī)用戶涵蓋的人群層次比較大眾化,有超過半數(shù)的Android用戶不到35歲,是所有智能手機(jī)系統(tǒng)中最多的

60、??葱侣?、商業(yè)應(yīng)用和各種工具使用用戶較多。</p><p><b>  解決問題</b></p><p>  基于Android平臺(tái)的短信通軟件服務(wù)的群體為Android手機(jī)用戶。用戶通過本軟件可以方便的進(jìn)行短信的發(fā)送。</p><p>  對(duì)同一個(gè)電話號(hào)段內(nèi)的號(hào)碼可設(shè)置時(shí)間間隔,進(jìn)行短信群發(fā)。</p><p>  輸入

61、開始號(hào)碼和結(jié)束號(hào)碼以及發(fā)送間隔,對(duì)整個(gè)號(hào)碼段內(nèi)的手機(jī)進(jìn)行短信群發(fā)。</p><p>  從通訊錄中選擇一條或多條聯(lián)系人,進(jìn)行短信群發(fā)。</p><p>  從通訊錄中選擇一條或多條聯(lián)系人,設(shè)置發(fā)送時(shí)間,實(shí)現(xiàn)短信的定時(shí)發(fā)送。</p><p>  用戶可以自定義分組,將不同的聯(lián)系人進(jìn)行分組管理。</p><p><b>  用戶需要&l

62、t;/b></p><p>  如節(jié)日或集團(tuán)內(nèi)有事情要通知,用戶都會(huì)使用本軟件進(jìn)行短信的群發(fā)或定時(shí)發(fā)送。</p><p><b>  可行性分析</b></p><p>  成本和風(fēng)險(xiǎn):基于Android平臺(tái)的短信通軟件是基于Android的應(yīng)用層開發(fā),金錢成本為開發(fā)所需的電腦和測(cè)試時(shí)所需要的Android手機(jī)。如果要發(fā)布到Google

63、Market需要一張國際信用卡賬號(hào),且注冊(cè)Google開發(fā)者的成本為15美金。因此開發(fā)的風(fēng)險(xiǎn)幾乎可以忽略。</p><p>  效益:市場(chǎng)的空白,完善的功能整合,良好的用戶操作體驗(yàn)一定會(huì)吸引大量用戶下載使用,在后續(xù)的升級(jí)版本中加入合適的廣告,如節(jié)日短信匯總類的網(wǎng)站,不僅方便了用戶,更會(huì)帶來一定的經(jīng)濟(jì)效益,同時(shí)不會(huì)影響用戶體驗(yàn)。</p><p>  軟件可行性:Google API提供了完備

64、的開發(fā)接口,讀取通訊錄信息,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和短信的發(fā)送都是可以實(shí)現(xiàn)的。</p><p><b>  需求陳述</b></p><p><b>  開發(fā)環(huán)境</b></p><p>  Windows XP SP3操作系統(tǒng),MyEclipse7.5,JDK1.6,Android SDK,Android Development

65、 Tools(ADT)。</p><p>  StartUML,PowerDesigner。</p><p><b>  運(yùn)行環(huán)境</b></p><p>  Android 1.6及其以上版本的手機(jī)。</p><p><b>  性能需求</b></p><p>  美觀的

66、用戶界面,良好的操作體驗(yàn),多線程的使用,多語言版本的支持,數(shù)據(jù)查詢的效率。</p><p><b>  軟件實(shí)現(xiàn)原則</b></p><p>  根據(jù)軟件工程規(guī)范和基于Android的短信通系統(tǒng)的要求及特點(diǎn),系統(tǒng)開發(fā)時(shí)必須遵循以下原則。</p><p>  1.實(shí)用性原則:開發(fā)的系統(tǒng)必須滿足實(shí)用性需求,做到使用方便,輸入數(shù)據(jù)量盡量小,界面直觀,

67、易學(xué)易用,不同業(yè)務(wù)之間界面轉(zhuǎn)換速度快。</p><p>  2.高性能原則:系統(tǒng)在性能上做到實(shí)時(shí)性強(qiáng)、數(shù)據(jù)容量小、響應(yīng)速度快、穩(wěn)定性高、出錯(cuò)率低、容錯(cuò)性好等優(yōu)點(diǎn)。</p><p>  3.數(shù)據(jù)安全性原則:安全性永遠(yuǎn)是數(shù)據(jù)庫的重要課題,必須采取多種措施保證數(shù)據(jù)庫的安全。</p><p>  4.滿足速度要求下的少冗余原則: 冗余指的是邏輯上相同的數(shù)據(jù),在不同的記錄中重

68、復(fù)出現(xiàn),或在邏輯上能導(dǎo)出存在于數(shù)據(jù)庫的記錄中。從理論上講,冗余的存在,在數(shù)據(jù)庫設(shè)計(jì)的不合理,是破壞數(shù)據(jù)庫一致性的潛在危險(xiǎn),同時(shí)會(huì)增加數(shù)據(jù)空間開銷。但是,在特殊情況下,為了滿足速度要求,常常設(shè)計(jì)一些冗余作為數(shù)據(jù)庫記錄。</p><p>  5.數(shù)據(jù)庫字符段可空原則:具有默認(rèn)數(shù)值和狀態(tài)的數(shù)據(jù)庫字符段,采用可空假定。對(duì)于可伸縮的數(shù)據(jù)庫,可空字符段在沒有數(shù)據(jù)輸入的情況下是不占空間的。</p><p&g

69、t;  6..操作模式可選擇性原則:對(duì)不同的操作模式,設(shè)計(jì)不同的功能和不同的界面,或在同一功能和界面下設(shè)計(jì)多個(gè)選擇項(xiàng),以適應(yīng)模式多變的需求。</p><p>  7.美觀化設(shè)計(jì)原則:在滿足實(shí)用性的條件下,后臺(tái)界面設(shè)計(jì)做到美觀大方,大小適中,排列整齊,各種控制鍵的中文名字簡單明了,不同的業(yè)務(wù)甚至不同的功能,有不同的界面。</p><p>  8.常用性與特殊性相結(jié)合原則:對(duì)常用的狀態(tài)和數(shù)值,

70、作為缺省,對(duì)常用的功能放在主要界面和排前原則,對(duì)不常用功能啟動(dòng)時(shí)進(jìn)行折疊和排后。</p><p>  9.數(shù)據(jù)可維護(hù)性原則:數(shù)據(jù)維護(hù)包括權(quán)限設(shè)置、高級(jí)地址的集合運(yùn)算、無用數(shù)據(jù)的刪除、數(shù)據(jù)庫的清理、數(shù)據(jù)備份與恢復(fù)等功能。</p><p>  10.系統(tǒng)可維護(hù)性原則:全面按照軟件工程的要求來開發(fā)基于Android的短信通系統(tǒng),做到嚴(yán)格管理、嚴(yán)格測(cè)試。每個(gè)工作階段,都具備相應(yīng)的經(jīng)過嚴(yán)格審查的文檔

71、,為將來系統(tǒng)服務(wù)提供技術(shù)上的保證。</p><p>  11.統(tǒng)一性原則:建立統(tǒng)一合理的數(shù)據(jù)庫模型,實(shí)行統(tǒng)一的文檔編排和管理;實(shí)行統(tǒng)一的數(shù)據(jù)庫關(guān)系命名、文件命名、函數(shù)命名、變量命名,實(shí)行統(tǒng)一的編程風(fēng)格。</p><p>  12.系統(tǒng)的可擴(kuò)展性原則:在滿足一期方案的基礎(chǔ)上,考慮今后系統(tǒng)可能新增功能(比如,集成一些常用的節(jié)日祝福短信,用戶自定義短信的開頭歡迎語等)帶來的系統(tǒng)軟硬件的變化,為系

72、統(tǒng)的擴(kuò)充預(yù)留接口。</p><p>  需求獲取(用例模型)</p><p><b>  概述</b></p><p>  在抽象層次上建模,用例描述系統(tǒng)如何與外部參與者進(jìn)行交互。每個(gè)用例表示系統(tǒng)提供給其用戶的一段功能。對(duì)于捕獲非形式化的需求來說,用例的作用便彰顯出來了。</p><p><b>  系統(tǒng)邊界&

73、lt;/b></p><p>  需了解應(yīng)用程序的準(zhǔn)確范圍,也即系統(tǒng)邊界,以方便把功能確定下來</p><p><b>  圖3-1 系統(tǒng)邊界</b></p><p>  如圖3-1所示,系統(tǒng)邊界為用戶的Android手機(jī)操作系統(tǒng),基于Android平臺(tái)的短信通軟件調(diào)用Android SDK提供的接口、方法和數(shù)據(jù)庫來實(shí)現(xiàn)功能。</p

74、><p><b>  參與者</b></p><p>  參與者為使用Android的手機(jī)的用戶和移動(dòng)運(yùn)營商(移動(dòng),聯(lián)通,電信)。Android手機(jī)用戶使用短信通軟件定制發(fā)送信息,最終短信的發(fā)送還是通過各個(gè)移動(dòng)運(yùn)營商來完成發(fā)送。</p><p>  表3-1 參與者概述</p><p><b>  系統(tǒng)用例圖<

75、;/b></p><p>  系統(tǒng)用例圖如圖3-2所示:</p><p>  圖3-2 系統(tǒng)用例圖</p><p><b>  用例簡述</b></p><p><b>  單號(hào)碼連發(fā)</b></p><p><b>  如表3-2所示。</b>&

76、lt;/p><p>  表3-2 單號(hào)碼連發(fā)</p><p><b>  號(hào)碼段群發(fā)</b></p><p><b>  如圖表3-3所示。</b></p><p>  表3-3 號(hào)碼段群發(fā)</p><p><b>  清單群發(fā)短信</b></p>

77、;<p><b>  如表3-4所示。</b></p><p>  表3-4 清單群發(fā)短信</p><p><b>  定時(shí)短信</b></p><p><b>  如表3-5所示。</b></p><p>  表3-5 清單群發(fā)短信</p><

78、;p><b>  用戶自定義清單</b></p><p><b>  如表3-6所示。</b></p><p>  表3-6 用戶自定義清單</p><p><b>  系統(tǒng)分析</b></p><p><b>  概述</b></p>

79、<p>  理解需求陳述所描述的真實(shí)世界的系統(tǒng),并把它的功能抽象為模型。分析模型是準(zhǔn)確的簡潔的問題表述,能夠答復(fù)問題,并創(chuàng)建問題的解決方案。</p><p>  系統(tǒng)分析描述對(duì)象的三個(gè)方面:對(duì)象的靜態(tài)結(jié)構(gòu)(類模型)、對(duì)象之間的交互(交互模型)和對(duì)象的生存期(狀態(tài)模型)。類模型是對(duì)真實(shí)世界實(shí)體的抽象。涉及反映控制和定制影響的問題,例如用戶界面和過程控制,都需要有重要的狀態(tài)模型。</p>&

80、lt;p>  把系統(tǒng)分析換分成兩個(gè)階段。第一個(gè)階段,領(lǐng)域分析,專注于理解問題的本質(zhì)。第二個(gè)階段,應(yīng)用分析,它構(gòu)建于領(lǐng)域模型之上,合并了用戶可見的主要的應(yīng)用程序制品,用戶必須核準(zhǔn)這些制品的使用權(quán)。</p><p><b>  領(lǐng)域分析</b></p><p><b>  概述</b></p><p>  領(lǐng)域分析,設(shè)計(jì)

81、一套準(zhǔn)確簡介、可理解和正確的真實(shí)世界模型。構(gòu)造領(lǐng)域模型的目的:澄清需求,為風(fēng)險(xiǎn)承擔(dān)人和開發(fā)者之間約定提供依據(jù),而且要把模型當(dāng)成設(shè)計(jì)和實(shí)現(xiàn)的出發(fā)點(diǎn)。</p><p><b>  領(lǐng)域類模型</b></p><p><b>  尋找并保留正確的類</b></p><p>  圖4-1 短信通軟件的類</p>&l

82、t;p><b>  短信通軟件完整類圖</b></p><p>  圖4-2 短信通軟件的類圖</p><p><b>  領(lǐng)域狀態(tài)模型</b></p><p>  短信類的對(duì)象執(zhí)行遷移上的活動(dòng),因此為短信類添加狀態(tài)圖,如圖4-3所示</p><p>  圖4-3 領(lǐng)域狀態(tài)模型</p&g

83、t;<p><b>  應(yīng)用分析</b></p><p><b>  概述</b></p><p>  應(yīng)用分析通過把一些重要的應(yīng)用制品加進(jìn)前面的領(lǐng)域模型當(dāng)中來完成對(duì)分析過程的討論。在分析階段包含了這些應(yīng)用制品,是因?yàn)樗鼈兒苤匾?,?duì)用戶可見,且要得到用戶的核準(zhǔn)。</p><p>  應(yīng)用程序交互模型(時(shí)序圖)

84、</p><p>  時(shí)序圖捕獲了參與者之間的會(huì)話與交互過程。</p><p><b>  清單發(fā)送時(shí)序圖</b></p><p>  圖4-4 清單發(fā)送時(shí)序圖</p><p><b>  定時(shí)短信時(shí)序圖</b></p><p>  圖4-5 定時(shí)短信時(shí)序圖</p>

85、;<p>  應(yīng)用程序交互模型(活動(dòng)圖)</p><p>  對(duì)于復(fù)雜用例,我們往往還需一張用于描述主導(dǎo)交互流的順序圖,而且還需要描述各種錯(cuò)誤和決策點(diǎn),因此對(duì)于復(fù)雜用例編制活動(dòng)圖。</p><p>  如圖4-6所示為定時(shí)短信的活動(dòng)圖。</p><p>  圖4-6 定時(shí)短信活動(dòng)圖</p><p><b>  應(yīng)用類模

86、型</b></p><p><b>  確定用戶界面</b></p><p>  主界面原型如圖4-7所示</p><p>  圖4-7 主界面的界面原型</p><p>  圖4-8 單號(hào)碼連發(fā)界面原型</p><p>  圖4-9 清單發(fā)送界面原型</p><p

87、>  圖4-10 定時(shí)短信主界面原型</p><p><b>  確定控制器</b></p><p>  控制器是一種管理應(yīng)用程序內(nèi)部控制權(quán)的主動(dòng)對(duì)象。它接收外界或系統(tǒng)內(nèi)部對(duì)象的信號(hào),響應(yīng)它們,調(diào)用它們,調(diào)用系統(tǒng)對(duì)象上的信號(hào),以及給外界發(fā)送信號(hào)??刂破魇且詫?duì)象的形式來捕獲的一段具體化的行為,這種行為要比普通代碼更容易操作和轉(zhuǎn)換。多數(shù)應(yīng)用的核心都是一項(xiàng)或多項(xiàng)控制器

88、,由它們來組織應(yīng)用程序的行為序列。</p><p>  短信通軟件有一個(gè)控制器,就是短信的發(fā)送,由控制器進(jìn)行處理。</p><p><b>  應(yīng)用狀態(tài)模型</b></p><p>  應(yīng)用狀態(tài)模型專注于應(yīng)用類,并且擴(kuò)展了領(lǐng)域狀態(tài)模型。應(yīng)用類比領(lǐng)域類擁有重要的時(shí)序行為。</p><p><b>  系統(tǒng)總狀態(tài)圖

89、</b></p><p>  圖4-11 系統(tǒng)總狀態(tài)圖</p><p><b>  清單群發(fā)狀態(tài)圖</b></p><p>  圖4-12 清單群發(fā)狀態(tài)圖</p><p><b>  定時(shí)短信發(fā)送狀態(tài)圖</b></p><p>  圖4-13 定時(shí)短信狀態(tài)圖<

90、;/p><p><b>  檢查交互模型</b></p><p>  通過檢查分析,狀態(tài)圖很可靠,與交互模型的場(chǎng)景也具有一致性。</p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p><b>  概述</b></p><p>  系統(tǒng)設(shè)計(jì)的目標(biāo)是設(shè)計(jì)

91、出一套用來解決應(yīng)用問題的高層策略,也即架構(gòu)。架構(gòu)的選取是一項(xiàng)重要決策,可能會(huì)產(chǎn)生廣泛的影響,這個(gè)過程以需求和以往的經(jīng)驗(yàn)為基礎(chǔ),此階段必須制定決策,引導(dǎo)后續(xù)類的設(shè)計(jì)。</p><p><b>  估算性能</b></p><p><b>  估算發(fā)送性能</b></p><p>  假定規(guī)劃用戶發(fā)送短信的性能,假設(shè)用戶只需發(fā)

92、送一條短信,且網(wǎng)絡(luò)良好,短信是即時(shí)發(fā)送的。</p><p>  假設(shè)用戶某次發(fā)送了50條短信,且網(wǎng)絡(luò)條件良好,假定每條短信發(fā)送用時(shí)為2秒(從用戶發(fā)送到接收人接收到),但2秒鐘內(nèi)約有0.2秒是短信通處理的時(shí)間,其余為移動(dòng)運(yùn)營商發(fā)送短信的時(shí)間(1.8秒),那么全部發(fā)送短信通處理的時(shí)間約為10秒,但預(yù)計(jì)短信通系統(tǒng)處理的時(shí)間會(huì)小于這個(gè)數(shù)。因?yàn)槎绦磐òl(fā)送和移動(dòng)運(yùn)營商發(fā)送是同步進(jìn)行的,且互不影響,因此從執(zhí)行發(fā)送按鈕后2秒后第

93、一個(gè)用戶收到短信,到第50個(gè)用戶收到短信,中間為11.8秒。如表5-1所示</p><p>  表5-1 50條短信連續(xù)發(fā)送</p><p>  如果用戶設(shè)定發(fā)送間隔為10秒,發(fā)送50條短信,需時(shí)間為500秒(6分20秒),這時(shí)就是一個(gè)很長的時(shí)間了,需要考慮用戶的操作體驗(yàn)了。</p><p><b>  估算數(shù)據(jù)存儲(chǔ)性能</b></p&g

94、t;<p>  對(duì)于數(shù)據(jù)的存儲(chǔ),使用Android自帶的SQLite輕量級(jí)數(shù)據(jù)庫,用戶的數(shù)據(jù)就是用戶分組的信息和定時(shí)短信的信息,設(shè)計(jì)合理的表結(jié)構(gòu)和執(zhí)行較高效率的存取操作代碼即可。</p><p><b>  制定復(fù)用計(jì)劃</b></p><p><b>  庫</b></p><p>  需要復(fù)用的庫如表5-

95、2所示,</p><p><b>  表5-2 庫的復(fù)用</b></p><p><b>  模式</b></p><p>  采用工廠模式和匿名內(nèi)部類的實(shí)現(xiàn)方法。</p><p><b>  將系統(tǒng)分成子系統(tǒng)</b></p><p>  子系統(tǒng)是一組相

96、關(guān)的類,操作,關(guān)聯(lián),事件和約束,并有一個(gè)與其他子系統(tǒng)服務(wù)之間的定義清晰的小型接口。子系統(tǒng)通常由它提供的服務(wù)來識(shí)別。</p><p>  將軟件劃分子系統(tǒng):單號(hào)碼連發(fā)子系統(tǒng),號(hào)碼段群發(fā)子系統(tǒng),清單發(fā)送子系統(tǒng),定時(shí)短信子系統(tǒng),Android主線程。</p><p><b>  確定并發(fā)性</b></p><p>  系統(tǒng)設(shè)計(jì)的一個(gè)重要目標(biāo)就是識(shí)別必

97、須是并發(fā)的活動(dòng)的那些對(duì)象和具有互斥活動(dòng)的對(duì)象??梢詫⒒コ饣顒?dòng)的對(duì)象疊加在單線程控制和任務(wù)中。</p><p><b>  識(shí)別內(nèi)部的并發(fā)性</b></p><p>  當(dāng)Android主線程在執(zhí)行的過程中,執(zhí)行發(fā)送短信這種比較耗時(shí)的操作,為了不影響用戶體驗(yàn),需要再開一個(gè)進(jìn)程,執(zhí)行耗時(shí)的短信發(fā)送操作。</p><p><b>  定義并

98、發(fā)任務(wù)</b></p><p>  Android主進(jìn)程和發(fā)送短信的進(jìn)程應(yīng)該分開,這樣才不會(huì)影響用戶體驗(yàn)。</p><p>  Android主進(jìn)程和單號(hào)碼連發(fā)子系統(tǒng),號(hào)碼段群發(fā)子系統(tǒng),清單發(fā)送子系統(tǒng),定時(shí)短信子系統(tǒng)的界面顯示合并成單項(xiàng)任務(wù)。</p><p><b>  分配子系統(tǒng)</b></p><p> 

99、 Android主進(jìn)程和發(fā)送短信的進(jìn)程共用用戶Android手機(jī)的硬件資源,并受Android的資源回收策略控制。</p><p><b>  管理數(shù)據(jù)存儲(chǔ)</b></p><p>  使用關(guān)系型DBMS,它們處理速度快,易于捕獲,并且具有好的成本—效益比率。</p><p>  此處使用Android自帶的SQLite輕量級(jí)數(shù)據(jù)庫,RDBMS

100、是成熟的產(chǎn)品,有許多功能可以減少開發(fā)的工作量。</p><p><b>  處理全局資源</b></p><p>  Android的用戶權(quán)限,需在總的配置文件中聲明和定義。</p><p>  Android的全局資源如圖片信息,界面的配置文件,數(shù)組信息,顯示的字符串(中文和英文),需在相應(yīng)的文件中聲明和定義,Android會(huì)把資源編號(hào)放到g

101、en包下的R.java,且具有唯一性,使用時(shí)方便調(diào)用。</p><p><b>  軟件控制策略</b></p><p><b>  外部控制</b></p><p>  外部控制專注于系統(tǒng)中對(duì)象之間的產(chǎn)生的外部可見事件流。此處使用時(shí)間驅(qū)動(dòng)型控制,控制存在于JAVA和Android操作系統(tǒng)提供的調(diào)度程序或監(jiān)視中,將短信通軟

102、件附加在事件上,當(dāng)發(fā)生了相應(yīng)的事件,調(diào)度程序就會(huì)調(diào)用過程。</p><p><b>  內(nèi)部控制</b></p><p>  內(nèi)部控制看成過程的調(diào)用,其中調(diào)用者發(fā)布請(qǐng)求,并等待響應(yīng)。還應(yīng)有并行的處理算法,如短信發(fā)送,但許多計(jì)算都可以很好的按順序表示,這樣就可以很容易的疊加在單線程控制之中。</p><p><b>  處理邊界條件&l

103、t;/b></p><p><b>  初始化</b></p><p>  短信通系統(tǒng)必然會(huì)從精致的初始狀態(tài)前進(jìn)到持續(xù)性的穩(wěn)態(tài)。系統(tǒng)必須初始化常量數(shù)據(jù),參數(shù),全局變量,任務(wù),監(jiān)護(hù)對(duì)象以及類層次結(jié)構(gòu)本身。在初始化過程中,通常只會(huì)提供系統(tǒng)功能的一組子集。</p><p><b>  終止</b></p>&

104、lt;p>  終止比初始化簡單,因?yàn)樵S多內(nèi)部對(duì)象都只是簡單的丟棄掉。任務(wù)必須要釋放它的外部資源。</p><p><b>  失效</b></p><p>  失效是系統(tǒng)的意外終止。失效可能是來源于用戶的錯(cuò)誤,系統(tǒng)資源耗盡以及外部故障。軟件通需要對(duì)有規(guī)律的失效做出規(guī)劃,在出現(xiàn)致命的錯(cuò)誤時(shí)要合理的退出,讓環(huán)境中其余部分竟可能的保存完好,并盡可能多的將終止前的大部分

105、有效信息記錄下來。</p><p><b>  設(shè)置權(quán)衡優(yōu)先級(jí)</b></p><p>  短信通軟件是一種大眾化軟件產(chǎn)品。因此對(duì)不同軟件和硬件的Android的兼容性問題是其中一個(gè)考慮的事項(xiàng),最終產(chǎn)品會(huì)提供一套完善的用戶界面。在時(shí)效的情況下,軟件必須要健壯,具有彈性。開發(fā)成本不需過多考慮。</p><p><b>  系統(tǒng)架構(gòu)<

106、;/b></p><p>  短信通軟件混合了交互式界面和實(shí)時(shí)系統(tǒng)。用戶界面都是交互式界面,其目的是與人進(jìn)行交互,收集開展事物所需的信息。短信的發(fā)送模塊基本上是一個(gè)實(shí)時(shí)系統(tǒng),硬實(shí)現(xiàn)軟件所涉及的關(guān)鍵性應(yīng)用,要求在給定的時(shí)間約束內(nèi)保證響應(yīng)。典型的應(yīng)用為進(jìn)程控制,數(shù)據(jù)獲取,通信設(shè)備以及負(fù)載延時(shí)等。實(shí)時(shí)系統(tǒng)需考慮中斷處理,任務(wù)優(yōu)先級(jí)劃分,多工作任務(wù)的調(diào)度等諸多問題。</p><p>  使用

107、Android自帶的SQLite數(shù)據(jù)庫存儲(chǔ)持久性數(shù)據(jù)。數(shù)據(jù)庫確保了數(shù)據(jù)的一致性,并可以用于并發(fā)訪問。</p><p>  在短信通軟件中實(shí)時(shí)系統(tǒng)的保障具有最高的優(yōu)先級(jí),也就是用戶體驗(yàn)的優(yōu)先級(jí)最高。如果對(duì)事務(wù)的完整性有任何懷疑的話,那么短信通必須放棄事務(wù),給用戶返回一條合適的消息。</p><p><b>  數(shù)據(jù)庫設(shè)計(jì)和類設(shè)計(jì)</b></p><p

108、><b>  數(shù)據(jù)庫</b></p><p><b>  概述</b></p><p>  數(shù)據(jù)庫管理系統(tǒng)(database management system,DBMS)是管理數(shù)據(jù)庫訪問的軟件。面向?qū)ο蠹夹g(shù)的一項(xiàng)主要目標(biāo)就是促進(jìn)軟件的復(fù)用。DBMS可以代替大部分應(yīng)用程序代碼,使用DBMS還有以下理由:數(shù)據(jù)保護(hù),效率,在用戶之間共享,在應(yīng)用

109、程序之間共享,數(shù)據(jù)質(zhì)量,數(shù)據(jù)分布和安全性。</p><p>  短信通軟件采用關(guān)系型數(shù)據(jù)庫SQLite。</p><p><b>  實(shí)現(xiàn)結(jié)構(gòu)—基礎(chǔ)</b></p><p><b>  實(shí)現(xiàn)類</b></p><p>  把每個(gè)類映射成一張表,每條屬性映射成一列</p><p&g

110、t;  如圖6-1, 圖6-2, 圖6-3圖6-4所示</p><p><b>  圖6-1 實(shí)現(xiàn)類</b></p><p>  圖6-2 用戶清單表字段</p><p>  圖6-3 用戶清單名字表字段</p><p>  圖6-4 定時(shí)短信表字段</p><p><b>  實(shí)現(xiàn)關(guān)聯(lián)

111、和泛化</b></p><p>  因?yàn)槭褂檬謾C(jī)的數(shù)據(jù)庫所以不應(yīng)該設(shè)計(jì)復(fù)雜的表結(jié)構(gòu)和關(guān)聯(lián),因?yàn)閷?shí)際數(shù)據(jù)庫的表只有3個(gè),沒有泛化,但有一個(gè)外鍵約束:用戶清單明細(xì)(detail)表的清單ID參照用戶清單(grouplist)表的主鍵_id。所以添加關(guān)聯(lián)的類如圖6-5所示。</p><p><b>  圖6-5 添加關(guān)聯(lián)</b></p><p

112、><b>  實(shí)現(xiàn)結(jié)構(gòu)—高級(jí)</b></p><p>  為添加關(guān)聯(lián)后的類實(shí)現(xiàn)外鍵,這里不需要手動(dòng)建立索引和視圖。得到最終的數(shù)據(jù)庫表結(jié)構(gòu)如圖6-6所示。</p><p>  圖6-6 短信通數(shù)據(jù)庫</p><p>  短信通的SQL代碼如圖6-7所示。</p><p>  圖6-7 短信通SQL代碼</p&g

113、t;<p><b>  封裝與查詢優(yōu)化</b></p><p>  采用工廠模式對(duì)DatabaseHelper和SQLiteDatabase封裝,以方便我們?cè)L問數(shù)據(jù)庫更加安全和方便。</p><p><b>  數(shù)據(jù)庫準(zhǔn)備</b></p><p>  由于這里需要操作同一個(gè)數(shù)據(jù)庫中的兩個(gè)表,所以首先創(chuàng)建一個(gè)名

114、字為DbAdapter的類DbAdapter.java,在這個(gè)類中完成數(shù)據(jù)庫中三個(gè)表的創(chuàng)建和升級(jí)操作,結(jié)構(gòu)代碼如下:</p><p><b>  /**</b></p><p>  * 完成數(shù)據(jù)庫中兩個(gè)表的創(chuàng)建和升級(jí)操作</p><p><b>  */</b></p><p>  public c

115、lass DBAdapter {</p><p>  private static final String TAG = "DBAdapter";</p><p>  // 設(shè)定數(shù)據(jù)庫文件名</p><p>  private static final String DATABASE_NAME = "UserContactsGroup.

116、db";</p><p>  private static final int DATABASE_VERSION = 1;</p><p>  public class DatabaseHelper extends SQLiteOpenHelper {</p><p>  public DatabaseHelper(Context context) {&l

117、t;/p><p>  super(context, DATABASE_NAME, null, DATABASE_VERSION);</p><p><b>  }</b></p><p><b>  @Override</b></p><p>  public void onCreate(SQLiteD

118、atabase db) {</p><p><b>  }</b></p><p>  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {</p><p><b>  }</b></p><p>  代

119、碼解釋:在上述代碼中,重新定義SQLiteOpenHelper的onCreate()和onUpgrade()方法,在這兩種方法中編寫自己創(chuàng)建和升級(jí)數(shù)據(jù)庫的腳本。</p><p><b>  數(shù)據(jù)庫表的操作</b></p><p>  對(duì)三張表操作進(jìn)行封裝,因?yàn)槠涔灿靡粋€(gè)數(shù)據(jù)庫,所以,從前面創(chuàng)建的DbAdapter中再繼承出三個(gè)類GroupDBAdapter,Group

120、DetailDBAdapter,SMSTimerDBAdapter將要再這三個(gè)類中封裝需要用到的操作,并通過接口提供出去。</p><p>  這里只列舉GroupDBAdapter.java,GroupDetailDBAdapter和SMSTimerDBAdapter的實(shí)現(xiàn)代碼類似,開始申明一些常量,然后按照操作需要定義幾種操作,GroupDBAdapter.java結(jié)構(gòu)代碼如下:</p><

121、;p>  public class GroupDBAdapter extends DBAdapter {</p><p>  private static final String TAG = "GroupDBAdapter";</p><p>  public static final String TABLE_NAME = "groupList&qu

122、ot;;</p><p>  public GroupDBAdapter(Context ctx) {</p><p><b>  }</b></p><p>  public GroupDBAdapter open() throws SQLException {</p><p><b>  }</b&

123、gt;</p><p>  public void close() {</p><p><b>  /**</b></p><p><b>  * 獲取一個(gè)記錄</b></p><p><b>  */</b></p><p>  public Curs

124、or getGroup(long rowId) throws SQLException {</p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 創(chuàng)建新的分組</b></p><p><b>  */<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論