999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android社區(qū)巡檢系統(tǒng)APP的研究與實(shí)現(xiàn)

2021-07-06 02:10:28張藝帆林果園
關(guān)鍵詞:設(shè)置用戶信息

莊 富,張藝帆,林果園,3

(1.中國(guó)礦業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221116;2.礦山數(shù)字化教育部工程研究中心,江蘇 徐州 221116;3.南京大學(xué)軟件新技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210093)

0 引 言

社區(qū)治理是國(guó)家治理體系中的基礎(chǔ)性工程,是國(guó)家治理體系中的關(guān)鍵一環(huán)[1]。近年來(lái),國(guó)家提出“推進(jìn)國(guó)家治理體系和治理能力現(xiàn)代化”的戰(zhàn)略任務(wù),這給社區(qū)治理提出了挑戰(zhàn)。社區(qū)治理能力的高低關(guān)乎人民群眾的生活水平與質(zhì)量,關(guān)乎百姓的歸屬感和幸福感。

突如其來(lái)的新冠肺炎疫情席卷全球,全國(guó)上下投入到了疫情防控工作中,這無(wú)疑對(duì)社區(qū)治理能力是一次重大考驗(yàn)。互聯(lián)網(wǎng)的出現(xiàn)已經(jīng)徹徹底底改變了人們的日常生活。利用互聯(lián)網(wǎng),人們讓生活變得更加美好。為此,根據(jù)社區(qū)治理的實(shí)際需求開(kāi)發(fā)出適用于基層社區(qū)的“社區(qū)巡檢系統(tǒng)”,將傳統(tǒng)的社區(qū)安全巡邏結(jié)合互聯(lián)網(wǎng),實(shí)現(xiàn)突發(fā)事件信息的在線共享。不僅提高了突發(fā)事件信息的傳播速度,還能最大程度給相關(guān)管理部門(mén)在采取措施時(shí)提供更多的選擇,這一系統(tǒng)的應(yīng)用具有深遠(yuǎn)的意義。

1 系統(tǒng)的整體框架設(shè)計(jì)

1.1 整體架構(gòu)

基于Android的社區(qū)巡檢系統(tǒng)由基于Android的手機(jī)APP、服務(wù)端和后臺(tái)管理系統(tǒng)三部分組成(如圖1所示)。Android手機(jī)APP負(fù)責(zé)社區(qū)治安數(shù)據(jù)、基礎(chǔ)設(shè)施數(shù)據(jù)、消防安全數(shù)據(jù)、環(huán)境保護(hù)數(shù)據(jù)、文物保護(hù)數(shù)據(jù)和文化生活數(shù)據(jù)等的收集并實(shí)現(xiàn)對(duì)社區(qū)各類(lèi)突發(fā)事件信息的巡查上報(bào)。服務(wù)端負(fù)責(zé)對(duì)APP傳輸來(lái)的數(shù)據(jù)進(jìn)行封裝,并對(duì)數(shù)據(jù)進(jìn)行處理。后臺(tái)管理系統(tǒng)則對(duì)系統(tǒng)進(jìn)行權(quán)限、巡檢人員和巡檢人員上報(bào)的巡檢信息等方面的管理。

圖1 系統(tǒng)整體架構(gòu)

系統(tǒng)采用C/S和B/S相結(jié)合的方式[2],服務(wù)端與APP之間采用C/S模式,巡檢人員可以使用手機(jī)APP上傳和查看突發(fā)事件信息。服務(wù)端與后臺(tái)管理系統(tǒng)之間采用B/S模式,把服務(wù)端封裝的數(shù)據(jù)顯示在管理系統(tǒng)中。

1.2 APP端框架設(shè)計(jì)

