李德華+司瀟灑
摘要:該文采用Android作為開發(fā)平臺(tái),通過(guò)對(duì)JDK、ADT-Bundle環(huán)境的搭建設(shè)計(jì)了一款簡(jiǎn)單實(shí)用的家庭財(cái)務(wù)管理軟件,用戶可隨時(shí)隨地記錄、查詢自己的財(cái)務(wù)信息。該文首先簡(jiǎn)要介紹了開發(fā)技術(shù),隨后對(duì)系統(tǒng)進(jìn)行了總體設(shè)計(jì),并對(duì)該軟件進(jìn)行了部分功能測(cè)試,測(cè)試結(jié)果表明該軟件基本上可以滿足用戶的需求。
關(guān)鍵詞:Android ;財(cái)務(wù)管理;ADT-Bundle
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)28-0090-03
1 概述
隨著我國(guó)信息化時(shí)代的高速發(fā)展和人們生活節(jié)奏的加快,效率和便捷越來(lái)越被人們所重視,傳統(tǒng)的依靠手工建立臺(tái)賬的財(cái)務(wù)管理方式,既不利于存檔,又不利于瀏覽查詢,這種財(cái)務(wù)管理方式逐漸被社會(huì)所淘汰;計(jì)算機(jī)桌面軟件雖然可以實(shí)現(xiàn)高效記賬,但是卻難以做到隨時(shí)隨地記賬和查詢?yōu)g覽?;贏ndroid平臺(tái)的手機(jī)家庭財(cái)務(wù)管理軟件克服了人工建立臺(tái)帳效率低和計(jì)算機(jī)不能移動(dòng)記賬的弊端,可以實(shí)現(xiàn)實(shí)時(shí)記賬和查詢,Android平臺(tái)的家庭財(cái)務(wù)管理軟件無(wú)疑具有重要的實(shí)用意義。
2 開發(fā)技術(shù)
2.1開發(fā)環(huán)境
Android是一種以 Linux 為基礎(chǔ)的開放源碼操作系統(tǒng),主要用于移動(dòng)設(shè)備。Android主要優(yōu)勢(shì)在于手機(jī)系統(tǒng)的開放性和服務(wù)免費(fèi)。Android程序的主流開發(fā)平臺(tái)為Eclipse,所用的程序設(shè)計(jì)語(yǔ)言為Java。ADT-Bundle是安卓程序設(shè)計(jì)的集成式開發(fā)平臺(tái),里面包含了Eclipse,Android SDK并且已集成了插件,它解決了大部分新手通過(guò)Eclipse來(lái)配置Android開發(fā)環(huán)境的復(fù)雜問題。因此只需要通過(guò)安裝JDK、ADT-Bundle,并對(duì)其環(huán)境進(jìn)行配置,就可以快速搭建開發(fā)環(huán)境。
2.2 Android Activity應(yīng)用組件
Android中,Activity用于表現(xiàn)功能,是Android應(yīng)用程序的基本功能單元,所有程序的流程都運(yùn)行在Activity之中,在Android的程序當(dāng)中,Activity一般代表手機(jī)屏幕的一屏。開發(fā)人員可以通過(guò)setContentView(View)接口把UI放到Activity創(chuàng)建的窗口上,不同的Activity實(shí)例可運(yùn)行在相同或不同的進(jìn)程中,Android中通過(guò)Intent對(duì)象傳遞Activity消息,一個(gè)Intent對(duì)象不僅包含有這個(gè)消息的目的地,還可以包含消息的內(nèi)容,開發(fā)人員通過(guò)startActivity(new Intent(當(dāng)前Activity.this, 下一Activity.class)將一個(gè)Activity傳遞到下一個(gè)Activity。
2.3 SQlite數(shù)據(jù)庫(kù)
SQLite是輕量級(jí)的、嵌入式的、關(guān)系型數(shù)據(jù)庫(kù),它支持SQL語(yǔ)言,現(xiàn)在的主流移動(dòng)設(shè)備像Android、iPhone等都使用SQLite作為復(fù)雜數(shù)據(jù)的存儲(chǔ)引擎。對(duì)于Android平臺(tái)來(lái)說(shuō),系統(tǒng)內(nèi)置了豐富的API來(lái)供開發(fā)人員操作SQLite,我們可以輕松地完成對(duì)數(shù)據(jù)的存取。SQLite可移植性好,SQLite嵌入到使用它的應(yīng)用程序中,它們共用相同的進(jìn)程空間,而不是單獨(dú)的一個(gè)進(jìn)程。在Android中當(dāng)需要操作SQLite數(shù)據(jù)庫(kù)的時(shí)候只需要得到一個(gè)SQLiteOpenHelper對(duì)象即可。
2.4 MVC開發(fā)框架
在Android項(xiàng)目中,業(yè)務(wù)邏輯,數(shù)據(jù)處理等擔(dān)任了Model(模型)角色,XML界面顯示等擔(dān)任了View(視圖)角色,Activity擔(dān)任了Contronller(控制器)角色。contronller(控制器)是一個(gè)中間橋梁的作用,通過(guò)接口通信來(lái)協(xié)同 View(視圖)和Model(模型)工作,起到了兩者之間的通信作用。軟件采用MVC設(shè)計(jì)模式,可以便于后期程序的擴(kuò)展性和維護(hù)性,當(dāng)需要改變UI顯示的時(shí)候,無(wú)需修改Contronller(控制器)Activity的代碼和Model(模型)模型中的業(yè)務(wù)邏輯代碼,很好地將業(yè)務(wù)邏輯和界面顯示分離。
3 系統(tǒng)設(shè)計(jì)
3.1 功能介紹
1)收支管理:該軟件可以方便使用者對(duì)實(shí)時(shí)的收入和支出進(jìn)行及時(shí)記錄。記錄的內(nèi)容包括金額、類別、賬戶、消費(fèi)所屬的商戶、日期、描述等。
2)預(yù)算設(shè)置:合理的預(yù)算是家庭財(cái)務(wù)管理的關(guān)鍵因素之一,使用者可以根據(jù)月初預(yù)算設(shè)置自己在生活每個(gè)消費(fèi)類型例如:行車、衣物服飾、學(xué)習(xí)進(jìn)修、醫(yī)療、人情往來(lái)等的預(yù)算。系統(tǒng)會(huì)自動(dòng)計(jì)算出所有分類預(yù)算的總和,用戶將月工資與月預(yù)算進(jìn)行對(duì)比,可以合理地對(duì)預(yù)算進(jìn)行調(diào)整,使得預(yù)算在一個(gè)合理的位置。
3)流水清單:用戶可以按照天、周、月進(jìn)行查看當(dāng)前日期的收入和支出,用戶能夠一目了然查看當(dāng)前日期的賬目。
經(jīng)過(guò)對(duì)系統(tǒng)功能分析之后,現(xiàn)在對(duì)軟件進(jìn)行詳細(xì)的功能模塊劃分和設(shè)計(jì)。根據(jù)個(gè)人資金的日常管理需求,安卓家庭財(cái)務(wù)管理軟件主要設(shè)計(jì)了首頁(yè)、收支記錄、預(yù)算管理、瀏覽查看功能等模塊,總體功能模塊結(jié)構(gòu)如下圖所示:
3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)師軟件整體設(shè)計(jì)的根基,一個(gè)完整的數(shù)據(jù)庫(kù)設(shè)計(jì)包含概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)。數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)對(duì)數(shù)據(jù)種類、數(shù)量、類型、數(shù)據(jù)流動(dòng)等進(jìn)行規(guī)劃設(shè)計(jì),形成數(shù)據(jù)庫(kù)系統(tǒng)的整體數(shù)據(jù)架構(gòu),家庭財(cái)務(wù)管理軟件采用輕量級(jí)SQLite數(shù)據(jù)庫(kù),SQLite 是Android系統(tǒng)集成的一個(gè)ACID關(guān)系數(shù)據(jù)庫(kù),SQLite是一款精簡(jiǎn)的SQL工具,占用的系統(tǒng)資源較小,對(duì)SQL的支持全面。Android提供android.database和android.database.sqlite這兩個(gè)包用于對(duì)數(shù)據(jù)庫(kù)的支持。根據(jù)該軟件的需求,設(shè)計(jì)8種不同的數(shù)據(jù)表,包括消費(fèi)表,收入表,賬戶表,轉(zhuǎn)賬表,商戶表,收入類型表,消費(fèi)類型表,預(yù)算表。下面主要給出消費(fèi)表的結(jié)構(gòu):
3.3 收支管理功能設(shè)計(jì)
收支管理主要功能是實(shí)現(xiàn)收入和支出財(cái)產(chǎn)的記錄,具體包括收支金額、收支類別、賬戶類別、日期、描述等的設(shè)定,收支這些屬性設(shè)置了下拉列表框,這樣可以方便用戶進(jìn)行輸入。例如,將類別屬性下拉列表的內(nèi)容設(shè)置為:醫(yī)療、娛樂、行車、人情、居家、衣飾、通訊等。下拉列表的設(shè)計(jì)大大節(jié)省了用戶的輸入量,另外程序采用集成 Layout XML布局檔來(lái)控制視圖,Android將UI從Java代碼中分離出來(lái),放入Layout XML檔中控制,java代碼負(fù)責(zé)邏輯模型設(shè)計(jì),而這種設(shè)計(jì)體現(xiàn)了MVC原則。圖2是XML Layout設(shè)計(jì)界面。
1)本文對(duì)UI采用XML布局設(shè)計(jì),下面給出賬戶的界面XML,見圖3。
//設(shè)置賬戶布局框架的長(zhǎng)寬
android:layout_height="wrap_content"> //設(shè)置賬戶下拉列表 //設(shè)置下拉標(biāo)題為vlues string對(duì)應(yīng)的值 android:prompt="@string/xialabiaoti" //設(shè)置賬戶下拉列表觸動(dòng)后的樣式 style="@style/touchstyle" //設(shè)置提示信息的顏色為白色 android:textColorHint="@color/white"/> //設(shè)置文本為賬戶,顏色為白色 android:textColor="@color/white" /> //設(shè)置下拉列表圖示
2)對(duì)按鈕實(shí)現(xiàn)的點(diǎn)擊綁定操作采用Java事件監(jiān)視器實(shí)現(xiàn),現(xiàn)給輸入金額按鈕點(diǎn)擊事件的代碼。
public void onClick( ) {
//由shouzhiActivity界面跳轉(zhuǎn)到keypad數(shù)字鍵盤界面
Intent i=new Intent(shouzhiActivity.this,KeyPad.class);
// 輸入支出金額
i.putExtra("value", value);
//返回到shouzhiActivity界面
startActivityForResult(i, 0);}
3.4 其他功能模塊
其他功能模塊包括首頁(yè)、收入管理和預(yù)算設(shè)計(jì)、查看功能等模塊。其中歡迎頁(yè)實(shí)現(xiàn)桌面圖示 歡迎頁(yè)等功能。收入管理設(shè)計(jì)同支出設(shè)計(jì)方法一樣,預(yù)算設(shè)計(jì)功能模塊包括為每個(gè)月的開銷制定先期分類預(yù)算。查看功能模塊只要實(shí)現(xiàn)用戶可以按日、周、月查看當(dāng)天收入或支出情況,并可查看每個(gè)月的預(yù)算情況,當(dāng)月支出超過(guò)預(yù)算的時(shí)候,預(yù)算戶自動(dòng)降低,用戶可直觀的知道本月還剩下多少預(yù)算。圖4為安裝在模擬器中的桌面圖示,圖3為歡迎頁(yè)的界面,圖5為預(yù)算的界面。
4 結(jié)束語(yǔ)
本文通過(guò)ADT-Bundle集成開發(fā)工具、Android MVC開發(fā)模式,簡(jiǎn)要的設(shè)計(jì)了一款家庭財(cái)務(wù)管理軟件。軟件的數(shù)據(jù)庫(kù)采用SQlite進(jìn)行設(shè)計(jì),SQlite可以實(shí)現(xiàn)數(shù)據(jù)永久保存,安全性較高,用XML進(jìn)行視圖UI設(shè)計(jì),XML可以實(shí)現(xiàn)所見即所得,便于開發(fā)者修改UI,用Java代碼實(shí)現(xiàn)邏輯控制。軟件實(shí)現(xiàn)了收支的添加,月預(yù)算的設(shè)置,賬目的查看主要功能,用戶容易操作。將來(lái)需要繼續(xù)完善該軟件的功能,下一步會(huì)增加賬目信息導(dǎo)出功能,網(wǎng)絡(luò)轉(zhuǎn)賬功能,鏈接手機(jī)支付寶微信等支付軟件。
參考文獻(xiàn):
[1] Bruce Eckel.JAVA 編程思想[M].4版:北京:機(jī)械工業(yè)出版社,2007.
[2] 周洪斌,蘇凱英,溫一軍.基于Android的個(gè)人記賬程序的設(shè)計(jì)和開發(fā)[J].沙洲職業(yè)工學(xué)院學(xué)報(bào),2015(2).
[3] 王中華,強(qiáng)玨嫻.Android 手機(jī)理財(cái)軟件的設(shè)計(jì)和實(shí)現(xiàn)[J].宜春學(xué)院學(xué)報(bào),2012(12).
[4] 尤新華.基于安卓系統(tǒng)理財(cái)軟件的設(shè)計(jì)和應(yīng)用[J].福建計(jì)算機(jī),2013(11).
[5] 鄒燕飛,胡澤江.基于 Android平臺(tái)的個(gè)人理財(cái)軟件開發(fā)[J].西安文理學(xué)院學(xué)報(bào):自然科學(xué)版,2013(2).
[6] 徐春成.基于安卓平臺(tái)的理財(cái)軟件研究[J].計(jì)算機(jī)編程技巧與維護(hù),2016(12).