物聯(lián)網(wǎng)個(gè)人項(xiàng)目報(bào)告_第1頁(yè)
物聯(lián)網(wǎng)個(gè)人項(xiàng)目報(bào)告_第2頁(yè)
物聯(lián)網(wǎng)個(gè)人項(xiàng)目報(bào)告_第3頁(yè)
物聯(lián)網(wǎng)個(gè)人項(xiàng)目報(bào)告_第4頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.物聯(lián)網(wǎng)個(gè)人項(xiàng)目報(bào)告我們組的物聯(lián)網(wǎng)大作業(yè)是“食享 ”APP,它是一款基于位置的輕量級(jí)美食分享交流應(yīng)用 。在項(xiàng)目中我主要負(fù)責(zé)Android 端后臺(tái)開(kāi)發(fā) ,以及小組報(bào)告的撰寫(xiě) 。1 緒論1.1 課題研究背景本小組從物聯(lián)網(wǎng)的定義出發(fā),覺(jué)得從全球定位系統(tǒng)這個(gè)點(diǎn)出發(fā),相對(duì)于我們的整體水平 ,更容易實(shí)現(xiàn) 。隨著全球經(jīng)濟(jì)的飛速發(fā)展,傳統(tǒng)的商務(wù)模式已經(jīng)不能滿足企業(yè)生存發(fā)展的需要 .于是電子商務(wù)這一新興產(chǎn)業(yè)便應(yīng)運(yùn)而生。從近幾年電子商務(wù)的發(fā)展速度和規(guī)模來(lái)看 ,足以顯示其帶來(lái)的巨大的商業(yè)價(jià)值?;ヂ?lián)網(wǎng)和寬帶上網(wǎng)的普及使電子商務(wù)在中國(guó)異軍突起,并日益滲透到人們的日常生活中。電子商務(wù)是運(yùn)用現(xiàn)代通信技術(shù) 、計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)

2、進(jìn)行的一種社會(huì)經(jīng)濟(jì)形態(tài),其目的是通過(guò)降低社會(huì)經(jīng)營(yíng)成本 、提高社會(huì)生產(chǎn)效率 、優(yōu)化社會(huì)資源配置 ,從而實(shí)現(xiàn)社會(huì)財(cái)富的最大化利用 。 電子商務(wù)按照經(jīng)濟(jì)活動(dòng)的類別可分為兩大類別:第一,企業(yè)間的電子商務(wù) ,即企業(yè)與企業(yè)之間 ,通過(guò)網(wǎng)絡(luò)進(jìn)行產(chǎn)品或服務(wù)的經(jīng)營(yíng)活動(dòng)“第二企業(yè)與消費(fèi)者之間的電子商務(wù),即企業(yè)通過(guò)網(wǎng)絡(luò)為消費(fèi)者提供一個(gè)產(chǎn)品或者服務(wù)的經(jīng)營(yíng)活動(dòng) 。本課題所研究的美食網(wǎng)站主要是為個(gè)人消費(fèi)者提供產(chǎn)品和服務(wù)等,從事的是第二類電子商務(wù)活動(dòng)。1.2 課題主要內(nèi)容注冊(cè)與登陸界面 ;美食拍照與定位 ;地圖顯示與分享位置 ;專業(yè) .專注.用戶聊天與互動(dòng)(美食微博 );( 互動(dòng)包括 :聊天,關(guān)注,點(diǎn)贊 ,評(píng)論等)用戶個(gè)性

3、化添加標(biāo)簽 ;1.3 主要內(nèi)容介紹美食分享軟件系統(tǒng)包括了一般用戶、系統(tǒng)管理員兩種用戶,根據(jù)其不同的角色對(duì)系統(tǒng)有不同的需求。一般用戶需求一般用戶可以通過(guò)安裝在Android系統(tǒng)上的應(yīng)用程序來(lái)訪問(wèn)美食分享軟件。在手機(jī)端 ,用戶可以注冊(cè)或者登錄系統(tǒng),登錄之后能夠進(jìn)行搜索美食,查看美食,收藏美食 ,上傳美食等操作 。這些功能已經(jīng)全部實(shí)現(xiàn)了。管理員需求當(dāng)管理員登錄美食分享系統(tǒng)時(shí),可以對(duì)整個(gè)系統(tǒng)進(jìn)行管理,包括添加美食種類,刪除美食種類 ,更改每日推薦等等 。 這些功能都已經(jīng)實(shí)現(xiàn),而且直接登錄數(shù)據(jù)庫(kù)圖形化管理工具Navicat ,操作數(shù)據(jù)庫(kù)更為方便 。性能方面 ,就下面數(shù)據(jù)精確度幾個(gè)指標(biāo)進(jìn)行展開(kāi):我們的系統(tǒng)