基于Android的社區(qū)巡檢系統(tǒng)APP以Android Studio作為開(kāi)發(fā)平臺(tái)。Android Studio是谷歌推出的Android集成開(kāi)發(fā)工具,相比Eclipse ADT開(kāi)發(fā)環(huán)境,具有響應(yīng)速度快、UI更漂亮,強(qiáng)大的UI編輯功能的優(yōu)點(diǎn)[3]。APP與服務(wù)端通信采用http協(xié)議,使用Android網(wǎng)絡(luò)框架OkHttp[4]完成http協(xié)議的相關(guān)操作。OkHttp是目前安卓開(kāi)發(fā)中最火熱的輕量級(jí)框架,由于共享Socket,減少了對(duì)服務(wù)器的請(qǐng)求次數(shù),通過(guò)連接池,減少請(qǐng)求延遲,提高請(qǐng)求的效率。

使用OkHttp進(jìn)行網(wǎng)絡(luò)請(qǐng)求的步驟分為以下四點(diǎn)[5]:(1)創(chuàng)建一個(gè)OkHttpClient實(shí)例;(2)創(chuàng)建一個(gè)Request實(shí)例。創(chuàng)建Request實(shí)例時(shí),用戶可以根據(jù)需要發(fā)起Post請(qǐng)求或者Get請(qǐng)求。Post或者Get請(qǐng)求是HTTP協(xié)議中向后臺(tái)服務(wù)器發(fā)送數(shù)據(jù)的一種機(jī)制,是HTTP協(xié)議的一個(gè)組成部分;(3)使用OkHttpClient創(chuàng)建一個(gè)Call并執(zhí)行,獲取一個(gè)Response對(duì)象。可以根據(jù)同步或者異步需求,分別采用execute()方法或者enqueue()方法,實(shí)現(xiàn)不同的訪問(wèn)策略;(4)對(duì)Response進(jìn)行相關(guān)操作。通過(guò)以上四個(gè)步驟,一個(gè)應(yīng)用可以完成各種情況下的網(wǎng)絡(luò)訪問(wèn)。

1.3 服務(wù)端框架設(shè)計(jì)

服務(wù)端采用IntelliJ IDEA集成開(kāi)發(fā)環(huán)境和SSM[6](Spring+SpringMVC+MyBatis)框架集,數(shù)據(jù)庫(kù)采用MySQL數(shù)據(jù)庫(kù)系統(tǒng)。IntelliJ IDEA在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、J2EE支持、各類(lèi)版本工具(git、svn等)、JUnit、CVS整合、代碼分析、創(chuàng)新的GUI設(shè)計(jì)等方面被公認(rèn)為是最好的java開(kāi)發(fā)工具[7]。

Spring就像是整個(gè)項(xiàng)目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實(shí)體類(lèi)的構(gòu)造方法來(lái)實(shí)例化對(duì)象。SpringMVC在項(xiàng)目中攔截用戶請(qǐng)求,它的核心Servlet即Dispatcher Servlet承擔(dān)中介或是前臺(tái)這樣的職責(zé),將用戶請(qǐng)求通過(guò)Handler Mapping去匹配Controller,Controller就是具體對(duì)應(yīng)請(qǐng)求所執(zhí)行的操作。MyBatis是對(duì)JDBC的封裝,通過(guò)配置文件關(guān)聯(lián)到各實(shí)體類(lèi)的Mapper文件,Mapper文件中配置了每個(gè)類(lèi)對(duì)數(shù)據(jù)庫(kù)所需進(jìn)行的SQL語(yǔ)句映射。在每次與數(shù)據(jù)庫(kù)交互時(shí),通過(guò)SQLSessionFactory拿到一個(gè)SQLSession,再執(zhí)行SQL命令[5]。

2 系統(tǒng)功能

基于Android的社區(qū)巡檢系統(tǒng)APP由地圖瀏覽、巡檢上報(bào)、GPS、查看中心和設(shè)置中心五個(gè)模塊組成,每個(gè)模塊下有對(duì)應(yīng)的若干子模塊(如圖2所示)。

圖2 社區(qū)巡檢系統(tǒng)APP的基本功能

