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