計算機科學畢業(yè)論文基于ANDROID手機系統(tǒng)的軟件開發(fā)與應用_第1頁
計算機科學畢業(yè)論文基于ANDROID手機系統(tǒng)的軟件開發(fā)與應用_第2頁
計算機科學畢業(yè)論文基于ANDROID手機系統(tǒng)的軟件開發(fā)與應用_第3頁
計算機科學畢業(yè)論文基于ANDROID手機系統(tǒng)的軟件開發(fā)與應用_第4頁
計算機科學畢業(yè)論文基于ANDROID手機系統(tǒng)的軟件開發(fā)與應用_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 畢畢 業(yè)業(yè) 論論 文(設文(設 計)計) 題目: 基于 android 手機系統(tǒng)的軟件開發(fā)與應用 英文: the development and application of the software basing on android system 院 (系) 別: 計算機科學學院 專業(yè)(班級): 姓 名: 學 號: 指 導 教 師: 答 辯 日 期: 基于基于 androidandroid 手機系統(tǒng)的軟件開發(fā)與應用手機系統(tǒng)的軟件開發(fā)與應用 摘要摘要 android 平臺原意是“機器人” ,于 2007 年 11 月推出立即受到許多手機廠商,運 營商和芯片廠商的大力支持。android 基

2、于 linux 平臺的開源手機操作系統(tǒng)的名稱,該 平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,號稱是首個為移動終端打造的 真正開放和完整的移動軟件。許多廠商繼而組建成一個全球性的聯(lián)盟組織開放手 機聯(lián)盟(open handset alliance,oha) ,如三星,摩托羅拉,lg 電子,日本 ntt docomo,中國移動,intel,等 34 家公司都加入了這個龐大的陣營。 android 在中國的前景十分廣闊,首先是有許多成熟的消費者,在國內(nèi),android 社區(qū) 十分紅火,這些社區(qū)為 android 在中國的普及做了很好的推廣作用。國內(nèi)廠商和運營 商也紛紛加入了 android 陣營

3、,包括中國移動,中國聯(lián)通,華為通訊,聯(lián)想等大企業(yè)。 目前 android 允許開發(fā)人員自由獲取,修改代碼,平臺完全開放,吸引了越來越多的 程序員加入 android 開發(fā)陣營之中,android 的快速發(fā)展給了商家,程序員一個非常寶 貴的機會,誰能把握住這個機會,商機,誰就能獲得成功。目前,android 的軟件在中 國還是有限,甚至不能說成熟,因此開發(fā)功能強大,方便消費者日常使用的軟件已經(jīng) 是一個迫在眉睫的任務。 關(guān)鍵字:關(guān)鍵字:android 手機軟件,intent 機制,activity,dom,sax,sqlite 數(shù)據(jù) 庫 the development and applicatio

4、n of the software basing on android system abstract the origin of the meaning of android platform is robot. in november 2007,android is publish. many mobile phone manufacturers, chip venders and operators all support it. android platform bases on the linux which consist of operation system,middlewar

5、e,ui and application software.android is claimed to be the first to make real mobile terminal open and complete mobile software.a lot of manufacturers and companys form into a global alliance - open mobile handset, kent league (alliance oha), such as samsung, motorola, lg electronics, japan, china m

6、obile, docomo ntt intel and so on .34 companies have joined this huge alliance. take the prospects of android in china, firstly there are many mature consumers. in china, the communities of android are so hot. it do a very good promotion effect for android. domestic manufacturers and operators have

7、joined the android, including china mobile, china unicom, huawei, lenovo, meizu etc. currently android allows developers to have the free access codes, modify them.android platform completely open.this attracts more programmer join in android development camp. the rapid development of the android gi

8、ves business, programmers a very precious chance. if you can seize the opportunity,you will succeed.at present, in china , the android software, cant even say mature.so to develop some powerful, convenient softwares for comsumers is an urgent task. key words:android software;intent;activity;dom,sax;

9、sqlite database 目錄 序言 .1 1 緒論 .2 11 android的背景.2 12 android的意義.3 13 android核心知識.4 1.3.1 架構(gòu)圖直觀.4 1.3.2 linux kernel 詳解.5 1.3.3 androidruntime 詳解.5 1.3.4 libraries 詳解.5 1.3.5 applicationframework 詳解.6 1.3.6 applications 詳解.6 14 開發(fā) android所采用的技術(shù) .7 1.4.1 java 程序設計語言.7 1.4.2 web service 技術(shù).7 1.4.3 xml 技

10、術(shù).8 1.4.4 dom 和 sax 解析技術(shù).9 1.4.5 sqlite 數(shù)據(jù)庫 .10 1.4.6 location 定位技術(shù).11 1.4.7 android intent 機制.12 1.4.8 photoshop 圖像處理技術(shù) .13 2 android 軟件需求分析.14 21 android軟件的概述.14 22 android軟件的設計目標 .14 23 android的軟件的可行性分析 .15 24 android的設計思想.15 25 android軟件的功能需求分析 .16 26 android的開發(fā)及運行環(huán)境 .19 2.6.1 硬件環(huán)境.19 2.6.2 軟件環(huán)境