4、能夠做到:用戶在進(jìn)行美食搜索時(shí)要保證查全率、查準(zhǔn)率,所有符合條件的美食都能被找到,這達(dá)到了預(yù)期的目標(biāo) 。時(shí)間特性1.打開(kāi)一個(gè)新的鏈接的時(shí)間不能超過(guò)3 秒。2.系統(tǒng)處理美食搜索操作響應(yīng)時(shí)間不能超過(guò)10 秒。3.我們的系統(tǒng) ,打開(kāi)一個(gè)新鏈接需要時(shí)間不到1 秒,在毫秒的量級(jí) ;4.進(jìn)行美食搜索操作同樣也不到1 秒,當(dāng)然,這與我們的數(shù)據(jù)庫(kù)里能夠搜索專業(yè) .專注.的內(nèi)容偏少有關(guān) 。( 2)適應(yīng)性本軟件系統(tǒng)應(yīng)能在Android2.2 及其以上手機(jī)操作系統(tǒng)上良好運(yùn)行 ,Web 端應(yīng)能使用 IE6.0 以上內(nèi)核的瀏覽器 ,Chrome 瀏覽器,F(xiàn)ireFox 瀏覽器進(jìn)行訪問(wèn) ,完全達(dá)到預(yù)期目標(biāo) 。( 3)安全

5、性我們的系統(tǒng)具有一定程度的權(quán)限管理,邏輯分析以及檢測(cè)數(shù)據(jù)完整性功能,各個(gè)功能模塊需要相應(yīng)的權(quán)限才能訪問(wèn)。例如:非注冊(cè)用戶 (游客)只具備瀏覽美食 ,搜索美食的權(quán)限 ,只有登錄用戶才可以對(duì)美食進(jìn)行收藏、上傳等操作 。 這一部分在Web 端和 Android端已經(jīng)實(shí)現(xiàn) ,但是還有一些本地驗(yàn)證等還需要進(jìn)一步的完善。( 4)可靠性只要服務(wù)器不宕機(jī) (充當(dāng)服務(wù)器的 PC 不關(guān)機(jī)),系統(tǒng)可以保證一直正常運(yùn)行 。專業(yè) .專注.2 模塊搭建系統(tǒng)主要功能接口設(shè)計(jì)眾所周知 ,接口是提供給其他模塊或者系統(tǒng)使用的一種約定或者規(guī)范。因此接口必須要保證足夠的穩(wěn)定性和易用性。這是設(shè)計(jì)接口的基本要求。在 Android 端,

6、各個(gè) Activity 模塊之間的數(shù)據(jù)交互主要是利用 Bundle 類對(duì)數(shù)據(jù)進(jìn)行封裝 ,然后通過(guò) Intent 機(jī)制在各個(gè)模塊之間進(jìn)行傳輸 。Intent 是一種運(yùn)行時(shí)綁定 ( run-time binding)機(jī)制,它能在程序運(yùn)行過(guò)程中連接兩個(gè)不同的組件 。 通過(guò) Intent ,你的程序可以向Android表達(dá)某種請(qǐng)求或者意愿 ,Android會(huì)根據(jù)意愿的內(nèi)容選擇適當(dāng)?shù)慕M件來(lái)完成請(qǐng)求。比如,有一個(gè) Activity 希望打開(kāi)網(wǎng)頁(yè)瀏覽器查看某一網(wǎng)頁(yè)的內(nèi)容,那么這個(gè) Activity 只需要發(fā)出 WEB_SEARCH_ACTION給 Android ,Android 就會(huì)根據(jù) Intent 的

7、請(qǐng)求內(nèi)容,查詢各組件注冊(cè)時(shí)聲明的IntentFilter ,找到網(wǎng)頁(yè)瀏覽器的 Activity 來(lái)瀏覽網(wǎng)頁(yè)。要在不同的 activity 之間傳遞數(shù)據(jù) ,就要在 intent 中包含相應(yīng)的內(nèi)容 ,一般來(lái)說(shuō)數(shù)據(jù)中最基本的應(yīng)該包括:Action :用來(lái) 指明要實(shí) 施的 動(dòng)作 是什 么,比如 說(shuō)ACTION_VIEW,ACTION_EDIT等 。 具 體 的 可 以 查 閱androidSDK->reference中 的類,里面的 constants 中定義了所有的 action 。Data : 要事實(shí)的具體的數(shù)據(jù) ,一般由一個(gè) Uri 變量來(lái)表示 。Category :一個(gè)字符串 ,包含了關(guān)

