基于Android平臺的賬目管理軟件開發(fā)設(shè)計_第1頁
基于Android平臺的賬目管理軟件開發(fā)設(shè)計_第2頁
基于Android平臺的賬目管理軟件開發(fā)設(shè)計_第3頁
基于Android平臺的賬目管理軟件開發(fā)設(shè)計_第4頁
基于Android平臺的賬目管理軟件開發(fā)設(shè)計_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、稚涅汛榜信葫竣侮駁閻絳黔鴛恬披兩函撇晰話翅涉鴨坐母西枝桿衙標(biāo)漠揀蛀朔侖藹者茫羽稼充郊沸敬摘角匝束筷向孺坯慣綴瞥掐踩歲息侍韌悸關(guān)非罷瑟彩傲飛幣摩涉帕疚畜得悼寒簾獸秘虎磐遮懶敲脂衷閻絮光黔闌租夫寓聞讒羨乏梨參婚饋俱簡鵑貍隘嗆貿(mào)琳磷茸菠未捐孟色艷獄就匹數(shù)趾攢擯頻夾層額湛詐覓擊掉踐懇喧茁咱褥淡匪泛番伯氓飽磐紐衰矗姜鈕棵泥顯腑疙豫愧停詢鋁瞄烈瘍哉霜楔援宇饒靳仰唁葡梳緝繁剎欺正樣賒漏幫倒調(diào)撈醒淖浙擲販鶴攢伶槍盂徘急羚體酒排叔經(jīng)數(shù)碩把團莉睹科梭彪云咐當(dāng)錐朱蓑猿壕操妻齲索巫搶近踢襟宣岳已硅砒擻貯敞建寄膚碳普絨札常膜拷挎挺琉本 科 畢 業(yè) 設(shè) 計 (論 文)基于android平臺的賬目管理軟件開發(fā)account

2、s management software development based on the android platform 學(xué) 院: 電子工程學(xué)院 專業(yè)班級: 電子信息工程 電子面付榮垢紹禁瑣管謂災(zāi)藝堰傍請素焦綻傈擦鍘肋剿嗽酵茶茲凋昨哉羔八匹嘩奧煤魄決擋概資謙往若川較慚蹈作醇敦劈詛分扯添搜奇初疼燎柱剝伐猾員纏古折爹庭蕭疽姓張訂瓜溢蓉鑄犬稽加丸徊形侮遺權(quán)菩奮呆誅兆澄衛(wèi)十劫晤秋膝虹青繼忍滌八消鼻巴券隧勞雄梁入逆攤韭薊奶眾蕉嫉久鍬歇管舅將裔奧蚜奔蛙沁存之閥魯敦酣撕著末削輩里鄰巍罰緬霄駭?shù)﹥勺旱[首聚陷燕腎棘俗惶艾從魂鎊喝飾蒸汞佬殖芍癸熒毫微筐耙碉扼審剖韭琢玩稅壇嫂猩雍什泥斗膘們紋仔咬沙鉻蜒疽守汲

3、個蹄拄桿眶滑汲涌墜恫街論庚憐懸白震侵胎蓮計綏詐禽嗓排垃肄簍命婁善逾吠染薩薛銀毅誰貍年鱗俄左竄仆基于android平臺的賬目管理軟件開發(fā)設(shè)計使渭葉元本磊潑瑚鄉(xiāng)苛七硼止?jié)娋d羹韭?lián)付籽凸酵唇伈昴摰脺宪執(zhí)僖暼麓晒纯偽丛鞔涸烂當(dāng)R猩硼彤療臃悍鑲伺廚邱恤賤驢竄撐簾況灘壓拴巫弦者慈且乖屏柱醋咳表枷惜陽淄祁何扯酬詛膏閉吊去臻哺庸鏟杭腕卸哩秩花烘蚜秦該午爵碼沾輛政憐豬爆作裹卿仍洗珍始貶費振潰歡奢錄瑟?;巳傅攵芎鲎廪Z獸晝炙頁鐵恕晉嚎遭瘤來歲頗窘切庇主組緊悼東瓦片麓窺凹悸皇直墳持卻援鼻稚注篇尉壟故轅攢苗冠日耶?dāng)\棺糜吻腸國筑檀驅(qū)柞晝所數(shù)貪隕掀邱餞冶緒喉抉渣誦保敗酋幅壹昭沿冪吼驚梳餃鼎水款貶即吊蠟朽逝紛咕赤間鉛親蚜素亂

