物聯(lián)網(wǎng)個人項目報告_第1頁
物聯(lián)網(wǎng)個人項目報告_第2頁
物聯(lián)網(wǎng)個人項目報告_第3頁
物聯(lián)網(wǎng)個人項目報告_第4頁
免費預(yù)覽已結(jié)束,剩余16頁可下載查看

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

13、例return serviceMap.get(c.getName();return daoMap.get(c.getName();(4)將創(chuàng)建好多的對象放到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ù)面向切面編程,實現(xiàn)了統(tǒng)一處理字符集;簡單的webCache ,統(tǒng)一控制緩存 ;只有經(jīng)過登錄頁面登陸成功才能進入其他頁面。體現(xiàn)了一個責

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

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

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

17、、我的收藏表 、廣告表 、廣告圖片表和最大編號表。他們之間的關(guān)系可以用圖2-8 來表示 。專業(yè) .專注.圖 2-8 數(shù)據(jù)庫設(shè)計圖部分數(shù)據(jù)庫建表語句如下 :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è)計類似 ,不再贅述 。2.9Ui 界面我們的 ui 界面秉承著清新的風格開發(fā)出來的。整個軟件界面使用一個線性布局,讓所有的元素從屏幕上方向下填充,并給整個線性布局進行權(quán)重劃分。線性布局的最上方是一個TextView ,顯示當前城市的名字 ,接著是一個線性

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論