8、于處理該intent的組件的種類的信息 。一個(gè) intent 對(duì)象可以有任意個(gè)category 。Type :顯式指定 Intent 的數(shù)據(jù)類型 (MIME )(多用途互聯(lián)網(wǎng)郵件擴(kuò)展 ,專業(yè) .專注.Multipurpose Internet Mail Extensions)。登錄模塊(1)請(qǐng)求消息接口含義 :客戶端通過(guò) socket 請(qǐng)求提交用戶信息進(jìn)行驗(yàn)證接口協(xié)議 : TCP/IP 協(xié)議命令字:dout.writeUTF參數(shù)描述約束uid系統(tǒng)給用戶分配的 id必須是注冊(cè)成功的 idpwd密碼必須是對(duì)應(yīng)的密碼(2)接收消息接口含義 :客戶端接收來(lái)自服務(wù)器端發(fā)來(lái)的消息接口協(xié)議 : TCP/IP

9、 協(xié)議命令字:din.writeUTF參數(shù)描述約束uid系統(tǒng)給用戶分配的 id必須是注冊(cè)成功的 idpwd密碼必須是對(duì)應(yīng)的密碼這部分的核心代碼實(shí)現(xiàn)如下:專業(yè) .專注.注冊(cè)模塊(1)請(qǐng)求消息接口含義 :客戶端通過(guò) socket 請(qǐng)求提交用戶信息進(jìn)行注冊(cè)接口協(xié)議 : TCP/IP 協(xié)議命令字:dout.writeUTF參數(shù)描述約束u_name用戶名不能為空u_pwd1密碼兩次密碼輸入一致u_qqQQ數(shù)字u_Email郵箱地址不能為空u_dis個(gè)人描述無(wú)(2)接收消息接口含義 :客戶端接收來(lái)自服務(wù)器端發(fā)來(lái)的消息專業(yè) .專注.接口協(xié)議 : TCP/IP 協(xié)議命令字:din.writeUTF參數(shù)描述約束

10、uid系統(tǒng)給用戶分配的 id必須是注冊(cè)成功的 idu_name用戶名提交的用戶名這部分的核心代碼實(shí)現(xiàn)如下:拍照模塊這一部分調(diào)用了手機(jī)上的相機(jī)api ,同時(shí)將得到的照片提交到上傳模塊中,與其他內(nèi)容一起提交到服務(wù)器中。拍照的 API 函數(shù):myCamera.takePicture調(diào)用的過(guò)程 :專業(yè) .專注.返回?cái)?shù)據(jù) :接口含義 :拍照模塊向上傳模塊發(fā)送圖片數(shù)據(jù)接口協(xié)議 : TCP/IP 協(xié)議命令字:onPictureTaken參數(shù)描述約束data圖片二進(jìn)制數(shù)據(jù)無(wú)主要實(shí)現(xiàn)代碼 :地圖模塊這一部分調(diào)用了Google 地圖的 API,同時(shí)將得到的照片提交到上傳模塊中,與其他內(nèi)容一起提交到服務(wù)器中。專業(yè)

11、.專注.調(diào)用的 Google 地圖 API 包括以下幾個(gè)方面 :返回?cái)?shù)據(jù) :接口含義 :地圖模塊向上傳模塊發(fā)送圖片數(shù)據(jù)接口協(xié)議 : TCP/IP 協(xié)議命令字:setResult參數(shù)描述約束RESULT_OK標(biāo)識(shí)符無(wú)lat經(jīng)度浮點(diǎn)數(shù)lon緯度浮點(diǎn)數(shù)主要實(shí)現(xiàn)代碼 :其他模塊的接口設(shè)計(jì)與上述幾個(gè)模塊的接口設(shè)計(jì)類似,在這不再贅述 。2.5 系統(tǒng)的設(shè)計(jì)模式應(yīng)用設(shè)計(jì)模式MVC 全名是 Model View Controller,是模型 (model) 視圖 (view) 控制器(controller) 的縮寫(xiě) ,一種軟件設(shè)計(jì)典范 ,用一種業(yè)務(wù)邏輯 、數(shù)據(jù)、界面 顯示分離的方法組織代碼 ,將業(yè)務(wù)邏輯聚集到一