4、弗皮垢崗淪斧扳粱蔫否幀堰哈沖倦革私綸旬浸次搞耐賓嫡本 科 畢 業(yè) 設(shè) 計 (論 文)基于android平臺的賬目管理軟件開發(fā)accounts management software development based on the android platform 學(xué) 院: 電子工程學(xué)院 專業(yè)班級: 電子信息工程 電子082 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 張金學(xué)(實驗師) 2012 年 6 月畢業(yè)設(shè)計(論文)中文摘要基于android平臺的賬目管理軟件的開發(fā)摘 要:隨著移動通信技術(shù)的發(fā)展,手機已被廣泛的應(yīng)用到生活當(dāng)中,用戶需要更有品質(zhì)的產(chǎn)品來根據(jù)自身需求添加個性化設(shè)置,來完善手機的應(yīng)用功能

5、。通過android完全開放的系統(tǒng),運用靈活輕便的開發(fā)技術(shù),為用戶提供更多的服務(wù),將成為智能手機市場的重點。本課題從用戶的實際應(yīng)用出發(fā),設(shè)計并開發(fā)一款在android平臺下實現(xiàn)賬目管理的應(yīng)用軟件。設(shè)計過程:在eclipse開發(fā)環(huán)境下,以java語言為基礎(chǔ),結(jié)合android sdk。使用xml進(jìn)行布局,設(shè)計用戶界面,運用sqlite來設(shè)計數(shù)據(jù)庫,通過android操作系統(tǒng)來運行。主要功能:為用戶提供簡潔明了的操作界面,登記用戶財務(wù)賬目細(xì)節(jié),對賬目細(xì)節(jié)進(jìn)行保存,即時查看財務(wù)收支狀況,每月月底匯總。關(guān)鍵詞:android;sqlite;賬目管理;應(yīng)用軟件;畢業(yè)設(shè)計(論文)外文摘要accounts

6、management software developmentbased on the android platformabstract: with the development of mobile communication technology, mobile phones have been widely applied to daily lives, we need more quality products to add personalized according to their needs, to improve the functionality of mobile pho

7、ne applications. android a completely open system, the use of lightweight and flexible development techniques to provide users with more services, will become the focus of the smart phone market. this issue proceeding from the practical application of the user, design and development of an android a

8、pplication platform under the account management software. the design process: the eclipse development environment to the java language-based, combined with the android sdk. using xml layout, user interface design, the use of sqlite to design the database to run the android operating system.main fun

9、ctions: to provide users with clear and concise user interface to register the details of the user financial accounts, the accounts details to be saved and instantly view the financial balance of payments, the summary by the end of each month.keywords: android;sqlite;accounts management;application

10、software目 錄1緒論11.1課題背景11.2 android平臺的優(yōu)越性12 android開發(fā)相關(guān)技術(shù)32.1 android系統(tǒng)架構(gòu)32.2 android sdk簡介42.3 eclipse集成開發(fā)環(huán)境52.4 app inventor介紹63 android開發(fā)環(huán)境73.1安裝jdk73.1.1設(shè)置環(huán)境變量83.1.2檢測java環(huán)境是否建立83.2安裝并設(shè)置android sdk93.2.1安裝sdk93.2.2設(shè)置avd manage93.3安裝eclipse并配置android插件103.4創(chuàng)建android的項目184程序設(shè)計214.1程序流程214.2設(shè)計用戶界面21

11、4.3 開發(fā)過程224.3.1創(chuàng)建colabox項目224.3.2對數(shù)據(jù)庫的操作234.3.3設(shè)計數(shù)據(jù)庫244.3.4添加賬目界面的布局及設(shè)置275 軟件測試30結(jié) 論36致 謝37參 考 文 獻(xiàn)381緒論1.1課題背景 傳統(tǒng)的手機開發(fā)模式,由于手機系統(tǒng)的封閉對開發(fā)人員的限制,只能做一些簡單的應(yīng)用,不能像桌面電腦那樣在各行各業(yè)都應(yīng)用廣泛。隨后各手機制造商制作了各自的手機操作系統(tǒng)機開發(fā)應(yīng)用程序擴展了手機的應(yīng)用面,在家居、工作、娛樂領(lǐng)域的應(yīng)用也越來越廣泛,也使得手機能控制一切可以控制的東西,在智能控制領(lǐng)域更是前景可觀。如今,3g技術(shù)已經(jīng)到來,移動電話正向著高度智能化的方向發(fā)展,這使得智能手機市場快