地圖瀏覽模塊包括地圖操作和圖層控制兩個(gè)子模塊。地圖操作是指對(duì)首頁(yè)用戶地圖進(jìn)行平移和縮放;圖層控制是指對(duì)地圖進(jìn)行顯隱控制。巡檢上報(bào)模塊包括表單采集、圖片采集、視頻采集和數(shù)據(jù)上報(bào)四個(gè)子模塊。表單采集包括對(duì)事件類(lèi)型信息的采集和事件描述信息的采集。事件類(lèi)型預(yù)先定義了50種,由用戶通過(guò)點(diǎn)擊下拉列表進(jìn)行選擇。

事件描述由用戶在文本框中手動(dòng)添加,內(nèi)容不超過(guò)100個(gè)漢字;圖片采集和視頻采集均可以通過(guò)攝像頭進(jìn)行新增也可以通過(guò)訪問(wèn)本地相冊(cè)進(jìn)行選擇,圖片數(shù)量不超過(guò)5張,視頻數(shù)量為1個(gè),視頻大小不超過(guò)200 M,時(shí)長(zhǎng)不超過(guò)1分鐘;數(shù)據(jù)上報(bào)分為成功和失敗兩種情況,成功情況下事件的類(lèi)型、描述和內(nèi)容等信息會(huì)上傳至服務(wù)器端,而失敗情況下事件的信息會(huì)暫存到本地,待網(wǎng)絡(luò)恢復(fù)后重新進(jìn)行上傳。GPS模塊包括實(shí)時(shí)定位和巡檢軌跡上報(bào)兩個(gè)子模塊。實(shí)時(shí)定位是指將巡檢人員當(dāng)前所在位置實(shí)時(shí)顯示在用戶地圖中并每隔一定時(shí)間間隔刷新一次,該時(shí)間間隔由用戶自己設(shè)置,默認(rèn)值為30 s;巡檢軌跡上報(bào)是指每隔一定時(shí)間間隔記錄下巡檢人員實(shí)時(shí)位置并上傳服務(wù)器端,由后臺(tái)管理系統(tǒng)畫(huà)出巡檢軌跡[8-11]。查看中心模塊包括查看列表、查看詳情和刪除事件三個(gè)子模塊。查看列表包括查看事件的時(shí)間、類(lèi)型和經(jīng)緯度等信息;查看詳情包括查看事件的時(shí)間、類(lèi)型、描述、經(jīng)緯度和圖片視頻等信息;刪除事件執(zhí)行的是將已保存到本地的事件信息進(jìn)行刪除的操作。

設(shè)置中心包括設(shè)置用戶昵稱(chēng)、設(shè)置服務(wù)器IP地址、設(shè)置定位時(shí)間間隔和設(shè)置照片質(zhì)量四個(gè)子模塊。設(shè)置用戶昵稱(chēng)是巡檢人員在系統(tǒng)中修改自己昵稱(chēng)的功能,昵稱(chēng)不作為巡檢人員身份的標(biāo)識(shí),巡檢人員可以多次修改自己的昵稱(chēng);正確連入服務(wù)器是成功上傳事件的前提,用戶首先要確保手機(jī)與服務(wù)器處在同一局域網(wǎng)下,然后再設(shè)置服務(wù)器IP地址;設(shè)置定位時(shí)間間隔是對(duì)巡檢人員進(jìn)行實(shí)時(shí)定位以及巡檢軌跡上報(bào)的關(guān)鍵,時(shí)間間隔由巡檢人員自己設(shè)置,單位為“秒/s”,默認(rèn)值為30 s;設(shè)置照片質(zhì)量設(shè)置的是巡檢人員在拍攝事件圖片時(shí)圖片的質(zhì)量,質(zhì)量分為高、中、低三個(gè)等級(jí),默認(rèn)值為高。

3 APP實(shí)現(xiàn)的關(guān)鍵技術(shù)

3.1 心跳周期檢測(cè)機(jī)制