12、個(gè)部件里面,在改進(jìn)和個(gè)性化定制界專業(yè) .專注.面及用戶交互的同時(shí) ,不需要重新編寫(xiě)業(yè)務(wù)邏輯。MVC 被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。MVC 結(jié)構(gòu)如圖 2-5 所示:圖 2-5 MVC 結(jié)構(gòu)圖抽象工廠模式下面是系統(tǒng)封裝的抽象工廠描述性說(shuō)明(1)創(chuàng)建抽象工廠類public class BeanFactory(2)保存相關(guān)對(duì)象保存 Service 相關(guān)對(duì)象 private Map serviceMap = new HashMap();保存 Dao 相關(guān)對(duì)象 private Map daoMap = new HashMap();(3)返回相關(guān)對(duì)象實(shí)

13、例return serviceMap.get(c.getName();return daoMap.get(c.getName();(4)將創(chuàng)建好多的對(duì)象放到Map 中專業(yè) .專注.serviceMap.put(c.getName(), service); daoMap.put(c.getName(), dao);(5)返回系列產(chǎn)品return service; return dao;抽象工廠模式示意圖如圖2-6 所示 。圖 2-6統(tǒng)一控制本系統(tǒng)采用Filter技術(shù)面向切面編程,實(shí)現(xiàn)了統(tǒng)一處理字符集;簡(jiǎn)單的webCache ,統(tǒng)一控制緩存 ;只有經(jīng)過(guò)登錄頁(yè)面登陸成功才能進(jìn)入其他頁(yè)面。體現(xiàn)了一個(gè)責(zé)

14、任鏈模式 ,提供了一種聲明式服務(wù),具有可插拔的能力 。 采用 Filter技術(shù)對(duì) Request 和 Response 請(qǐng)求進(jìn)行了攔截 ,這對(duì)系統(tǒng)后期的完善 ,權(quán)限的分配,病毒的攔截有至關(guān)重要的作用。采用 Filter 技術(shù)主要是調(diào)用下面的方法public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) / 完成相關(guān)的控制語(yǔ)句chain.doFilter(request, response);專業(yè) .專注.通過(guò)本系統(tǒng)中的用戶維護(hù)說(shuō)明Filter 的基本原理如圖 2-7 所示 。圖

15、 2-7 Filter 統(tǒng)一控制流程圖2.6 系統(tǒng)的 AOP 設(shè)計(jì)應(yīng)用面向方面編程 (Aspect OrientedProgramming ,簡(jiǎn)稱 AOP)是一種聲明式 編 程 ( DeclarativeProgramming) 。 聲 明 式 編 程 是 和 命 令 式 編 程( Imperative Programming )相對(duì)的概念 。 我們平時(shí)使用的編程語(yǔ)言 ,比如C+ 、Java、Ruby 、Python 等,都屬命令式編程 。命令式編程的意思是, 程序員需要一步步寫(xiě)清楚程序需要如何做什么( How to do What )。聲明式編程的意思是 ,程序員不需要一步步告訴程序如何做,

16、只需要告訴程序在哪些地方做什么 (Where to do What )。比起命令式編程來(lái) ,聲明式編程是在一個(gè)更高的層次上編程 。 聲明式編程語(yǔ)言是更高級(jí)的語(yǔ)言。聲明式編程通常處理一些總結(jié)性 、總覽性的工作 ,不適 合做順序相關(guān)的專業(yè) .專注.細(xì)節(jié)相關(guān)的底層工作 。本系統(tǒng)中能用到 AOP 的地方:1.統(tǒng)一字符編碼處理2.打印出所有業(yè)務(wù)類的工作流程日志3.所有關(guān)鍵業(yè)務(wù)方法都加上事務(wù)管理功能2.7 系統(tǒng)的非功能設(shè)計(jì)(如性能 、安全性等 )這一部分已經(jīng)在第一節(jié)闡述,這里不再贅述 。2.8 系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)中的信息表主要有10 張表:頭像表、用戶信息表 、美食種類表 、美食信息表 、每日推薦表