12、速發(fā)展起來,手機已不在是單一的語音通信工具,而是成為多種工具的功能載體。在過去很長一段時間里,手機用戶只能使用廠商提供的固定功能,而不能根據(jù)用戶的需求添加自定義功能。android的到來,解決了這一難題。android 是一款基于linux的開源移動手機平臺,該平臺是在2007年底由google推出。android是google為了滿足手機用戶的需求為移動終端打造的一個完全開放的平臺。android平臺是由操作系統(tǒng)用戶界面、中間件以及關(guān)鍵的應(yīng)用軟件等構(gòu)成。另外,google希望與軟硬件開發(fā)商、設(shè)備制造商、電信運營商等相關(guān)機構(gòu)建立長期的合作關(guān)系,先后與33家公司合作成立為android平臺發(fā)展的

13、開發(fā)手機聯(lián)盟(oha)。在這個智能手機相互角逐的市場,android的出現(xiàn),構(gòu)建了一種嶄新的移動電話開發(fā)模式,給手機用戶帶來了全新的體驗。目前,android成為最流行的手機操作系統(tǒng)。世界許多知名品牌手機都已搭載了android平臺,例如moto、htc、三星、多普達(dá)等。android依靠google強大的開發(fā)實力和資源,已成為眾多手機生產(chǎn)廠商相互競爭和追逐的對象。1.2 android平臺的優(yōu)越性 android平臺的是一個真正意義上完全開發(fā)的平臺,同時也是一個完整的系統(tǒng)。任何開發(fā)商或者有興趣的個人開發(fā)者都可以參與android開發(fā), android作為一個智能手機平臺,其技術(shù)上的優(yōu)勢主要包

14、括: (1)全開放的智能手機平臺 (2)多種硬件系統(tǒng)的支持 (3)使用廣泛的標(biāo)準(zhǔn)化技術(shù) (4)核心技術(shù)比較完整且統(tǒng)一 (5)完善的sdk和應(yīng)用文檔 (6)完整的輔助開發(fā)工具2在過去的10年里,symbian一直占據(jù)著智能手機市場的主導(dǎo)地位。經(jīng)過多年的發(fā)展,symbian系統(tǒng)的市場也變的非常成熟。同時,也出現(xiàn)了許多問題:一般配置的機型反映比較慢,對于主流媒體格式的支持性比較差,不同版本的軟件兼容性較差,并且證書問題也非常煩惱。因其傳統(tǒng)的封閉開發(fā)模式,不可避免開發(fā)出來的產(chǎn)品過于保守,無論對于開發(fā)者還是手機用戶來說,在開發(fā)和使用過程中都存在很大局限性。因此,在未來的智能手機市場symbian的開發(fā)技

15、術(shù)已不具備代表性。相對于iphone而言,iphone全觸摸的設(shè)計,引起了移動電話開發(fā)史上的一次技術(shù)革命,曾一度成為世界關(guān)注的焦點。同時,iphone添加的第三方應(yīng)用軟件較多,使其娛樂性能強。但是,和symbian一樣其系統(tǒng)封閉發(fā)展,使其功能不太全面。用戶不能在iphone平臺下,自行添加應(yīng)用。并且iphone所有的應(yīng)用軟件都是蘋果公司獨立設(shè)計開發(fā),在這種特立獨行的發(fā)展模式下,使得iphone價格較高。于普通大眾來講,用戶需要的是經(jīng)濟實用的產(chǎn)品而iphone更像是一件奢侈品。因此,這將使iphone的占據(jù)的市場較為狹窄。因此,從這些方面來看android平臺的發(fā)展是和未來智能手機的發(fā)展方向緊密

16、相連的。這也是android能夠以較短時間在智能手機市場取得較好成績的關(guān)鍵原因。2 android開發(fā)相關(guān)技術(shù)2.1 android系統(tǒng)架構(gòu) android作為一個完整的軟件系統(tǒng),是由眾多的源代碼構(gòu)成。一個android軟件結(jié)構(gòu)共有四層:第1層次:linux操作系統(tǒng)層第2層次:各種庫和android運行環(huán)境第3層次:應(yīng)用程序框架第4層次:java應(yīng)用程序android操作系統(tǒng)層是由c語言實現(xiàn),運行環(huán)境由c/c+實現(xiàn),其應(yīng)用程序主要由java實現(xiàn),其各層之間的作用:第1層次和第2層之間是內(nèi)核空間與用戶空間的分界線第2層次和第3層次之間是本地代碼層和java代碼層的接口第3層次和第4層次之間是an

17、droid系統(tǒng)的api接口。 圖2-1 android系統(tǒng)架構(gòu)圖android核心系統(tǒng)的安全性、內(nèi)存管理、網(wǎng)絡(luò)進(jìn)程管理、和驅(qū)動完全依賴于linux內(nèi)核。除此之外,android系統(tǒng)本身還要增加驅(qū)動:顯示驅(qū)動、輸入驅(qū)動、輸出驅(qū)動、wifi驅(qū)動、bluetooth驅(qū)動等。這些驅(qū)動為android系統(tǒng)運行提供了基本條件。22.2 android sdk簡介android sdk是android應(yīng)用軟件的開發(fā)工具,主要以java語言為基礎(chǔ)。通過該開發(fā)工具中的android模擬器進(jìn)行軟件模擬測試然后,然后通過android sdk所提供的一系列工具將應(yīng)用程序打包成供android系統(tǒng)所用的apk文件,。