為了保證服務(wù)端與APP端的正常連接,使得服務(wù)端能夠及時(shí)知道APP端何時(shí)掉線,該系統(tǒng)設(shè)計(jì)使用了Socket心跳周期檢測(cè)機(jī)制(如圖3所示)。

圖3 Socket心跳周期檢測(cè)機(jī)制

首先在服務(wù)端建立定時(shí)器并設(shè)置定時(shí)器的時(shí)間為60秒,定時(shí)發(fā)送心跳包給到APP端:timer=new Timer();Beat beat=new Beat(clients);timer. Schedule (beat, 1 000*60,beat.Interval);APP端收到心跳包后,立即發(fā)送心跳包給服務(wù)端,服務(wù)端收到APP端發(fā)來(lái)的心跳包后確認(rèn)APP端的連接可用,不執(zhí)行釋放socket相關(guān)的操作。當(dāng)服務(wù)端接收到APP端發(fā)送來(lái)的數(shù)據(jù)時(shí),心跳丟失計(jì)數(shù)清零:beatMissNum=0;如果服務(wù)端沒(méi)在規(guī)定的時(shí)間間隔即60秒內(nèi)收到APP端響應(yīng)的心跳包,服務(wù)端就認(rèn)為APP端的連接不可用,執(zhí)行釋放socket相關(guān)的操作:Server Thread st=clients. Get(i); St.Close()。Socket心跳周期檢測(cè)機(jī)制使得服務(wù)端能夠準(zhǔn)確地掌握APP端是否在線,保證了服務(wù)端和APP端的可靠連接。

3.2 視頻數(shù)據(jù)的處理

為了更好地描述事件的內(nèi)容信息,該系統(tǒng)支持巡檢人員上傳視頻。視頻可以通過(guò)使用攝像頭重新拍攝也可以訪問(wèn)本地相冊(cè)進(jìn)行選擇。視頻時(shí)長(zhǎng)為1分鐘,大小不超過(guò)200 M。

首先在APP端創(chuàng)建視頻上傳類(lèi)VideoUpload-Activity,在該類(lèi)中預(yù)先定義視頻路徑private String path="",然后通過(guò)方法:.isCamera(true)判斷是否點(diǎn)擊了拍照按鈕,如果點(diǎn)擊了直接開(kāi)始重新拍攝,如果沒(méi)有點(diǎn)擊則通過(guò)PictureMimeType.ofVideo()方法訪問(wèn)本地相冊(cè)中的視頻并過(guò)濾掉圖片和音頻文件。選擇本地視頻的時(shí)候要通過(guò)if (file.Length()>200*1 024*1 024) {"文件大于200 M";break;語(yǔ)句來(lái)進(jìn)行視頻文件大小的校驗(yàn)。視頻選擇完成后,通過(guò)VideoView.start()方法可以播放視頻。

然后在服務(wù)端創(chuàng)建接口類(lèi)uploadVideo,在接口類(lèi)中通過(guò)file.isEmpty()判斷文件是否為空,分別使用String fileName=file.getOriginalFilename(); String suffixName=fileName. Substring (fileName.lastIndexOf("."));String filePath="E:\study"來(lái)獲取文件名、文件后綴名和設(shè)置文件存儲(chǔ)路徑。視頻會(huì)在服務(wù)端以命名規(guī)則:SimpleDateFormat date Format=new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss”)重新命名。服務(wù)端會(huì)檢測(cè)是否存在該視頻目錄:if (! dest. getParentFile().exists())。如果目錄已存在,則通過(guò)dest. GetParentFile (). mkdirs ()新建文件夾。最后使用file.transferTo(dest)將視頻文件保存到服務(wù)端。

3.3 圖片和視頻數(shù)據(jù)的混合傳輸

