• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于iOS平臺(tái)的車聯(lián)網(wǎng)移動(dòng)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2017-09-09 19:57:52翁亞偉周奎
      軟件導(dǎo)刊 2017年8期
      關(guān)鍵詞:車聯(lián)網(wǎng)車輛管理

      翁亞偉+周奎

      摘 要:隨著生活節(jié)奏的不斷加快,人們對(duì)車輛的需求和使用越來越多。設(shè)計(jì)一套完整的基于iOS的車聯(lián)網(wǎng)移動(dòng)應(yīng)用系統(tǒng),并實(shí)現(xiàn)用戶管理、預(yù)約加油、實(shí)時(shí)地圖、車輛導(dǎo)航、車輛維護(hù)、音樂播放、違章查詢等功能,方便用戶隨時(shí)隨地查看和管理車輛信息,給人們對(duì)自身車輛的管理帶來了極大便利。

      關(guān)鍵詞:iOS;車聯(lián)網(wǎng);車輛管理

      DOIDOI:10.11907/rjdk.171293

      中圖分類號(hào):TP319

      文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):1672-7800(2017)008-0116-03

      0 引言

      隨著人們對(duì)車的需求的增加,并伴隨著生活節(jié)奏的不斷加快,人們對(duì)車輛的管理方式也越發(fā)復(fù)雜,并且用戶對(duì)車載移動(dòng)應(yīng)用的需求也越來越大[1]。與此同時(shí),由于使用車輛的人群規(guī)模在擴(kuò)大,全國(guó)各大城市都出現(xiàn)了堵車、擁擠問題。因此,更加高效便捷的路線規(guī)劃和更加輕松愉快的出行體驗(yàn)引起了人們的廣泛關(guān)注和研究。雖然針對(duì)車輛管理的移動(dòng)App并不罕見,但這類 App 不是由廠商開發(fā)就是由一些硬件開發(fā)商開發(fā),因此要么更加趨向于車輛狀態(tài)的顯示以及開門、開空調(diào)、自動(dòng)倒車等控制,通用性差,要么需要購買配套硬件設(shè)備,成本相對(duì)較高,安全性也較低。這類軟件的特點(diǎn)是通用性差、專業(yè)性強(qiáng),例如BMW的“BMW互聯(lián)應(yīng)用”,以及上海博泰昉達(dá)公司研發(fā)的“iVoka MINI X”。本項(xiàng)目旨在設(shè)計(jì)開發(fā)出這樣一款移動(dòng)應(yīng)用,幫助用戶規(guī)劃出高效的行駛路線,處理使用過程中的一些繁瑣事務(wù),從而有效解決道路使用率過低等問題。

      1 系統(tǒng)開發(fā)環(huán)境及關(guān)鍵技術(shù)

      1.1 iOS與Swift

      iOS系統(tǒng)是蘋果公司為移動(dòng)設(shè)備所開發(fā)的專有操作系統(tǒng),所支持的設(shè)備包括iPhone、iPod touch和 iPad。與 Android 不同,iOS 系統(tǒng)不支持任何非蘋果的硬體設(shè)備。iOS設(shè)備一般采用 ARM 架構(gòu)的64位CPU。iOS系統(tǒng)由四層架構(gòu)組成,分為核心操作系統(tǒng)層(the Core OS Layer)、核心服務(wù)層(the Core Services Layer)、媒體層(the Media Layer)及觸控應(yīng)用層(the Cocoa Touch Layer),高層框架對(duì)底層框架進(jìn)行抽象,使得高層框架更適合人們編碼和理解。

      Swift是一種支持多編程范式和編譯式的編程語言,是用來撰寫macOS/OS X、iOS、watch OS和tvOS的語言之一[2]。2014年,其在蘋果開發(fā)者年會(huì)(WWDC)發(fā)布。設(shè)計(jì)Swift時(shí),蘋果公司有意讓Swift與Objective-C共存在蘋果公司的作業(yè)系統(tǒng)上。Swift的特點(diǎn)是:快速、現(xiàn)代、安全、互動(dòng),而且明顯優(yōu)于Objective-C語言。Swift以LLVM編譯,可以使用現(xiàn)有的Cocoa和Cocoa Touch框架。

      1.2 SQLite

      SQLite 是一款輕量級(jí)的遵守ACID的關(guān)系數(shù)據(jù)庫管理系統(tǒng)[3],它包含在一個(gè)相對(duì)較小的C程式庫中。與許多其它數(shù)據(jù)庫管理系統(tǒng)不同,SQLite不是一個(gè)客戶端/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫引擎,而是被集成在用戶程序中。SQLite引擎不是一個(gè)應(yīng)用程序與之通信的獨(dú)立進(jìn)程,SQLite庫鏈接到程序中,并成為它的一個(gè)組成部分,其也可被動(dòng)態(tài)鏈接。應(yīng)用程序經(jīng)由編程語言內(nèi)的直接API調(diào)用來使用SQLite的功能,這在減少數(shù)據(jù)庫訪問延遲上有積極作用,因?yàn)樵谝粋€(gè)單一進(jìn)程中的函數(shù)調(diào)用比跨進(jìn)程通信更有效率。

      2 系統(tǒng)設(shè)計(jì)

      該系統(tǒng)采用 C/S 模式架構(gòu),系統(tǒng)分為L(zhǎng)inux 服務(wù)器端和iOS 移動(dòng)客戶端兩個(gè)部分。服務(wù)器采用Linux系統(tǒng),軟件選用Apache,數(shù)據(jù)庫使用MySQL,開發(fā)語言基于PHP,移動(dòng)客戶端將基于iOS系統(tǒng),本地?cái)?shù)據(jù)庫使用SQLite,開發(fā)語言采用Swift,服務(wù)器與客戶端之間采用JSON格式的數(shù)據(jù)溝通。

      2.1 系統(tǒng)架構(gòu)

      本應(yīng)用系統(tǒng)的硬件架構(gòu)為C/S架構(gòu),服務(wù)器為 Linux 系統(tǒng),客戶端為iPhone等iOS設(shè)備??蛻舳丝梢酝ㄟ^蜂窩網(wǎng)絡(luò)、WiFi 等途徑訪問服務(wù)器,客戶端與服務(wù)器之間的數(shù)據(jù)交換使用 JSON 協(xié)議格式。

      本系統(tǒng)客戶端的軟件架構(gòu)采用MVC模式,分為模型-視圖-控制器(Model-View-Controller)[4]。模型對(duì)象封裝了應(yīng)用程序的數(shù)據(jù),并定義操控和處理該數(shù)據(jù)的邏輯和運(yùn)算。視圖對(duì)象是應(yīng)用程序中用戶可以看見的對(duì)象,視圖對(duì)象的主要目的,就是顯示來自應(yīng)用程序模型對(duì)象的數(shù)據(jù),并使該數(shù)據(jù)可被編輯。在應(yīng)用程序的一個(gè)或多個(gè)視圖對(duì)象和一個(gè)或多個(gè)模型對(duì)象之間,控制器對(duì)象充當(dāng)媒介。控制器對(duì)象因此是同步管道程序,通過它,視圖對(duì)象了解模型對(duì)象的更改,反之亦然。

      2.2 系統(tǒng)功能

      本應(yīng)用系統(tǒng)的目的是方便用戶管理和查看車輛信息,并且還可以通過本應(yīng)用使用與車輛相關(guān)的服務(wù)并查看車輛相關(guān)的資訊?;谶@些需求,客戶端包含以下功能:①預(yù)約加油:可以通過提前綁定的用戶信息或者臨時(shí)輸入用戶數(shù)據(jù)生成一份加油訂單,發(fā)送給加油站,此訂單會(huì)生成二維碼,加油站可以掃碼完成訂單;②實(shí)時(shí)地圖:顯示地圖和當(dāng)前汽車的位置、路況信息和周圍的加油站、維修站等,所有的位置信息都是以手機(jī)作為載體來替代車輛位置;③車輛導(dǎo)航:可以輸入起點(diǎn)、終點(diǎn)以及途經(jīng)點(diǎn),自動(dòng)計(jì)算選擇最優(yōu)路線,實(shí)時(shí)向用戶導(dǎo)航,告訴用戶如何駕駛,并且需要顯示路況信息;④車輛維護(hù):假定汽車屏幕可以顯示車輛當(dāng)前信息的二維碼以供用戶掃碼,系統(tǒng)將讀取車輛當(dāng)前狀況信息并保存到服務(wù)器,并且當(dāng)車輛出現(xiàn)狀況時(shí)能夠及時(shí)推送到客戶端告知用戶;⑤音樂播放:進(jìn)入應(yīng)用可以播放音樂,用戶可以自行選擇音樂,音樂可以在后臺(tái)播放;⑥違章查詢:可以根據(jù)用戶保存的信息,自動(dòng)查詢車輛違章情況,解析并顯示違章信息。

      3 系統(tǒng)實(shí)現(xiàn)

      本系統(tǒng)服務(wù)器端基于Linux系統(tǒng),采用PHP語言開發(fā);客戶端是基于iOS平臺(tái),開發(fā)采用 MVC模式,服務(wù)器與客戶端之間的數(shù)據(jù)交流則通過JSON 實(shí)現(xiàn)。endprint

      3.1 服務(wù)器端

      服務(wù)器采用LAMP平臺(tái),所有客戶端的 HTTP 請(qǐng)求將直接被Apache服務(wù)器處理[5],而相關(guān)的動(dòng)態(tài)頁面將被Apache交由PHP 處理,其中涉及的數(shù)據(jù)庫請(qǐng)求也由PHP查詢后轉(zhuǎn)交于Apache發(fā)送給接受者。

      整體而言,服務(wù)器負(fù)責(zé)數(shù)據(jù)的云端存儲(chǔ)、監(jiān)控和處理。在用戶數(shù)據(jù)管理功能中,客戶端設(shè)置的數(shù)據(jù)將通過HTTP 請(qǐng)求發(fā)送至服務(wù)器,服務(wù)器通過處理和優(yōu)化,判斷數(shù)據(jù)是否合理,最終將正確的數(shù)據(jù)存儲(chǔ)到服務(wù)器的MySQL 數(shù)據(jù)庫中。其中,對(duì)于數(shù)據(jù)的操作采用單例模式,由一個(gè)統(tǒng)一的接口對(duì)數(shù)據(jù)庫進(jìn)行增刪改查等操作。

      3.2 客戶端

      客戶端的本質(zhì)是對(duì)數(shù)據(jù)的處理和展示,為了防止用戶在車輛使用過程中過多地將注意力放到手機(jī)上,作了如下處理:在APP的UI設(shè)計(jì)上,客戶端采用簡(jiǎn)潔的設(shè)計(jì)語言,盡量排除一切干擾,留下最重要的數(shù)據(jù)[6];在操作上,客戶端盡力優(yōu)化操作步驟,減少不必要的操作,使用戶通過最少的步驟完成一次處理。

      客戶端基于iOS 系統(tǒng)開發(fā),使用Swift 3.0作為開發(fā)語言,由于Swift語言的嚴(yán)謹(jǐn),使得客戶端更加穩(wěn)定。本地?cái)?shù)據(jù)庫使用SQLite系統(tǒng),并通過 FMDB 框架對(duì)數(shù)據(jù)庫進(jìn)行增刪改查等操作。在網(wǎng)絡(luò)數(shù)據(jù)的獲取上通過Alamfire構(gòu)建底層對(duì)HTTP的POST/GET請(qǐng)求[7];獲取到數(shù)據(jù)后會(huì)將數(shù)據(jù)由 JSON數(shù)據(jù)轉(zhuǎn)化為Model,先存入數(shù)據(jù)庫,然后由MVC 中的Controller對(duì)Model進(jìn)行解析使得View顯示數(shù)據(jù)。

      3.3 數(shù)據(jù)庫

      本系統(tǒng)的服務(wù)器端采用MySQL數(shù)據(jù)庫,而客戶端采用SQLite數(shù)據(jù)庫,但是為了簡(jiǎn)化開發(fā)流程,兩者大部分的數(shù)據(jù)表都相同。這樣,在數(shù)據(jù)獲取上,客戶端獲取服務(wù)器的數(shù)據(jù)時(shí),服務(wù)器只需要作簡(jiǎn)單的處理并將Object轉(zhuǎn)化為JSON后就可以返回給客戶端;而客戶端獲取到了數(shù)據(jù)后也只需要將 JSON轉(zhuǎn)化為Model類型并進(jìn)行本地存儲(chǔ)和使用即可。

      在數(shù)據(jù)庫設(shè)計(jì)上,兩者共同的表大約有6張:①用戶表(用戶編號(hào)、用戶名、郵箱、密碼、頭像、DeviceTocken);②車輛表(車牌號(hào)、品牌、型號(hào)、省份編號(hào)、城市編號(hào)、發(fā)動(dòng)機(jī)編號(hào)、車架號(hào)、加油類型、門、座、用戶編號(hào));③訂單表(訂單號(hào)、姓名、時(shí)間、加油站編號(hào)、加油數(shù)量、加油單位、加油類型、是否新訂單、用戶編號(hào));④加油站表(加油站編號(hào)、名稱、地點(diǎn)、地名、詳細(xì)地址、品牌名、加油站類型、折扣、經(jīng)度、緯度、離當(dāng)前距離);⑤油價(jià)表(加油站編號(hào)、油名、單價(jià));⑥維護(hù)信息表(維護(hù)編號(hào)、里程數(shù)、油量、車燈狀態(tài)、發(fā)動(dòng)機(jī)狀態(tài)、變速箱狀態(tài)、時(shí)間、車牌號(hào))。由于這6張表承擔(dān)了系統(tǒng)中大部分的數(shù)據(jù)存儲(chǔ),因而它們的簡(jiǎn)化使得項(xiàng)目條理更加清晰,結(jié)構(gòu)更加嚴(yán)謹(jǐn)。

      3.4 數(shù)據(jù)交互

      服務(wù)器使用PHP編寫,客戶端與服務(wù)器端的交互采用HTTP協(xié)議(POST、GET方式)。在數(shù)據(jù)交互過程中采用 UTF-8格式編碼數(shù)據(jù),并使用JSON來組織數(shù)據(jù)傳輸,JSON易于傳送和編碼[8]。在用戶產(chǎn)生相應(yīng)操作后,客戶端會(huì)觸發(fā)向服務(wù)器的請(qǐng)求,服務(wù)器接收到請(qǐng)求后,根據(jù)請(qǐng)求在數(shù)據(jù)庫中查找相應(yīng)數(shù)據(jù),再把數(shù)據(jù)組織成JSON格式通過HTTP返回給客戶端??蛻舳私邮盏交貜?fù)后,將JSON數(shù)據(jù)解析組建成Model示例并存儲(chǔ)一份到本地緩存數(shù)據(jù)庫,然后展示數(shù)據(jù)。

      4 結(jié)語

      本文在介紹系統(tǒng)開發(fā)環(huán)境及關(guān)鍵技術(shù)的基礎(chǔ)上,詳細(xì)探討了基于iOS平臺(tái)的車聯(lián)網(wǎng)移動(dòng)應(yīng)用系統(tǒng)實(shí)現(xiàn)過程,該系統(tǒng)能夠?qū)崿F(xiàn)用戶管理、預(yù)約加油、實(shí)時(shí)地圖、車輛導(dǎo)航、車輛維護(hù)、音樂播放、違章查詢等功能,給用戶的車輛管理帶來了極大便利。經(jīng)測(cè)試,該車輛網(wǎng)移動(dòng)應(yīng)用系統(tǒng)運(yùn)行良好。但本系統(tǒng)也存在一些不足,如:系統(tǒng)安全性有待提高、容易被黑客利用和蓄意攻擊、在安全防護(hù)方面需深入研究、對(duì)于車輛的硬件管理過于薄弱,等等。這些都有待后續(xù)進(jìn)一步研究解決。

      參考文獻(xiàn):

      [1] 程剛,郭達(dá).車聯(lián)網(wǎng)現(xiàn)狀與發(fā)展研究[J].移動(dòng)通信,2011,35(17):23-26.

      [2] 楊雯.Swift 語言研究[J].電子技術(shù)與軟件工程,2015(11):254-255.

      [3] 倪天龍,張賢高,王培.數(shù)據(jù)庫SQLite在嵌入式系統(tǒng)中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(10):35-37.

      [4] 胡輝.IOS 環(huán)境下使用MVC模式進(jìn)行APP開發(fā)的設(shè)計(jì)思路探索[J].數(shù)字技術(shù)與應(yīng)用,2015(6):204-204.

      [5] 桑一梅.基于LAMP的高性能 Web服務(wù)器的架構(gòu)[J].電腦學(xué)習(xí),2010(6):44-46.

      [6] 岳琳.智能手機(jī)UI界面設(shè)計(jì)分析探討[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014,17(6):83-84.

      [7] 徐健,王濤.HTTP/1.1的分析[J].西南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2004,29(2):315-319.

      [8] 高靜,段會(huì)川.JSON 數(shù)據(jù)傳輸效率研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):2267-2270.endprint

      猜你喜歡
      車聯(lián)網(wǎng)車輛管理
      浙江省紹興市公安局車輛管理所 王劍文
      基于毫米波雷達(dá)的高速公路服務(wù)區(qū)車輛管理信息發(fā)布系統(tǒng)
      試析車輛管理工作中存在的問題及對(duì)策
      整合廣播資源,凝聚聲音優(yōu)勢(shì)
      車輛管理模式的創(chuàng)新研究
      無車承運(yùn)人業(yè)務(wù)模式下司機(jī)和車輛管理模式改革的探索
      汽車生產(chǎn)企業(yè)發(fā)展車聯(lián)網(wǎng)的優(yōu)勢(shì)與劣勢(shì)
      淺析車聯(lián)網(wǎng)中的無線通信技術(shù)應(yīng)用
      基于車聯(lián)網(wǎng)的交通信息采集與應(yīng)用研究
      中國(guó)車聯(lián)網(wǎng)產(chǎn)業(yè)鏈與商業(yè)模式研究
      商(2016年8期)2016-04-08 18:33:23
      屏东县| 汝阳县| 沁阳市| 七台河市| 岳西县| 通辽市| 宜宾县| 张家界市| 冷水江市| 仁化县| 马边| 民勤县| 柳江县| 岳阳市| 龙南县| 鄂州市| 铜山县| 怀宁县| 施秉县| 吉林省| 贞丰县| 调兵山市| 顺平县| 芒康县| 新沂市| 巩义市| 洛川县| 巴塘县| 沙湾县| 滦南县| 阿克陶县| 中宁县| 永兴县| 德保县| 连江县| 嘉义市| 通海县| 茶陵县| 象山县| 莱西市| 望谟县|