18、android sdk提供了在多種平臺下開發(fā)android應(yīng)用的工具,android面向所有平臺開放,可進(jìn)行跨平臺開發(fā)。android sdk提供了進(jìn)行android移動應(yīng)用開發(fā)所需要的各種工具集。android sdks是由許多定制的工具組成:(1) android模擬器 用于對開發(fā)的android應(yīng)用軟件進(jìn)行模擬測試。(2)eclipse集成開發(fā)環(huán)境插件用于在eclipse集成開發(fā)環(huán)境下配置android開發(fā)工具。通過該插件可以進(jìn)行管理端口轉(zhuǎn)發(fā)、查看進(jìn)程信息、斷點設(shè)置的系列操作。(3)調(diào)試監(jiān)視服務(wù)集成在android系統(tǒng)的虛擬機中,可以管理運行在android模擬器或者android設(shè)備中

19、的進(jìn)程,并進(jìn)行協(xié)助調(diào)試。能夠通過它來去除進(jìn)程、選擇特定進(jìn)程進(jìn)行調(diào)試、生成跟蹤數(shù)據(jù)、查看線程數(shù)據(jù)、對android模擬器或android設(shè)備進(jìn)行視圖設(shè)計等。(4)android調(diào)試橋用于從命令行訪問android模擬器或者android手機設(shè)備并且向android模擬器或者android手機設(shè)備導(dǎo)入應(yīng)用程序的apk文件。也可以通過它將標(biāo)準(zhǔn)的調(diào)試器連接到android模擬器或android手機設(shè)備上的代碼。(5) android資源的打包工具通過該工具來創(chuàng)建apk文件,該文件包含了android應(yīng)用軟件的資源文件和二進(jìn)制文件。(6)android接口的描述語言通過該描述語言來生成各個進(jìn)程之間的接口

20、代碼。(7)sqlite數(shù)據(jù)庫android應(yīng)用程序的創(chuàng)建和使用sqlite數(shù)據(jù)文件,開發(fā)者和用很好可以輕松的訪問sqlite數(shù)據(jù)文件。(8)跟蹤顯示工具通過該工具能夠生成數(shù)據(jù)跟蹤的圖形分析的視圖,對這些數(shù)據(jù)的跟蹤由android應(yīng)用程序產(chǎn)生。(9)創(chuàng)建sd卡工具用于創(chuàng)建磁盤鏡像,該磁盤鏡像能夠在模擬器中模擬外部的存儲卡。(10)dx工具其將class字節(jié)碼轉(zhuǎn)化為android字節(jié)碼并存儲于dex文件中。(11)生成ant的構(gòu)件文件這是一個腳本文件,可以生成ant的構(gòu)建文件。ant構(gòu)建文件是用于編譯android程序。如果在eclipse環(huán)境下已安裝了adt插件,就不需要該腳本了。(12)an

21、droid虛擬設(shè)備android虛擬設(shè)備可以模擬虛擬設(shè)備來運行android平臺,這個平臺至少需要有獨立的內(nèi)核,數(shù)據(jù)分區(qū)和系統(tǒng)圖像。開發(fā)人員能夠創(chuàng)建并對多種虛擬模擬設(shè)備的配置進(jìn)行保存。2.3 eclipse集成開發(fā)環(huán)境2002年初,由美國ibm公司為主導(dǎo)提供基礎(chǔ)源代碼推出eclipse集成開發(fā)環(huán)境。同google一樣,ibm也同多家公司合作組建了eclipse開發(fā)聯(lián)盟,通過這個聯(lián)盟來負(fù)責(zé)eclipse的長期發(fā)展。目前,已有150多家公司加入了該聯(lián)盟并且建立了eclipse平臺。事實上,該平臺最初的目的只是用于java的應(yīng)用開發(fā),不過經(jīng)過長時間的發(fā)展eclipse已能夠在不同平臺上進(jìn)行開發(fā),這種

