基于Android的約伴-出行系統(tǒng)設(shè)計
引 言
如今,人們的生活水平得到了大幅度提升,利用閑暇時間出去游玩、旅行的愿望和需求變得更加強(qiáng)烈[1],但有時卻難以找到志同道合的旅伴。約伴 - 出行系統(tǒng)正是一款基于Android 操作系統(tǒng)為人們提供線上進(jìn)行交互、線下組織活動的 APP。用戶可以通過線上發(fā)布出行旅伴需求或根據(jù)他人發(fā)布的信息進(jìn)行交流,找到合適的出行伴侶,同時系統(tǒng)也會根據(jù)用戶需求自動推薦相關(guān)出行方案。
約伴 - 出行系統(tǒng)基于移動客戶端的 C/S 架構(gòu), 適配Android 2.3 以上的系統(tǒng),能服務(wù)于更廣大的用戶。
1 系統(tǒng)整體功能設(shè)計
約伴 - 出行系統(tǒng)功能模塊如圖 1 所示。
1.1 個人信息管理
該模塊主要負(fù)責(zé)進(jìn)行用戶個人相關(guān)信息設(shè)置,通信錄好友管理。
1.1.1 用戶注冊
在用戶首次使用此 APP 時須注冊賬戶并設(shè)置登錄密碼, 點擊 注冊 按鈕,跳轉(zhuǎn)到注冊界面。用戶設(shè)置其賬號和密碼, 即可完成注冊。此 APP 賬號采用手機(jī)號形式,利用正則表達(dá)式判斷用戶輸入的賬號是否合法。判斷輸入內(nèi)容的合法性之后,就可以調(diào)用網(wǎng)絡(luò)請求把賬號和密碼傳給服務(wù)器,同時服務(wù)器獲取到用戶的相關(guān)信息。
1.1.2 用戶登錄
賬戶注冊成功后,用戶就可以在登錄界面輸入賬號和密碼,登錄此 APP。當(dāng)用戶點擊 登錄 按鈕時,系統(tǒng)會預(yù)先判斷賬號和密碼是否合法,若不合法,系統(tǒng)會在屏幕下方顯示登錄信息有誤。提示語采用的是Android 原生的控件Toast 彈窗提示,時間為1 s。
1.1.3 用戶信息設(shè)置
在該模塊,用戶可以根據(jù)自身情況設(shè)置個人相關(guān)信息。若用戶上傳個人頭像,選頭像時進(jìn)入本地圖庫篩選后上傳或者拍照上傳,采用 Base64 方式上傳至服務(wù)器。此外,用戶還可以設(shè)置昵稱、聯(lián)系方式、個人情況簡介,管理通信錄等。
1.2 出行管理
1.2.1 出行需求發(fā)布
此模塊是用戶發(fā)布出行消息并與其他用戶交互的主要途徑。用戶能夠在此模塊上發(fā)布自己的出行消息,如目的地、出行方式以及約伴要求等。同時系統(tǒng)會將用戶所發(fā)布的消息存入數(shù)據(jù)庫,以備其他模塊調(diào)用。
1.2.2 信息瀏覽
用戶登錄出行- 約伴系統(tǒng)成功后,與用戶進(jìn)行交互的第一個界面如圖 2 所示。在此界面上,用戶可以瀏覽其他用戶所發(fā)布的出行信息,同時系統(tǒng)會根據(jù)用戶所設(shè)置的個人相關(guān)信息、發(fā)布的出行需求信息以及用戶最近瀏覽關(guān)注的信息自動置頂推薦相關(guān)的出行信息。本模塊不涉及用戶隱私,僅顯示其發(fā)布的需求內(nèi)容。列表的數(shù)據(jù)均通過請求后臺接口獲得,獲得數(shù)據(jù)后, 將其放入ArrayList 中并傳入RecyclerView 設(shè)置的適配器后刷新列表,當(dāng)用戶點擊列表中的某一項時,把對應(yīng)集合中相應(yīng)位置的數(shù)據(jù)取出來,主要取其文章的ID,跳轉(zhuǎn)并傳值到詳情頁,使用intent.putExtra(key,value)形式傳值。用戶可以根據(jù)自身需求決定是否接受約伴邀請或者用戶主動對他人發(fā)出要約請求。
1.2.3 出行路徑規(guī)劃
該模塊集成了百度地圖 SDK[2], 提供基本地圖、位置搜索、路徑規(guī)劃等數(shù)據(jù)服務(wù), 如圖 3所示。在此程序中,XML中 使 用 百 度 地 圖 控 件 <com.baidu.mapapi.map. MapView>,activity的 onCreat中初始化 sdkSDKInitializer. initialize(getAPPlicationContext()),以及獲取地圖控件引用 mMapView =(MapView)findViewById(R.id.id_bmapView)。用戶在路徑規(guī)劃界面輸入起點以及終點即可進(jìn)行路徑搜索, 同時系統(tǒng)還提供了駕車、公交、步行、騎行等出行方式,系統(tǒng)根據(jù)用戶所選擇的出行方式自動提供最快捷的路徑規(guī)劃。
圖2出行信息圖3 路徑規(guī)劃示意圖
1.3 消息管理
1.3.1 交流互動
系統(tǒng)中,用戶互動交流模塊是集成環(huán)信 SDK。用戶使用此功能時需要使用賬號在環(huán)信上完成注冊。用戶注冊完成后, 將發(fā)布者的ID 傳入環(huán)信 SDK 提供的聊天頁面即可進(jìn)行交流互動,不過這屬于陌生人交流。點擊 關(guān)注 ,申請加其為好友, 當(dāng)對方同意后,用戶雙方即成為好友,在用戶通信錄里可以查看好友信息。
1.3.2 查看留言
用戶在瀏覽其他用戶發(fā)布的消息后,可以在下方留言,詢問相關(guān)內(nèi)容等。同時用戶也可以查看其他用戶給自己的留言信息,并決定是否回復(fù)等。
1.4 管理員管理
管理員模塊分為用戶賬號管理和用戶發(fā)布信息管理兩部分。
1.4.1 用戶賬號管理
管理員一旦發(fā)現(xiàn)用戶發(fā)布涉嫌違反法律法規(guī)、用戶使用條款協(xié)議以及基本道德規(guī)范的內(nèi)容,有權(quán)刪除該用戶賬號以及其發(fā)布的一切信息。這一功能保證了約伴 - 出行APP 線上互動的和諧與穩(wěn)定,也保證了用戶在使用本系統(tǒng)時能有舒適、愉快的心情。
1.4.2 用戶信息發(fā)布管理
此模塊旨在刪除用戶發(fā)布的不符合規(guī)定的信息,如虛假信息、垃圾信息等。管理員有權(quán)根據(jù)情節(jié)嚴(yán)重程度決定刪除單條信息或者該用戶發(fā)布的所有信息。該功能有效保證了用戶盡可能地獲取系統(tǒng)干凈、有效的信息。
2 數(shù)據(jù)庫設(shè)計
良好的數(shù)據(jù)庫設(shè)計能夠使系統(tǒng)無論在效率還是安全性上都得到較大提高[3]。本系統(tǒng)將數(shù)據(jù)庫規(guī)范模式應(yīng)用到了系統(tǒng)數(shù)據(jù)設(shè)計中。約伴 - 出行系統(tǒng)中的數(shù)據(jù)庫表按照 3NF 范式建立,一個數(shù)據(jù)庫表中不包含已在其他表中已包含的非主關(guān)鍵字信息,以減少數(shù)據(jù)冗余,保證數(shù)據(jù)庫安全平穩(wěn)運(yùn)行。
由于系統(tǒng)直接連接遠(yuǎn)程數(shù)據(jù)庫,在安全性等方面的性能非常差, 因此, 本系統(tǒng)數(shù)據(jù)庫訪問采用目前較為流行的Android+PHP+MySQL 形式,即訪問遠(yuǎn)程服務(wù)器前端的PHP, PHP 函數(shù)完成數(shù)據(jù)庫操作,把結(jié)果經(jīng)過JSON 編碼后傳回, Android 端再 parse 出結(jié)果,這種方式既簡單又高效。
3 結(jié) 語
約伴 - 出行系統(tǒng)是一款基于Android 操作平臺,旨在為用戶提供線上互動、線下結(jié)伴出行服務(wù),使用戶能夠更加方便、舒適出游的應(yīng)用APP。系統(tǒng)整體具有較高的實用性,但還有許多需要進(jìn)一步完善的地方,有待進(jìn)一步研究探索,以實現(xiàn)更為實用、方便的功能。