事件的內(nèi)容包括圖片和視頻兩類(lèi)信息,圖片和視頻均可以通過(guò)攝像頭重新拍攝或者訪問(wèn)本地相冊(cè)進(jìn)行選擇。圖片數(shù)量至多為5張,視頻數(shù)量至多為1個(gè)。巡檢人員根據(jù)實(shí)際需要進(jìn)行上傳。在APP端新建事件添加類(lèi)AddEvent,在該類(lèi)中定義方法addContent用來(lái)添加事件的內(nèi)容信息。使用.open Gallery(PictureMimeType.ofAll())訪問(wèn)本地相冊(cè)中的圖片和視頻信息。當(dāng)選擇的是圖片信息時(shí)會(huì)使用語(yǔ)句:if (pathList.size() == 6) {Toast.makeText(AddEvent. This, "5張", Toast.LENGTH_SHORT).show();return;}來(lái)校驗(yàn)圖片的數(shù)量。通過(guò)方法:. isCamera(true)判斷是否點(diǎn)擊了拍照按鈕。圖片和視頻添加完畢后,視頻顯示的是縮略圖樣式,內(nèi)容保存的是視頻路徑,然后循環(huán)上傳:if (pathList.size()>1) {for (int i=0; i

3.4 傳輸過(guò)程中的斷點(diǎn)續(xù)傳

斷點(diǎn)續(xù)傳技術(shù)[12-14]指的是在下載或上傳時(shí),將下載或上傳任務(wù)(一個(gè)文件或一個(gè)壓縮包)人為地劃分為幾個(gè)部分,每一個(gè)部分采用一個(gè)線程進(jìn)行上傳或下載,如果遇到網(wǎng)絡(luò)故障,可以從已經(jīng)上傳或下載的部分開(kāi)始繼續(xù)上傳下載未完成的部分,而不必從頭開(kāi)始上傳下載。從而達(dá)到節(jié)省時(shí)間,提高速度的效果。

本系統(tǒng)使用OkHttp網(wǎng)絡(luò)框架實(shí)現(xiàn)斷點(diǎn)續(xù)傳技術(shù)。在APP端創(chuàng)建進(jìn)度下載Progress Downloader類(lèi),通過(guò)構(gòu)造方法client=getProgressClient()實(shí)現(xiàn)在下載、暫停后的繼續(xù)下載中復(fù)用同一個(gè)client對(duì)象。通過(guò)RandomAccessFile randomAccessFile=null方法來(lái)隨機(jī)訪問(wèn)文件,指定斷點(diǎn)續(xù)傳的起始位置。創(chuàng)建進(jìn)度響應(yīng)ProgressResponseBody類(lèi)來(lái)設(shè)置對(duì)外訪問(wèn)的進(jìn)度監(jiān)聽(tīng)。創(chuàng)建斷點(diǎn)續(xù)傳BreakpointContinuinglyActivity類(lèi),在該類(lèi)中使用breakPoints=totalBytes來(lái)存儲(chǔ)totalBytes即斷點(diǎn)位置,并用方法progressBar.setMax((int)(ContentLength/1024))記錄文件的總長(zhǎng)度。ContentLength表示斷點(diǎn)續(xù)傳后剩余部分的長(zhǎng)度。通過(guò)進(jìn)度下載類(lèi)Progress Downloader的復(fù)用client對(duì)象、進(jìn)度響應(yīng)類(lèi)ProgressResponseBody的進(jìn)度監(jiān)聽(tīng)、BreakpointContinuinglyActivity類(lèi)的記錄斷點(diǎn)位置和progressBar.setMax方法記錄文件總長(zhǎng)度,可以很好地實(shí)現(xiàn)傳輸過(guò)程中的斷點(diǎn)續(xù)傳功能。

4 APP的實(shí)用效果

4.1 事件信息的上傳

APP首頁(yè)會(huì)實(shí)時(shí)顯示巡檢員用戶當(dāng)前所在位置(如圖4所示),并根據(jù)用戶的設(shè)定,每隔一定時(shí)間間隔刷新一次(默認(rèn)時(shí)間間隔為30秒)。巡檢員用戶點(diǎn)擊首頁(yè)中的“添加事件”按鈕來(lái)進(jìn)行事件的上傳。添加事件時(shí)需要選擇對(duì)應(yīng)的“事件類(lèi)型”、添加相應(yīng)的“事件描述”和以拍照或錄像的方式添加“事件內(nèi)容”(如圖5所示)。

圖4 APP顯示巡檢員用戶當(dāng)前位置

圖5 巡檢員用戶在APP中添加事件

事件添加完畢后,巡檢員用戶點(diǎn)擊“發(fā)送事件”按鈕。在APP端和服務(wù)器端正常連接的條件下,事件信息將會(huì)上傳至服務(wù)器端并交由后臺(tái)管理系統(tǒng)處理。后臺(tái)管理系統(tǒng)在收到APP端巡檢員用戶上傳的事件信息后,會(huì)在地圖上顯示該用戶所在位置以及事件的信息。

事件信息包括用戶姓名、手機(jī)號(hào)、具體時(shí)間、GPS坐標(biāo)位置以及事件的圖片或視頻。

4.2 事件信息的管理

后臺(tái)管理系統(tǒng)管理員根據(jù)事件處理權(quán)限將APP端巡檢員用戶上傳的事件交由相關(guān)部門(mén)處理。相關(guān)部門(mén)在收到待交辦事件信息后會(huì)在規(guī)定時(shí)間內(nèi)做出反饋。APP端巡檢員用戶可以在APP端查看已經(jīng)上傳服務(wù)器并保存到本地的事件信息,并通過(guò)點(diǎn)擊事件來(lái)查看事件的詳情信息。詳情信息中包括了事件的記錄人、記錄人手機(jī)號(hào)、發(fā)生時(shí)間、發(fā)生地點(diǎn)、事件類(lèi)型、事件內(nèi)容、事件的圖片或視頻以及事件的交辦反饋進(jìn)度。

4.3 巡檢信息的管理

后臺(tái)管理系統(tǒng)管理員可以實(shí)時(shí)查看當(dāng)前正在巡檢的人員數(shù)量和位置。對(duì)于每個(gè)巡檢員用戶,后臺(tái)管理員還可以查看其巡檢軌跡并回演該巡檢用戶在一段時(shí)間內(nèi)的巡檢軌跡。通過(guò)APP端事件信息的上傳、服務(wù)器端事件信息的接收和后臺(tái)管理系統(tǒng)對(duì)事件信息的處理并將處理結(jié)果反饋給APP端巡檢員用戶,社區(qū)的突發(fā)事件將形成閉環(huán)管理,從而提高社區(qū)管理工作的質(zhì)量和效率。

4.4 數(shù)據(jù)的備份和恢復(fù)

后臺(tái)管理系統(tǒng)管理員可以對(duì)任意時(shí)間段的巡檢人員巡檢路線以及發(fā)生的事件進(jìn)行備份,同時(shí)可以導(dǎo)入備份文件,進(jìn)行還原。

數(shù)據(jù)庫(kù)備份時(shí)間段的起止時(shí)間由后臺(tái)管理系統(tǒng)管理員根據(jù)需要選填,當(dāng)數(shù)據(jù)庫(kù)完成備份后,對(duì)應(yīng)時(shí)間段的數(shù)據(jù)也將會(huì)被刪除。

5 結(jié)束語(yǔ)

新冠肺炎疫情的防控經(jīng)驗(yàn)告訴我們,信息是基層治理的基礎(chǔ),社區(qū)信息治理體系重構(gòu)要以社區(qū)為重,樹(shù)立數(shù)據(jù)服務(wù)生活、技術(shù)服務(wù)群眾、安全服務(wù)發(fā)展的信息治理理念,取之于社區(qū)、用之于社區(qū),通過(guò)社區(qū)內(nèi)各個(gè)治理主體的協(xié)同參與和全環(huán)節(jié)的流程再造,構(gòu)建基層社會(huì)治理體系中的信息治理共同體[15]。基于Android的社區(qū)巡檢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),進(jìn)一步促進(jìn)了社區(qū)信息治理體系的建設(shè)與發(fā)展。

通過(guò)巡檢系統(tǒng)對(duì)社區(qū)的各項(xiàng)數(shù)據(jù)進(jìn)行收集,實(shí)現(xiàn)社區(qū)的全面監(jiān)測(cè),大大降低了手工記錄的工作量,提高了工作效率。該系統(tǒng)目前已成功應(yīng)用于江蘇省徐州市銅山區(qū)漢王鎮(zhèn)的社區(qū)管理工作,取得了不錯(cuò)的效果,并且應(yīng)用會(huì)越來(lái)越廣泛。

猜你喜歡
設(shè)置用戶信息
中隊(duì)崗位該如何設(shè)置
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
關(guān)注用戶
關(guān)注用戶
關(guān)注用戶
本刊欄目設(shè)置說(shuō)明
中俄臨床醫(yī)學(xué)專(zhuān)業(yè)課程設(shè)置的比較與思考
如何獲取一億海外用戶
展會(huì)信息
地鐵出入段線轉(zhuǎn)換軌設(shè)置
主站蜘蛛池模板: 亚洲精品欧美重口| 国产亚洲欧美日韩在线一区| 午夜日b视频| 97se综合| 亚洲精品在线观看91| 2018日日摸夜夜添狠狠躁| 露脸真实国语乱在线观看| 久综合日韩| 97在线免费视频| 久久黄色小视频| 中文字幕波多野不卡一区| 五月婷婷亚洲综合| 国产91小视频在线观看| 91系列在线观看| 欧美日本二区| 999精品免费视频| 制服丝袜一区| 亚国产欧美在线人成| 在线精品亚洲国产| 亚洲欧美日韩中文字幕在线一区| 婷五月综合| 色欲不卡无码一区二区| 一级做a爰片久久毛片毛片| 91热爆在线| 日韩国产精品无码一区二区三区| 98超碰在线观看| 亚洲三级影院| 91午夜福利在线观看| 任我操在线视频| 精品三级网站| 国产一级在线观看www色| 久热中文字幕在线| 国产毛片片精品天天看视频| 免费网站成人亚洲| 91麻豆国产视频| 一本一道波多野结衣一区二区 | 91国内在线视频| 亚洲天堂日韩在线| 91精品福利自产拍在线观看| 亚洲综合久久成人AV| 国产肉感大码AV无码| 欧美在线一二区| 91在线高清视频| 精品视频一区二区三区在线播| 日本午夜精品一本在线观看 | 欧美伦理一区| 人妻精品久久无码区| 亚洲人妖在线| YW尤物AV无码国产在线观看| 久久久久夜色精品波多野结衣| 中文字幕日韩视频欧美一区| 欧美成一级| 亚洲国产午夜精华无码福利| 日本成人在线不卡视频| 黑色丝袜高跟国产在线91| 少妇精品久久久一区二区三区| 国产一级毛片高清完整视频版| 亚洲综合色在线| 91蜜芽尤物福利在线观看| 国产在线观看一区精品| 成年A级毛片| 色综合天天娱乐综合网| 一级毛片在线播放| www.精品视频| 久青草国产高清在线视频| 一区二区午夜| 免费欧美一级| 亚洲综合色婷婷中文字幕| 国产成人免费手机在线观看视频| 国产美女免费| 在线a视频免费观看| 看看一级毛片| 黄色网页在线观看| a级毛片在线免费观看| 亚洲国产亚洲综合在线尤物| 欧美a在线看| 日韩国产一区二区三区无码| 国产精品99一区不卡| 精久久久久无码区中文字幕| 国内精品小视频福利网址| 久久黄色视频影| 国产精品香蕉在线|