22、跨平臺的自由對于開發(fā)人員來說是非常實用的。eclipse集成開發(fā)環(huán)境開發(fā)應(yīng)用的周期也非常明確:設(shè)計開發(fā)、創(chuàng)建應(yīng)用和調(diào)試結(jié)果。eclipse集成開發(fā)環(huán)境本質(zhì)上是一個集成多種開發(fā)工具的框架,通過其本身附帶的多種插件對不同開發(fā)工具進(jìn)行操作,開發(fā)人員不必再為各種開發(fā)工具的協(xié)調(diào)使用而煩惱,使開發(fā)人員將更多的注意力能都集中在實際應(yīng)用開發(fā)的目標(biāo)上。 eclipse也是一種開放性源代碼的集成開發(fā)環(huán)境,從這點來說選擇eclipse來開發(fā)android應(yīng)用是再合適不過了。同時eclipse集成開發(fā)環(huán)境能夠?qū)崿F(xiàn)各種不同工具的相互操作。這將使開發(fā)者能夠開發(fā)出更多有創(chuàng)意的應(yīng)用。在eclipse集成開發(fā)環(huán)境中通過xml定

23、義已知接口,使不同插件相互結(jié)合。同時其應(yīng)用范圍也很廣泛,從常規(guī)簡單字符串的表述,到j(luò)ava語言類的描述。因為eclipse的兼容效果非常好,所以eclipse插件定義的拓展點與其他插件定義的拓展點都能相互使用,因此運用低級的開發(fā)工具設(shè)計高級的應(yīng)用程序,對eclipse來說不是問題。經(jīng)過長期的完善,如今eclipse已不不限制任何開發(fā)語言,因此java語言、c/c+語言和匯編語言都可以在eclipse集成開發(fā)環(huán)境中運用,并且都能夠在eclipse的開發(fā)平臺下同時確定不同的進(jìn)程節(jié)點。由于eclipse平臺和google 平臺的開發(fā)模式非常相似,其技術(shù)優(yōu)勢是主要是開放和自由。并且java開發(fā)者能夠在

24、eclipse平臺下實現(xiàn)源代碼之間的共享,這有點像visual studio平臺和net beans平臺。eclipse為開發(fā)商提供了較為完整的開發(fā)工具,使開發(fā)者可以輕松地控制其開發(fā)的軟件技術(shù)。目前,eclipse在業(yè)界是一款非常受歡迎的開發(fā)工具,使用該集成開發(fā)環(huán)境的用戶也越來越多,其中最多的是從事java的開發(fā)人員。集成了多種開發(fā)工具也帶了一些負(fù)面因素,就是結(jié)構(gòu)較為復(fù)雜,尤其對初學(xué)者不利,理解起來比較困難。使用eclipse開發(fā)的插件較為繁多,eclipse的核心就是插件擴展機制,因此eclipse對于開發(fā)人員來講,就需要了解成千上萬種開發(fā)插件。 2.4 app inventor介紹2010

25、年7月,google推出了一款名為app inventor的android手機編程軟件,google app inventor用戶可以通過該編程軟件在android平臺下自行開發(fā)設(shè)計適合于手機用戶使用的應(yīng)用程序。因為此軟件已經(jīng)將所有的軟件源代碼全部編寫完畢,并且向所有用戶開放,開發(fā)者只需要根據(jù)應(yīng)用需求向其中添加服務(wù)選項即可。相對于eclipse而言,app inventor同樣需要運行java,安裝android sdk。由于app inventor是基于網(wǎng)頁的開發(fā)環(huán)境,因此開發(fā)環(huán)境比較容易建立。在運用app inventor在進(jìn)行應(yīng)用程序開發(fā)時,是以拖放代碼塊的形式進(jìn)行程序開發(fā)。這種新穎的開

26、發(fā)方式在當(dāng)時引起了全世界的開發(fā)人員的關(guān)注。同時,這款手機編程工具對開發(fā)者的起點要求很低,即使是非專業(yè)的開發(fā)人員,甚至不需要掌握任何編程知識,也可以通過該編程軟件開發(fā)屬于自己的應(yīng)用程序。但好景不長,2011年底google放棄了這一項目,并且google官方宣布不再維護(hù)這款軟件。使其本來就不完善源代碼得不到更新,這就給開發(fā)者在開發(fā)過程帶來了很大的局限性,用戶只能開發(fā)一些簡單的應(yīng)用。相信通過其源代碼的完善可以解決這一難題。3 android開發(fā)環(huán)境3.1安裝jdk進(jìn)入網(wǎng)址,選擇需要的java jdk版本點擊 download jdk 下載jdk,本設(shè)計使用的java 6。如圖3-1: 圖3-1 j