11、.19 3 android 軟件的概要設計.20 31 android軟件的功能分析 .20 32 android軟件總體設計.20 33 android軟件各模塊的設計 .21 3.3.1 播放器模塊的設計.21 3.3.2 天氣預報模塊的設計.22 3.3.3 地震模塊的設計.23 3.3.4 位置模塊的設計.24 3.3.5 餐館信息模塊的設計.25 34 android軟件的分析與劃分 .27 3.4.1 播放器模塊狀態(tài).27 3.4.2 天氣預報模塊狀態(tài).27 3.4.3 地震信息模塊狀態(tài).28 3.4.4 位置定位模塊狀態(tài).28 3.4.2 餐館信息模塊狀態(tài).29 4 androi

12、d 軟件的詳細設計.30 41 數(shù)據(jù)庫需求分析.30 42 數(shù)據(jù)庫概念結(jié)構(gòu)設計.31 43 android數(shù)據(jù)存儲 shared preferences.34 44 軟件主要功能模塊的實現(xiàn).34 4.4.1 首頁的實現(xiàn)過程.34 4.4.2 播放器的實現(xiàn).37 4.4.3 天氣預報的實現(xiàn).38 4.4.4 地震信息的實現(xiàn).42 4.4.5 位置定位的實現(xiàn).45 4.4.6 餐館信息的實現(xiàn).49 5 android 軟件測試.56 51 測試的目的與目標.56 52 測試的方法.56 53 系統(tǒng)測試的用例.58 5.3.1 天氣預報測試用例.58 5.3.2 地震信息測試用例.58 5.3.3

13、位置定位測試用例.58 5.3.3 位置定位測試用例.58 6 android 軟件的安全.60 6.1 應用程序版本管理.60 6.2 手機簽名策略 .60 結(jié)論 .61 參考文獻 .62 致謝 .63 附錄 .64 附錄 a 在模擬器中虛擬 sd 卡.64 附錄 b android開發(fā)的環(huán)境搭配.64 序言序言 android 一詞的本義指“機器人” ,同時也是 google 于 2007 年 11 月 5 日宣布的 基于 linux 平臺的開源手機操作系統(tǒng)的名稱,早期由 google 開發(fā),后由開放手機聯(lián)盟 開發(fā)。它采用了軟件堆層 的架構(gòu),主要分為三部分。底層以 linux 內(nèi)核工作為基

14、礎, 只提供基本功能;其他的應用軟件則由各公司自行開發(fā),以 java 作為編寫程序的一部 分。另外,為了推廣此技術(shù),google 和其它幾十個手機公司建立了開放手機聯(lián)盟。 android 在未公開之前常被傳聞為 google 電話或 gphone。目前最新版本為 android2.2。2010 年谷歌開發(fā)者大會上,android2.2 發(fā)布,名稱為 froyo,意為凍酸 奶。 android 作為谷歌企業(yè)戰(zhàn)略的重要組成部分,將進一步推進“隨時隨地為每個人提供 信息”這一企業(yè)目標的實現(xiàn)。全球為數(shù)眾多的移動電話用戶正在使用各種基于 android 的電話。谷歌的目標是讓(移動通訊)不依賴于設備甚至

15、平臺。出于這個目 的,android 將補充,而不會替代谷歌長期以來奉行的移動發(fā)展戰(zhàn)略:通過與全球各 地的手機制造商和移動運營商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動服務,并 推廣這些產(chǎn)品。 android 平臺的研發(fā)隊伍陣容強大,包括摩托羅拉、google、htc、t-mobile、高通、 魅族、三星、lg 以及中國移動在內(nèi)的 34 家企業(yè),都將基于該平臺開發(fā)手機的新型業(yè)務, 應用之間的通用性和互聯(lián)性將在最大程度上得到保持。 “開放手機聯(lián)盟”表示, android 平臺可以促使移動設備的創(chuàng)新,讓用戶體驗到最優(yōu)越的移動服務,同時,開發(fā) 商也將得到一個新的開放級別,更方便的進行協(xié)同合作,從而保

16、障新型移動設備的研 發(fā)速度。 34 家企業(yè)的加盟,也將大大降低新型手機設備的研發(fā)成本,完全整合的“全 移動功能性產(chǎn)品”成為“開放手機聯(lián)盟”的最終目標。 這 34 家企業(yè)中并不包含把持 symbian 的諾基亞,以及憑借著 iphone 風光正在的蘋果公司,美國運營商 at在城區(qū)由于高大建筑物較多,電波傳播環(huán)境不好,信號很難直 接從基站到達移動臺,一般要經(jīng)過折射或反射,因此定位精度會受到影響,定位范圍 為 100200 米,一般情況定位響應時間在 36s 之間。而在無法接收到手機信號的地 方,就談不上定位了。而 gps 定位由于接收機任何時刻都至少被 4 顆衛(wèi)星覆蓋,所以 信號得到了很好的保證,

