• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Hybrid App開發(fā)框架的實(shí)現(xiàn)及性能優(yōu)化①

    2017-07-19 12:27:20賈軍營(yíng)張大成
    關(guān)鍵詞:差量離線校驗(yàn)

    賈軍營(yíng), 張大成,2, 高 春

    1(中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168)

    2(中國(guó)科學(xué)院大學(xué),北京 100049)

    3(遼寧大學(xué),沈陽(yáng) 110036)

    Hybrid App開發(fā)框架的實(shí)現(xiàn)及性能優(yōu)化①

    賈軍營(yíng)1, 張大成1,2, 高 春3

    1(中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168)

    2(中國(guó)科學(xué)院大學(xué),北京 100049)

    3(遼寧大學(xué),沈陽(yáng) 110036)

    Hybrid App融合了Native開發(fā)和Web開發(fā)的優(yōu)勢(shì), 其開發(fā)方式在移動(dòng)應(yīng)用開發(fā)和桌面應(yīng)用開發(fā)中所占的比重越來(lái)越大. 本文實(shí)現(xiàn)了WebView和Native的雙向通信機(jī)制, 建立了Hybrid App的開發(fā)框架, 并通過(guò)對(duì)Web數(shù)據(jù)進(jìn)行本地離線存儲(chǔ), 對(duì)Web文件采用基于字節(jié)流的差量更新的方式對(duì)框架進(jìn)行優(yōu)化. 最后對(duì)開發(fā)框架和優(yōu)化機(jī)制進(jìn)行了實(shí)際測(cè)試, 采集數(shù)據(jù)并進(jìn)行分析, 實(shí)驗(yàn)結(jié)果表明開發(fā)框架和優(yōu)化機(jī)制具有實(shí)用性和可行性.

    Hybrid App; 離線緩存; 差量更新; 優(yōu)化機(jī)制

    Hybrid App兼具Web App跨平臺(tái)的優(yōu)勢(shì)和Native原生應(yīng)用擁有良好的交互體驗(yàn)的優(yōu)勢(shì). 目前Hybrid App開發(fā)方式有兩類, 第一類通過(guò)第三方中間件平臺(tái)實(shí)現(xiàn), 比如借助PhoneGap或者Ionic[1,2]. 第二類是在移動(dòng)端或者PC端軟件中嵌入一個(gè)或者多個(gè)WebView, 并實(shí)現(xiàn)WebView和Native的雙向通信, 使得WebView具有訪問(wèn)本地硬件和本地代碼的能力, 同時(shí)Native也具有訪問(wèn)WebView中JavaScript代碼的能力. 本文實(shí)現(xiàn)的Hybrid App框架和優(yōu)化方案基于課題組的融合通信項(xiàng)目, 該項(xiàng)目具有Andorid, IOS和Windows三個(gè)終端. 為了提高各終端開發(fā)效率, 在已有框架基礎(chǔ)上引入Hybrid App開發(fā)方式, 最終使得三個(gè)終端的界面用一套Web文件來(lái)展現(xiàn). 由于在PhoneGap等平臺(tái)中提供了大量的本地能力封裝機(jī)制, 既增加軟件的復(fù)雜度, 又降低了引入后軟件的效率, 而在融合通信系統(tǒng)Web和Native交互的過(guò)程中,Native提供的API主要由融合通信系統(tǒng)中已經(jīng)成熟的業(yè)務(wù)邏輯模塊提供, 所以在項(xiàng)目改進(jìn)過(guò)程中只需實(shí)現(xiàn)一個(gè)輕量級(jí)的Hybrid App框架[3,4], 而不需要引入第三方平臺(tái).

    正文中首先介紹了Native和WebView的雙向交互機(jī)制, 在此基礎(chǔ)上實(shí)現(xiàn)了Hybrid開發(fā)基本框架, 并針對(duì)該框架設(shè)計(jì)和實(shí)現(xiàn)了優(yōu)化方案, 最后對(duì)框架和優(yōu)化方案進(jìn)行測(cè)試. 在設(shè)計(jì)優(yōu)化機(jī)制的過(guò)程中參考了HTML5技術(shù). 目前HTML5的manifest機(jī)制提供了Web文件的離線訪問(wèn), HTML5的Localstorage機(jī)制提供了數(shù)據(jù)緩存的功能. 但其均存在不足, 當(dāng)Web文件被改改動(dòng), manifest發(fā)生改變, 其中所有定義的緩存文件全部重新以全量的方式獲取, 消耗流量, 而且控制不夠靈活. Localstorage提供了非常易用的API, 通過(guò)setItem,getItem, removeItem, clear四個(gè)接口可以實(shí)現(xiàn)數(shù)據(jù)離線存儲(chǔ), 但是按照目前標(biāo)準(zhǔn), 存儲(chǔ)空間太小, 瀏覽器只給每個(gè)獨(dú)立的域名提供5M的存儲(chǔ)空間. 雖然HTML5還提供了Web SQL Database, 它擁有一套使用SQL語(yǔ)句操作客戶端數(shù)據(jù)庫(kù)的API, 在本地建立輕量級(jí)的數(shù)據(jù)庫(kù), 但此規(guī)范工作已經(jīng)停止. 綜上, 借鑒manifest和Localstorage機(jī)制, 利用Hybrid app的Native端的優(yōu)勢(shì), 在Hybrid App開發(fā)框架的基礎(chǔ)上設(shè)計(jì)了一套數(shù)據(jù)離線緩存和Web文件增量更新方案, 提高了hybrid App應(yīng)用的性能和效率.

    1 Hybrid App開發(fā)框架

    1.1 在軟件中嵌入WebView

    Hybrid App開發(fā)框架需要引入WebView層. Chromium Embedded Framework (CEF)是基于Google Chromium項(xiàng)目實(shí)現(xiàn)的一個(gè)Web控件, 下面以Windows端嵌入CEF為例. 首先設(shè)計(jì)一個(gè)CWebClient類, 這個(gè)類主要完成對(duì)瀏覽器事件的回調(diào)處理. 該類需要繼承CefClient和各種消息處理接口, 消息處理主要包括CefKeyboardHandler類提供的鍵盤輸入相關(guān)的回調(diào)處理, CefLoadHandler提供的瀏覽器頁(yè)面加載狀態(tài)的回調(diào)處理, CefFocusHandler提供的焦點(diǎn)相關(guān)的回調(diào)處理,CefLifeSpanHandler提供的頁(yè)面周期回調(diào)接口等. 然后將CWebClient類對(duì)象作為參數(shù)傳入CefBrowser::Create Browser生成CEF實(shí)例并顯示. 瀏覽器創(chuàng)建后, CefBrowser類用于對(duì)WebView進(jìn)行控制, CefBrowser對(duì)象可以在cef窗口創(chuàng)建完成后由CefLifeSpanHandler接口中的OnAfterCreated函數(shù)的參數(shù)中獲取.

    1.2 Web和native交互通信機(jī)制

    Hybrid App開發(fā)框架的核心是native和Web的交互通信機(jī)制. 通信機(jī)制可以使得WebView中的Web頁(yè)面通過(guò)javascript函數(shù)訪問(wèn)native的中封裝的接口API, 同樣native也可以訪問(wèn)WebView中的javascript接口API.

    1.2.1 Native調(diào)用Web

    Windows下基于cef的WebView調(diào)用方式如下:

    frame->ExecuteJavaScript(“alert(‘ok’)”, “”, 0); 其中frame為CefFrame實(shí)例. CefFrame實(shí)例可以通過(guò)CefBrowser對(duì)象實(shí)例獲取.

    Adroid平臺(tái)和IOS平臺(tái)對(duì)于Native調(diào)用Web端的javascript代碼都有很好的原生支持.

    Adroid中調(diào)用的方式如下, WebView.loadUrl("javascript:(function(){alert('ok');})()");其中Webview是WebView的實(shí)例.

    IOS中的調(diào)用方式如下,

    {WebView stringByEvaluatingJavaScriptFromSt

    ring: @"alert('ok')"};其中WebView是UIWebview的實(shí)例.

    1.2.2 Web調(diào)用Native

    Windows中CEF可以通過(guò)重寫CefV8Handler接口的方式實(shí)現(xiàn)本地的回調(diào).

    Android中可以通過(guò)重寫WebChromeClient.onJsPrompt, onJsConfirm, 或onJsAler來(lái)實(shí)現(xiàn).

    IOS中可以通過(guò)監(jiān)控WebView的URL變化實(shí)現(xiàn)Web端調(diào)用Native.

    1.3 Web和native通信的Bridge

    綜上, 針對(duì)windows, android, ios三個(gè)平臺(tái)分別設(shè)計(jì)三個(gè)通信Bridge[11], 通過(guò)Bridge連接Web端和native端, 實(shí)現(xiàn)Web與Native的雙向通信[5]. Bridge提供四個(gè)接口, 如表1所示, native的原生代碼和Web端的javascript代碼可以通過(guò)這四個(gè)接口進(jìn)行雙向通信, 在通信過(guò)程中, 函數(shù)名和參數(shù)被封裝在JSON字符串中.當(dāng)Web向native發(fā)送請(qǐng)求時(shí), Web端的javascript代碼通過(guò)調(diào)用SendToNative來(lái)向native發(fā)送請(qǐng)求的JSON字符串, native得到請(qǐng)求之后解析JSON串, 得到函數(shù)名和參數(shù), 并執(zhí)行本地響應(yīng)的API操作, 完成后natvie端通過(guò)調(diào)用JsCallback將結(jié)果返回給Web端. Natvie請(qǐng)求Web端的過(guò)程相類似. Web和Native通過(guò)Bridge進(jìn)行通信的時(shí)序圖如圖1所示.

    表1 Bridge的四個(gè)函數(shù)接口

    圖1 Web和native雙向通信機(jī)制

    2 數(shù)據(jù)離線存儲(chǔ)機(jī)制

    通訊錄信息, 群組成員信息, 通話記錄等信息的獲取會(huì)增加帶寬開銷, 為了節(jié)省帶寬, 可以將以上數(shù)據(jù)進(jìn)行本地緩存[7]. 基于Web和native通信, 可以實(shí)現(xiàn)以上功能.

    離線數(shù)據(jù)以key/value鍵值對(duì)的形式進(jìn)行存儲(chǔ), 為了實(shí)現(xiàn)這樣的功能, 設(shè)計(jì)八個(gè)接口, 如表2所示. 同時(shí),在native端封裝對(duì)數(shù)據(jù)庫(kù)的操作, 當(dāng)Web端將數(shù)據(jù)通過(guò)json傳遞到本地后, native解析出key/value, 并將其寫入數(shù)據(jù)庫(kù). 以存儲(chǔ)離線數(shù)據(jù)接口CacheStore為例, Web側(cè)實(shí)現(xiàn)如下代碼即可實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的功能:

    表2 離線存儲(chǔ)的八個(gè)接口

    3 Web文件差量更新機(jī)制

    3.1 Rsync算法

    Web文件主要包括html, css, javascript文件, 為了節(jié)省帶寬, 提高加載速度, 將這些文件進(jìn)行離線存儲(chǔ), 當(dāng)Web文件發(fā)生改變時(shí), 采用差量更新的方式去得到新文件. 本文實(shí)現(xiàn)的Web文件差量更新機(jī)制基于rsync算法[6-8], 該同步算法可以將兩臺(tái)計(jì)算機(jī)中的內(nèi)容不同的文件進(jìn)行同步, 使之相同. 使用此算法的原因在于其滾動(dòng)校驗(yàn)和及三級(jí)匹配校驗(yàn)和機(jī)制能保證在服務(wù)器端快速的生成差量信息包. Rsync算法的主要流程是: 機(jī)器A將Old文件分塊并計(jì)算校驗(yàn)和序列, 將序列發(fā)送給機(jī)器B, 機(jī)器B通過(guò)New文件和A發(fā)送過(guò)來(lái)的校驗(yàn)和序列,產(chǎn)生差異包, 再將差異信息包發(fā)回給A, A通過(guò)差異信息包和Old文件生成New文件. 機(jī)器A和機(jī)器B進(jìn)行文件同步主要步驟如下[9]:

    1) 機(jī)器A將文件Fold進(jìn)行分割, 得到一系列的字節(jié)塊Bi, 假設(shè)塊大小為m節(jié). 則Bi=Fold[im, (i+1)m-1], 其中最后一個(gè)塊可能會(huì)小于m個(gè)字節(jié).

    3) 機(jī)器A將校驗(yàn)和序列發(fā)送給機(jī)器B.

    4) 機(jī)器B建立一個(gè)哈希值為16位, 表長(zhǎng)度為2^16的哈希表. 將每個(gè)塊生成的校驗(yàn)序列(Ui, Ri)插入到哈希表中, 其中每個(gè)塊的Ri映射為16位并作為主鍵. 此時(shí)哈希表中的每一項(xiàng)指向的是擁有相同hash值的校驗(yàn)和列表的第一個(gè)元素.

    5) 機(jī)器B從Fnew第一個(gè)字節(jié)開始, 通過(guò)三級(jí)匹配機(jī)制進(jìn)行檢索[10], 依次計(jì)算長(zhǎng)度為S字節(jié)的塊的32位滾動(dòng)若校驗(yàn)和并映射為16位的哈希值, 如果哈希值對(duì)應(yīng)的哈希表項(xiàng)非空, 且在Fold生成的哈希字典對(duì)應(yīng)的列表項(xiàng)存在相同的弱校驗(yàn)和, 則再比較MD5強(qiáng)校驗(yàn)和, 如果相等, 則認(rèn)為找到了匹配塊.

    6) 如果找到了匹配塊, 差量信息字段中將插入兩部分內(nèi)容, 第一部分為上一次匹配位置和當(dāng)前位置之間的未匹配的數(shù)據(jù)內(nèi)容, 第二部分為當(dāng)前匹配成功的b塊的索引信息. 跳轉(zhuǎn)步驟5, 搜索匹配塊的工作會(huì)從當(dāng)前匹配塊重新啟動(dòng).

    7) 如果某個(gè)位置開始沒有找到匹配, 就會(huì)前進(jìn)一個(gè)字節(jié), 跳轉(zhuǎn)步驟5繼續(xù)搜索匹配的塊.

    8) 如果Fnew整個(gè)文件搜索完畢, 機(jī)器B將差量信息發(fā)送給機(jī)器A.

    9) 機(jī)器A根據(jù)差量信息和Fold生成Fnew.

    3.2 算法的重要細(xì)節(jié)

    在rsync算法中使用的弱滾動(dòng)校驗(yàn)和算法基于Mark Adler的Adler32校驗(yàn)算法: 此算法根據(jù)的校驗(yàn)和和X1, Xn+1的字節(jié)流值可以簡(jiǎn)單快速地計(jì)算出的校驗(yàn)和. 校驗(yàn)算法如公式(1)(2)(3)所示.

    3.3 對(duì)rsync算法進(jìn)行改進(jìn):

    由于Rsync算法用于同步兩臺(tái)機(jī)器中的一個(gè)文件.本文對(duì)Rsync算法從兩個(gè)方面進(jìn)行進(jìn)行改進(jìn).

    1) 由于服務(wù)器端保存著與客戶端相同的舊版本文件, 所以在服務(wù)器端分割舊版本文件并生成校驗(yàn)和序列, 這樣避免了客戶端計(jì)算和傳輸校驗(yàn)和序列的開銷.

    2) 由于Web文件為多個(gè)文件, 為了對(duì)不同版本的多個(gè)Web文件進(jìn)行管理, 引入版本號(hào)機(jī)制. 將同一時(shí)間的多個(gè)文件設(shè)定為相同版本.

    當(dāng)某個(gè)或者多個(gè)Web文件被修改, Web文件版本號(hào)增1, 并對(duì)過(guò)去版本的Web文件在服務(wù)器端生成對(duì)應(yīng)版本的差量更新文件deltaXtoY, 其中X為低版本號(hào), Y為高版本號(hào), deltaXtoY包括更新文件列表和每個(gè)列表項(xiàng)對(duì)應(yīng)的文件的增量更新信息, 文件列表對(duì)應(yīng)全部的Web文件, 每個(gè)列表項(xiàng)對(duì)應(yīng)一個(gè)Web文件. 服務(wù)器端生成每個(gè)列表項(xiàng)的增量信息的過(guò)程如圖2所示.

    圖2 生成每個(gè)列表項(xiàng)的增量信息的過(guò)程

    當(dāng)客戶端啟動(dòng), 獲取最新的Web文件版本號(hào), 檢測(cè)自己當(dāng)前版本是否為最新, 如果不是, 則下載對(duì)應(yīng)的差量更新包, 得到差量deltaXtoY后與本地的低版本的Web文件一起生成最新版本的Web文件. 當(dāng)服務(wù)器沒有對(duì)應(yīng)版本的差量更新包, 則進(jìn)行全量更新. 對(duì)于每個(gè)文件的增量更新過(guò)程如圖3所示. 舊文件根據(jù)對(duì)應(yīng)的差量更新列表項(xiàng)的差量信息, 生成新的文件, 合并過(guò)程會(huì)讀取增量更新信息中的索引信息和數(shù)據(jù)信息, 并將根據(jù)索引信息在Fold中提取數(shù)據(jù)塊, 生成新文件的JavaScipt代碼如下:

    圖3 客戶端差量更新過(guò)程

    假設(shè)服務(wù)器Web文件版本為6, 其中有一個(gè)js文件test.js, 其僅有一行數(shù)據(jù)if(jsonObj.hisTag == ‘end’), 將這行數(shù)據(jù)修改為if(jsonObj.hisTag != ‘end’). 設(shè)塊長(zhǎng)度為4, 則對(duì)文件版本6可以分為6塊, 如表3所示.

    表3 舊版本數(shù)據(jù)分塊

    在服務(wù)器端, 通過(guò)對(duì)test.js, 進(jìn)行三級(jí)匹配機(jī)制查找, 最終增量文件表示為數(shù)組: [1, 2, 3, “ag !=”, 5, 6], 對(duì)應(yīng)的數(shù)據(jù)塊如表4所示. 進(jìn)一步簡(jiǎn)化, 可用一個(gè)數(shù)組表示為[[1, 3], “ag !=”, [5, 2]]. 由于只有這一個(gè)文件被修改, 最終得到的差量信息delta6to7中的文件列表只有一項(xiàng), 這一項(xiàng)的文件名為test.js, 對(duì)應(yīng)文件的差量信息為[[1, 3], “ag !=”, [5, 2]]. 在客戶端, 假設(shè)當(dāng)前Web文件版本為6, 則獲取到delta6to7更新信息, 通過(guò)與test.js合并,從test.js就文件中提取出block1, block2, block3, block5,block6, 5個(gè)數(shù)據(jù)塊, 并與新數(shù)據(jù)“ag !=”合并, 得到新的test.js為: block1+block2+block3+“ag !=”+block5+block6.

    4 測(cè)試及結(jié)果分析

    4.1 測(cè)試Hybrid開發(fā)框架

    在Hybrid開發(fā)框架的基礎(chǔ)上, 將軟件的界面設(shè)計(jì)通過(guò)Web方式實(shí)現(xiàn), 三個(gè)平臺(tái)的應(yīng)用采用一套Web文件進(jìn)行描述, 實(shí)現(xiàn)了軟件界面的集中開發(fā)和集中調(diào)試, 軟件界面如圖4和圖5所示. 當(dāng)用用戶通過(guò)語(yǔ)音通話界面和消息發(fā)送界面與應(yīng)用交互, Web端會(huì)調(diào)用Native的業(yè)務(wù)邏輯, 本地在執(zhí)行業(yè)務(wù)邏輯的過(guò)程中實(shí)時(shí)的將狀態(tài)回調(diào)給WebView, WebView更新界面. 同時(shí)客戶端中將通話記錄進(jìn)行緩存, 每次從本地加載通話記錄, 如圖6所示.

    表4 新版本數(shù)據(jù)分塊

    圖4 PC端軟件界面

    4.2 測(cè)試離線緩存機(jī)制[12]

    本地緩存主要節(jié)省了客戶端與服務(wù)器建立連接和傳輸數(shù)據(jù)的時(shí)間, 試驗(yàn)中在帶寬為200KB/s的帶寬環(huán)境下采集了13次數(shù)據(jù), 每次分別從本地和服務(wù)器重復(fù)三次獲取相同字節(jié)大小的數(shù)據(jù), 獲取時(shí)間時(shí)為從發(fā)起請(qǐng)求到數(shù)據(jù)接收完畢, 單位為毫秒, 計(jì)算平均時(shí)間并記錄.其中從服務(wù)器獲取數(shù)據(jù)通過(guò)jquery的AJAX方法獲取信息流, 服務(wù)器端采用mysql數(shù)據(jù)庫(kù), 客戶端緩存數(shù)據(jù)從sqlite數(shù)據(jù)庫(kù)中讀取. 實(shí)驗(yàn)數(shù)據(jù)中可以分析出以下趨勢(shì):如圖7所示, 從服務(wù)器獲取數(shù)據(jù)需要一定建立連接的時(shí)間, 隨著獲取數(shù)據(jù)量的增多, 獲取時(shí)間逐漸受到網(wǎng)速的限制, 同時(shí)網(wǎng)絡(luò)狀況也會(huì)影響獲取數(shù)據(jù)的時(shí)間. 從本地?cái)?shù)據(jù)庫(kù)獲取數(shù)據(jù)所需的時(shí)間基本是隨著數(shù)據(jù)量增多,呈線性增長(zhǎng)的, 相比服務(wù)器時(shí)間更短.

    圖5 Android端軟件界面

    圖6 通話記錄界面

    圖7 數(shù)據(jù)的不同獲取方式的獲取時(shí)間對(duì)比

    表5 數(shù)據(jù)的獲取時(shí)間

    4.3 測(cè)試差量更新機(jī)制

    通過(guò)對(duì)服務(wù)器端test.js進(jìn)行10次修改, 產(chǎn)生了10個(gè)不同的版本. 每次的具體修改信息如表格所示. 全量更新所需的傳輸流量為新文件大小, 差量更新為差量信息包的大小, 服務(wù)器端rsync算法劃分?jǐn)?shù)據(jù)塊的大小為700字節(jié). 則每次傳輸?shù)臄?shù)據(jù)量如圖7所示. 橫軸表示文件的版本, 縱軸標(biāo)識(shí)需要傳輸?shù)臄?shù)據(jù)大小. 如圖8所示,位于上方的折線標(biāo)識(shí)每次全量更新需要傳輸?shù)淖止?jié),位于下方的折線標(biāo)識(shí)差量更新需要傳輸?shù)淖止?jié). 可以通過(guò)分析得出如下趨勢(shì): 增量信息包的大小與修改文件的位置, 修改文件的內(nèi)容, 塊劃分大小有一定的關(guān)系,比如增加已有的內(nèi)容, 增量信息包體積小一些, 因?yàn)樾挛募械臄?shù)據(jù)塊會(huì)在舊文件中的數(shù)據(jù)塊中找到匹配.通過(guò)10次信息對(duì)比, 每次增量包的大小基本都與全量數(shù)據(jù)大小相差100倍. 相對(duì)全量更新節(jié)省99%的流量消耗, 同時(shí)提高傳輸時(shí)間.

    圖8 Web文件全量更新和差量更新需要傳輸?shù)臄?shù)據(jù)量對(duì)比

    表6 test.js的各個(gè)版本的具體信息

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

    本文通過(guò)設(shè)計(jì)Hybrid開發(fā)框架, 屏蔽了各終端的差異, 將客戶端中的原生界面設(shè)計(jì)工作轉(zhuǎn)移到Web界面的設(shè)計(jì), 提高了開發(fā)效率. 同時(shí)對(duì)Hybrid開發(fā)框架進(jìn)行優(yōu)化, 提高了Hybrid應(yīng)用的頁(yè)面加載速度, 節(jié)省了帶寬. 綜上, 本文設(shè)計(jì)的Hybrid開發(fā)框架具有實(shí)用性和可行性, 同時(shí)優(yōu)化方案對(duì)其他Hybrid開發(fā)方案具有一定的參考價(jià)值.

    1顧學(xué)海, 胡牧, 蔣厚明, 等. 基于HTML5的混合移動(dòng)應(yīng)用開發(fā). 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2016, 25(5): 236–239.

    2潘春華, 李俊杰, 向花, 等. 基于PhoneGap的智能手機(jī)跨平臺(tái)應(yīng)用. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2014, 23(7): 106–109.

    3李張永, 陳和平, 顧進(jìn)廣. 跨平臺(tái)移動(dòng)Web開發(fā)框架與數(shù)據(jù)交互方法. 計(jì)算機(jī)工程與設(shè)計(jì), 2014, 35(5): 1827–1832.

    4徐隆龍, 李瑩, 白靜. 移動(dòng)混合開發(fā)框架. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2014, 23(12): 53–59. [doi: 10.3969/j.issn.1003-3254.2014.12.009]

    5施偉, 王碩蘋, 郭鳴, 等. 跨平臺(tái)移動(dòng)應(yīng)用中間適配層設(shè)計(jì)與實(shí)現(xiàn). 計(jì)算機(jī)工程與應(yīng)用, 2014, 50(16): 39–44. [doi: 10.3778/j.issn.1002-8331.1208-0481]

    6呂瀛, 劉杰, 馬志柔, 等. 一種云存儲(chǔ)服務(wù)客戶端增量同步算法. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2014, 23(10): 152–157. [doi: 10.3969/j.issn.1003-3254.2014.10.026]

    7童麗霞, 何加銘, 陳懇, 等. 基于HTML5技術(shù)的Widget引擎內(nèi)容緩存模型及實(shí)現(xiàn). 計(jì)算機(jī)應(yīng)用研究, 2011, 28(12):4625–4628. [doi: 10.3969/j.issn.1001-3695.2011.12.058]

    8Tridgell A, Mackerras P. The rsync algorithm. Canberra,Australia: Australian National University, 1996.

    9Irmak U, Mihaylov S, Suel T. Improved single-round protocols for remote file synchronization. Proc. IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Miami, FL, USA. 2005.1665–1676.

    10Gupta D, Sagar K. Remote file synchronization single-round algorithms. International Journal of Computer Applications,2010, 4(1): 32–36. [doi: 10.5120/ijca]

    11徐凱. 跨終端Web. 北京: 電子工業(yè)出版社, 2014.

    12羅圣美, 王蔚, 任文慧. 兩種移動(dòng)應(yīng)用開發(fā)框架的性能測(cè)試比較——基于PhoneGap和Titanium. 中興通訊技術(shù), 2013,19(3): 44–47.

    Implementation and Performance Optimization of Hybrid App Development Framework

    JIA Jun-Ying1, ZHANG Da-Cheng1,2, GAO Chun3

    1(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)
    2(University of Chinese Academy of Sciences, Beijing 100049, China)
    3(Liaoning University, Shenyang 110036, China)

    The Hybrid App combines the advantages of Native development and Web development, which takes more and more proportions in the mobile application development and desktop application development. This paper realizes bidirectional communication mechanism between WebView and Native, set up development framework for Hybrid App,and optimizes the performance of Hybrid App by means of off-line storage for Web data and delta update based on byte stream for Web files. Finally, the development framework and optimization mechanism are actually tested and the collected data are analyzed, and the experimental results reveal that development framework and optimization mechanism have good feasibility and practicability.

    Hybrid App; offline cache; delta update; optimization mechanism

    賈軍營(yíng),張大成,高春.Hybrid App開發(fā)框架的實(shí)現(xiàn)及性能優(yōu)化.計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(7):130–136. http://www.c-s-a.org.cn/1003-3254/5839.html

    2016-11-01; 收到修改稿時(shí)間: 2017-01-04

    猜你喜歡
    差量離線校驗(yàn)
    基于差量特征與AdaBoost的家用負(fù)荷識(shí)別方法研究
    異步電機(jī)離線參數(shù)辨識(shí)方法
    呼吸閥離線檢驗(yàn)工藝與評(píng)定探討
    淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
    離線富集-HPLC法同時(shí)測(cè)定氨咖黃敏膠囊中5種合成色素
    中成藥(2018年2期)2018-05-09 07:20:09
    巧用差量法解題
    爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
    差量法在化學(xué)計(jì)算中的應(yīng)用
    大型電動(dòng)機(jī)高阻抗差動(dòng)保護(hù)穩(wěn)定校驗(yàn)研究
    基于加窗插值FFT的PMU校驗(yàn)方法
    久久久久久久久久黄片| 最近视频中文字幕2019在线8| 国产极品天堂在线| 国产一区二区三区av在线 | av在线播放精品| 好男人视频免费观看在线| 一本久久中文字幕| 秋霞在线观看毛片| 晚上一个人看的免费电影| 久久人妻av系列| 久久这里有精品视频免费| 赤兔流量卡办理| 两性午夜刺激爽爽歪歪视频在线观看| 国产毛片a区久久久久| 免费av观看视频| 午夜视频国产福利| 国产探花极品一区二区| 九草在线视频观看| 伦理电影大哥的女人| 婷婷精品国产亚洲av| 亚洲第一区二区三区不卡| 草草在线视频免费看| 成人漫画全彩无遮挡| 能在线免费观看的黄片| 亚洲一区高清亚洲精品| 一级黄片播放器| 欧美色视频一区免费| 午夜福利视频1000在线观看| 男女视频在线观看网站免费| 综合色丁香网| 成年女人永久免费观看视频| 国产精品99久久久久久久久| 亚洲av中文字字幕乱码综合| 天堂av国产一区二区熟女人妻| 久久久久久久久中文| 国产精品人妻久久久久久| 精品久久久噜噜| 大又大粗又爽又黄少妇毛片口| 久久久久久久久中文| 人妻制服诱惑在线中文字幕| 久久鲁丝午夜福利片| 人人妻人人澡人人爽人人夜夜 | 日本五十路高清| 少妇人妻一区二区三区视频| 最新中文字幕久久久久| 成人国产麻豆网| 国产高清视频在线观看网站| 高清日韩中文字幕在线| 国产精品久久久久久精品电影| 高清日韩中文字幕在线| 一区福利在线观看| 国产高清激情床上av| 国产私拍福利视频在线观看| 国内揄拍国产精品人妻在线| 欧美日韩精品成人综合77777| 亚洲综合色惰| 九色成人免费人妻av| 综合色av麻豆| 最近中文字幕高清免费大全6| 在线观看午夜福利视频| 最近2019中文字幕mv第一页| 亚洲欧美精品综合久久99| 老师上课跳d突然被开到最大视频| 美女被艹到高潮喷水动态| 国产毛片a区久久久久| 久久精品91蜜桃| 国产亚洲5aaaaa淫片| 国产高潮美女av| 韩国av在线不卡| 99riav亚洲国产免费| 日韩亚洲欧美综合| 熟女人妻精品中文字幕| 中出人妻视频一区二区| 午夜久久久久精精品| 国产精品人妻久久久久久| 欧美激情久久久久久爽电影| 色哟哟哟哟哟哟| 97人妻精品一区二区三区麻豆| 3wmmmm亚洲av在线观看| 最新中文字幕久久久久| 黄片无遮挡物在线观看| 欧美日韩一区二区视频在线观看视频在线 | 91精品一卡2卡3卡4卡| 美女 人体艺术 gogo| 国产一区亚洲一区在线观看| 亚洲最大成人av| 噜噜噜噜噜久久久久久91| 天美传媒精品一区二区| 97热精品久久久久久| 欧美色视频一区免费| 禁无遮挡网站| 夜夜夜夜夜久久久久| 99热这里只有精品一区| 夜夜看夜夜爽夜夜摸| 97超视频在线观看视频| 在线免费十八禁| 99久久精品一区二区三区| 精品不卡国产一区二区三区| 欧美+亚洲+日韩+国产| 一个人看的www免费观看视频| 国产伦一二天堂av在线观看| h日本视频在线播放| 亚洲激情五月婷婷啪啪| а√天堂www在线а√下载| 女的被弄到高潮叫床怎么办| 人体艺术视频欧美日本| 一级毛片电影观看 | 久久久久久大精品| 亚洲精华国产精华液的使用体验 | 亚洲欧美成人综合另类久久久 | 99热网站在线观看| 两个人视频免费观看高清| 一本久久中文字幕| 成人性生交大片免费视频hd| 晚上一个人看的免费电影| 可以在线观看毛片的网站| 欧美不卡视频在线免费观看| 国产精品综合久久久久久久免费| 有码 亚洲区| 99热6这里只有精品| 国产亚洲精品av在线| 精华霜和精华液先用哪个| 卡戴珊不雅视频在线播放| 亚洲不卡免费看| 欧美日韩综合久久久久久| 国产精品,欧美在线| 日韩亚洲欧美综合| 伊人久久精品亚洲午夜| 精品人妻视频免费看| 在线免费观看的www视频| 色哟哟·www| 国产国拍精品亚洲av在线观看| av国产免费在线观看| 成年女人看的毛片在线观看| 欧美一级a爱片免费观看看| 蜜桃亚洲精品一区二区三区| 插阴视频在线观看视频| 一个人免费在线观看电影| 欧美精品国产亚洲| av天堂在线播放| 国产成人精品久久久久久| 伦理电影大哥的女人| 免费黄网站久久成人精品| 国产爱豆传媒在线观看| 亚洲美女搞黄在线观看| 国产午夜福利久久久久久| 日本三级黄在线观看| 免费观看的影片在线观看| 男女边吃奶边做爰视频| www.色视频.com| 少妇的逼好多水| 卡戴珊不雅视频在线播放| 日本一二三区视频观看| 亚洲成人精品中文字幕电影| 亚洲成人精品中文字幕电影| 久久久久久久久大av| 国产精品女同一区二区软件| 精品一区二区三区视频在线| 别揉我奶头 嗯啊视频| 两性午夜刺激爽爽歪歪视频在线观看| 日韩人妻高清精品专区| av在线天堂中文字幕| 性欧美人与动物交配| 免费av不卡在线播放| 久久久久久久久久黄片| 久久精品国产99精品国产亚洲性色| 成人高潮视频无遮挡免费网站| 精品一区二区免费观看| 精品无人区乱码1区二区| 尾随美女入室| 人妻夜夜爽99麻豆av| 国产不卡一卡二| 一区福利在线观看| 国产伦精品一区二区三区四那| 国产免费男女视频| 精品一区二区三区人妻视频| 久久这里只有精品中国| 嫩草影院精品99| 18禁在线无遮挡免费观看视频| 简卡轻食公司| 极品教师在线视频| 天堂av国产一区二区熟女人妻| 在线观看66精品国产| 麻豆成人av视频| 一进一出抽搐动态| 能在线免费看毛片的网站| av又黄又爽大尺度在线免费看 | 国产精品.久久久| 午夜福利在线在线| 天堂√8在线中文| 午夜福利在线观看吧| 精品久久久久久成人av| 麻豆成人av视频| 国产一区二区三区av在线 | 边亲边吃奶的免费视频| 观看美女的网站| 成年av动漫网址| 麻豆久久精品国产亚洲av| 国产精品女同一区二区软件| 国内精品久久久久精免费| 免费看a级黄色片| 久久韩国三级中文字幕| 中文字幕av在线有码专区| 在线观看一区二区三区| 国产精品久久久久久av不卡| 国产精品美女特级片免费视频播放器| 久久久a久久爽久久v久久| 免费观看精品视频网站| 99久久九九国产精品国产免费| 人妻夜夜爽99麻豆av| 99热网站在线观看| av在线播放精品| 人妻系列 视频| 亚洲三级黄色毛片| 亚洲第一区二区三区不卡| 男人舔女人下体高潮全视频| 国产精品一区二区三区四区久久| 久久午夜亚洲精品久久| 别揉我奶头 嗯啊视频| 国产精品99久久久久久久久| 91午夜精品亚洲一区二区三区| 哪里可以看免费的av片| 少妇的逼好多水| 亚洲精品久久国产高清桃花| 亚洲人成网站在线播| 女的被弄到高潮叫床怎么办| a级一级毛片免费在线观看| 日韩av不卡免费在线播放| 亚洲国产精品成人综合色| av专区在线播放| 热99在线观看视频| 精品人妻熟女av久视频| 日本黄色视频三级网站网址| 卡戴珊不雅视频在线播放| 国产在线男女| 五月玫瑰六月丁香| 高清在线视频一区二区三区 | 免费av毛片视频| 久久久久久久久大av| 成人午夜高清在线视频| 一卡2卡三卡四卡精品乱码亚洲| 国产精品不卡视频一区二区| 国产免费一级a男人的天堂| 丰满人妻一区二区三区视频av| 欧美xxxx黑人xx丫x性爽| 亚洲天堂国产精品一区在线| 免费观看在线日韩| 波多野结衣高清作品| 欧美成人一区二区免费高清观看| 亚洲av中文字字幕乱码综合| 中文精品一卡2卡3卡4更新| 亚洲欧美精品综合久久99| 久久久久久九九精品二区国产| 一个人观看的视频www高清免费观看| 亚洲av中文字字幕乱码综合| 欧美精品国产亚洲| 久久久a久久爽久久v久久| 亚洲成人中文字幕在线播放| 国产亚洲欧美98| 日本黄大片高清| 欧美在线一区亚洲| 伦精品一区二区三区| АⅤ资源中文在线天堂| 国产综合懂色| 久久精品夜夜夜夜夜久久蜜豆| 99热全是精品| 日本免费一区二区三区高清不卡| 国产亚洲精品久久久com| 天天一区二区日本电影三级| 免费看美女性在线毛片视频| 国产成人午夜福利电影在线观看| 国产精品三级大全| 青春草视频在线免费观看| 婷婷六月久久综合丁香| 成人亚洲精品av一区二区| 午夜福利在线在线| 三级毛片av免费| 国产精品久久久久久久电影| 亚洲高清免费不卡视频| 亚洲色图av天堂| 最近视频中文字幕2019在线8| 亚洲欧美日韩高清在线视频| 国产蜜桃级精品一区二区三区| 国产单亲对白刺激| 国内少妇人妻偷人精品xxx网站| 18禁在线无遮挡免费观看视频| 国产成人一区二区在线| 淫秽高清视频在线观看| 麻豆一二三区av精品| 国产精品国产三级国产av玫瑰| 人妻久久中文字幕网| 国产亚洲5aaaaa淫片| 国产精品久久久久久精品电影小说 | 亚洲,欧美,日韩| 99在线人妻在线中文字幕| 国产久久久一区二区三区| 亚洲乱码一区二区免费版| 久久久国产成人免费| 亚洲人成网站在线播放欧美日韩| av卡一久久| 国产伦在线观看视频一区| 天堂√8在线中文| 国产大屁股一区二区在线视频| 免费观看a级毛片全部| 秋霞在线观看毛片| 欧美又色又爽又黄视频| 一进一出抽搐动态| 身体一侧抽搐| 毛片女人毛片| 国产一级毛片七仙女欲春2| 六月丁香七月| 波野结衣二区三区在线| 搡老妇女老女人老熟妇| 日韩国内少妇激情av| 一级毛片电影观看 | 欧美日韩国产亚洲二区| 国产一区二区三区在线臀色熟女| 人人妻人人看人人澡| 99在线人妻在线中文字幕| 老女人水多毛片| 久久精品国产自在天天线| 干丝袜人妻中文字幕| 日日啪夜夜撸| 久久久久性生活片| 亚洲精品自拍成人| 99热全是精品| 日韩人妻高清精品专区| 亚洲人与动物交配视频| 日韩欧美 国产精品| 亚洲精品久久国产高清桃花| 九九在线视频观看精品| 成人无遮挡网站| 欧美不卡视频在线免费观看| 69人妻影院| 亚洲欧美日韩高清在线视频| 国产老妇女一区| 欧美人与善性xxx| 97人妻精品一区二区三区麻豆| 99久久无色码亚洲精品果冻| av在线老鸭窝| 男女啪啪激烈高潮av片| 欧美在线一区亚洲| 成人欧美大片| 97人妻精品一区二区三区麻豆| 春色校园在线视频观看| 欧美变态另类bdsm刘玥| 久久久成人免费电影| 成人二区视频| 婷婷色综合大香蕉| 亚洲人成网站在线播| eeuss影院久久| 国产v大片淫在线免费观看| 人人妻人人澡欧美一区二区| 国产美女午夜福利| 亚洲欧美日韩东京热| 国产高清视频在线观看网站| 日本黄色片子视频| 内地一区二区视频在线| av福利片在线观看| 久久久精品欧美日韩精品| 99久久成人亚洲精品观看| 看非洲黑人一级黄片| 久久草成人影院| 成人毛片a级毛片在线播放| 在线观看美女被高潮喷水网站| 亚洲久久久久久中文字幕| 欧美三级亚洲精品| 欧美一区二区国产精品久久精品| 欧美高清性xxxxhd video| 12—13女人毛片做爰片一| av在线播放精品| 中文字幕久久专区| 亚洲自拍偷在线| 久久午夜亚洲精品久久| 久久鲁丝午夜福利片| 长腿黑丝高跟| 亚洲人成网站在线播| 此物有八面人人有两片| 国产亚洲欧美98| 2021天堂中文幕一二区在线观| 少妇熟女欧美另类| 91aial.com中文字幕在线观看| 久久精品久久久久久久性| 国产三级在线视频| 晚上一个人看的免费电影| 婷婷色综合大香蕉| 99久久人妻综合| 丰满的人妻完整版| 亚洲av成人精品一区久久| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 国产精品1区2区在线观看.| 亚洲五月天丁香| 黄色日韩在线| 久久久久九九精品影院| 午夜福利在线观看免费完整高清在 | 特级一级黄色大片| 欧美激情在线99| 久久久久久久久久久免费av| 性色avwww在线观看| 夜夜看夜夜爽夜夜摸| 国产亚洲精品久久久com| 精品一区二区三区人妻视频| 热99re8久久精品国产| 国产极品天堂在线| 日韩一区二区三区影片| ponron亚洲| 美女内射精品一级片tv| 国产激情偷乱视频一区二区| 久久国产乱子免费精品| 亚洲国产精品成人综合色| 中文字幕久久专区| 久久精品夜夜夜夜夜久久蜜豆| 国产中年淑女户外野战色| 欧美日韩综合久久久久久| 嫩草影院精品99| 亚洲av成人精品一区久久| 丰满人妻一区二区三区视频av| 国产日韩欧美在线精品| 精品久久久久久久久av| av在线亚洲专区| 国产黄片视频在线免费观看| 三级男女做爰猛烈吃奶摸视频| 亚洲欧美清纯卡通| 在线观看av片永久免费下载| 性欧美人与动物交配| 国产不卡一卡二| 在线播放国产精品三级| 天堂√8在线中文| 国产午夜精品一二区理论片| 欧美日韩乱码在线| 久久久久久久久久成人| 日韩强制内射视频| 一级毛片aaaaaa免费看小| 菩萨蛮人人尽说江南好唐韦庄 | 国产高清有码在线观看视频| 中国美白少妇内射xxxbb| 日本爱情动作片www.在线观看| 国产精品.久久久| 久久久久九九精品影院| 久久热精品热| 91精品国产九色| 久久婷婷人人爽人人干人人爱| 国产高清三级在线| 一边亲一边摸免费视频| 午夜免费男女啪啪视频观看| 天美传媒精品一区二区| 国产白丝娇喘喷水9色精品| 99riav亚洲国产免费| 悠悠久久av| 热99re8久久精品国产| 国产真实伦视频高清在线观看| 亚洲av电影不卡..在线观看| 免费不卡的大黄色大毛片视频在线观看 | 亚洲欧美清纯卡通| 一区二区三区高清视频在线| 成人鲁丝片一二三区免费| 一边摸一边抽搐一进一小说| av在线亚洲专区| 色吧在线观看| 干丝袜人妻中文字幕| 成人毛片a级毛片在线播放| 美女内射精品一级片tv| 亚洲精华国产精华液的使用体验 | 午夜福利视频1000在线观看| 内射极品少妇av片p| 九九热线精品视视频播放| 最近最新中文字幕大全电影3| 亚洲精品日韩av片在线观看| 人妻系列 视频| 我的老师免费观看完整版| 少妇猛男粗大的猛烈进出视频 | 国产成人freesex在线| 天堂√8在线中文| 日本三级黄在线观看| 亚洲精品久久久久久婷婷小说 | 欧美最新免费一区二区三区| 青春草亚洲视频在线观看| 精品久久久久久久久久免费视频| 精品一区二区免费观看| 给我免费播放毛片高清在线观看| 国产亚洲av片在线观看秒播厂 | 少妇被粗大猛烈的视频| 99热6这里只有精品| 欧美区成人在线视频| 日本免费a在线| 看片在线看免费视频| 久久久久久久久大av| 国产v大片淫在线免费观看| 亚洲激情五月婷婷啪啪| 春色校园在线视频观看| 国产精品.久久久| 久久久久久国产a免费观看| 日韩欧美国产在线观看| 少妇人妻一区二区三区视频| 久久午夜亚洲精品久久| 欧美激情久久久久久爽电影| 免费大片18禁| 久久亚洲国产成人精品v| 国产精品日韩av在线免费观看| 国产精品久久久久久久久免| 成人高潮视频无遮挡免费网站| 一级二级三级毛片免费看| 成人午夜精彩视频在线观看| 美女国产视频在线观看| 精品久久久久久久人妻蜜臀av| 国产 一区精品| 麻豆精品久久久久久蜜桃| 久久久午夜欧美精品| 狂野欧美白嫩少妇大欣赏| 中文字幕av成人在线电影| 三级毛片av免费| 日本黄色视频三级网站网址| 狠狠狠狠99中文字幕| 国产探花极品一区二区| 亚洲无线在线观看| 日韩一区二区视频免费看| 一边亲一边摸免费视频| 极品教师在线视频| 91av网一区二区| 日本黄色片子视频| 国产极品天堂在线| 国产真实乱freesex| 人妻夜夜爽99麻豆av| 1024手机看黄色片| 在线a可以看的网站| 亚洲五月天丁香| 欧美激情国产日韩精品一区| 观看美女的网站| 人人妻人人看人人澡| 色综合站精品国产| 中文字幕久久专区| 爱豆传媒免费全集在线观看| 国产又黄又爽又无遮挡在线| 我的女老师完整版在线观看| 亚洲第一电影网av| 男人舔女人下体高潮全视频| 婷婷色av中文字幕| 国产精品综合久久久久久久免费| 亚洲最大成人手机在线| 国产精品一区二区在线观看99 | 蜜桃亚洲精品一区二区三区| 亚洲成人精品中文字幕电影| 免费看av在线观看网站| 精华霜和精华液先用哪个| 男人狂女人下面高潮的视频| 91aial.com中文字幕在线观看| 又爽又黄无遮挡网站| 波多野结衣高清无吗| 秋霞在线观看毛片| 国产免费一级a男人的天堂| 国产精华一区二区三区| 久久精品国产亚洲av涩爱 | 精品久久久久久久人妻蜜臀av| 亚洲精品色激情综合| 久久人妻av系列| 久久久久久久久久黄片| 99久久人妻综合| 亚洲精品成人久久久久久| 国产单亲对白刺激| 国产一区二区三区av在线 | 午夜福利在线观看免费完整高清在 | 国产精品一区www在线观看| 插逼视频在线观看| 欧美xxxx黑人xx丫x性爽| 看十八女毛片水多多多| av卡一久久| 国产精品99久久久久久久久| 综合色丁香网| 天天一区二区日本电影三级| 青青草视频在线视频观看| 亚洲精华国产精华液的使用体验 | 亚洲欧美成人精品一区二区| АⅤ资源中文在线天堂| 国产在视频线在精品| 我的女老师完整版在线观看| 成人美女网站在线观看视频| 久久婷婷人人爽人人干人人爱| 午夜精品国产一区二区电影 | 日日干狠狠操夜夜爽| 国产成人freesex在线| 哪里可以看免费的av片| 午夜视频国产福利| a级毛片a级免费在线| 中国美白少妇内射xxxbb| 搡老妇女老女人老熟妇| 少妇熟女aⅴ在线视频| 99国产精品一区二区蜜桃av| 国产探花极品一区二区| 亚洲国产精品成人综合色| 看十八女毛片水多多多| 日韩av在线大香蕉| 日本成人三级电影网站| 精品欧美国产一区二区三| 日韩精品青青久久久久久| 欧美色欧美亚洲另类二区| av免费观看日本| 级片在线观看| 我的女老师完整版在线观看| 日韩大尺度精品在线看网址| 国产一区亚洲一区在线观看| 真实男女啪啪啪动态图| 国产亚洲91精品色在线| 中国美白少妇内射xxxbb| 欧美zozozo另类| 国产午夜福利久久久久久| 国产麻豆成人av免费视频| 黄片无遮挡物在线观看| 亚洲av不卡在线观看| 亚州av有码| 国产在线男女| 黄色视频,在线免费观看| 看免费成人av毛片| 一本久久中文字幕| 国内少妇人妻偷人精品xxx网站| 久久99热6这里只有精品|