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