17、并且由于衛(wèi)星居高臨下,排除衛(wèi)星鐘及大氣干擾等因素,精 度也能保證在幾米至幾十米 谷哥正在測試一項手機定位服務。通過此服務,即使你沒有 gps,也能通過你的手機 來對你當前的位置進行定位。這項服務將來會加入進谷哥 maps,這樣在你每次搜索時 就不用再輸入自己當前的位置了。每次一打開 maps,系統(tǒng)就會根據(jù)你的位置自動定位 到你現(xiàn)在所在的地方,這項定位技術(shù)被稱為 “我的位置” 。只要在安裝了相應軟件的設 備上輕按確認,系統(tǒng)就會在地圖上將你的當前位置用一個藍點標注出來。該定位系統(tǒng) 在數(shù)據(jù)庫里儲存不同運營商各個不同基站的識別信息,通過對這些數(shù)據(jù)進行對比來定 位用戶。當前這個數(shù)據(jù)庫建設還不是很完善,所

18、以“我的位置”使用起來還不是太精 確。但相信隨著時間的推移,這個數(shù)據(jù)庫會很快地建設起來。谷哥表示這項技術(shù)不會 收集用戶的手機號碼以及其他個人信息。而且整個功能也可以隨時關(guān)閉。用戶無需擔 心自己的隱私被泄露。 1.4.7 android intent 機制機制 android 中提供了 intent 機制來協(xié)助應用間的交互與通訊,或者采用更準確的說 法是,intent 不僅可用于應用程序之間,也可用于應用程序內(nèi)部的 activity/service 之間的交互。intent 這個英語單詞的本意是“目的、意向”等,對于較少從事于大型 平臺開發(fā)工作的程序員來說,這可能是一個不太容易理解的抽象概念,因

19、為它與我們 平常使用的簡單函數(shù)/方法調(diào)用,或者上節(jié)中提到的通過庫調(diào)用接口的方式不太一樣。 在 intent 的使用中你看不到直接的函數(shù)調(diào)用,相對函數(shù)調(diào)用來說,intent 是更為抽象 的概念,利用 intent 所實現(xiàn)的軟件復用的粒度是 activity/service,比函數(shù)復用更高 一些,另外耦合也更為松散。 android 中與 intent 相關(guān)的還有 action/category 及 intent filter 等,另外還 有用于廣播的 intent,這些元素摻雜在一起,導致初學者不太容易迅速掌握 intent 的 用法。在講解這些名詞之前,我們先來從下面的例子中感受一下 inte

20、nt 的一些基本用 法,看看它能做些什么,之后再來思考這種機制背后的意義。 理解 intent 的關(guān)鍵之 一是理解清楚 intent 的兩種基本用法:一種是顯式的 intent,即在構(gòu)造 intent 對象 時就指定接收者,這種方式與普通的函數(shù)調(diào)用類似,只是復用的粒度有所差別;另一 種是隱式的 intent,即 intent 的發(fā)送者在構(gòu)造 intent 對象時,并不知道也不關(guān)心接 收者是誰,這種方式與函數(shù)調(diào)用差別比較大,有利于降低發(fā)送者和接收者之間的耦合。 另外 intent 除了發(fā)送外,還可用于廣播。 1.4.8 photoshop 圖像處理技術(shù)圖像處理技術(shù) photoshop 是 ado

21、be 公司旗下最為出名的圖像處理軟件之一,集圖像掃描、編輯修 改、圖像制作、廣告創(chuàng)意,圖像輸入與輸出于一體的圖形圖像處理軟件,深受廣大平 面設計人員和電腦美術(shù)愛好者的喜愛。從功能上看,photoshop 可分為圖像編輯、圖像 合成、校色調(diào)色及特效制作部分。 圖像編輯是圖像處理的基礎,可以對圖像做各種變 換如放大、縮小、旋轉(zhuǎn)、傾斜、鏡像、透視等。 圖像合成則是將幾幅圖像通過圖層操 作、工具應用合成完整的、傳達明確意義的圖像,這是美術(shù)設計的必經(jīng)之路。 校色調(diào) 色是 photoshop 中深具威力的功能之一,可方便快捷地對圖像的顏色進行明暗、色編 的調(diào)整和校正。 該軟件是本人先手繪,然后通過數(shù)碼產(chǎn)品

22、傳到電腦,最后用 photoshopcs4 加工而完成 的。本軟件的主題是小王子 , 小王子是作家安東尼德圣-埃克蘇佩里于 1942 寫成的著名法國兒童文學短篇小說。 本書的主人公是來自外星球的小王子。書中以一 位飛行員作為故事敘述者,講述了小王子從自己星球出發(fā)前往地球的過程中,所經(jīng)歷 的各種歷險。作者以小王子的孩子式的眼光,透視出成人的空虛、盲目和愚妄,用淺 顯天真的語言寫出了人類的孤獨寂寞、沒有根基隨風流浪的命運。同時,也表達出作 者對金錢關(guān)系的批判,對真善美的謳歌。以這個故事為主題,主要是想宣傳作者這種 思想,我們可以長大,但童年的那些事千萬別忘記。 2 2 androidandroid