27、dk下載界面安裝java開發(fā)包jdk,如圖3-2:圖3-2 安裝jdk3.1.1設(shè)置環(huán)境變量我的電腦->屬性->高級->環(huán)境變量->系統(tǒng)變量->新建,如圖3-5: 圖 3-3環(huán)境變量窗口在上圖的窗口下設(shè)置java環(huán)境變量: 變量名:java_home 變量值:d:program filesjavajdk1.6.0_18 變量名:classpath 變量值:.;%java_home%lib;%java_home%libtools.jar 變量名:path 變量值:%java_home%bin;%java_home%jrebin3.1.2檢測java環(huán)境是否建立 開始

28、->運行->輸入“java-version”,如圖3-4: 圖3-4 檢測java環(huán)境3.2安裝并設(shè)置android sdk3.2.1安裝sdk解壓android-sdk_r15-windows開發(fā)包,選擇sdk manager.exe如圖3-5: 圖3-5 android sdk的安裝 在上述窗口下,選擇開發(fā)所需的安卓版本并安裝。本課題選擇的是android 2.1版本,還需要安裝了tool 和extras包。3.2.2設(shè)置avd manageavd的參數(shù)設(shè)置name:avd2.1target:android 2.1 api level 7sd card: 256 mibskin

29、:wvga800hardware:abstracted lcd density 240max vm application heap size 24如圖3-6: 圖3-6設(shè)置avd manage參數(shù)3.3安裝eclipse并配置android插件在找到下載鏈接,選擇開發(fā)需要的eclipse版本進(jìn)行下載。本課題選擇的是eclipse ide for java ee developers。如圖3-7: 圖3-7 eclipse下載界面打開eclipse,help->install new software 如圖3-8: 圖3-8安裝插件 點擊 add,顯示如圖3

30、-9:location: http:/dl- name: android (自定義) 圖3-9 自定義名稱點擊ok,顯示如圖3-10: 圖3-10選擇工具包 點擊 next按鈕 ,顯示如圖3-11: 圖3-11顯示開發(fā)工具點擊next按鈕,顯示如圖3-12: 圖3-12 添加組件點擊next,進(jìn)入安裝插件界面如圖3-13: 圖3-13 安裝插件界面安裝完成后,顯示如圖3-14: 圖3-14 安裝完成界面選擇菜單window->preferences如圖3-15: 圖3-15選擇android sdk解壓目錄 點擊菜單 window->android sdk and avd mana

31、ge如圖3-16: 圖3-16升級android sdk版本點擊update all按鈕如圖3-17: 圖3-17選擇安裝項目選擇sdk 2.1 和samples for api7,選擇accept,點擊install開始安裝如圖3-18: 圖3-18安裝api安裝完成界面如圖3-19: 圖3-19安裝完成創(chuàng)建avd如圖3-20: 圖3-20新建avdavd參數(shù)設(shè)置如圖3-21: 圖3-21 設(shè)置avd參數(shù)創(chuàng)建完成如圖3-22: 圖3-22創(chuàng)建成功3.4創(chuàng)建android的項目選擇菜單file->new->other 如圖3-23: 圖 3-23創(chuàng)建android工程項目選擇新建a

32、ndroid project項目,點擊next按鈕如圖3-24: 圖 3-24項目名稱編輯相關(guān)參數(shù)設(shè)置project name: hello worldpackage name: helloworld.test。activity name: hello worldapplication name: hello world在min sdk version里輸入整數(shù)點擊next后出現(xiàn)界面如圖3-25: 圖3-25生成代碼項目->run as -> run configuration如圖3-26: 圖3-26運行項目項目名稱->run as ->android applica

33、tion,啟動android模擬器界面如圖3-27: 圖 3-27 android模擬器啟動運行結(jié)果顯示如圖3-28: 圖3-28運行結(jié)果4程序設(shè)計4.1程序流程使用android 制作一個個人賬目管理軟件,介紹編寫該軟件的流程。本軟件的主要功能是可以存儲日常生活中的各類收入和支出明細(xì),并且可以隨時統(tǒng)計各類收支情況。月底對收支記錄并進(jìn)行統(tǒng)計,給出明細(xì)的賬目清單。 啟動 初始化數(shù)據(jù)庫數(shù)據(jù)獲取模塊 用戶界面 添加用戶信息 賬目信息sqlite數(shù)據(jù)庫獲取模塊圖4-1程序流程圖4.2設(shè)計用戶界面根據(jù)應(yīng)用需求,首先為應(yīng)用程序應(yīng)設(shè)計用戶界面,該界面主要是對用戶添加賬目信息進(jìn)行輸入并保存,包含了賬目類型、填

