版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、. . . . 基于Android平臺(tái)拼車App設(shè)計(jì)學(xué)位申請(qǐng)人:XXX學(xué)科專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師:XXX答辯日期:2015.3.21Based on the Android platform carpooling App designCandidate: XXXXMajor: Computer science and technologySupervisor: XXXX摘要隨著國(guó)民經(jīng)濟(jì)的飛速發(fā)展,人民收入水平的不斷提高,城市中乘坐出租車的人越來(lái)越多,尤其在上下班高峰期出租車出現(xiàn)供不應(yīng)求的情況。但是,在非高峰時(shí)段,出租車的空載現(xiàn)象比較嚴(yán)重。特別是下雨或要下雨時(shí),路上總是會(huì)同時(shí)到達(dá)許多輛出
2、租車,每輛車上通常都只有一兩個(gè)乘客。這都極浪費(fèi)了出租車的運(yùn)輸效能,一定程度上造成汽車廢氣排放量增加、交通堵塞等一系列的問(wèn)題,困擾著城市交通與出租車行業(yè)的健康發(fā)展,因此提高出租車的運(yùn)營(yíng)效率成為緩解交通壓力的有效途徑。另一方面,隨著移動(dòng)技術(shù)的發(fā)展,移動(dòng)智能終端在人們的日常生活扮演越來(lái)越重要角色。為了提高人們的生活品質(zhì),越來(lái)越多的手機(jī)應(yīng)用應(yīng)運(yùn)而生。人們的個(gè)人手機(jī)已經(jīng)漸漸變成了一臺(tái)迷你電腦,無(wú)論何時(shí)何地,只要有手機(jī)和通訊網(wǎng)絡(luò),就可以解決很多問(wèn)題。如何在移動(dòng)智能終端上構(gòu)建出租車拼車系統(tǒng),確實(shí)地方便用戶實(shí)現(xiàn)拼車業(yè)務(wù),是一項(xiàng)有實(shí)際應(yīng)用價(jià)值的課題。本文以移動(dòng)平臺(tái)出租車拼車系統(tǒng)的Android客戶端為詳述對(duì)象,
3、主要任務(wù)是通過(guò)介紹整個(gè)客戶端的需求分析、設(shè)計(jì)、實(shí)現(xiàn)的過(guò)程來(lái)深入闡述對(duì)于出租車資源浪費(fèi)這一問(wèn)題的解決思路。論文的核心工作包括三個(gè)方面,第一,設(shè)計(jì)實(shí)現(xiàn)了Android手機(jī)用戶的自身定位,與乘坐出租車目的地的目標(biāo)定位。第二,實(shí)現(xiàn)了客戶端用戶之間的距離匹配,以與目的地距離匹配。第三,實(shí)現(xiàn)了客戶端用戶之間的通訊聊天功能。論文從項(xiàng)目背景出發(fā),介紹了系統(tǒng)開(kāi)發(fā)的背景和運(yùn)營(yíng)價(jià)值。然后,詳細(xì)介紹了移動(dòng)平臺(tái)出租車拼車這一項(xiàng)目的可行性和匹配算法的設(shè)計(jì),以與整個(gè)客戶端的設(shè)計(jì)與實(shí)現(xiàn)。再次,論文詳細(xì)闡述了系統(tǒng)的需求,具體介紹了移動(dòng)平臺(tái)出租車拼車系統(tǒng)的詳細(xì)設(shè)計(jì)。最后論文針對(duì)當(dāng)前完成移動(dòng)平臺(tái)出租車拼車系統(tǒng)進(jìn)行的分析和評(píng)價(jià),并指
4、明了下一步的改進(jìn)計(jì)劃。關(guān)鍵詞:拼車 Android平臺(tái) 拼車App PHP技術(shù)AbstractWith the rapid development of national economy, the continuous improvement of peoples income level, more and more people are taking a taxi in the city, especially in the rush hour taxi appeared in short supply situation.But, in the rush hour, the light
5、of the taxi phenomenon is more serious.Especially when it rains or its going to rain, the road will always arrive at the same time many taxi, usually only one or two passengers per vehicle.It is greatly wasted taxi transportation efficiency, to a certain extent caused by automobile exhaust emissions
6、 increase, a series of problems such as traffic jams, affects the healthy development of urban traffic and the taxi industry, thus to improve the operating efficiency of taxi has become an effective way to ease traffic pressure.On the other hand, with the development of mobile technology, mobile int
7、elligent terminal more and more important role in Peoples Daily life.In order to improve peoples quality of life, an increasing number of mobile phone application arises at the historic moment.Peoples personal mobile phones have gradually turned into a mini computer, no matter when and where, as lon
8、g as have mobile phones and communications network, can solve many problems.How to build the taxi car pool to the mobile intelligent terminal system, really easy to achieve car-sharing business, is a subject of practical application value.This paper takes the taxi car-sharing system Android mobile p
9、latform client for detailed object, main task is through introducing the client demand analysis, design, implementation, to further elaborate the process of to taxi resources waste solution of this problem.The core of the paper work includes three aspects: first, the design has realized the Android
10、mobile phone users of its positioning, target positioning and taxi destination.Second, to achieve the client user, the distance between the matching distance matching as well as the destination.Third, implement the client communication chat between users.Papers from the project background, this pape
11、r introduces the background of system development and operation value.Mobile platform are introduced in detail, and the taxi car pool the feasibility of the project and the design of the matching algorithm, and the design and implementation for the client.Again, the paper expounds the requirements o
12、f system in detail, detailed introduced the mobile platform taxi car-sharing system design in detail.The final paper in view of the current mobile platform taxi carpooling system analysis and evaluation, and pointed out the improvement plan of the next.Keywords: carpooling Android platform carpoolin
13、g App PHP technology目錄基于Android平臺(tái)拼車App設(shè)計(jì)1摘要21 緒論41.1 研究背景與意義41.2 國(guó)外研究概況41.3 論文的主要研究工作52 關(guān)鍵技術(shù)52.1 系統(tǒng)架構(gòu)62.2 Android平臺(tái)概述62.3 PHP技術(shù)62.4 GSP定位技術(shù)72.5 百度地圖72.6 MySQL數(shù)據(jù)庫(kù)72.7 本章小結(jié)83 系統(tǒng)需求分析83.1 系統(tǒng)可行性分析83.2 系統(tǒng)功能需求83.3 系統(tǒng)安全需求93.4 本章小結(jié)94 系統(tǒng)的設(shè)計(jì)94.1 系統(tǒng)總體設(shè)計(jì)94.2 系統(tǒng)功能模塊設(shè)計(jì)104.2.1注冊(cè)模塊設(shè)計(jì)104.2.2登錄模塊設(shè)計(jì)104.2.3地圖模塊設(shè)計(jì)114.2.3
14、發(fā)布信息模塊124.2.4個(gè)人資料管理模塊124.3 數(shù)據(jù)庫(kù)設(shè)計(jì)134.4 系統(tǒng)安全性設(shè)計(jì)154.5 本章小結(jié)165 系統(tǒng)的實(shí)現(xiàn)與測(cè)試165.1 系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境175.2 系統(tǒng)主要功能模塊的實(shí)現(xiàn)175.2.1 注冊(cè)功能175.2.2 登錄功能255.2.3 地圖定位功能275.2.4 發(fā)布信息功能385.2.5 個(gè)人資料管理475.3 系統(tǒng)測(cè)試505.4 本章小結(jié)516 總結(jié)與展望516.1 全文總結(jié)516.2 展望52致52參考文獻(xiàn)521 緒論1.1 研究背景與意義當(dāng)前,隨著經(jīng)濟(jì)的高速發(fā)展,汽車越來(lái)越多,開(kāi)車的成本越來(lái)越高。交通問(wèn)題越來(lái)越嚴(yán)重的影響世界各大城市,大圍的交通擁堵,造成了環(huán)境
15、污染、土地緊缺已經(jīng)能源消耗等諸多社會(huì)問(wèn)題。交通問(wèn)題不僅阻礙城市的進(jìn)一步發(fā)展,還與我國(guó)目前提倡的地毯環(huán)保主題相違背。 針對(duì)目前的交通問(wèn)題,鋪設(shè)大量的道路,建設(shè)城市道路和鄉(xiāng)村公路網(wǎng)是一個(gè)不錯(cuò)的解決方案。但修建道路只能在一定時(shí)間緩解交通壓力,因?yàn)榈缆返慕ㄔO(shè)速度遠(yuǎn)遠(yuǎn)比不上車輛的增長(zhǎng)速度,所以從遠(yuǎn)的來(lái)說(shuō),必須研究出交通可持續(xù)發(fā)展的策略。對(duì)于這個(gè)問(wèn)題,不少上班族正在把目光投向拼車。在,等一線城市,拼車已經(jīng)形成了一定的規(guī)模。相互拼車如果形成規(guī)模,上下班高峰時(shí)段估計(jì)車輛能減少1/51/4,能緩解目前車輛擁堵的現(xiàn)象。兩家拼車能節(jié)省將近一半的燃料,自然同時(shí)節(jié)約了養(yǎng)車的總支出。提供了交友的機(jī)會(huì),能增進(jìn)鄰里、員工之間
16、的友情,互相學(xué)習(xí)提高駕駛技術(shù)?;ハ嚅g有了自己備用的司機(jī),出現(xiàn)了問(wèn)題互相有個(gè)照應(yīng)。互相制約減少違章,一旦喝多了或沒(méi)醒酒能有個(gè)人替換。如今30歲以下多是獨(dú)生子女,拼車能使之成為摯友是十分可取的方式。未來(lái)家庭人口越來(lái)越少了,兩家人一起出去游玩,過(guò)節(jié)一同吃頓飯,都是很不錯(cuò)的選擇。出遠(yuǎn)門家中寵物無(wú)人照顧,就可以放到車友家了!1.2 國(guó)外研究概況德國(guó)老百姓熱衷于拼車,除去環(huán)保、社交等因素外,最直接的考量就是低廉的費(fèi)用。德國(guó)老百姓熱衷于拼車,除去環(huán)保、社交等因素外,最直接的考量就是低廉的費(fèi)用。除費(fèi)用外,在德國(guó)拼車也無(wú)太多安全之虞。如果在中介機(jī)構(gòu)尋找拼車,司機(jī)與乘客的相關(guān)信息都有備份,均有跡可查,而在拼車上,
17、司機(jī)與拼車客都需注冊(cè),雙方在拼車完成后會(huì)互相給出信用評(píng)價(jià),也具有相當(dāng)?shù)目尚哦?。在英?guó),想要拼車很容易,有很多專門的提供這項(xiàng)服務(wù)。不過(guò)這些大部分更適合長(zhǎng)途旅行,除了提供英國(guó)各個(gè)城市之間的拼車之外,還提供歐洲圍之的拼車服務(wù)。在國(guó),隨著油價(jià)的飆升、開(kāi)車成本的提高以與日益嚴(yán)重的交通擁堵,拼車正受到國(guó)年輕一族的青睞。除了上下班拼車,拼車旅行和拼車回家過(guò)節(jié)也逐漸成為一種時(shí)尚。事實(shí)上,在上下班高峰期、周末、深夜、惡劣天氣以與偏僻地區(qū)打車不易是日常生活中普遍遇到的一個(gè)難題。有時(shí)好不容易來(lái)了一輛空車,司機(jī)卻又漫天要價(jià)。這樣的情況在國(guó)也屢見(jiàn)不鮮。美國(guó)是汽車大國(guó),平均每百人就有80多人有車。為了節(jié)省能源,減少道路和
18、交通壓力,美國(guó)各級(jí)地方政府、各種社團(tuán)和社區(qū)都積極推動(dòng)“拼車”,為“拼車”牽線搭橋,并提供各種便利和優(yōu)惠。拼車費(fèi)一般都是AA制,支付形式因人因事而異。有些拼車為拼車的人提供費(fèi)用和安全擔(dān)保,由對(duì)參加客戶進(jìn)行信用調(diào)查和信用評(píng)級(jí),有些還提供拼車定期收費(fèi)服務(wù)。1.3 論文的主要研究工作本課題主要從計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)著手,研究計(jì)算機(jī)特色專業(yè)建設(shè)的各項(xiàng)管理工作。根據(jù)我校周邊的實(shí)際情況,設(shè)計(jì)了一套計(jì)算機(jī)特色專業(yè)建設(shè)管理系統(tǒng),主要圍繞系統(tǒng)中涉與到的2種用戶,對(duì)系統(tǒng)的注冊(cè)、登錄、發(fā)布信息、地圖、個(gè)人資料管理模塊作了具體的設(shè)計(jì)與實(shí)現(xiàn)。在系統(tǒng)設(shè)計(jì)過(guò)程中,主要作了以下工作:(1)根據(jù)系統(tǒng)用戶角色少、用戶分散等特點(diǎn),系
19、統(tǒng)采用C/S架構(gòu)進(jìn)行設(shè)計(jì)。同時(shí),由于Mysql體積小、速度快、總體擁有成本低,服務(wù)器端采用了PHP+Mysql技術(shù)開(kāi)發(fā)。(2)以系統(tǒng)中2種角色的業(yè)務(wù)活動(dòng)為中心,在UML模型的指導(dǎo)下,對(duì)系統(tǒng)進(jìn)行了需求分析、設(shè)計(jì)和主要功能模塊的實(shí)現(xiàn)。(3)為了驗(yàn)證系統(tǒng)的可用性和可靠性,最后,對(duì)系統(tǒng)進(jìn)行了測(cè)試。2 關(guān)鍵技術(shù)本章主要圍繞系統(tǒng)在設(shè)計(jì)與開(kāi)發(fā)階段需要使用的到的相關(guān)技術(shù)和平臺(tái)展開(kāi)介紹,并分別從技術(shù)的原理、特點(diǎn)、發(fā)展方向等幾個(gè)方面進(jìn)行分析,從而說(shuō)明其適用于本系統(tǒng)的原因。2.1 系統(tǒng)架構(gòu)即Client/Server (客戶機(jī)/服務(wù)器) 結(jié)構(gòu),是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)將任務(wù)合理分配到Client端和Ser
20、ver端,降低了系統(tǒng)的通訊開(kāi)銷,需要安裝客戶端才可進(jìn)行管理操作。客戶端和服務(wù)器端的程序不同,用戶的程序主要在客戶端,服務(wù)器端主要提供數(shù)據(jù)管理、數(shù)據(jù)共享、數(shù)據(jù)與系統(tǒng)維護(hù)和并發(fā)控制等,客戶端程序主要完成用戶的具體的業(yè)務(wù)。開(kāi)發(fā)比較容易,操作簡(jiǎn)便,但應(yīng)用程序的升級(jí)和客戶端程序的維護(hù)較為困難。2.2 Android平臺(tái)概述Android(安卓),是一個(gè)以Linux為基礎(chǔ)的開(kāi)源移動(dòng)設(shè)備操作系統(tǒng),主要用於智能手機(jī)和平板電腦,由Google成立的Open Handset Alliance(OHA,開(kāi)放手持設(shè)備聯(lián)盟)持續(xù)領(lǐng)導(dǎo)與開(kāi)發(fā)中。Android已發(fā)布的最新版本為Android 5.0(Lollipop)。A
21、ndroid系統(tǒng)最初由安迪魯賓(Andy Rubin)等人開(kāi)發(fā)制作1 ,最初開(kāi)發(fā)這個(gè)系統(tǒng)的目的是創(chuàng)建一個(gè)數(shù)位相機(jī)的先進(jìn)操作系統(tǒng);但是後來(lái)發(fā)現(xiàn)市場(chǎng)需求不夠大,加上智能手機(jī)市場(chǎng)快速成長(zhǎng),於是Android被改造為一款面向智能手機(jī)的操作系統(tǒng)。於2005年8月被美國(guó)科技企業(yè)Google收購(gòu)。2007年11月,Google與84家制造商、開(kāi)發(fā)商與電信營(yíng)運(yùn)商成立開(kāi)放手持設(shè)備聯(lián)盟來(lái)共同研發(fā)改良Android系統(tǒng),隨後,Google以Apache免費(fèi)開(kāi)放原始碼許可證的授權(quán)方式,發(fā)布了Android的原碼,讓生產(chǎn)商推出搭載Android的智能手機(jī),Android後來(lái)更逐漸拓展到平板電腦與其他領(lǐng)域上。2010年末
22、數(shù)據(jù)顯示,僅正式推出兩年的Android作業(yè)系統(tǒng)在市場(chǎng)占有率上已經(jīng)超越稱霸逾十年的諾基亞Symbian系統(tǒng),成為全球第一大智能手機(jī)操作系統(tǒng)。2.3 PHP技術(shù)PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開(kāi)源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域。PHP 獨(dú)特的語(yǔ)法混合了C、Java、Perl以與PHP自創(chuàng)的語(yǔ)法。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)文檔中去
23、執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。PHP的特性包括:(1)PHP 獨(dú)特的語(yǔ)法混合了 C、Java、Perl 以與 PHP 自創(chuàng)新的語(yǔ)法。(2)PHP可以比CGI或者Perl更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)動(dòng)態(tài)頁(yè)面方面,與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成htmL標(biāo)記的CGI要高許多。PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn)。(3)PHP支持幾乎所有流行的數(shù)據(jù)庫(kù)以與操作系統(tǒng)。(4)最重要的是PHP可以用C、C+進(jìn)行程序的擴(kuò)展!2.4 GSP定位技術(shù)G
24、PS英文全名是“Navigation Satellite Timing And Ranging / Global Position System”,其意為“衛(wèi)星測(cè)時(shí)測(cè)距導(dǎo)航/全球定位系統(tǒng)”,簡(jiǎn)稱GPS系統(tǒng)。該系統(tǒng)是以衛(wèi)星為基礎(chǔ)的無(wú)線電導(dǎo)航定位系統(tǒng)。GPS全球衛(wèi)星定位導(dǎo)航系統(tǒng),開(kāi)始時(shí)只用于軍事目的,后轉(zhuǎn)為民用被廣泛應(yīng)用于商業(yè)和科學(xué)研究上。GPS空間部分使用了二十四顆衛(wèi)星組成的星座,衛(wèi)星高度約20200公里,分布在六條升交點(diǎn)互隔60度的軌道面上,每條軌道上均勻分布四顆衛(wèi)星,相鄰兩軌道上的衛(wèi)星相隔40度,使得地球任何地方至少同時(shí)可看到四顆衛(wèi)星。傳統(tǒng)的GPS定位技術(shù)在戶外運(yùn)轉(zhuǎn)良好,但在室或衛(wèi)星信號(hào)無(wú)法
25、覆蓋的地方效果較差,而且如果所在位置上空沒(méi)有3顆以上的衛(wèi)星,那么系統(tǒng)就無(wú)法從冷啟動(dòng)狀態(tài)實(shí)現(xiàn)定位。2.5 百度地圖API接口百度地圖API是為開(kāi)發(fā)者免費(fèi)提供的一套基于百度地圖服務(wù)的應(yīng)用接口,包括JavaScript API、Web服務(wù)API、Android SDK、iOS SDK、定位SDK、車聯(lián)網(wǎng)API、LBS云等多種開(kāi)發(fā)工具與服務(wù),提供基本地圖展現(xiàn)、搜索、定位、逆/地理編碼、路線規(guī)劃、LBS云存儲(chǔ)與檢索等功能,適用于PC端、移動(dòng)端、服務(wù)器等多種設(shè)備,多種操作系統(tǒng)下的地圖應(yīng)用開(kāi)發(fā)。2.6 MySQL數(shù)據(jù)庫(kù)MySQL(發(fā)音為my ess cue el,不是my sequel)是一種開(kāi)放源代碼的關(guān)
26、系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言-結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。由于MySQL是開(kāi)放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個(gè)性化的需要對(duì)其進(jìn)行修改。MySQL因?yàn)槠渌俣取⒖煽啃院瓦m應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理容最好的選擇。MySQL這個(gè)名字,起源不是很明確。一個(gè)比較有影響的說(shuō)法是,基本指南和大量的庫(kù)和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的Monty Widenius的女兒也叫My。這兩個(gè)到底是哪一個(gè)
27、給出了MySQL這個(gè)名字至今依然是個(gè)迷,包括開(kāi)發(fā)者在也不知道。MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶在“海豚命名”的競(jìng)賽中建議的大量的名字表中選出的。獲勝的名字是由來(lái)自非洲斯威士蘭的開(kāi)源軟件開(kāi)發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說(shuō),Sakila來(lái)自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha的一個(gè)小鎮(zhèn)的名字。MySQL,雖然功能未必很強(qiáng)大,但因?yàn)樗拈_(kāi)源、廣泛傳播,導(dǎo)致很多人都了解到這個(gè)數(shù)據(jù)庫(kù)。它的歷史也富有傳奇性。2.7 本章小結(jié)本章主要通過(guò)搜集國(guó)外相似系統(tǒng)的資料,了解其應(yīng)
28、用的相關(guān)技術(shù),通過(guò)技術(shù)特點(diǎn)的對(duì)比進(jìn)行本系統(tǒng)的技術(shù)選擇。3 系統(tǒng)需求分析3.1 系統(tǒng)可行性分析本系統(tǒng)服務(wù)器采用PHP+Mysql技術(shù),客戶端采用Android平臺(tái)。根據(jù)本人所掌握的技術(shù):PHP+Mysql,Android,百度SDK,可以判定要做成這樣的一個(gè)成品是完全沒(méi)有問(wèn)題的。本系統(tǒng)計(jì)劃從11月開(kāi)始開(kāi)發(fā),于12月底完工,耗時(shí)兩個(gè)月,時(shí)間非常充裕。在選擇服務(wù)器之前,考察了網(wǎng)上各個(gè)服務(wù)器的價(jià)格,質(zhì)量以與訪問(wèn)速度,本系統(tǒng)采用了新網(wǎng)虛擬主機(jī)作為服務(wù)器。3.2 系統(tǒng)功能需求本系統(tǒng)中,所有的業(yè)務(wù)都以用戶和系統(tǒng)管理員兩種角色。下面對(duì)著兩種角色進(jìn)行具體的分析。3.2.1系統(tǒng)管理員功能需求系統(tǒng)管理員主要負(fù)責(zé)審核
29、司機(jī)的證件的真?zhèn)?。系統(tǒng)管理員主要負(fù)責(zé)司機(jī)的認(rèn)證管理,已經(jīng)定期對(duì)系統(tǒng)的漏洞進(jìn)行修復(fù),數(shù)據(jù)庫(kù)備份,危險(xiǎn)文件刪除,以提高系統(tǒng)的安全性。圖3.13.2.2用戶功能需求首先,用戶必須有注冊(cè),登錄,管理個(gè)人資料這些必備的功能。然后是定位自己,發(fā)布信息,查看信息功能模塊。如圖3.2所示:圖3.2綜上所述,本系統(tǒng)需要實(shí)現(xiàn)以下模塊:注冊(cè)模塊、登錄模塊、發(fā)布信息模塊、消息模塊、訂單管理模塊、個(gè)人信息管理模塊。3.3 系統(tǒng)安全需求(1) 盡量減少客戶端敏感的容,盡量把這些放在服務(wù)端。(2) 防止命令注入攻擊。命令注入攻擊是指這樣一種攻擊手段,黑客通過(guò)把HTML代碼輸入一個(gè)輸入機(jī)制(例如缺乏有效驗(yàn)證限制的表格域)來(lái)改
30、變網(wǎng)頁(yè)的動(dòng)態(tài)生成的容。使用系統(tǒng)命令是一項(xiàng)危險(xiǎn)的操作,尤其在你試圖使用遠(yuǎn)程數(shù)據(jù)來(lái)構(gòu)造要執(zhí)行的命令時(shí)更是如此。如果使用了被污染數(shù)據(jù),命令注入漏洞就產(chǎn)生了。(3) 防止SQL注入攻擊,即一部分程序員在編寫代碼的時(shí)候,沒(méi)有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患。用戶可以提交一段數(shù)據(jù)庫(kù)查詢代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù)。(4)防止session劫持。session劫持是一種比較復(fù)雜的攻擊方法。大部分互聯(lián)網(wǎng)上的電腦多存在被攻擊的危險(xiǎn)。這是一種劫持tcp協(xié)議的方法,所以幾乎所有的局域網(wǎng),都存在被劫持可能。(5)對(duì)用戶提交的所有數(shù)據(jù)進(jìn)行驗(yàn)證。3.4 本章小結(jié)本章分析系統(tǒng)的運(yùn)行
31、模式,功能需求,技術(shù)可行性,安全問(wèn)題。4 系統(tǒng)的設(shè)計(jì)經(jīng)過(guò)對(duì)系統(tǒng)的需求分析,更加明確了系統(tǒng)的需求導(dǎo)向,本章針對(duì)系統(tǒng)的需求,結(jié)合流程圖對(duì)系統(tǒng)的功能模塊進(jìn)行具體設(shè)計(jì)。4.1 系統(tǒng)總體設(shè)計(jì)本系統(tǒng)架構(gòu)表示層由Android 編寫。Android客戶端包含了UI以與UI邏輯控制。業(yè)務(wù)層主要在PHP服務(wù)期端,Android通過(guò) 協(xié)議,以POST的方式發(fā)送字符串,服務(wù)期返回JSON數(shù)據(jù)格式的結(jié)果,Android再根據(jù)結(jié)果進(jìn)行業(yè)務(wù)結(jié)果判斷。體系結(jié)構(gòu)抽象如圖4.1所示。圖4.14.2 系統(tǒng)功能模塊設(shè)計(jì)根據(jù)第三章的功能需求,本節(jié)對(duì)系統(tǒng)進(jìn)行具體的功能設(shè)計(jì)。主要分為5大模塊,注冊(cè)模塊,登錄模塊,發(fā)布信息模塊,個(gè)人信息管
32、理模塊,地圖定位模塊。如圖4.1所示。圖 4.24.2.1注冊(cè)模塊設(shè)計(jì)系統(tǒng)注冊(cè)用戶信息的時(shí)候,我們需要用戶提交phone(13位手機(jī)號(hào)),密碼password(小于20位字符,大于6位字符),昵稱name(小于6個(gè)漢字,大于2個(gè)漢字),性別sex。注冊(cè)分成兩步奏,第一步提示用戶輸入手機(jī)號(hào),點(diǎn)擊獲取驗(yàn)證碼,php平臺(tái)發(fā)送驗(yàn)證碼,驗(yàn)證碼正確才可以繼續(xù)第二步驟。第二步驟,完善剩余信息(密碼,性別,昵稱)。到此,注冊(cè)完成。如圖4.3所示。圖 4.34.2.2登錄模塊設(shè)計(jì)Android 需要提交3個(gè)值,第一個(gè)值key,說(shuō)明要進(jìn)行的業(yè)務(wù)邏輯,第二個(gè)值賬戶username,必須是13位手機(jī)。第三個(gè)值密碼pa
33、ssword,必須是小于20個(gè)字符的字符串。賬戶和密碼的驗(yàn)證在服務(wù)器驗(yàn)證。整個(gè)流程如圖4.2所示。圖4.44.2.3地圖模塊設(shè)計(jì)關(guān)于地圖模塊,本系統(tǒng)是通過(guò)百度地圖SDK調(diào)用百度地圖API接口獲取地圖數(shù)據(jù)。當(dāng)用戶登錄成功的時(shí)候,客戶端調(diào)用GPS獲取用戶當(dāng)前經(jīng)緯度,再把經(jīng)緯度發(fā)送給服務(wù)器。服務(wù)把用戶當(dāng)前位位置記錄在數(shù)據(jù)庫(kù)里面。同時(shí),客戶端請(qǐng)求周邊用戶位置,返回周邊其它用戶的位置。在百度地圖上,我們通過(guò)使用百度地圖的mBaiduMap.addOverlay()方法,添加覆蓋物,把乘客和司機(jī)兩種用戶分別標(biāo)示出來(lái)。如果是乘客,只顯示他/她的性別,跟昵稱,不顯示。如果是司機(jī),顯示昵稱和。乘客通過(guò)地圖,可以
34、很方便的獲取周邊司機(jī)的信息。隨時(shí)可以通過(guò)App撥打,聯(lián)系司機(jī)。整個(gè)流程如圖4.2所示。圖4.54.2.3發(fā)布信息模塊拼車信息分成兩種,一種即時(shí)拼車,一種是正常拼車。即時(shí)拼車適用于當(dāng)天急需用車的乘客,當(dāng)前城市的司機(jī)點(diǎn)擊消息界面,切換消息狀態(tài),就可以看到即時(shí)拼車的信息。而正常拼車使用于幾天后拼車,不急著用車的乘客。正常拼車需要用戶提供起點(diǎn)、終點(diǎn)、約定拼車的時(shí)間、給司機(jī)留言(不是必須有的)。即時(shí)拼車需要用戶提供起點(diǎn)、終點(diǎn)、愿意等待的司機(jī)的時(shí)間(5分鐘,15分鐘,25分鐘)、給司機(jī)留言(不是必須有的)。同時(shí),用戶在客戶端輸入起點(diǎn)跟終點(diǎn)的時(shí)候,提供地圖選取位置的功能。限制起點(diǎn)、終點(diǎn)20字以。時(shí)間使用An
35、droid的時(shí)間空間,以標(biāo)準(zhǔn)的格式輸入。4.2.4個(gè)人資料管理模塊個(gè)人資料管理主要涉與到:用戶的頭像修改、昵稱修改、性別修改、密碼修改、身份的切換(乘客或者司機(jī))、當(dāng)前城市切換、用戶認(rèn)證(行駛證認(rèn)證,駕駛證認(rèn)證)、自動(dòng)登陸開(kāi)關(guān)、自動(dòng)定位城市開(kāi)關(guān)。其中,由于系統(tǒng)是默認(rèn)30秒更新一次數(shù)據(jù)庫(kù)的用戶經(jīng)緯度。如果個(gè)自動(dòng)定位開(kāi)關(guān)關(guān)閉,將不再自動(dòng)更新定位。用戶認(rèn)證主要是用于司機(jī)的認(rèn)證,通過(guò)認(rèn)證的司機(jī)將會(huì)在個(gè)人資料上顯示他的認(rèn)證標(biāo)志。認(rèn)證的審核將由系統(tǒng)管理員來(lái)完成。4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)是信息系統(tǒng)的核心和基礎(chǔ),本系統(tǒng)采用Mysql5.4數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)命名為carshare,主要包括系統(tǒng)管理員信息表(sys)
36、,用戶表(user),拼車信息表(info)。(1)系統(tǒng)管理員信息表系統(tǒng)管理員信息表主要設(shè)計(jì)了管理員ID、賬號(hào)(聯(lián)系)、密碼等,如表4-1所示。表4-1 系統(tǒng)管理員信息表(sys)字段字段名類型寬度是否主鍵備注1sys_id自增長(zhǎng)是記錄表長(zhǎng)度2phoneNvarchar20賬戶名,手機(jī)3passwordNvarchar20登錄密碼4nameNvarchar10系統(tǒng)管理員(2)用戶信息表用戶信息表主要設(shè)計(jì)了用戶的ID、賬號(hào)(聯(lián)系)、密碼,經(jīng)度、緯度、身份(乘客或者司機(jī))、當(dāng)前所在城市等,如表4-2所示。表4-2 用戶信息表(user)字段字段名類型寬度是否主鍵備注1user_id自增長(zhǎng)是記錄表長(zhǎng)
37、度2phoneNvarchar20用戶賬號(hào)(聯(lián)系)3passwordNvarchar20登錄密碼4nameNvarchar20用戶昵稱5sexNvarchar1性別6mystatusNvarchar1身份d表示司機(jī),p表示乘客)7cityNvarchar10用戶當(dāng)前所在城市8latdouble9經(jīng)度9logdouble9緯度10auth_phoneNvarchar5是否真實(shí)11auth_licence_driverNvarchar5駕駛證是否真實(shí)12auth_licence_carNvarchar5行駛證是否真實(shí)(3)拼車信息表拼車信息表(info)主要設(shè)計(jì)了拼車信息的ID、用戶表ID、信息類
38、型、起點(diǎn)、終點(diǎn)、出發(fā)時(shí)間、發(fā)布時(shí)間、愿意等待時(shí)間、用戶留言等,如表4-3所示。表4-3 拼車信息表(info)字段字段名類型寬度是否主鍵備注1info_id自增長(zhǎng)是記錄表長(zhǎng)度2user_idint11用戶表ID3typeint1拼車類型(1正常,2與時(shí))4departureNvarchar32起點(diǎn)5TerminalNvarchar32終點(diǎn)6dep_dateNvarchar10出發(fā)日期,格式:2015-11-127Dep_timeNvarchar10出發(fā)時(shí)間,格式:07:008Wait_timeint2等待時(shí)間(5,15,25)9Pub_dateNvarchar10發(fā)布信息時(shí)間,格式: 2015
39、-11-11 13:00 10infoVarchar200給拼友留言,可以為空4.4 系統(tǒng)安全性設(shè)計(jì)系統(tǒng)安全性,我覺(jué)得應(yīng)該從軟硬件結(jié)合做起。硬件方面由新網(wǎng)負(fù)責(zé),對(duì)此筆者是比較信任的。軟件方面,服務(wù)器端是由Apache+PHP+Mysql組成的,apache應(yīng)該有以下設(shè)置:(1)編譯源代碼,修改默認(rèn)的banner(2) 訪問(wèn)特殊目錄需要密碼.htaccess(3) 關(guān)閉索引目錄options -Indexes(4) 關(guān)閉CGI執(zhí)行程序options -ExecCGI(5) apache限制目錄php_admin_value open_basedir /var/(6) apache的php擴(kuò)展名解
40、析漏洞apache配置文件,禁止.php.這樣的文件執(zhí)行,配置文件里面加入order Allow,DenyDeny from all(7)apache設(shè)置上傳目錄無(wú)執(zhí)行權(quán)限關(guān)閉路徑/home/upload的php解析:order allow,denyDeny from all在PHP方面:(1) 配置文件php.ini設(shè)置register_globals = Off。(防止變量濫用)(2) magic_quotes_gpc=On(3)safe_mode是唯一PHP_INI_SYSTEM屬性,必須通過(guò)php.ini或 d.conf來(lái)設(shè)置。要啟用safe_mode,只需修改php.ini:safe
41、_mode = On(避免本地包含、文件打開(kāi)、命令執(zhí)行)(4) 如非特殊需要,一定要關(guān)閉PHP的遠(yuǎn)程文件打開(kāi)功能。修改php.ini文件(避免遠(yuǎn)程包含漏洞)(5) 防注入,在php.ini中,找到此節(jié):; Automatically add files before or after any PHP document. ;auto_prepend_file = phpids.php;auto_append_file = alert.php默認(rèn)是空,請(qǐng)?zhí)砑铀奈募?。同時(shí)找到:; UNIX: /path1:/path2;include_path = .:/php/includes; ; Win
42、dows: path1;path2include_path = .;F:PHPnowhtdocs(6)修改display_errors = Off(關(guān)閉警告與錯(cuò)誤信息)。(7)對(duì)于用戶所提交的數(shù)據(jù),筆者掌專門設(shè)計(jì)一個(gè)過(guò)濾類,用來(lái)過(guò)濾非法數(shù)據(jù)。4.5 本章小結(jié)本章對(duì)系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)的功能以與安全性進(jìn)行了詳細(xì)的闡述,重點(diǎn)指出了開(kāi)發(fā)中需要注意的問(wèn)題。5 系統(tǒng)的實(shí)現(xiàn)與測(cè)試根據(jù)系統(tǒng)所涉與的用戶,系統(tǒng)分為地圖模塊、發(fā)布信息模塊、登錄模塊、注冊(cè)模塊和個(gè)人信息管理模塊,本章將圍繞這5個(gè)模塊對(duì)主要功能模塊進(jìn)行具體的實(shí)現(xiàn)。最后,并對(duì)系統(tǒng)進(jìn)行測(cè)試,以確保系統(tǒng)運(yùn)行的穩(wěn)定性和可靠性。5.1 系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境系統(tǒng)的
43、運(yùn)行環(huán)境涉與到整個(gè)系統(tǒng)的質(zhì)量。不同的系統(tǒng),他對(duì)環(huán)境的要不一樣的。筆者對(duì)本系統(tǒng)的運(yùn)行環(huán)境做了如下介紹。(1)網(wǎng)絡(luò)環(huán)境國(guó)高速節(jié)點(diǎn)。新網(wǎng)linux主機(jī)。(2)硬件環(huán)境服務(wù)器采用機(jī)架式IBM System x3650 M4 2U服務(wù)器,存8G,1顆4核處理器,采用SATA/SAS硬盤接口,1TB容量大小,兩塊千兆網(wǎng)卡。(3)軟件環(huán)境系統(tǒng)服務(wù)器端采用Linux操作系統(tǒng),采用Mysql 5數(shù)據(jù)庫(kù),web服務(wù)器采用Apache2.2.16。獨(dú)立空間200M,數(shù)據(jù)庫(kù)20M(可升級(jí)),10G月流量,并發(fā)連接150個(gè)。5.2 系統(tǒng)主要功能模塊的實(shí)現(xiàn)5.2.1 注冊(cè)功能本系統(tǒng)注冊(cè)功能暫時(shí)只提供手機(jī)注冊(cè),注冊(cè)賬號(hào)就是
44、手機(jī)號(hào)。在打開(kāi)APP進(jìn)入登錄界面,點(diǎn)擊右下角的注冊(cè)按鈕,進(jìn)入注冊(cè)。賬號(hào):1385077XXXX 密碼:123456,昵稱:XXX。如圖5.1,圖5.2所示。圖 5.1注冊(cè)第一步 圖 5.2 注冊(cè)第二步當(dāng)輸入手機(jī)號(hào),點(diǎn)擊“獲取驗(yàn)證碼”的時(shí)候,客戶端把發(fā)給服務(wù)器,服務(wù)器驗(yàn)證這個(gè)手機(jī)號(hào)是否被注冊(cè)了,是否是規(guī)格式的手機(jī)號(hào)。是返回驗(yàn)證碼,不是將提示手機(jī)號(hào)被注冊(cè)了。點(diǎn)擊“下一步”,進(jìn)入詳細(xì)資料的填寫。當(dāng)點(diǎn)擊“完成”,APP顯示注冊(cè)成功,否則顯示注冊(cè)失敗。注冊(cè)第一步的核心代碼如下:publicclass Regist01Activity extends Activity implements OnClick
45、Listener private EditText et_regist_phone, et_regist_code;private TextView tv_regist_pro,tv_regist_back;private Button bt_regist_next, bt_regist_login, bt_regist_getcode;private CheckBox cb_regist_pro;private Async ResponseHandler checkCodeHandler,getCodeHandler;private Handler UIHandler;private Cus
46、tom Service Service;private CustomProgressDialog cpd;private Countdown countdown = null;booleanflag=false; /用于檢測(cè)驗(yàn)證碼是否正確,正確就跳轉(zhuǎn)第二個(gè)注冊(cè)頁(yè)面protectedvoid onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_register01);et_re
47、gist_phone = (EditText) findViewById(R.id.et_regist_phone);et_regist_code = (EditText) findViewById(R.id.et_regist_code);bt_regist_next = (Button) findViewById(R.id.bt_regist_next);bt_regist_login = (Button) findViewById(R.id.bt_regist_login);bt_regist_getcode = (Button) findViewById(R.id.bt_regist_
48、getcode);cb_regist_pro = (CheckBox) findViewById(R.id.cb_regist_pro);tv_regist_pro = (TextView) findViewById(R.id.tv_regist_pro);tv_regist_back = (TextView) findViewById(R.id.tv_regist_back);bt_regist_getcode.setOnClickListener(this);bt_regist_next.setOnClickListener(this);bt_regist_login.setOnClick
49、Listener(this);tv_regist_pro.setOnClickListener(this);tv_regist_back.setOnClickListener(this);cpd = CustomProgressDialog.createDialog(this); Service=new Custom Service(Regist01Activity.this);getCodeHandler = new Async ResponseHandler() publicvoid onStart() super.onStart();/cpd.setMessage(getResource
50、s().getString(R.string.dia_load);cpd.show();publicvoid onFinish() super.onFinish();if (cpd != null) cpd.dismiss();publicvoid onSuccess(String content) super.onSuccess(content);CustomData data = CustomData.getData(content);Toast.makeText(Regist01Activity.this, data.getInfo(), 0).show();if(data.getSta
51、tus()=1)et_regist_code.setText(data.getInfo();if (countdown = null) countdown = new Countdown();countdown.start();publicvoid onFailure(Throwable error, String content) super.onFailure(error, content);/Toast.makeText(Regist01Activity.this,R.string.toast_network_error+error, 0).show();Toast.makeText(R
52、egist01Activity.this,R.string.toast_network_error+error, 0).show();checkCodeHandler=new Async ResponseHandler()publicvoid onStart() super.onStart();cpd.setMessage(getResources().getString(R.string.dia_load);cpd.show();publicvoid onFinish() super.onFinish();if (cpd != null) cpd.dismiss();publicvoid o
53、nSuccess(String content) super.onSuccess(content);CustomData data = CustomData.getData(content);/開(kāi)啟倒計(jì)時(shí)if(data.getStatus()=1)Intent intent=new Intent(Regist01Activity.this, Regist02Activity.class);intent.putExtra(phone, et_regist_phone.getText().toString().trim();intent.putExtra(code, et_regist_code.
54、getText().toString().trim();startActivity(intent);overridePendingTransition(R.anim.push_left_in,R.anim.push_left_out);elseToast.makeText(Regist01Activity.this,content, 0).show();Toast.makeText(Regist01Activity.this, data.getInfo(), 0).show();publicvoid onFailure(Throwable error, String content) super.onFailure(error, content);Toast.makeText(Regist01Activity.this,R.string.toast_n
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑施工項(xiàng)目的合同與索賠管理
- 2025合同模板航次租船合同確認(rèn)書(年標(biāo)準(zhǔn)格式)范本
- 2025年磁羅盤項(xiàng)目申請(qǐng)報(bào)告模式
- 2025年節(jié)能、高效脫水設(shè)備項(xiàng)目提案報(bào)告模板
- 2025年驅(qū)蟲(chóng)滅害化學(xué)品項(xiàng)目申請(qǐng)報(bào)告范稿
- 建筑工程的結(jié)構(gòu)穩(wěn)定性分析
- 2025委托物業(yè)管理合同范文
- 2025年鋼包精煉成套設(shè)備項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 2025年流浸膏劑項(xiàng)目規(guī)劃申請(qǐng)報(bào)告范稿
- 建筑工程施工現(xiàn)場(chǎng)的技術(shù)交底
- 護(hù)理人文知識(shí)培訓(xùn)課件
- 建筑工程施工安全管理課件
- 2025年春新人教版數(shù)學(xué)七年級(jí)下冊(cè)教學(xué)課件 7.2.3 平行線的性質(zhì)(第1課時(shí))
- 安徽省合肥市2025年高三第一次教學(xué)質(zhì)量檢測(cè)地理試題(含答案)
- 2025年新合同管理工作計(jì)劃
- 統(tǒng)編版八年級(jí)下冊(cè)語(yǔ)文第三單元名著導(dǎo)讀《經(jīng)典常談》閱讀指導(dǎo) 學(xué)案(含練習(xí)題及答案)
- 風(fēng)光儲(chǔ)儲(chǔ)能項(xiàng)目PCS艙、電池艙吊裝方案
- TTJSFB 002-2024 綠色融資租賃項(xiàng)目評(píng)價(jià)指南
- 全新車位轉(zhuǎn)讓協(xié)議模板下載(2024版)
- 2024年江西電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 天合儲(chǔ)能:2024儲(chǔ)能專用電芯白皮書
評(píng)論
0/150
提交評(píng)論