23、 軟件需求分析軟件需求分析 2 21 1 androidandroid 軟件的概述軟件的概述 目前,android 的軟件在中國還是有限,甚至不能說成熟,因此開發(fā)功能強大,方 便消費者日常使用的軟件已經(jīng)是一個迫在眉睫的任務了。迫于這個原因,我開發(fā)了這 個運行于 android 系統(tǒng)的軟件,該軟件采用 android sdk 1.5+myeclipse8.0 開發(fā),具 有平時消費者特需求的功能,有很好的使用價值。軟件包括了大約 5 個功能,有(1) 音樂播放器,此播放器簡單易用,剔除了用戶平時不多用的功能,讓音樂做到簡單。 (2)天氣預報,只要你輸入想查詢的城市,詳細的天氣預報信息就會毫無保留地

24、展示 在你面前。 (3)地震消息查看,雖然地震預測在各國還是一個很大難題,但提供一些 實時的地震消息還是有一定的參考價值,返還于未然。(4)位置定位,不管你在哪里, 高山或是郊區(qū),只要有信號,你就能準確地定位你當前的位置,同時提供 googlemap 讓你一目了然,這樣今后去旅游或探險之類的活動再也不怕迷失方向了。 (5)創(chuàng)意十 足的餐館管理,上班族一定有一個很大的問題,那就是不知道到哪吃飯好,此功能能 幫你解決這個煩惱,只要你平時都記錄下餐館的地址之類的信息,那么系統(tǒng)就會幫你 隨機選出餐館,同時也提供 google map 地圖給你,而且不但如此,系統(tǒng)還能算出你目 前到該餐館的大約路程和到該

25、餐館所需時間。功能雖小,但卻很好地為用戶提供功能 及實時消息,方便日常生活。一個軟件能使你生活過得更順利,更開心,那么它就有 它存在的意義和價值了。 2 22 2 androidandroid 軟件的設計目標軟件的設計目標 android 雖然在中國還沒有像 symbian 系統(tǒng)那樣擁有豐富的第三方軟件,但它的 優(yōu)越性是顯而易見的,它具有開放性,所有的應用程序是平等的,應用程序間無界限, 快速方便的應用程序開發(fā)等特點,這是其他手機系統(tǒng)無法提供給開發(fā)者的。因此借著 這個優(yōu)越的平臺,我設計了這個多功能的手機軟件,意在方便手機用戶的日常生活, 例如餐館信息管理功能,它創(chuàng)意十足。很多上班族一定有一個很

26、大的問題,那就是不 知道到哪吃飯好,此功能能幫你解決這個煩惱,只要你平時都記錄下餐館的地址之類 的信息,那么系統(tǒng)就會幫你隨機選出餐館,同時也提供 google map 地圖給你,而且不 但如此,系統(tǒng)還能算出你目前到該餐館的大約路程和到該餐館所需時間。功能雖小, 但卻很好地為用戶提供功能及實時消息,方便日常生活。還有其他功能,天氣預報, 播放器,位置定位等無不是生活中的小幫助。顧這個軟件就是意在幫助手機客戶解決 生活細小問題。 2 23 3 androidandroid 的軟件的可行性分析的軟件的可行性分析 我開發(fā)了這個運行于 android 系統(tǒng)的軟件,該軟件采用 android sdk 1.

27、5+myeclipse8.0 開發(fā),具有平時消費者特需求的功能,有很好的使用價值。軟件包 括了大約 5 個功能,有(1)音樂播放器,此播放器簡單易用,剔除了用戶平時不多用 的功能,讓音樂做到簡單。 (2)天氣預報,只要你輸入想查詢的城市,詳細的天氣預 報信息就會毫無保留地展示在你面前。 (3)地震消息查看,雖然地震預測在各國還是 一個很大難題,但提供一些實時的地震消息還是有一定的參考價值,返還于未然。(4) 位置定位,不管你在哪里,高山或是郊區(qū),只要有信號,你就能準確地定位你當前的位 置,同時提供 googlemap 讓你一目了然,這樣今后去旅游或探險之類的活動再也不怕 迷失方向了。 (5)創(chuàng)

28、意十足的餐館管理,上班族一定有一個很大的問題,那就是不知 道到哪吃飯好,此功能能幫你解決這個煩惱,只要你平時都記錄下餐館的地址之類的 信息,那么系統(tǒng)就會幫你隨機選出餐館,同時也提供 google map 地圖給你,而且不但 如此,系統(tǒng)還能算出你目前到該餐館的大約路程和到該餐館所需時間。鑒于在 android 開源系統(tǒng)的基礎上,開發(fā)這個功能豐富的軟件是完全可行的。 2 24 4 androidandroid 的設計思想的設計思想 目前 android 的發(fā)展是十分迅速的,從 android sdk1.5 到 2.2 才不足兩年,所 以可見 android 的前途是無法預料的!我想通過這個平臺開發(fā)