17、、我的收藏表 、廣告表 、廣告圖片表和最大編號(hào)表。他們之間的關(guān)系可以用圖2-8 來(lái)表示 。專業(yè) .專注.圖 2-8 數(shù)據(jù)庫(kù)設(shè)計(jì)圖部分?jǐn)?shù)據(jù)庫(kù)建表語(yǔ)句如下 :create database mstx;use mstx;CREATE TABLE mstx_user(/*用戶信息表 */uidintNOT NULL,u_namechar(50)NOT NULL,u_qqvarchar(15),u_pwdvarchar(50),u_Email varchar(50),u_head int,u_adminboolean NOT NULL,u_moodvarchar(50),u_integralint,u_

18、hobbyvarchar(50),u_level int,u_numberint,PRIMARY KEY(uid),FOREIGN KEY(u_head) REFERENCES mstx_head(tid);FOREIGN KEY(gid) REFERENCES mstx_ads(gid);專業(yè) .專注.CREATE TABLE mstx_info(/*美食信息表 */midint NOT NULL,info_titlechar(50)NOT NULL,info_distext,info_lonfloat(17,14),info_latfloat(17,14),info_sortint,inf

19、o_pricedouble,info_timeTIMESTAMP,uidint,hotel_namechar(50),PRIMARY KEY(mid),FOREIGN KEY(uid) REFERENCES mstx_user(uid),FOREIGN KEY(info_sort) REFERENCES mstx_sort(sid);其他表格設(shè)計(jì)類似 ,不再贅述 。2.9Ui 界面我們的 ui 界面秉承著清新的風(fēng)格開(kāi)發(fā)出來(lái)的。整個(gè)軟件界面使用一個(gè)線性布局,讓所有的元素從屏幕上方向下填充,并給整個(gè)線性布局進(jìn)行權(quán)重劃分。線性布局的最上方是一個(gè)TextView ,顯示當(dāng)前城市的名字 ,接著是一個(gè)線性

20、布局,布局的左上方是三個(gè)TextView ,分別顯示拍照等功能 ,通過(guò)點(diǎn)擊相應(yīng)專業(yè) .專注.的 TextView ,下方的一個(gè)線性布局展現(xiàn)不同的功能。功能面板文字的下方是一個(gè)大的線性布局,用來(lái)顯示未來(lái)三天的天氣情況。在這個(gè)大的線性布局中,又含有三個(gè)小的線性布局,這三個(gè)小線性布局中包含了各種 button 等(這些控件從上到下垂直居中顯示)。通過(guò)給整個(gè) XML 文件中 LinearLayout 布局的的子級(jí)布局添加權(quán)重,讓各個(gè)部分從上到下有序的顯示,讓功能面板位于屏幕下方顯示,以匹配不同尺寸屏幕,讓軟件的顯示效果更好 。軟件的整體布局風(fēng)格是清新,優(yōu)美,大方。專業(yè) .專注.2.10 功能設(shè)計(jì)功能上

21、實(shí)現(xiàn)實(shí)時(shí)的獲取天氣信息,獲取百度 api 返回?cái)?shù)據(jù) ,解析百度 api 返回的 json 數(shù)據(jù),根據(jù)解析到的數(shù)據(jù)繪制氣溫趨勢(shì)圖,并將數(shù)據(jù)反饋到app 上的相應(yīng)的區(qū)域 。通過(guò)使用ViewPager 類,來(lái)實(shí)現(xiàn)天氣預(yù)報(bào)軟件中多個(gè)城市間的無(wú)縫頁(yè)面切換。由于組員都缺少 JAVA 開(kāi)發(fā)經(jīng)驗(yàn) ,對(duì)安卓開(kāi)發(fā)也不熟悉 ,所以我們決定采用調(diào)用 API 的方法來(lái)實(shí)時(shí)獲取不同城市的天氣預(yù)報(bào)數(shù)據(jù),在這次項(xiàng)目中我們將采用百度的車載 API。 通過(guò) HttpClient類和 AsyncTask 異步類來(lái)獲取網(wǎng)絡(luò)數(shù)據(jù) 。最后通過(guò) Gson 類來(lái)解析獲取的網(wǎng)絡(luò)數(shù)據(jù),并給頁(yè)面中的所有的布局空間設(shè)置id ,在 AsyncTask 得到網(wǎng)絡(luò)數(shù)據(jù)之后將這些數(shù)據(jù)同步到軟件界面上,呈現(xiàn)給用戶 。后臺(tái)是由食享的后端云采用網(wǎng)絡(luò)上流行的Bmob后端云平臺(tái) ,其提供一定專業(yè) .專注.容量的免費(fèi)服務(wù)器資源 ,和一系列安卓和蘋(píng)果API 以供初級(jí)開(kāi)發(fā)者使用 。我們可以在Bmob網(wǎng)頁(yè)端注冊(cè)賬號(hào)生成免費(fèi)的云應(yīng)用,將云應(yīng)用的密鑰結(jié)合在android studio工程內(nèi)導(dǎo)入相關(guā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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論