基于Android平臺的校園信息查詢軟件
摘 要:
摘 要:隨著移動互聯(lián)網(wǎng)的發(fā)展,各學(xué)校都開始將校園信息進行移動平臺傳播,本文對如何在現(xiàn)有信息平臺的基礎(chǔ)上進行Android平臺軟件的開發(fā),既不影響現(xiàn)有信息平臺的使用,又能快捷和方便的實現(xiàn)提出了一種方案。
關(guān)鍵詞:
關(guān)鍵詞:Android 校園信息查詢 JSON
隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,,尤其是目前4G技術(shù)的推行,以及平板電腦、智能手機等移動設(shè)備在學(xué)生中廣泛流行,建立移動的校園網(wǎng)系統(tǒng)已經(jīng)是各個高校都在積極運作的工作,而除了移動網(wǎng)絡(luò)的硬件建設(shè),各類校園網(wǎng)應(yīng)用APP也相應(yīng)產(chǎn)生。在過去幾年的高校信息化建設(shè)過程中,各個院校都已經(jīng)建立了大量的網(wǎng)絡(luò)信息平臺,比如校園網(wǎng)站、教務(wù)系統(tǒng)、學(xué)生管理、服務(wù)信息查詢系統(tǒng)等等。如何能對現(xiàn)有的系統(tǒng)進行移動客戶端的開發(fā),能在移動客戶端上使用原有系統(tǒng)的部分功能,并將校園中多個分散的信息系統(tǒng)集中在一個移動客戶端上完成應(yīng)用,本文對此進行了一些研究和探索。
1 校園信息查詢系統(tǒng)的結(jié)構(gòu)設(shè)計
本系統(tǒng)主要針對的用戶是學(xué)校老師和職工,故此在系統(tǒng)內(nèi)容設(shè)計上主要采用了校內(nèi)主要的幾個教職工信息查詢平臺,比如工作查詢、水電費查詢等。系統(tǒng)的設(shè)計主要包括兩個部分,服務(wù)器端和移動客戶端,服務(wù)器端采用ASP.net技術(shù)建立網(wǎng)站,使用ADO.net鏈接每個系統(tǒng)的數(shù)據(jù)庫,并建立查詢操作等web頁面。移動客戶端負責(zé)完成鏈接無線網(wǎng)絡(luò),并根據(jù)查詢條件,將訪問的頁面數(shù)據(jù)綁定到控件上,完成移動客戶端的查詢、輸入等操作。系統(tǒng)的功能模塊將學(xué)校現(xiàn)有的部分信息系統(tǒng)進行了整合,包含有以下幾個模塊。
2 Android客戶端的系統(tǒng)實現(xiàn)
Android客戶端使用eclipse+Android SDK開發(fā)平臺,Java開發(fā)語言。用戶使用本機號碼和工資查詢密碼進行登錄。登陸后將用戶姓名和ID存入SharedPreferences類中,在今后的模塊中使用。
2.1 用戶使用數(shù)據(jù)流量模式訪問局域網(wǎng)內(nèi)數(shù)據(jù)庫
很多信息查詢平臺,比如工資查詢等僅供局域網(wǎng)用戶使用,Android客戶端只能在局域網(wǎng)環(huán)境下使用wifi連接,查詢所需信息。為了讓用戶在數(shù)據(jù)流量狀態(tài)下實現(xiàn)訪問網(wǎng)數(shù)據(jù),在設(shè)計時將服務(wù)器端程序放到了一臺在局域網(wǎng)環(huán)境中對外發(fā)布的web服務(wù)器上,通過服務(wù)器端ADO.net鏈接各個平臺的數(shù)據(jù)庫,并將數(shù)據(jù)處理結(jié)果以頁面的方式在互聯(lián)網(wǎng)上發(fā)布。移動客戶端通過讀取網(wǎng)頁頁面內(nèi)容來獲取數(shù)據(jù)。同時,移動客戶端通過訪問web服務(wù)器內(nèi)的頁面地址來提交數(shù)據(jù)處理請求,如圖所示。
2.2 用JSON字符串進行數(shù)據(jù)傳遞
在使用Android平臺上的UI控件進行數(shù)據(jù)綁定時,本系統(tǒng)采用JSON字符串來進行數(shù)據(jù)的傳遞。JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。JSON 可以將 JavaScript 對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個字符串。
在具體實現(xiàn)中,由ASP.net通過訪問數(shù)據(jù)庫輸出到頁面,并將查詢數(shù)據(jù)封裝成JSON字符串格式輸出,讓網(wǎng)頁內(nèi)容以JSON字符串的形式顯示出來。比如查詢月工資頁面輸出一至三月份的工資總額字符串如下:
{“month”:1,“sum”:5000},{“month”:2,“sum”:4000},{“month”:3,“sum”:6000}
在Android端,將頁面以文本的方式讀入JSON字符串,返回一個字符串。
StringBuffersb=new StringBuffer();
String line=null;
BufferedReader buffer=null;
URL url=new URL(path);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
InputStreaminstr=conn.getInputStream();
buffer =new BufferedReader(new InputStreamReader(instr,"gb2312"));
while((line=buffer.readLine())!=null)
{
sb.append(line);
}
建立一個JSONArray對象,通過getJSONObject方法將字符串中每個數(shù)據(jù)值對取出,并實例化單個對象,將值對賦值將此頁面上的內(nèi)容讀入到每個記錄的不同屬性上,將整個記錄集返回一個List對象。
List<month> persons = new ArrayList<month>();
JSONArray array = new JSONArray(str);
int length = array.length();
for(int i=0;i<length;i++){< p="">
JSONObject object = array.getJSONObject(i);
Month p=new Month();
p.setMonth(object.getString("month"));
p.setSum(object.getString("sum"));
persons.add(p);
}
return persons;
將List對象映射到HashMap,并將HashMap綁定到UI控件
persons = parseJSON(webstr);
System.out.println(persons);
for (Month person : persons) {
HashMap map1 = new HashMap();
map1.put("month", person.getMonth());
map1.put("sum", "實發(fā)合計:"+person.getSum());
maps.add(map1);
SimpleAdapter adapter = new SimpleAdapter(this,maps,R.layout.monthlistitem,
new String[]{"month","sum"},
newint[]{R.id.monthitem,R.id.monthsum});
list.setAdapter(adapter);
相對于使用XML作為數(shù)據(jù),JSON字符串更容易閱讀,格式更容易控制。在進行Android客戶端與web頁面間傳遞數(shù)據(jù)時是一種非常優(yōu)秀的數(shù)據(jù)格式。同時因為它是一個純文本的字符串格式,可以通過各種網(wǎng)頁程序來實現(xiàn),為系統(tǒng)的擴充提供了非常好的基礎(chǔ)。為系統(tǒng)的模塊化建立提供條件。
3 結(jié)語
本文介紹了校園內(nèi)已有的信息系統(tǒng)的Android客戶端實現(xiàn),為實現(xiàn)這種平臺提供一種快捷的解決方案,采用局域網(wǎng)內(nèi)web服務(wù)器對外發(fā)布信息查詢網(wǎng)站,而后用JSON數(shù)據(jù)封裝格式讀取數(shù)據(jù)并綁定到UI界面控件上。只要能將現(xiàn)有信息系統(tǒng),無論以何種語言,發(fā)布在web服務(wù)器中,就可以實現(xiàn)在移動客戶端進行功能實現(xiàn)。
參考文獻:
[1]王曉禹,石麗.基于 JSON 實現(xiàn) Android 智能終端與 Web 服務(wù)器“面向?qū)ο?rdquo;的信息交換[J].數(shù)字技術(shù)與應(yīng)用,2012(4):224-225.
[2]權(quán)重民,彭昕昀.利用 JSON 實現(xiàn) Android 高效、安全訪 問遠程數(shù)據(jù)庫的一種方式[J].韶關(guān)學(xué)院學(xué)報,2011(12):16-20.
[3]謝文燾,董黎剛.基于 Android 的校園網(wǎng)移動客戶端設(shè)計與實現(xiàn)[J].杭州電子科技大學(xué)學(xué)報,2012(5).
[4]初雅莉,陳昌穩(wěn),崔召金,等.基于 Android 的智慧校園手機系統(tǒng)[J].微型機與應(yīng)用,2013,32(15).
[5]Android 市場份額首次超過 80%.[OL].
(收稿日期:2014-11-15)
本文編號:14776
本文鏈接:http://sikaile.net/jiaoyulunwen/wangluojiaoyulunwen/14776.html