29、一些手機用戶生活中需 要的細小功能,例如天氣預報,位置定位等,特別是餐館功能,創(chuàng)意十足,上班族一 定有一個很大的問題,那就是不知道到哪吃飯好,此功能能幫你解決這個煩惱,只要 你平時都記錄下餐館的地址之類的信息,那么系統(tǒng)就會幫你隨機選出餐館,同時也提 供 google map 地圖給你,而且不但如此,系統(tǒng)還能算出你目前到該餐館的大約路程和 到該餐館所需時間。于是鑒于這個想法,我用了 myeclipse 和 adt 插件來開發(fā)這個軟 件,界面是用 photoshop 來加工的。 2 25 5 androidandroid 軟件的功能需求分析軟件的功能需求分析 如下是播放器模塊的用況分析: 播放器用

30、例圖 如下是天氣預報模塊的用況分析: 天氣預報用例圖 如下是地震信息模塊的用況分析: 地震信息用例圖 如下是位置定位模塊的用況分析: 定位信息用例圖 如下式餐館信息的用況分析: 餐館信息用例圖 2 26 6 androidandroid 的開發(fā)及運行環(huán)境的開發(fā)及運行環(huán)境 2.6.1 硬件環(huán)境硬件環(huán)境 cpu:intel(r) celeron(r) m cpu 430 1.73ghz 硬盤:320g 內(nèi)存:kingston 1.5gb 2.6.2 軟件環(huán)境軟件環(huán)境 操作系統(tǒng):windows 7 系統(tǒng)類型:32 位操作系統(tǒng) 應用軟件:jdk version 1.5+android sdk 1.5

31、分辨率:推薦使用分辨率為 1027*768 像素 數(shù)據(jù)庫:sqlite 數(shù)據(jù)庫(c 語言編寫的) 開發(fā)工具:myeclipse8.0 adt 插件+photoshopcs4 建模工具:violetuml 用具 3 3 androidandroid 軟件的概要設計軟件的概要設計 3 31 1 androidandroid 軟件的功能分析軟件的功能分析 該軟件采用 android sdk 1.5+myeclipse8.0 開發(fā),具有平時消費者特需求的功能, 有很好的使用價值。軟件包括了大約 5 個功能,有(1)音樂播放器,此播放器簡單易 用,剔除了用戶平時不多用的功能,讓音樂做到簡單。 (2)天氣

32、預報,只要你輸入想 查詢的城市,詳細的天氣預報信息就會毫無保留地展示在你面前。 (3)地震消息查看, 雖然地震預測在各國還是一個很大難題,但提供一些實時的地震消息還是有一定的參 考價值,返還于未然。(4)位置定位,不管你在哪里,高山或是郊區(qū),只要有信號,你 就能準確地定位你當前的位置,同時提供 googlemap 讓你一目了然,這樣今后去旅游 或探險之類的活動再也不怕迷失方向了。 (5)創(chuàng)意十足的餐館管理,上班族一定有一 個很大的問題,那就是不知道到哪吃飯好,此功能能幫你解決這個煩惱,只要你平時 都記錄下餐館的地址之類的信息,那么系統(tǒng)就會幫你隨機選出餐館,同時也提供 google map 地圖

33、給你,而且不但如此,系統(tǒng)還能算出你目前到該餐館的大約路程和到 該餐館所需時間。功能雖小,但卻很好地為用戶提供功能及實時消息,方便日常生活。 一個軟件能使你生活過得更順利,更開心,那么它就有它存在的意義和價值了。 商品功能表: 3 32 2 androidandroid 軟件總體設計軟件總體設計 為了保證軟件的實用性和應用性,軟件的功能是手機客戶十分急需的功能,有播 天氣預報顯示輸入城市的天氣狀況 播放器播放手機或內(nèi)存卡里的音樂文件 地震信息顯示世界各地的地震信息狀況 位置定位顯示當前的位置,可以通過 gps 等獲得 增加餐館信息加入平時常去的餐館或著名的餐館 餐館編輯可以對數(shù)據(jù)庫里的餐館信息進

34、行編輯 餐館信息顯示用 googlemap 顯示餐館信 放器,天氣預報,位置定位,和餐館信息管理等。有與系統(tǒng)有提供 sqlite 數(shù)據(jù)庫功能, 這極大方便了我們對數(shù)據(jù)的管理。軟件的這些功能都是通過 java 語言編寫的,利用 google 提供 android api 來實現(xiàn)功能。界面是本人先手繪,然后通過數(shù)碼產(chǎn)品傳到電 腦,最后用 photoshopcs4 加工而完成的。本軟件的主題是小王子 , 小王子是作 家安東尼德圣-??颂K佩里于 1942 寫成的著名法國兒童文學短篇小說。希望自己 設計的軟件能實現(xiàn)其自身價值。 3 33 3 androidandroid 軟件各模塊的設計軟件各模塊的設計

