畢業(yè)論文--基于android平臺的短信通的設計與實現(xiàn)_第1頁
已閱讀1頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、t;/p><p>  關鍵字:ANDROID,短信群發(fā),定時短信,開源</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章 相關技術與理論3</p><p>  §1.1 Android架構研究3

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

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

15、t;  §1.3.3 Android進程的生命周期7</p><p>  第2章 系統(tǒng)構思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 運行環(huán)境10</p><p>  §2.3.3 性能需求10</p><p>  §2.3.4 軟件實現(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、號碼連發(fā)13</p><p>  §3.5.2 號碼段群發(fā)14</p><p>  §3.5.3 清單群發(fā)短信14</p><p>  §3.5.4 定時短信15</p><p>  §3.5.5 用戶自定義清單15</p><p>  第4章 系統(tǒng)分析17</

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

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

22、;p>  §4.3.5 應用狀態(tài)模型24</p><p>  第5章 系統(tǒng)設計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ù)存儲性能28</p><p>  §5.3 制定復用計劃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 識別內(nèi)部的并發(fā)性29</p><p>  §5.5.2 定義并發(fā)任務29</p><p>  §5.6 分配子系統(tǒng)29</p><p>  §5.7 管理數(shù)據(jù)存儲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 設置權衡優(yōu)先級30</p><p>  §5.12 系統(tǒng)架構31</p><p>  第6章 數(shù)據(jù)庫設計和類設計32</p><p>  §6.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

43、gt;  Android應用的構成和工作機制</p><p>  Android的API</p><p>  Android API主要包含了以下幾個部分:</p><p>  AndroidManifest.xml。AndroidManifest.xml是系統(tǒng)的控制文件。</p><p>  活動?;顒泳褪且粋€有生命周期的對象。</p

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

60、。看新聞、商業(yè)應用和各種工具使用用戶較多。</p><p><b>  解決問題</b></p><p>  基于Android平臺的短信通軟件服務的群體為Android手機用戶。用戶通過本軟件可以方便的進行短信的發(fā)送。</p><p>  對同一個電話號段內(nèi)的號碼可設置時間間隔,進行短信群發(fā)。</p><p>  輸入

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

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

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

64、的開發(fā)接口,讀取通訊錄信息,實現(xiàn)數(shù)據(jù)的存儲和短信的發(fā)送都是可以實現(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>  運行環(huán)境</b></p><p>  Android 1.6及其以上版本的手機。</p><p><b>  性能需求</b></p><p>  美觀的

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

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

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

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

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

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

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

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

74、><p><b>  參與者</b></p><p>  參與者為使用Android的手機的用戶和移動運營商(移動,聯(lián)通,電信)。Android手機用戶使用短信通軟件定制發(fā)送信息,最終短信的發(fā)送還是通過各個移動運營商來完成發(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>  單號碼連發(fā)</b></p><p><b>  如表3-2所示。</b>&

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

77、;<p><b>  如表3-4所示。</b></p><p>  表3-4 清單群發(fā)短信</p><p><b>  定時短信</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>  理解需求陳述所描述的真實世界的系統(tǒng),并把它的功能抽象為模型。分析模型是準確的簡潔的問題表述,能夠答復問題,并創(chuàng)建問題的解決方案。</p><p>  系統(tǒng)分析描述對象的三個方面:對象的靜態(tài)結(jié)構(類模型)、對象之間的交互(交互模型)和對象的生存期(狀態(tài)模型)。類模型是對真實世界實體的抽象。涉及反映控制和定制影響的問題,例如用戶界面和過程控制,都需要有重要的狀態(tài)模型。</p>&

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

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

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

83、t;<p><b>  應用分析</b></p><p><b>  概述</b></p><p>  應用分析通過把一些重要的應用制品加進前面的領域模型當中來完成對分析過程的討論。在分析階段包含了這些應用制品,是因為它們很重要,對用戶可見,且要得到用戶的核準。</p><p>  應用程序交互模型(時序圖)

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

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

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

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

88、,由它們來組織應用程序的行為序列。</p><p>  短信通軟件有一個控制器,就是短信的發(fā)送,由控制器進行處理。</p><p><b>  應用狀態(tài)模型</b></p><p>  應用狀態(tài)模型專注于應用類,并且擴展了領域狀態(tài)模型。應用類比領域類擁有重要的時序行為。</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>  定時短信發(fā)送狀態(tài)圖</b></p><p>  圖4-13 定時短信狀態(tài)圖<

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

107、Android自帶的SQLite數(shù)據(jù)庫存儲持久性數(shù)據(jù)。數(shù)據(jù)庫確保了數(shù)據(jù)的一致性,并可以用于并發(fā)訪問。</p><p>  在短信通軟件中實時系統(tǒng)的保障具有最高的優(yōu)先級,也就是用戶體驗的優(yōu)先級最高。如果對事務的完整性有任何懷疑的話,那么短信通必須放棄事務,給用戶返回一條合適的消息。</p><p><b>  數(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的一項主要目標就是促進軟件的復用。DBMS可以代替大部分應用程序代碼,使用DBMS還有以下理由:數(shù)據(jù)保護,效率,在用戶之間共享,在應用

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

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

111、和泛化</b></p><p>  因為使用手機的數(shù)據(jù)庫所以不應該設計復雜的表結(jié)構和關聯(lián),因為實際數(shù)據(jù)庫的表只有3個,沒有泛化,但有一個外鍵約束:用戶清單明細(detail)表的清單ID參照用戶清單(grouplist)表的主鍵_id。所以添加關聯(lián)的類如圖6-5所示。</p><p><b>  圖6-5 添加關聯(lián)</b></p><p

112、><b>  實現(xiàn)結(jié)構—高級</b></p><p>  為添加關聯(lián)后的類實現(xiàn)外鍵,這里不需要手動建立索引和視圖。得到最終的數(shù)據(jù)庫表結(jié)構如圖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>  采用工廠模式對DatabaseHelper和SQLiteDatabase封裝,以方便我們訪問數(shù)據(jù)庫更加安全和方便。</p><p><b>  數(shù)據(jù)庫準備</b></p><p>  由于這里需要操作同一個數(shù)據(jù)庫中的兩個表,所以首先創(chuàng)建一個名

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

115、lass DBAdapter {</p><p>  private static final String TAG = "DBAdapter";</p><p>  // 設定數(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)建和升級數(shù)據(jù)庫的腳本。</p><p><b>  數(shù)據(jù)庫表的操作</b></p><p>  對三張表操作進行封裝,因為其共用一個數(shù)據(jù)庫,所以,從前面創(chuàng)建的DbAdapter中再繼承出三個類GroupDBAdapter,Group

120、DetailDBAdapter,SMSTimerDBAdapter將要再這三個類中封裝需要用到的操作,并通過接口提供出去。</p><p>  這里只列舉GroupDBAdapter.java,GroupDetailDBAdapter和SMSTimerDBAdapter的實現(xiàn)代碼類似,開始申明一些常量,然后按照操作需要定義幾種操作,GroupDBAdapter.java結(jié)構代碼如下:</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>  * 獲取一個記錄</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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論