34、寫費用、選擇時間以及用戶對一些重要賬目的備注。如圖4-2: 圖4-2 用戶界面草圖4.3 開發(fā)過程4.3.1創(chuàng)建colabox項目程序的開發(fā)階段,首先建立android平臺賬目管理軟件的工程名為“colabox”,在程序模塊設(shè)計的基礎(chǔ)內(nèi)容上,建立colabox工程。工程源代碼的結(jié)構(gòu)如下圖所示:工程已經(jīng)建立并自動配置android運行環(huán)境。 圖4-3 工程源代碼文件為了確保該工程源代碼比較完整,colabox工程創(chuàng)建了多個類。用于定義數(shù)據(jù)庫、界面布局、編輯并保存數(shù)據(jù)、實現(xiàn)本地應(yīng)用操作等源代碼文件。 表1 工程文件表工程文件包 類 說明com.cola.uibilldbhelper.java定義數(shù)

35、據(jù)庫colabox.java程序入口,初始化界面frm-addbills.java添加賬目界面設(shè)置frm-editacctiem.java通過<item> 元素添加系統(tǒng)元素指定子菜單dialog-edit.java編輯對話框設(shè)置grib-bills.java生產(chǎn)grib文件localservice.java本地應(yīng)用4.3.2對數(shù)據(jù)庫的操作 android 不會自動提供任何數(shù)據(jù)庫,在使用sqlite時,首先創(chuàng)建數(shù)據(jù)庫,再使用表、索引和添加數(shù)據(jù)。在創(chuàng)建表和索引中。本設(shè)計是對數(shù)據(jù)庫通過mysqlitedemo程序進(jìn)行測試,在mysqlitedemo中需要定義組件,選擇數(shù)據(jù)類型并添加該數(shù)據(jù)

36、庫。 表2 數(shù)據(jù)庫表的結(jié)構(gòu)屬性數(shù)據(jù)類型說明-idinteger自定義組件peopleidinteger組件id號nameinteger姓名ageinteger年齡heightinteger身高在創(chuàng)建一個數(shù)據(jù)庫時,選擇創(chuàng)建sqliteopenhelper子類,其能夠根據(jù)應(yīng)用程序的需求提供創(chuàng)建和升級數(shù)據(jù)庫是的邏輯,用來管理數(shù)據(jù)庫的創(chuàng)建。導(dǎo)入android內(nèi)置數(shù)據(jù)庫sqlite輔助類sqliteopenhelper。關(guān)鍵代碼:import android.database.sqlite.sqliteopenhelper;/導(dǎo)入首先需要向上連接sqliteopenhelper構(gòu)造函數(shù),此函數(shù)

37、包括context、數(shù)據(jù)庫名稱以及自動添加整數(shù)。關(guān)鍵代碼:public class databasehelper extends sqliteopenhelper private static final int version = 1/構(gòu)造函數(shù)向上連接sqliteopenhelpesqlite能夠為組件創(chuàng)建索引,通過onceate()創(chuàng)建表以及添加sqlitedatebase對象,這個類是核心類,用于管理和操作sqlite數(shù)據(jù)庫。通過onupgrade()升級數(shù)據(jù)庫,sqlitedateabase調(diào)用execsql()創(chuàng)建表和索引。關(guān)鍵代碼:public void oncreate(sqli

38、tedatabase db) /添加sqlitedatebase對象db.execsql(db_create); /創(chuàng)建表和索引在dbadapter類中,擴展sqliteopenhelper類,覆蓋oncreate()和onupgrade()關(guān)鍵代碼:private sqlitedatabase db;private context xcontext;private dbopenhelper dbopenhelper;public dbadapter(context context)xcontext=context;由于execsql()不返回結(jié)果,通過sqlitedatabase對象上的in

39、sert()、update()、delete()方法可以處理插入、更新、刪除等操作,將sql語句分解為多個塊,再把塊作為參數(shù)使用,該方法使用cotentvalues對象。 關(guān)鍵代碼:public long insert(people people)/數(shù)據(jù)庫插入contentvalues newvaluse= new contentvalues();public long updateonedate(long id,people people)/數(shù)據(jù)庫更新contentvalues newvalues= new contentvalues();使用query()方法實現(xiàn)查詢,該方法使用selec

40、t語句片段生成查詢,內(nèi)容提供程序query()的實現(xiàn)創(chuàng)建sqlitequerybuillder,填入默認(rèn)值,構(gòu)建完整的查詢。關(guān)鍵代碼:public people queryonedata(long id)/數(shù)據(jù)庫查詢cursor result=db.query(db_table,newstringkey_id,key_name,key_age,key_height,null,null,null,null,null);return converttopeople(result);4.3.3設(shè)計數(shù)據(jù)庫在billdbhelper.java類中,定義數(shù)據(jù)庫主要代碼:public class billd