35、 android 軟件總體設計圖 android 應用軟件 音 樂 播 放 器 天 氣 預 報 地 震 信 息 位 置 定 位 餐 館 信 息 管 理 總體結(jié)構(gòu)圖圖 3.3.1 播放器模塊的設計播放器模塊的設計 音樂播放器,此播放器簡單易用,剔除了用戶平時不多用的功能,讓音樂做到簡 單。 該模塊包括的主要設計 查看 sd 卡或手機中的音樂文件 系統(tǒng)提供了 contentprovider,因此可以獲取數(shù)據(jù)庫中的文件 增加音樂文件(用 adb 管理) 用 adb 命令符來增加歌曲,例如:adb push frank.mp3 sdcard/frank.mp3 顯示音樂文件信息(歌手,歌曲,專輯名)

36、根據(jù)系統(tǒng)提供的信息獲取 前臺播放音樂文件 播放器最基本的功能,播放音樂,暫停音樂,停止音樂 后臺播放音樂文件 不用關(guān)閉播放器就可以去運行別的程序 音樂播放器功能模塊 后 臺 播 放 歌 曲 增 加 歌 曲 播 放 音 樂 暫 停 音 樂 停 止 音 樂 歌 曲 信 息 顯 示 歌 曲 列 表 顯 示 3.3.2 天氣預報模塊的設計天氣預報模塊的設計 各地氣候查詢 輸入城市的拼音,例如廣州(guangzhou) ,就可以獲取廣州的氣候,氣溫,濕度等信 息 各地氣候?qū)崟r更新 由于天氣是變化的,因此可以實時更新氣候信息 該模塊包括的主要設計 天氣預報功能模塊 天 氣 實 時 更 新 各 地 天 氣

37、查 詢 3.3.3 地震模塊的設計地震模塊的設計 (1)各地地震信息顯示 同過美國地震局的 xml 文件解析,從而獲取信息 (2)各地地震信息實時更新 同天氣一樣,地震也是變化的,因此可以實時更新地震信息 該模塊包含的主要設計: 地震信息功能模塊 地 震 信 息 實 時 更 新 各 地 地 震 查 詢 3.3.4 位置模塊的設計位置模塊的設計 (1)位置定位 同過 gps 或者基站返回經(jīng)緯度,然后再同過 google 地圖顯示出來 (2)地圖的放大 按比例放大地圖 (3)地圖的縮小 按比例縮小地圖 (4)衛(wèi)星地圖的顯示 兩種地圖互換 (5)位置實時更新 定時更新位置 該模塊包括的主要設計 位置

38、定位功能模塊 位 置 顯 示 位 置 實 時 更 新 衛(wèi) 星 地 圖 轉(zhuǎn) 換 放 大 地 圖 縮 小 小 地 圖 3.3.5 餐館信息模塊的設計餐館信息模塊的設計 (1)餐館信息增加 餐館名稱,餐館地址,食物熱量多少 (2)餐館數(shù)據(jù)顯示 通過 listview 顯示出來 (3)餐館信息編輯 餐館信息修改,餐館信息刪除 (4)餐館地址顯示 同過 google 地圖顯示隨機餐館的位置 (5)當前位置與隨機餐館的距離 算出距離,如果提供參數(shù),可以算出道道目的地的所需時間 該模塊包含的主要設計 餐館信息功能模塊 餐 館 信 息 增 加 餐 館 地 圖 顯 示 餐 館 距 離 時 間 計 算 餐 館 信

39、 息 修 改 餐 館 信 息 顯 示 3 34 4 androidandroid 軟件的分析軟件的分析與劃分與劃分 3.4.1 播放器模塊狀態(tài)播放器模塊狀態(tài) 3.4.2 天氣預報模塊狀態(tài)天氣預報模塊狀態(tài) 3.4.3 地震信息模塊狀態(tài)地震信息模塊狀態(tài) 3.4.4 位置定位模塊狀態(tài)位置定位模塊狀態(tài) 3.4.2 餐館信息模塊狀態(tài)餐館信息模塊狀態(tài) 4 4 androidandroid 軟件的詳細設計軟件的詳細設計 4 41 1 數(shù)據(jù)庫需求分析數(shù)據(jù)庫需求分析 數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設計的好壞將直 接對應用系統(tǒng)的效率,以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設計可以提高數(shù)

40、 據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。 數(shù)據(jù)庫接口設計: android 系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫 音樂播放器音樂播放器 天氣預報天氣預報 web services or gps 餐館數(shù)據(jù)信息餐館數(shù)據(jù)信息 地震信息地震信息 位置定位位置定位 根據(jù)手機軟件的特性以及軟件的邏輯設計,設計了一個數(shù)據(jù)庫,本軟件使用的是 用 c 語言編寫的 sqlite 數(shù)據(jù)庫,該數(shù)據(jù)庫是輕量級的,支持常用的 sql 語言。 數(shù)據(jù)庫名稱:mydb 數(shù)據(jù)表:t_restaurant 字段:f_id,f_name,f_address,f_cal 一個表包含 id 號,餐館名字,餐館地址,食物熱量 t_restaurant 表(

41、餐館信息表) 字段名稱字段類型字段大小是否為空備注 f_idint2 否標識符 f_name text10 是餐館名稱 f_addresstext10 是餐館地址 f_caltext100 是食物熱量 在實際的應用程序編寫中,為了更好地應對 sqlite 數(shù)據(jù)庫的創(chuàng)建,打開以及更好 進行管理,往往要編寫一個繼承自 sqliteopenhelper 的數(shù)據(jù)庫輔助類來幫助我們創(chuàng)建 和打開數(shù)據(jù)庫。 4 42 2 數(shù)據(jù)庫概念結(jié)構(gòu)設計數(shù)據(jù)庫概念結(jié)構(gòu)設計 數(shù)據(jù)庫設計要遵循一些規(guī)則,一個好的數(shù)據(jù)庫滿足一些嚴格的約束和要求。盡量 分離各實體對應的表,一個實體對應一個表,搞清楚該實體有哪些屬性,對應有些什 么字

