版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、天津市大學(xué)軟件學(xué)院畢業(yè)設(shè)計基于Android系統(tǒng)的“去哪兒”旅行記錄與分享APP姓 名常栓紅專 業(yè) 軟件工程學(xué) 號1350410909學(xué) 籍 校天津理工大學(xué)學(xué)校指導(dǎo)教師王占剛 (副教授)企業(yè)指導(dǎo)教師朱鳳山 (高級工程師)摘要在如今社會中,旅游作為一個新的服務(wù)業(yè)態(tài)成型,隨后各種在線旅游網(wǎng)站相繼出現(xiàn),如去哪兒、驢媽媽、途牛旅行網(wǎng)等,在線旅游業(yè)迅猛發(fā)展起來。在如今這個智能手機(jī)系統(tǒng)群雄紛爭的時候,2008年Google推出了一款名為Android的開源智能手機(jī)操作系統(tǒng),它采用Linux內(nèi)核,開放手機(jī)聯(lián)盟(OHA)成員可以任意使用和修改SDK包,系統(tǒng)的開源性使其具有良好的拓展性。這款軟件包括了操作系統(tǒng)、
2、用戶界面和應(yīng)用程序,即智能手機(jī)工作所需要的全部軟件。Android的最大特點是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗,包括豐富的圖形組件、多媒體支持功能以及強(qiáng)大的瀏覽器。因此,對于軟件從業(yè)人員來說,Android平臺具有無限的吸引力。 本文就在分析討論Android手機(jī)軟件開發(fā)技術(shù)原理的基礎(chǔ)上,開發(fā)出能為用戶提供更好的基于Android平臺的“去哪兒”旅行記錄與分享軟件。關(guān)鍵詞:旅行記錄;記錄分享;安卓平臺;旅游ABSTRACTIn today's society, tourism as a new service formats moldin
3、g, followed by a variety of online travel sites have emerged, such as where to go, donkey mother, the way cattle travel network, the rapid development of online travel industry.In the system of intelligent mobile phone warlords dispute when in 2008, Google launched a product called the Android open
4、source smart mobile phone operating system, which uses Linux kernel, open mobile phone Alliance (OHA) members can be free to use and modify the SDK package, open source system which has good expansion. The software includes the operating system, user interface and applications that need intelligent
5、mobile phone, all the software. Its open architecture is the biggest characteristic of Android, not only has a very good development, debugging environment, but also supports a variety of scalable user experience, including rich graphical components, multimedia support and powerful browser. Therefor
6、e, for software professionals, Android platform has unlimited attraction.In this paper, based on analyzing and discussing the Android mobile phone software development technology on Android platform, developed the "where to go to" travel records and sharing based on the software to provide
7、 users with better.Key words: Travel record, share, Android platform, tourism目 錄第一章引言11.1課題背景11.2國內(nèi)外發(fā)展現(xiàn)狀1第二章相關(guān)技術(shù)概述32.1主要開發(fā)內(nèi)容32.2主要開發(fā)思路和方法32.3軟件開發(fā)技術(shù)42.4體系結(jié)構(gòu)42.4.1操作系統(tǒng)層(OS)52.4.2各種庫(Libraries)和Android 運(yùn)行環(huán)境52.4.3應(yīng)用程序框架(Application Framework)6第三章項目可行性及需求分析73.1可行性分析73.1.1經(jīng)濟(jì)可行性73.1.2技術(shù)可行性73.1.3操作可行性73.2軟件
8、需求分析73.2.1對軟件的需求73.2.2基本功能83.3本軟件的預(yù)期成果8第四章系統(tǒng)實現(xiàn)94.1軟件的主要設(shè)計框圖94.2軟件數(shù)據(jù)模型設(shè)計94.3代碼介紹104.3.1背景圖片選擇實現(xiàn)104.3.2開機(jī)動畫114.3.3寫記錄核心代碼124.3.4記錄加密核心代碼14第五章軟件測試185.1測試的重要性及目的185.2測試流程18結(jié)束語21參考文獻(xiàn)22附錄文獻(xiàn)翻譯23I 英文原文23II 中文譯文24致謝25天津市大學(xué)軟件學(xué)院軟件工程專業(yè)2013屆本科生畢業(yè)設(shè)計24第一章 引言1.1 課題背景美麗的旅游勝地吸引了無數(shù)的游客前往觀賞,但是有好多游客不能對旅游具體情況做準(zhǔn)備。為了讓游客能更清晰
9、的認(rèn)識到“去哪兒”旅行記錄與分享APP,游玩舒暢,開發(fā)“去哪兒”旅行記錄與分享APP的旅游網(wǎng)站很有必要?!叭ツ膬骸甭眯杏涗浥c分享APP旅游(MIS)是一個具有交互功能的旅游記錄軟件,本軟件的開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前臺程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于APP設(shè)計則要求應(yīng)用程序功能完備,易使用等特點。該軟件符合安卓APP開發(fā)的要求,本人也對界面設(shè)計、安卓本體數(shù)據(jù)庫設(shè)計等進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成了旅程的記錄、記錄的查看、記錄的搜索以及記錄分享功能。1.2 國內(nèi)外發(fā)展現(xiàn)狀電子商務(wù)可以將信息流、商流、資金流進(jìn)行有效的管理,提高產(chǎn)
10、業(yè)鏈的工作效率并降低成本。旅游業(yè)是最適合開展電子商務(wù)的行業(yè)之一,通過先進(jìn)的網(wǎng)絡(luò)技術(shù)手段提高企業(yè)內(nèi)部、企業(yè)之間、企業(yè)與消費(fèi)者之間的信息交流與溝通,改進(jìn)旅游業(yè)的業(yè)務(wù)工作流程,所以電子商務(wù)對旅游業(yè)的發(fā)展具有深遠(yuǎn)的意義。發(fā)達(dá)國家和地區(qū)在這方面已經(jīng)取得了巨大的成效。歐美發(fā)達(dá)國家,旅游電子商務(wù)已經(jīng)成為整個電子商務(wù)領(lǐng)域最大、最突出的部分。資料顯示,全球旅游電子商務(wù)連續(xù)5年以35%以上的速度增長,一度占到全球電子商務(wù)總額20%以上。與國外相比,我國旅游電子商務(wù)起步稍晚,在1996年才開始出現(xiàn)專業(yè)的旅游網(wǎng)站其后旅游電子商務(wù)快速發(fā)展,到2000年進(jìn)入第一個高潮期,但在2001年由于受世界旅游業(yè)整體負(fù)增長形勢的影響
11、,中國的旅游業(yè)在這一年經(jīng)歷了一定的困境,增長速度有所下降;2002年中國旅游業(yè)又開始整體回升,在2005年年底又掀起了新的一輪旅游電子商務(wù)熱,自此又進(jìn)入了一個新的“加速發(fā)展期”。目前,我國具有一定旅游資訊能力的網(wǎng)站已有五千多家。其中專業(yè)旅游網(wǎng)站300余家,主要包括地區(qū)性網(wǎng)站、專業(yè)網(wǎng)站和門戶網(wǎng)站的旅游頻道3大類。但是,旅游電子商務(wù)還處在初級階段,與發(fā)達(dá)國家相比還存在較大差距。(1)國內(nèi)登錄過旅游網(wǎng)站的網(wǎng)民占網(wǎng)民總數(shù)的比例較小,而進(jìn)行過網(wǎng)上旅游預(yù)訂的網(wǎng)民比例更小。(2)我國旅游業(yè)應(yīng)用電子商務(wù)軟件的總體發(fā)展水平很低,信息服務(wù)能力有限,網(wǎng)絡(luò)營銷僅僅是一種時尚,消費(fèi)者的培育,旅游電子商務(wù)軟、硬件環(huán)境的成
12、熟和政府政策法規(guī)的建設(shè)等等都是急待解決的問題。作為一個擁有豐富旅游資源的大國, 我國有望借助先進(jìn)的信息化手段幫助旅游業(yè)實現(xiàn)迅猛增長,迎來更大的飛躍。第二章相關(guān)技術(shù)概述2.1主要開發(fā)內(nèi)容“去哪兒”旅行記錄與分享APP是一種具有集記錄和分享功能一體的實用軟件,是在安卓實體機(jī)上通過安卓自帶數(shù)據(jù)庫儲存信息。因此這必將是廣泛應(yīng)用的網(wǎng)絡(luò)應(yīng)用軟件,本文會讓開發(fā)人員更好的開發(fā)以及管理本項目,讓使用本APP的用戶大致了解軟件的功能和流程。(1) 深入了解企業(yè)、社會在“去哪兒”旅行記錄與分享APP旅游的業(yè)務(wù)流程以及一些基本的需求和功能,在此基礎(chǔ)上繪制用例圖,完成基于Android軟件的“去哪兒”旅行記錄
13、與分享APP的設(shè)計與開發(fā)的需求說明書;(2) 借鑒一些書籍,學(xué)習(xí)和研究開發(fā)該軟件的相關(guān)技術(shù),如JSP項目開發(fā)、MySQL數(shù)據(jù)庫、Web編程等等;(3) 具體實現(xiàn)基于Android軟件的“去哪兒”旅行記錄與分享APP的設(shè)計與開發(fā),包括分析和使用數(shù)據(jù)庫,軟件的詳細(xì)設(shè)計。經(jīng)過以上分析,本人決定將該軟件分為以下幾個模塊:主要功能:主要包括旅行記錄、查看記錄、搜索記錄、記錄加密以及記錄分享。其他設(shè)計:背景切換、用戶反饋、提醒設(shè)置、幫助。2.2主要開發(fā)思路和方法一個功能完整的基于Android軟件的“去哪兒”旅行記錄與分享APP的設(shè)計與開發(fā),本APP未設(shè)置用戶注冊和登陸,進(jìn)入軟件后,可以對軟件進(jìn)行加密上鎖
14、,安全性相對提高。軟件內(nèi)日期自動更新,當(dāng)日天氣可進(jìn)行選擇,每日可無限制增加旅游記錄,提供查找功能,根據(jù)關(guān)鍵字搜索可快速查找到相關(guān)記錄,對此記錄可以通過第三方分享到QQ、新浪微博等社交網(wǎng)站。硬件環(huán)境:本軟件運(yùn)行的硬件環(huán)境如下:Android:1G以上;內(nèi)存:512M以上;軟件開發(fā)方法:根據(jù)用戶的實際情況和需要,最終決定采用在Android 下使用JSP+SQL開發(fā),利用spring框架,采用B/S結(jié)構(gòu)。2.3軟件開發(fā)技術(shù)以Android為開發(fā)平臺,Android以Java為編程語言,使接口到功能,都有層出不窮的變化,其中Activity等同于J2ME的MIDlet,一個 Activity 類(c
15、lass)負(fù)責(zé)創(chuàng)建視窗(window),一個活動中的Activity就是在 foreground(前景)模式,背景運(yùn)行的程序叫做Service。兩者之間通過由ServiceConnection和AIDL連結(jié),達(dá)到復(fù)數(shù)程序同時運(yùn)行的效果。如果運(yùn)行中的 Activity 全部畫面被其他 Activity 取代時,該 Activity 便被停止(stopped),甚至被系統(tǒng)清除(kill)。View等同于J2ME的Displayable,程序人員可以通過 View 類與“XML layout”檔將UI放置在視窗上,Android 1.5的版本可以利用 View 打造出所謂的 Widgets,其實Wi
16、dget只是View的一種,所以可以使用xml來設(shè)計layout,HTC的Android Hero手機(jī)即含有大量的widget。至于ViewGroup 是各種layout 的基礎(chǔ)抽象類(abstract class),ViewGroup之內(nèi)還可以有ViewGroup。View的構(gòu)造函數(shù)不需要再Activity中調(diào)用,但是Displayable的是必須的,在Activity 中,要通過findViewById()來從XML 中取得View,Android的View類的顯示很大程度上是從XML中讀取的。View 與事件(event)息息相關(guān),兩者之間通過Listener 結(jié)合在一起,每一個View
17、都可以注冊一個event listener,例如:當(dāng)View要處理用戶觸碰(touch)的事件時,就要向Android框架注冊View.OnClickListener。另外還有Image等同于J2ME的BitMap。(1)一次編寫,到處運(yùn)行。在這一點上Java比PHP更出色,在不同的軟件平臺上運(yùn)行,代碼不用做任何更改。(2)軟件的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行軟件不是和運(yùn)行。相比ASP/PHP的局限性是顯而易見的。 (3)強(qiáng)大的可伸縮性。從只有一個小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺Application
18、進(jìn)行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個巨大的生命力。(4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺之下。2.4體系結(jié)構(gòu)2.4.1操作系統(tǒng)層(OS)Android使用Linux2.6作為操作系統(tǒng),Linux2.6是一種標(biāo)準(zhǔn)的技術(shù),Linux也是一個開放的操作系統(tǒng)。Android對操作系統(tǒng)的使用包括核心和驅(qū)動程序兩部分,Android的Linux核心為標(biāo)準(zhǔn)的Linux2.6內(nèi)核,Android更多的是需要一些與移動設(shè)備相關(guān)的驅(qū)動程序。主要的驅(qū)動如下所示:
19、顯示驅(qū)動(Display Driver):常用基于Linux的幀緩沖(Frame Buffer)驅(qū)動。Flash內(nèi)存驅(qū)動(Flash Memory Driver)。照相機(jī)驅(qū)動(Camera Driver):常用基于Linux的v4l(Video for )驅(qū)動。音頻驅(qū)動(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高級Linux聲音體系)驅(qū)動。WiFi驅(qū)動(Camera Driver):基于IEEE 802.11標(biāo)準(zhǔn)的驅(qū)動程序。鍵盤驅(qū)動(KeyBoard Driver)。藍(lán)牙驅(qū)動(Bluetooth Driver)。Bind
20、er IPC驅(qū)動: Android一個特殊的驅(qū)動程序,具有單獨的設(shè)備節(jié)點,提供進(jìn)程間通訊的功能。Power Management(能源管理)2.2.2 C/S模式與B/S模式的分析比較2.4.2各種庫(Libraries)和Android 運(yùn)行環(huán)境(RunTime)本層次對應(yīng)一般嵌入式系統(tǒng),相當(dāng)于中間件層次。Android的本層次分成兩個部分一個是各種庫,另一個是Android 運(yùn)行環(huán)境。本層的內(nèi)容大多是使用C+實現(xiàn)的。在其中,各種庫包括:C庫:C語言的標(biāo)準(zhǔn)庫,這也是系統(tǒng)中一個最為底層的庫,C庫是通過Linux的系統(tǒng)調(diào)用來實現(xiàn)。 多媒體框架(MediaFrameword):這部分內(nèi)容是Andr
21、oid多媒體的核心部分,基于PacketVideo(即PV)的OpenCORE,從功能上本庫一共分為兩大部分,一個部分是音頻、視頻的回放(PlayBack),另一部分是則是音視頻的紀(jì)錄(Recorder)。SGL:2D圖像引擎。SSL:即Secure Socket Layer位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。OpenGL ES 1.0 :本部分提供了對3D的支持。界面管理工具(Surface Management):本部分提供了對管理顯示子系統(tǒng)等功能。SQLite:一個通用的嵌入式數(shù)據(jù)庫WebKit:網(wǎng)絡(luò)瀏覽器的核心FreeType:位圖和矢量字體的功能。And
22、roid 的各種庫一般是以系統(tǒng)中間件的形式提供的,它們均有的一個顯著特點就是與移動設(shè)備的平臺的應(yīng)用密切相關(guān)。Android 運(yùn)行環(huán)境主要指的虛擬機(jī)技術(shù)Dalvik。Dalvik虛擬機(jī)和一般JAVA虛擬機(jī)(Java VM)不同,它執(zhí)行的不是JAVA標(biāo)準(zhǔn)的字節(jié)碼(bytecode )而是Dalvik可執(zhí)行格式(.dex)中執(zhí)行文件。在執(zhí)行的過程中,每一個應(yīng)用程序即一個進(jìn)程(Linux的一個Process)。 二者最大的區(qū)別在于Java VM是以基于棧的虛擬機(jī)(Stack-based),而Dalvik是基于寄存器的虛擬機(jī)(Register-based)。顯然,后者最大的好處在于可以根據(jù)硬件實現(xiàn)更大的
23、優(yōu)化,這更適合移動設(shè)備的特點。3.3軟件可行性分析為了給軟件開發(fā)者提供是否進(jìn)行項目實施的參考依據(jù),現(xiàn)分析項目的風(fēng)險、項目需要的投資以及效益。2.4.3應(yīng)用程序框架(Application Framework)Android的應(yīng)用程序框架為應(yīng)用程序?qū)拥拈_發(fā)者提供APIs,它實際上是一個應(yīng)用程序的框架。由于上層的應(yīng)用程序是以JAVA構(gòu)建的,因此本層次提供的首先包含了UI程序中所需要的各種控件:例如: Views (視圖組件)包括 lists(列表), grids(柵格), text boxes(文本框), buttons(按鈕)等。甚至一個嵌入式的Web瀏覽器。 一個Andoid的應(yīng)用程序可以利用
24、應(yīng)用程序框架中的以下幾個部分: Activity (活動) Broadcast Intent Receiver (廣播意圖接收者) Service (服務(wù)) Content Provider (內(nèi)容提供者)第三章項目可行性及需求分析3.1可行性分析3.1.1經(jīng)濟(jì)可行性基于Android軟件的“去哪兒”旅行記錄與分享APP的設(shè)計與開發(fā)是一個小型的實用型軟件, 在開發(fā)時需要軟件開發(fā)人員花費(fèi)一定的時間和精力,因此需要一定的資金。開發(fā)、運(yùn)行和維護(hù)費(fèi)用主要包括:購買和安裝設(shè)備的費(fèi)用:計算機(jī)硬件、軟件、 機(jī)房、電源等; 但它給企業(yè)帶來的利潤是不可估量的,節(jié)省了許多人力,物力上的開支,使資產(chǎn)管理工作變繁為簡
25、,使其更加合理化、規(guī)范化。工作效率的提高就意為著整體水平的提高,是非常值得投資的。3.1.2技術(shù)可行性技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。本App管理軟件用的是java開發(fā)語言,調(diào)試相對簡單,當(dāng)前的手機(jī)硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對可行的。軟件方面:由于目前單機(jī)模式相對發(fā)展成熟,故軟件的開發(fā)平臺成熟可行,它們速度快、容量大、可靠性能高、價格低,完全能滿足軟件的需求。3.1.3操作可行性軟件是在JDK 環(huán)境下開發(fā)的,易于操作。而且軟件還采用了可視化面向?qū)ο蟮墓ぞ唛_發(fā),其窗口、界面簡潔易懂,所以軟件在操作上是可行的。3.2軟件
26、需求分析3.2.1對軟件的需求 本類型的軟件的種類很多,而每一個分類下又有很多子類。還應(yīng)該提供用戶管理,并對其設(shè)置權(quán)限管理。軟件還應(yīng)該做到對數(shù)據(jù)的快速查詢。經(jīng)實際調(diào)查,要求本軟件具有以下功能:(1)界面設(shè)計美觀大方,方便、快捷、操作靈活。(2)如果軟件的使用對象較多,有備份功能防止數(shù)據(jù)丟失。(3)對記錄要有一個類別管理。(4)提供對記錄的天氣、心情、記錄操作。(5)方便信息的查詢。(6)在相應(yīng)的權(quán)限下,可方便的刪除、添加、修改數(shù)據(jù)。3.2.2基本功能1. 寫記錄:可以新增旅游記錄,輸入地點,選擇天氣2. 記錄查詢:可以通過記錄內(nèi)容的關(guān)鍵字或者地點查詢曾經(jīng)寫過的記錄。3. 記錄加密:可以通過圖形
27、或者數(shù)字加密,保證記錄的安全性。4. 記錄分享:通過分享功能,將自己旅行所見所想分享給朋友,一同分享旅行中的快樂。3.3本軟件的預(yù)期成果設(shè)計和實現(xiàn)基于Android軟件的“去哪兒”旅行記錄與分享APP的設(shè)計與開發(fā),使旅行記錄簡單化、快速化。從而達(dá)到提高記錄效率、降低成本的目的,本軟件應(yīng)達(dá)到如下目標(biāo): (1) 靈活的人機(jī)交互界面,操作簡單方便,界面簡潔美觀 ;(2) 可以通過菜單、工具欄等靈活操作;(3) 對客戶和操作員的信息互通提供相應(yīng)的管理功能:(4) 查詢方便,無論是按地點、內(nèi)容其中任一項都可以進(jìn)行有效查詢 ;(5) 軟件可以加密(6) 軟件運(yùn)行穩(wěn)定,安全可靠。第四章系統(tǒng)實現(xiàn)4.1軟件的主
28、要設(shè)計框圖本軟件的主要設(shè)計框圖,如圖3-1所示,主要描述了此軟件應(yīng)該具有的功能模塊以及實現(xiàn)的功能模塊。加密操作備份操作直接操作軟件相關(guān)按鈕圖4-1軟件框圖4.2軟件數(shù)據(jù)模型設(shè)計計算機(jī)信息軟件以數(shù)據(jù)庫為核心,在數(shù)據(jù)庫管理軟件的支持下,進(jìn)行信息的收集、整理、存儲、檢索、更新、加工、統(tǒng)計和傳播等操作。對于數(shù)據(jù)庫應(yīng)用開發(fā)人員來說,為使現(xiàn)實世界的信息流計算機(jī)化,并對計算機(jī)化的信息進(jìn)行各種操作,就是如何利用數(shù)據(jù)庫管理軟件、軟件軟件和相關(guān)硬件軟件,將用戶的要求轉(zhuǎn)化成有效的數(shù)據(jù)結(jié)構(gòu),并使數(shù)據(jù)庫結(jié)構(gòu)易于實現(xiàn)用戶新的要求的過程。 確切的說,數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,提供一個確定最優(yōu)數(shù)據(jù)模型與處理模式的
29、邏輯設(shè)計,以及一個確定數(shù)據(jù)庫存儲結(jié)構(gòu)與存取方法的物理設(shè)計,建立起既能反映現(xiàn)實世界信息和信息聯(lián)系,滿足用戶數(shù)據(jù)要求和加工要求,又能被某個數(shù)據(jù)庫管理軟件所接受,同時能實現(xiàn)軟件目標(biāo),并有效存取數(shù)據(jù)的數(shù)據(jù)庫。4.3代碼介紹4.3.1背景圖片選擇實現(xiàn)軟件內(nèi)置四種圖片,可供選擇成為背景圖片。如圖4-2圖4-2 背景圖片具體代碼實現(xiàn)如下:/軟件背景圖片選擇privatevoidsetBackground() / 得到當(dāng)前布局LinearLayout layout = (LinearLayout) this.findViewById(R.id.about_layout);/ 得到id,此處id是在設(shè)置背景里面
30、產(chǎn)生的,此處暫不解釋int id = preferences.getInt("id", 0);if (id = 0) / id=0說明是初始化時的背景/ 設(shè)置背景方法layout.setBackgroundResource(R.drawable.diary_view_bg); elseif (id = 1) / id=1說明用戶選擇了第一幅圖片layout.setBackgroundResource(R.drawable.diary_view_bg); elseif (id = 2) / id=2說明用戶選擇了第二幅圖片layout.setBackgroundResourc
31、e(R.drawable.spring); elseif (id = 3) / id=3說明用戶選擇了第三幅圖片layout.setBackgroundResource(R.drawable.summer); elseif (id = 4) / id=4說明用戶選擇了第四幅圖片layout.setBackgroundResource(R.drawable.autumn); elseif (id = 5) / id=4說明用戶選擇了第四幅圖片layout.setBackgroundResource(R.drawable.winter);4.3.2開機(jī)動畫為了增強(qiáng)用戶體驗感,本軟件新添開機(jī)歡迎界面
32、,如圖4-3圖4-3 開機(jī)動畫圖片/軟件加載Animation leftOutAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_left);Animation rightOutAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_right);/ 左布局向左移動leftLayout.setAnimation(leftOutAnimation);/ 右布局向右移動righ
33、tLayout.setAnimation(rightOutAnimation);/ 設(shè)置動畫監(jiān)聽器leftOutAnimation.setAnimationListener(newAnimationListener() OverridepublicvoidonAnimationStart(Animation animation) / TODO Auto-generated method stubOverridepublicvoidonAnimationRepeat(Animation animation) / TODO Auto-generated method stub4.3.3寫記錄核心代
34、碼本軟件使用單純文本記錄旅程,占用內(nèi)存少,字?jǐn)?shù)不限。圖4-4 寫記錄publicclassAccessActivityextends Activity private Button access;privateSharedPreferencessp=null;SuppressLint("NewApi")OverrideprotectedvoidonCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);requestWindow
35、Feature(Window.FEATURE_NO_TITLE);setContentView(R.layout.access);access = (Button)this.findViewById(R.id.access);access.setOnClickListener(newOnClickListener() OverridepublicvoidonClick(View v) / TODO Auto-generated method stubsp=getSharedPreferences("pass", Context.MODE_PRIVATE);String pa
36、ssWay=sp.getString("passway", null);Intent intent = null;if (passWay!=null) if (passWay.equals("graphicpass") intent =new Intent(AccessActivity.this,CheckPassActivity.class);startActivity(intent);overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);AccessAct
37、ivity.this.finish();else intent = new Intent(AccessActivity.this, MainActivity.class); startActivity(intent);overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);AccessActivity.this.finish(); else intent = new Intent(AccessActivity.this, MainActivity.class); startActivity(intent
38、);overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);AccessActivity.this.finish(););4.4.4 記錄加密核心代碼“去哪兒”旅行記錄與分享實現(xiàn)了軟件加密功能,共有兩種加密方式,圖形加密和數(shù)字加密,只有正確輸入密碼才可以進(jìn)入系統(tǒng),查看旅行記錄。圖4-5 記錄加密圖片/記錄加密實現(xiàn)privatevoiddrawCircle(Canvas canvas, intleftX, inttopY, booleanpartOfPattern) Bitmap outerCircle;
39、 Bitmap innerCircle;if (!partOfPattern | (mInStealthMode&&mPatternDisplayMode != DisplayMode.Wrong) / unselected circleouterCircle = mBitmapCircleDefault;innerCircle = mBitmapBtnDefault; elseif (mPatternInProgress) / user is in middle of drawing a patternouterCircle = mBitmapCircleGreen;inne
40、rCircle = mBitmapBtnTouched; elseif (mPatternDisplayMode = DisplayMode.Wrong) / the pattern is wrongouterCircle = mBitmapCircleRed;innerCircle = mBitmapBtnDefault; elseif (mPatternDisplayMode = DisplayMode.Correct |mPatternDisplayMode = DisplayMode.Animate) / the pattern is correctouterCircle = mBit
41、mapCircleGreen;innerCircle = mBitmapBtnDefault; else thrownewIllegalStateException("unknown display mode " + mPatternDisplayMode); finalint width = mBitmapWidth;finalint height = mBitmapHeight;finalfloatsquareWidth = mSquareWidth;finalfloatsquareHeight = mSquareHeight;intoffsetX = (int) (s
42、quareWidth - width) / 2f);intoffsetY = (int) (squareHeight - height) / 2f);/ Allow circles to shrink if the view is too small to hold them.floatsx = Math.min(mSquareWidth / mBitmapWidth, 1.0f);floatsy = Math.min(mSquareHeight / mBitmapHeight, 1.0f);mCircleMatrix.setTranslate(leftX + offsetX, topY +
43、offsetY);mCircleMatrix.preTranslate(mBitmapWidth/2, mBitmapHeight/2);mCircleMatrix.preScale(sx, sy);mCircleMatrix.preTranslate(-mBitmapWidth/2, -mBitmapHeight/2);canvas.drawBitmap(outerCircle, mCircleMatrix, mPaint);canvas.drawBitmap(innerCircle, mCircleMatrix, mPaint);第五章軟件測試5.1測試的重要性及目的(1)測試的重要性:軟
44、件測試是保證軟件質(zhì)量的重要活動,它貫穿于整個軟件開發(fā)生命周期,是軟件項目實施的不可缺少的環(huán)節(jié)。軟件測試的直接目的是發(fā)現(xiàn)軟件中存在的缺陷,進(jìn)而改正軟件中的錯誤、彌補(bǔ)缺陷、完善功能,從而保證開發(fā)軟件的質(zhì)量、性能。 測試的目的:(2)測試的目的如果測試的目的是為了盡可能多地找出錯誤,那么測試就應(yīng)該直接針對軟件比較復(fù)雜的部分或是以前出錯比較多的位置。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程; 測試是為了證明程序有錯,而不是證明程序無錯誤; 一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。5.2測試流程(1)單元測試集中在檢查軟件設(shè)計的最小單位模塊上,通過測試
45、發(fā)現(xiàn)實現(xiàn)該模塊的實際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯誤。 下面是以用戶管理模塊為例的部分功能測試用例,如下圖5-1所示:序號輸入預(yù)期輸出是否正常備注1點擊“新增”按鈕顯示新增對話框,對話框中無數(shù)據(jù)是2點擊“修改”按鈕顯示修改對話框,對話框中顯示原始數(shù)據(jù)是3點擊“刪除”對話框彈出刪除確認(rèn)對話框是圖5-1 功能測試用例(2)集成測試 集成測試是將模塊按照設(shè)計要求組裝起來同時進(jìn)行測試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。如一個模塊與另一個模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產(chǎn)生預(yù)期的主功能;個別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能
46、有錯誤等。 在單元測試的基礎(chǔ)上,需要將模塊按照設(shè)計要求組裝成為軟件。這時需要考慮的問題是:把各個模塊連接起來的時,穿越模塊接口的數(shù)據(jù)是否會丟失;一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響;各個子功能組合起來,能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題;單個模塊的誤差累積起來,是否會放大,從而達(dá)到不能接受的程度。 在單元測試的同時可進(jìn)行集成測試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問題,最終構(gòu)成要求的軟件軟件。子軟件的集成測試特別稱為部件測試,它所做的工作是要找出集成后的子軟件與軟件需求規(guī)格說明之間的不一致。下面是會員管理模塊的集成測試用例,如下圖5-2所示:序號輸入預(yù)期輸出是否正常
47、備注1在新增對話框中點擊“新增”按鈕成功提交新增信息,將數(shù)據(jù)錄入數(shù)據(jù)庫。新增記錄顯示在頁面上是2在修改對話框中點擊“修改”按鈕成功修改,將數(shù)據(jù)錄入數(shù)據(jù)庫,并將更新后的記錄更新到頁面上是3在修改對話框中點擊“修改”按鈕成功修改,將數(shù)據(jù)錄入數(shù)據(jù)庫。更新后的記錄更新到頁面上是圖5-2功能測試用例(3)確認(rèn)測試 確認(rèn)測試的目的是向未來的用戶表明軟件能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計把所有的模塊組裝成一個完整的軟件軟件,接口錯誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗證軟件的有效性,這就是確認(rèn)測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。 (4)軟件測試 軟件開發(fā)完成以后,最終還要
48、與軟件中其他部分配套運(yùn)行,進(jìn)行軟件測試。包括恢復(fù)測試、安全測試、強(qiáng)度測試和性能測試等。單獨對軟件的測試主要從以下幾方面入手:1.功能測試:測試是否滿足開發(fā)要求,是否提供設(shè)計所描述的功能,是否用戶的需求都得到滿足。功能測試是軟件測試最常用和必須的測試,通常還會以正式的軟件說明書為測試標(biāo)準(zhǔn)。2.強(qiáng)度測試及性能測試:測試軟件能力最高實際限度,即軟件在一些超負(fù)荷情況下功能實現(xiàn)的情況。3.安全測試:驗證安裝在軟件內(nèi)的保護(hù)機(jī)構(gòu)確實能夠?qū)浖M(jìn)行保護(hù),使之不受各種非常的干擾。針對本軟件主要是對權(quán)限軟件的測試和對無效數(shù)據(jù)、錯數(shù)據(jù)、和非法數(shù)據(jù)干擾的能力的測試。經(jīng)過上述的測試過程對軟件進(jìn)行測試后,軟件基本滿足開發(fā)
49、的要求,測試宣告結(jié)束。 結(jié)論在開發(fā)軟件之前,本人首先對國內(nèi)旅游事業(yè)以及各地旅游景點做了一些調(diào)查,進(jìn)而了解了開發(fā)該軟件的一些基本需求和功能,這對本人開發(fā)提供了很大的幫助。軟件的開發(fā)是嚴(yán)格按照軟件工程的思想,從需求分析、可行性分析、總體設(shè)計、最后到詳細(xì)設(shè)計。軟件的開發(fā)在開發(fā)的過程中由于對JSP技術(shù)不夠熟練,遇到了很多難題,但是在老師的解答和一些資料中都得到了解答。軟件初步完成后老師提了很多建議,比如軟件中未涉及到的數(shù)據(jù)備份,還有報表的打印等,所以在后期做了一些改進(jìn),是軟件更加完善。 軟件工程是一門融管理科學(xué)、信息科學(xué)、軟件科學(xué)、計算機(jī)科學(xué)與現(xiàn)代通信技術(shù)為一體的一門綜合性邊緣學(xué)科。在軟件開發(fā)之前,必
50、須了解該軟件的特點、適用范圍以及使用者需要一個什么樣的軟件,以此作為基礎(chǔ)為開發(fā)軟件準(zhǔn)確定位,然后對使用者所需實現(xiàn)的功能進(jìn)行分析總結(jié),根據(jù)使用者的實際要求來給軟件設(shè)計一個初步方案。軟件的開發(fā)不僅是要實現(xiàn)對數(shù)據(jù)處理的及時與正確,而且要考慮軟件是否具有控制功能,及時將數(shù)據(jù)反饋給操作者,以進(jìn)行監(jiān)測和協(xié)調(diào),保證軟件的正常運(yùn)行;也要考慮是否具有預(yù)測功能,運(yùn)用一定的數(shù)學(xué)方法利用歷史的數(shù)據(jù)對未來進(jìn)行預(yù)測的工作。 在程序設(shè)計過程中,遇到了很多技術(shù)上的問題,才意識到好多問題都是一知半解,比如數(shù)據(jù)庫的鏈接,以前也實踐過,理論上也掌握了,但是在開發(fā)的過程中還是遇到了問題,這讓我充分的體會到了“實踐出真知”這一點。在設(shè)
51、計的過程中,我掌握了很多Android的編程知識,并對這種成熟并廣泛應(yīng)用的技術(shù)進(jìn)行了深入的學(xué)習(xí)。設(shè)計的過程也是一個再學(xué)習(xí)的過程,在遇到問題的時候我盡量自己想辦法解決,這在很大程度上激發(fā)了我們的自學(xué)能力。通過這次的畢業(yè)設(shè)計,真正的實踐過了學(xué)過的專業(yè)基本理論、專業(yè)知識和基本技術(shù),對自己的別業(yè)設(shè)計也有了更深入的了解和體會,真正達(dá)到了學(xué)以致用。 參考文獻(xiàn)1 Android A Programmers Guide . Jerome (J.F.) DiMarzio DOI:10.1036、 00715998862 林城. Android 2.3 應(yīng)用開發(fā)實戰(zhàn)J . 機(jī)械工業(yè)出版社,2011:17-321.
52、 3 韓超. Android經(jīng)典應(yīng)用程序開發(fā)J . 人力資源出版社,2011:5-18. 4 (美)Cay S. Horstmann,Gary Cornell. Java核心技術(shù)J. 機(jī)械工業(yè)出版社, 2008:15-17. 5 劉衛(wèi)國,姚昱禹. Android與J2ME平臺間即時通信的研究與實現(xiàn)J. 中南大 學(xué) 信息科學(xué)與工程學(xué)院. 2008年12期:118-120.6 劉平. Android手機(jī)訪問服務(wù)器的一種數(shù)據(jù)交互方法J . 西安財經(jīng)學(xué)院 網(wǎng)絡(luò) 與現(xiàn)在教育技術(shù)中心,2010-09:96-102. 7 劉玉平. Java輸入輸出流及在網(wǎng)站開發(fā)中的應(yīng)用探討J. 郴州市科技局, 2009,(
53、18):35-49. 8 趙亮,張維. 基于Android技術(shù)的界面設(shè)計與研究D . 徐州:徐州建筑職業(yè) 技術(shù)學(xué)院, 2001. 9 陳璟,陳平華,李文亮. Android內(nèi)核分析J . 廣東工業(yè)大學(xué)計算機(jī)學(xué)院 實踐 與經(jīng)驗,2009:112-115. 10 劉衛(wèi)國,姚昱禹. Android的架構(gòu)與應(yīng)用開發(fā)研究J . 中南大學(xué):信息科學(xué) 與工程學(xué)院 計算機(jī)系統(tǒng)應(yīng)用 2008-11:110-112. 11 張海藩. 軟件工程導(dǎo)論(第4版)J. 北京:清華大學(xué)出版社,2006:34-38. 12 鄺孔無,王曉敏. 信息系統(tǒng)分析與設(shè)計(第三版)M. 清華大學(xué)出版社, 2006:23-26. 13 亢
54、勇,陳自力,李鵬,路平. 面向?qū)ο蟮能浖y試J. 測試技術(shù)學(xué)報, 1999,(02):15-23. 14 何玉潔. 數(shù)據(jù)庫原理與應(yīng)用教程M. 機(jī)械工業(yè)出版社,2005.12 15 KEN ARNOLD,JAMES GOSLING,DAVID HOLMES: JAVA PROGRAMMING LANGUAGE M,POSTS & TELECOM PRESS,2006:231附錄文獻(xiàn)翻譯I 英文原文Filtering the Reference Documentation by API LevelReference documentation pages on the Android De
55、velopers site offer a "Filter by API Level" control in the top-right area of each page. You can use the control to show documentation only for parts of the API that are actually accessible to your application, based on the API Level that it specifies in the android:minSdkVersion attribute of its manifest file. To
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售經(jīng)理轉(zhuǎn)正工作總結(jié)
- 民間借貸代理詞(34篇)
- 工作中的心得體會
- 有兒子離婚協(xié)議書(34篇)
- 甜品店的創(chuàng)業(yè)計劃書15篇
- 酒店電氣火災(zāi)應(yīng)急預(yù)案(3篇)
- 2023年地震數(shù)據(jù)采集系統(tǒng)資金申請報告
- 茶文化與茶藝鑒賞 教案 項目六 品茶韻-常見茶葉的沖泡與鑒賞
- 2023年防水油漆投資申請報告
- 2024年安防電子項目資金需求報告代可行性研究報告
- 新教材教科版六年級上冊科學(xué)全冊教案(教學(xué)設(shè)計)
- 冬季六防工作方案
- 中小學(xué)教師資格考試成績復(fù)核申請表
- 學(xué)習(xí)《中國式現(xiàn)代化》PPT
- 《Python分支結(jié)構(gòu)》教學(xué)設(shè)計
- 平板閘閥說明書
- 《行政能力測試》課件
- 工作人員應(yīng)對火災(zāi)現(xiàn)場應(yīng)急處置卡
- 廣西南寧市八年級上學(xué)期數(shù)學(xué)期末考試試卷
- 上海中考物理專題-計算題失分題專題(學(xué)生版)
- 標(biāo)準(zhǔn)化與產(chǎn)品標(biāo)準(zhǔn)課件
評論
0/150
提交評論