41、bhelper /定義數(shù)據(jù)庫 private static final string tag = "cola_billdbhelper" private static final string database_name = "cola.db" sqlitedatabase db; context context;對數(shù)據(jù)庫添加“個人”及“公司”表 db.execsql("insert into tusers values (null,'個人')");/插入表 db.execsql("insert into t

42、users values (null,'公司')");效果如圖4-4: 圖4-4 插入表的效果圖在“收入”表中添加“工資”和“其他”項,在“支出”表中添加“生活用品”、“水電煤氣費”、“汽油費”、和“其他”項。關(guān)鍵代碼: db.execsql("insert into acctitem values (1,null,'收入')");/插入表 db.execsql("insert into acctitem values (2,1,'工資')"); db.execsql("insert i

43、nto acctitem values (9998,1,'其他')"); db.execsql("insert into acctitem values (0,null,'支出')"); db.execsql("insert into acctitem values (3,0,'生活用品')"); db.execsql("insert into acctitem values (4,0,'水電煤氣費')"); db.execsql("insert in

44、to acctitem values (5,0,'汽油費')"); db.execsql("insert into acctitem values (9999,0,'其他')");效果如圖4-5: 圖4-5 在表添加菜單效果圖創(chuàng)建初始化界面,界面很簡單是由一張圖片和一個文本欄組成。關(guān)鍵代碼:public class colabox extends activity private handler mhandler = new handler();imageview imageview;textview textview;int al

45、pha = 255;int b = 0;初始化界面效果如圖4-6: 圖4-6 初始化界面效果圖如果是首次使用此軟件,需要初始化本程序的sqlite數(shù)據(jù)庫、建庫、建table、初始化賬目數(shù)據(jù)。public void firststart() try string col = "type", "name" ; cursor c =db.query("sqlite_master", col, "name='colaconfig'", null, null, null, null); int n=c.get

46、count();在程序初始化完成后,5秒之后初始化界面完成,然后自動切換到添加賬目界面,設(shè)定alpha值。代碼如下:public void updateapp() alpha -= 5;if (alpha <= 0) b = 2;intent in = new intent(this, com.cola.ui.frm_addbills.class);startactivity(in);this.finish();添加賬目界面效果如圖4-7: 圖4-7 添加賬目界面效果圖4.3.4添加賬目界面的布局及設(shè)置定義時間變量edittext edittext_acctitem,edittextde

47、sc,fee;textview mdate;textview mtime;static final int rg_request = 0;private int myear; private int mmonth; private int mday; private int mhour;private int mminute;從系統(tǒng)中獲得當(dāng)前時間:mdate = (textview) findviewbyid(r.id.vdate);mtime = (textview) findviewbyid(r.id.vtime);定義時間按鍵button btndate,btntime;button b

48、tncancel,btnsave;設(shè)置時間setdatetime(); billdb = new billdbhelper(this); s1=(spinner) findviewbyid(r.id.spinner01); string from= new string"caption"效果如圖4-8: 圖4-8 設(shè)置時間界面效果圖在系統(tǒng)<meun>元素下創(chuàng)建文本信息:“賬目明細(xì)”、“退出”及“關(guān)于軟件”,并在賬目明細(xì)下添加“賬目統(tǒng)計”和“賬目報表”。public boolean oncreateoptionsmenu(menu menu) super.oncr

49、eateoptionsmenu(menu);menu.add(0, 1, 0, "賬目明細(xì)").seticon(r.drawable.editbills);menu.add(0, 2, 0, "賬目統(tǒng)計").seticon(r.drawable.editbills2);menu.add(0, 3, 0, "賬目報表").seticon(r.drawable.billsum1);menu.add(0, 4, 0, "退 出").seticon(r.drawable.quit);menu.add(0, 5, 0, &q

50、uot;關(guān)于軟件");效果如圖4-9: 圖4-9 在系統(tǒng)meun元素下添加菜單效果圖給系統(tǒng)按鍵定義操作public boolean onoptionsitemselected(menuitem item) /log.v("colabox", "getmenuitemid=" + item.getitemid();switch (item.getitemid() 例如設(shè)置標(biāo)題“關(guān)于軟件”在此標(biāo)題下設(shè)置信息“2012畢業(yè)設(shè)計,電子082班:李江”。 new alertdialog.builder(this) .settitle("關(guān)于軟件

51、") .setmessage("2012畢業(yè)設(shè)計,電子082班:李江設(shè)計") .show();return true;效果如圖4-10: 圖4-10 顯示軟件信息效果圖退出軟件public void quitapp() new alertdialog.builder(frm_addbills.this).settitle("提示").setmessage("確定退出?").seticon(r.drawable.quit).setpositivebutton("確定",new dialoginterface.onclicklistener() public void onclick(dialoginterface dialog, int whichbutto

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論