42、段,以及各實體之間有何種聯(lián)系。實體、屬性與聯(lián)系是進行概念設計時要考慮的 3 個元素,也是一個好的數(shù)據(jù)庫設計的核心。本軟件是手機軟件,有別于 pc 軟件的數(shù) 據(jù)庫,其用 sqlite 輕量級的數(shù)據(jù)庫。支持常用的 sql 語言。 本軟件的餐館信息管理需要數(shù)據(jù)庫的支持,一個餐館就是一個記錄,分別有四個字段, id 字段是數(shù)據(jù)庫自動配置的,其余的三個字段信息是用戶輸入的 。 下面是 sqliteopenhelper 的主要代碼,包括增刪改等功能 /初始化數(shù)據(jù)庫 public void oncreate(sqlitedatabase db) if (tablenames = null) message

43、= no_create_tables; return; /初始化表格 for (int i = 0; i tablenames.length; i+) string sql = create table + tablenamesi + (; for (int j = 0; j fieldnamesi.length; j+) sql += fieldnamesij + + fieldtypesij + ,; sql = sql.substring(0, sql.length() - 1); sql += ); db.execsql(sql); /判斷版本 public void onupgrad

44、e(sqlitedatabase db, int arg1, int arg2) for (int i = 0; i tablenamesi.length(); i+) string sql = drop table if exists + tablenamesi; db.execsql(sql); oncreate(db); public void execsql(string sql) throws java.sql.sqlexception sqlitedatabase db = this.getwritabledatabase(); db.execsql(sql); /查詢數(shù)據(jù) pub

45、lic cursor select(string table, string columns, string selection, string selectionargs, string groupby, string having, string orderby) sqlitedatabase db = this.getreadabledatabase(); cursor cursor = db.query ( table, columns, selection, selectionargs, groupby, having, orderby ); return cursor; /插入數(shù)據(jù)

46、 public long insert(string table, string fields, string values) sqlitedatabase db = this.getwritabledatabase(); /* 將添加的值放入 contentvalues */ contentvalues cv = new contentvalues(); for (int i = 0; i fields.length; i+) cv.put(fieldsi, valuesi); return db.insert(table, null, cv); /刪除數(shù)據(jù) public int delet

47、e(string table, string where, string wherevalue) sqlitedatabase db = this.getwritabledatabase(); return db.delete(table, where, wherevalue); /更新數(shù)據(jù) public int update(string table, string updatefields, string updatevalues, string where, string wherevalue) sqlitedatabase db = this.getwritabledatabase()

48、; /* 將修改的值放入 contentvalues */ contentvalues cv = new contentvalues(); for (int i = 0; i updatefields.length; i+) cv.put(updatefieldsi, updatevaluesi); return db.update(table, cv, where, wherevalue); public string getmessage() return message; override public synchronized void close() / todo auto-gene

49、rated method stub super.close(); 4 43 3 androidandroid 數(shù)據(jù)存儲數(shù)據(jù)存儲 sharedshared preferencespreferences sharedpreferences 是 android 平臺上一個輕量級的存儲類,主要是保存一些常 用的配置比如窗口狀態(tài),一般在 activity 中重載窗口狀態(tài) onsaveinstancestate 保存 一般使用 sharedpreferences 完成,它提供了 android 平臺常規(guī)的 long 長整形、int 整形、string 字符串型的保存,它是什么樣的處理方式呢? shared

50、preferences 類似 過去 windows 系統(tǒng)上的 ini 配置文件,但是它分為多種權(quán)限,可以全局共享訪問, android123 提示最終是以 xml 方式來保存,整體效率來看不是特別的高,對于常規(guī)的 輕量級而言比 sqlite 要好不少,如果真的存儲量不大可以考慮自己定義文件格式。 xml 處理時 dalvik 會通過自帶底層的本地 xml parser 解析,比如 xmlpull 方式,這 樣對于內(nèi)存資源占用比較好。該軟件的音樂播放器模塊就用到了 shared preferences 的數(shù)據(jù)存儲方法。軟件保持了上次打開的音樂鏈接,這樣下次打開軟件時播放的就是 上次關(guān)閉前播放的歌

51、曲。android 的數(shù)據(jù)存儲在 shared preferences 和 sqlite 數(shù)據(jù)庫 的配合下發(fā)揮的淋漓盡致。 4 44 4 軟件主要功能模塊的軟件主要功能模塊的實現(xiàn)實現(xiàn) 軟件包括了大約 5 個功能,有(1)音樂播放器,此播放器簡單易用,剔除了用戶 平時不多用的功能,讓音樂做到簡單。 (2)天氣預報,只要你輸入想查詢的城市,詳 細的天氣預報信息就會毫無保留地展示在你面前。 (3)地震消息查看,雖然地震預測 在各國還是一個很大難題,但提供一些實時的地震消息還是有一定的參考價值,返還 于未然。(4)位置定位,不管你在哪里,高山或是郊區(qū),只要有信號,你就能準確地定 位你當前的位置,同時提

52、供 googlemap 讓你一目了然,這樣今后去旅游或探險之類的 活動再也不怕迷失方向了。 (5)創(chuàng)意十足的餐館管理,上班族一定有一個很大的問題, 那就是不知道到哪吃飯好,此功能能幫你解決這個煩惱,只要你平時都記錄下餐館的 地址之類的信息,那么系統(tǒng)就會幫你隨機選出餐館,同時也提供 google map 地圖給你, 而且不但如此,系統(tǒng)還能算出你目前到該餐館的大約路程和到該餐館所需時間。 4.4.1 首頁的實現(xiàn)過程首頁的實現(xiàn)過程 對于手機軟件來說,軟件的首頁是十分重要的,這關(guān)于著使用者的支持度,如同 網(wǎng)頁一樣,良好的視覺是吸引使用者的一個重要因素,手機首頁運行如下圖: 如下是主界面的 xml 代碼

53、,其他界面和主界面相仿: 主界面的 xml 代碼: 4.4.2 播放器的實現(xiàn)播放器的實現(xiàn) 音樂播放器,此播放器簡單易用,剔除了用戶平時不多用的功能,讓音樂做到簡 單。 該模塊包括的主要設計 查看 sd 卡或手機中的音樂文件 系統(tǒng)提供了 contentprovider,因此可以獲取數(shù)據(jù)庫中的文件 增加音樂文件(用 adb 管理) 用 adb 命令符來增加歌曲,例如:adb push frank.mp3 sdcard/frank.mp3 顯示音樂文件信息(歌手,歌曲,專輯名) 根據(jù)系統(tǒng)提供的信息獲取 前臺播放音樂文件 播放器最基本的功能,播放音樂,暫停音樂,停止音樂 后臺播放音樂文件 不用關(guān)閉播放

54、器就可以去運行別的程序 運行界面如下圖所示: 4.4.3 天氣預報的實現(xiàn)天氣預報的實現(xiàn) 天氣預報,只要你輸入想查詢的城市,詳細的天氣預報信息就會毫無保留地展示 在你面前。功能如下: 各地氣候查詢,輸入城市的拼音,例如廣州(guangzhou) ,就可以獲取廣州的氣候, 氣溫,濕度等信息 各地氣候?qū)崟r更新 由于天氣是變化的,因此可以實時更新氣候信息 運行界面如下圖所示: 天氣預報主要代碼,sax 解析: public void startelement(string namespaceuri, string localname, string qname, attributes atts) th

55、rows saxexception if (localname.equals(forecast_information) this.in_forecast_information = true; else if (localname.equals(current_conditions) this.in_current_conditions = true; else if (localname.equals(forecast_conditions) this.in_forecast_conditions = true; else string dataattribute = atts.getva

56、lue(data); if (localname.equals(city) else if (localname.equals(postal_code) else if (localname.equals(latitude_e6) / one could use this to convert city-name to lat/long. else if (localname.equals(longitude_e6) /one could use this to convert city-name to lat/long. else if (localname.equals(forecast_

57、date) else if (localname.equals(current_date_time) else if (localname.equals(unit_system) if (dataattribute.equals(si) this.usingsitemperature = true; else if (localname.equals(day_of_week) if (this.in_current_conditions) / 可擴展 else if (this.in_forecast_conditions) / 可擴展 else if (localname.equals(ic

58、on) if (this.in_current_conditions) this.seticonurl(dataattribute); else if (this.in_forecast_conditions) / 可擴展 else if (localname.equals(condition) if (this.in_current_conditions) this.setcurrentcondition(dataattribute); else if (this.in_forecast_conditions) / 可擴展 else if (localname.equals(temp_f)

59、/ this.setcurrenttemp(integer.parseint(dataattribute); else if (localname.equals(temp_c) this.setcurrenttemp(integer.parseint(dataattribute); else if (localname.equals(humidity) this.setcurrenthum(dataattribute); else if (localname.equals(wind_condition) / 可擴展 / inner tags within else if (localname.

60、equals(low) /int temp = integer.parseint(dataattribute); if (this.usingsitemperature) / 可擴展 else / 可擴展 else if (localname.equals(high) / int temp = integer.parseint(dataattribute); if (this.usingsitemperature) / 可擴展 else / 可擴展 4.4.4 地震信息的實現(xiàn)地震信息的實現(xiàn) 地震消息查看,雖然地震預測在各國還是一個很大難題,但提供一些實時的地震 消息還是有一定的參考價值,返還于

溫馨提示

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

最新文檔

評論

0/150

提交評論