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

    基于PhoneGap技術(shù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)探討

    2016-07-04 19:23崔麗梅薛斐斐
    電腦知識(shí)與技術(shù) 2016年15期
    關(guān)鍵詞:移動(dòng)應(yīng)用跨平臺(tái)

    崔麗梅+薛斐斐

    摘要:PhoneGap技術(shù)使得開發(fā)者可以使用符合W3C標(biāo)準(zhǔn)的Web技術(shù)開發(fā)本地應(yīng)用。通過(guò)調(diào)用PhoneGap的API,Web應(yīng)用程序就可以與開發(fā)者所使用的移動(dòng)平臺(tái) SDK API 進(jìn)行交互,并進(jìn)行該平臺(tái)的本地功能調(diào)用。PhoneGap提供的插件開發(fā)與引入方式,可以讓開發(fā)者針對(duì)自己的特殊需要引入新的插件或者開發(fā)自己的插件。經(jīng)過(guò)測(cè)試對(duì)比發(fā)現(xiàn),使用PhoneGap技術(shù)比使用WebView技術(shù)開發(fā)的移動(dòng)應(yīng)用具有更好的性能。

    關(guān)鍵詞: PhoneGap;JavaScript;跨平臺(tái);Android;移動(dòng)應(yīng)用

    中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)15-0030-04

    Abstract:With PhoneGap method, developers can use Web technical which correspond to the W3C standard developing native mobile application. According to call the API of PhoneGap, Web applications can communicate with the SDK API of the mobile platform which using by the developers, and then, they can use the native functions of the mobile platform. PhoneGap provides a method to develop plugins and import plugins, this method makes developers develop their own plugins or import new plugins to meet their special demands. According to the contrast testing, the mobile applications using PhoneGap method have a better performance than the applications using WebView method.

    Key words:PhoneGap; JavaScript; Cross-platform; Android; Mobile Application

    1 PhoneGap技術(shù)簡(jiǎn)介

    PhoneGap是一個(gè)開源框架,目前由美國(guó)Adobe公司進(jìn)行開發(fā)和維護(hù)。使用PhoneGap可以將使用HTML、CSS、JavaScrip以及HTML5+CSS3編寫的Web APP構(gòu)建為跨平臺(tái)的移動(dòng)應(yīng)用程序。其主要前景在于:通過(guò)作為Javascript和本地代碼之間的橋梁的PhoneGap,不僅能夠?qū)eb應(yīng)用項(xiàng)目方便的打包為本地應(yīng)用,更可以通過(guò)PhoneGap的插件調(diào)用Android設(shè)備的其他本地特性,例如攝像頭、地理信息、本地網(wǎng)絡(luò)設(shè)置等,并且開發(fā)者可以根據(jù)具體的硬件需要和業(yè)務(wù)要求開發(fā)針對(duì)自己設(shè)備的PhoneGap插件。

    2 PhoneGap技術(shù)原理與實(shí)現(xiàn)流程

    2.1 PhoneGap跨平臺(tái)原理

    利用PhoneGap技術(shù),開發(fā)人員通過(guò)使用 CSS 和 HTML 來(lái)設(shè)計(jì)程序 UI 并控制程序的邏輯;同時(shí),使用 JavaScript 來(lái)調(diào)用 API 與對(duì)應(yīng)平臺(tái)的 SDK 進(jìn)行交互,以啟動(dòng)手機(jī)的 GPS、震動(dòng)、重力感應(yīng)等功能。使用 PhoneGap 編寫的程序會(huì)被打包并安裝到手機(jī)上,在應(yīng)用運(yùn)行時(shí)載入到手機(jī)的瀏覽器控件中解析執(zhí)行[4]。

    PhoneGap框架為開發(fā)者提供了一系列的 API,這些API可以在 JavaScript 代碼中調(diào)用;在實(shí)際的開發(fā)過(guò)程中,通過(guò)這些API調(diào)用,PhoneGap程序就可以與開發(fā)者所使用的移動(dòng)平臺(tái) SDK API 進(jìn)行交互,并進(jìn)行該平臺(tái)本地功能的實(shí)際調(diào)用工作。開發(fā)完畢后,用戶使用該應(yīng)用時(shí),開發(fā)者使用Web技術(shù)編寫的html、css以及JavaScript文件就會(huì)以“鏡像文件”的形式被打包并發(fā)布到用戶所在的移動(dòng)平臺(tái)中。實(shí)際運(yùn)行時(shí),由該平臺(tái)所內(nèi)嵌的Web瀏覽器進(jìn)行解析并執(zhí)行,這樣就實(shí)現(xiàn)了一次開發(fā),跨多平臺(tái)運(yùn)行的功能。PhoneGap 目前支持幾乎所有的移動(dòng)應(yīng)用平臺(tái),如iOS、Android、Windows Phone、黑莓和WebOS等。

    2.2 PhoneGap通過(guò)JavaScript調(diào)用Java流程

    本文所探討的PhoneGap技術(shù)將以Android平臺(tái)為例,并基于PhoneGap 1.6、Android 2.3.6版本進(jìn)行探討和測(cè)試。下面通過(guò)簡(jiǎn)單的HelloWorld程序說(shuō)明在Android平臺(tái)中基于PhoneGap開發(fā)的應(yīng)用程序的運(yùn)行原理。

    以下JavaScript代碼段實(shí)現(xiàn)了通過(guò)PhoneGap調(diào)用Android設(shè)備上的震動(dòng)通知功能,當(dāng)程序運(yùn)行,用戶點(diǎn)擊主程序中的"震動(dòng)2秒"按鈕,設(shè)備將持續(xù)震動(dòng)2秒。而這個(gè)功能的實(shí)現(xiàn),僅需要像編寫Web應(yīng)用一樣,在html頁(yè)面上加入以下幾行JavaScript代碼。并引入phonegap.js和phonegap.jar兩個(gè)類庫(kù)的支持。

    考慮用戶點(diǎn)擊主程序上的"震動(dòng)2秒"按鈕后,此JavaScript代碼是如何調(diào)用Android API的。當(dāng)用戶點(diǎn)擊按鈕后,在phonegap.js中的Notification.prototype.vibrate方法就會(huì)接收到該調(diào)用,接著調(diào)用PhoneGap.exec方法。如下代碼段所示:

    Notification.prototype.vibrate = function(mills) {

    PhoneGap.exec(null, null, "Notification", "vibrate", [mills]);

    };

    PhoneGap.exec方法被調(diào)用后,它會(huì)調(diào)用prompt ( JSON. stringify(args), "gap:"+JSON. stringify ([service, action, callbackId, true]))方法以完成JavaScript與Java的通信。此時(shí),Android系統(tǒng)的WebView組件就會(huì)企圖彈出一個(gè)窗口。使用Android提供的 WebChromeClient API 就可以截獲 WebView 的這個(gè)動(dòng)作 。具體到PhoneGap 1.6 就是繼承了WebChromeClient 的com.phonegap.CordovaChromeClient 類中的onJsPrompt方法。

    在onJsPrompt方法中執(zhí)行pluginManager.exec(service, action, callbackId, message, async)方法。此時(shí),PlugManager 會(huì)根據(jù)收到參數(shù),將命令分發(fā)給特定的Plugin,也就是插件。關(guān)于PhoneGap的插件,將在下一節(jié)詳細(xì)介紹。在本例中,接收的plugin是Notification;接收到的action是vibrate;參數(shù)為2000毫秒。由此,PhoneGap調(diào)用Notification 中的 this.vibrate(args.getLong(0))方法,通知設(shè)備震動(dòng)2000毫秒。

    Notification類中的vibrate方法沒(méi)有返回值,但是在其他PhoneGap插件中,常見有success和error兩種基本返回值,以JSON對(duì)象的形式返回,以便于通知用戶,程序執(zhí)行的狀態(tài)。而此返回值都可以在主程序頁(yè)面上捕獲并輸出。因此總結(jié)PhoneGap中的JavaScript調(diào)用Java流程,可如圖1所示。

    2.3 PhoneGap通過(guò)Java調(diào)用JavaScript流程

    PhoneGap實(shí)現(xiàn)了一個(gè)回調(diào)服務(wù)器,服務(wù)器就是負(fù)責(zé)回調(diào)JavaScript代碼的,服務(wù)器有一個(gè)JavaScript代碼的隊(duì)列,在src/com/phonegap/CallbackServer.java文件中:

    /**

    * The list of JavaScript statements to be sent to JavaScript.

    */

    private LinkedList javascript;

    服務(wù)器保存要回調(diào)的JavaScript的代碼,供JavaScript客戶端取回,這里Java端是服務(wù)器端,JavaScript端是客戶端,服務(wù)器端不可能請(qǐng)求客戶端,所以PhoneGap實(shí)現(xiàn)了兩種服務(wù)模型,一種是輪詢,一種是XHR異步回調(diào),也就是Ajax的模型。在PhoneGap源碼目錄中,src/com/phonegap/ CallbackServer.java文件即是回調(diào)服務(wù)器的代碼。

    CallbackServer提供的上述兩種模型,輪詢方式的原理較為簡(jiǎn)單,在使用時(shí),callbackserver服務(wù)器端將會(huì)保存一個(gè)回調(diào)JavaScript的列表,每隔一段時(shí)間客戶端的JavaScript會(huì)詢問(wèn)一次服務(wù)器,是否有需要回調(diào)的JavaScript,如果有則進(jìn)行具體的調(diào)用。而基于XHR的方式也就是Ajax用的機(jī)制,JavaScript發(fā)起一個(gè)異步請(qǐng)求,服務(wù)器會(huì)在返回?cái)?shù)據(jù)之前保持住這個(gè)連接,當(dāng)返回?cái)?shù)據(jù)就位后,服務(wù)器給請(qǐng)求客戶端返回?cái)?shù)據(jù),然后關(guān)閉連接。客戶端接收到返回?cái)?shù)據(jù)后進(jìn)行處理??蛻舳薐avaScript的相關(guān)代碼如下:

    PhoneGap.JSCallback = function() {

    ...

    xmlhttp.open("GET", "http://127.0.0.1:"+PhoneGap.JSCallbackPort+"/"+PhoneGap.JSCallbackToken , true);

    xmlhttp.send();

    }

    這個(gè)是XHR模型的代碼,客戶端JavaScript使用XHR請(qǐng)求服務(wù)器來(lái)獲取JavaScript代碼,進(jìn)行回調(diào)。

    PhoneGap.JSCallbackPolling = function() {

    ...

    var msg = prompt("", "gap_poll:");

    if (msg) {

    setTimeout(function() {

    try {

    var t = eval(""+msg);

    }

    catch (e) {

    console.log("JSCallbackPolling: Message from Server: " + msg);

    console.log("JSCallbackPolling Error: "+e);

    }

    }, 1);

    setTimeout(PhoneGap.JSCallbackPolling, 1);

    }

    else {

    setTimeout(PhoneGap.JSCallbackPolling, PhoneGap.JSCallbackPollingPeriod);

    }

    }

    這個(gè)是輪詢方式的,可以看到客戶端每隔PhoneGap.JSCallbackPollingPeriod段時(shí)間,就請(qǐng)求一次服務(wù)器(通過(guò)prompt("", "gap_poll:");)[8]。

    3 基于Android平臺(tái)的簡(jiǎn)單PhoneGap應(yīng)用開發(fā)

    3.1 開發(fā)流程

    1)啟動(dòng)Eclipse,然后在菜單“File”下選擇“New > Android Project”。在項(xiàng)目根目錄下,創(chuàng)建兩個(gè)新目錄: /libs

    /assets/www

    2)復(fù)制phonegap.js(從PhoneGap解壓縮后的Android目錄中,將解壓縮后的帶版本號(hào)的js文件名修改為phonegap.js)到/assets/www。

    復(fù)制phonegap.jar(從PhoneGap解壓縮后的Android目錄中)到/libs。右鍵單擊/libs文件夾找到Build Paths/ > Configure Build Paths。然后在Libraries標(biāo)簽頁(yè)中添加phonegap.jar到項(xiàng)目中。復(fù)制xml整個(gè)目錄(從PhoneGap解壓縮后的Android目錄中,包括一個(gè)plugins.xml)到/res。

    3) 對(duì)Eclipse的src文件夾中的主要Java文件進(jìn)行少量調(diào)整:

    將class的繼承由Activity改為DroidGap

    將setContentView()替換為super.loadUrl("file:///android_asset/www/index.html ");

    添加import com.phonegap.*;

    移除import android.app.Activity;

    4)右鍵單擊AndroidManifest.xml并選擇Open With > Text Editor。將下面的權(quán)限設(shè)置拷貝到versionName之后: (在實(shí)際開發(fā)中,要根據(jù)需要開放程序權(quán)限)

    5)在 “/assets/www”目錄中新建文件“index.html”,并粘貼如下代碼:

    Notification Example

    3.2 部署與運(yùn)行

    1)右鍵單擊項(xiàng)目節(jié)點(diǎn)選擇Run As,然后點(diǎn)擊Android Application。

    2)Eclipse將要求你選擇一個(gè)合適的AVD(Android虛擬機(jī)),如果沒(méi)有設(shè)置的話,你需要?jiǎng)?chuàng)建一個(gè)AVD或者將一個(gè)實(shí)際的Android設(shè)備連接到電腦。

    3)確認(rèn)設(shè)備已經(jīng)勾選USB debugging選項(xiàng),并已將設(shè)備連接到電腦。(設(shè)置 > 應(yīng)用程序 > 開發(fā))

    4)右鍵單擊項(xiàng)目節(jié)點(diǎn)選擇Run As,點(diǎn)擊Android Application,稍等片刻便可以在AVD或?qū)嶋H的Android設(shè)備中看到運(yùn)行效果。

    4 PhoneGap插件與WebView方式性能對(duì)比測(cè)試

    4.1測(cè)試目的

    在使用PhoneGap之前,大多數(shù)將Web應(yīng)用轉(zhuǎn)移到基于Android平臺(tái)的本地應(yīng)用都是使用Android系統(tǒng)自帶的WebView方式,通過(guò)對(duì)比由WebView原生支持的Java與JavaScript通信方式和由PhoneGap插件支持的通信方式的差別,可以為開發(fā)者提供借鑒,并為使用PhoneGap技術(shù)提供理論依據(jù)。眾所周知,在移動(dòng)平臺(tái)中,系統(tǒng)資源是非常緊張的,如何在給定系統(tǒng)資源下擴(kuò)大程序性能以及效率是所有移動(dòng)應(yīng)用程序都必須關(guān)注的問(wèn)題,本次測(cè)試同樣著重對(duì)比使用不同技術(shù)時(shí)資源耗費(fèi)、性能、效率問(wèn)題。

    4.2 測(cè)試環(huán)境

    硬件環(huán)境:

    設(shè)備型號(hào):Motorola ME525+ 智能手機(jī);處理器:德州儀器 OMAP3620 1GHz;內(nèi)存容量:512MB RAM + 2GB ROM;屏幕參數(shù):TFT彩色屏幕;480×854像素(FWVGA),3.7英寸。

    軟件環(huán)境:

    設(shè)備操作系統(tǒng):Android OS v2.3.3;

    開發(fā)環(huán)境:Eclipse SDK Version: 3.6.0;java version 1.6.0_17; PhoneGap 1.6。

    測(cè)試工具:使用Android SDK自帶的測(cè)試工具M(jìn)onkey,Monkey是Android SDK中的一個(gè)命令行工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢(shì)輸入等),實(shí)現(xiàn)對(duì)正在開發(fā)的應(yīng)用程序進(jìn)行壓力測(cè)試。Monkey測(cè)試是一種為了測(cè)試軟件的穩(wěn)定性、健壯性的快速有效的方法[7]。

    4.3測(cè)試用例

    為了保證測(cè)試的準(zhǔn)確性,使用WebView方式和PhoneGap插件方式分別開發(fā)了兩個(gè)簡(jiǎn)單的調(diào)整系統(tǒng)聲音大小并顯示的小應(yīng)用。

    使用WebView方式,以HTML+JavaScript開發(fā)的頁(yè)面事件調(diào)用Android系統(tǒng)功能使用的是Android系統(tǒng)組件WebView的addJavascriptInterface方法,該方法捕獲html頁(yè)面事件并調(diào)用對(duì)應(yīng)的Android原生方法,將最終結(jié)果以調(diào)用JavaScript的方式返回。

    使用PhoneGap的方式,需要引入PhoneGap所依賴的類庫(kù),然后進(jìn)行開發(fā)。PhoneGap在應(yīng)用運(yùn)行時(shí)會(huì)加載所需的插件,而后根據(jù)頁(yè)面事件的不同調(diào)用相應(yīng)的Android原生方法。調(diào)用的方式為通過(guò)對(duì)頁(yè)面prompt事件的捕獲,傳遞請(qǐng)求參數(shù)和返回參數(shù)。與直接使用WebView的方式不同的是,利用PhoneGap可以通過(guò)已經(jīng)被封裝好的方法進(jìn)行Java與JavaScript的通信,代碼邏輯清晰,易于開發(fā)和修改。

    4.4測(cè)試結(jié)果

    使用Monkey對(duì)測(cè)試用例進(jìn)行10000次事件的注入,觀察其性能與響應(yīng)如表1所示:

    通過(guò)表1的測(cè)試結(jié)果可以看出,使用PhoneGap的插件方式進(jìn)行的Java與JavaScript相互調(diào)用進(jìn)行10000次所需時(shí)間208465ms,占用內(nèi)存9.0MB,相對(duì)于WebView方式的180802ms和7.3MB內(nèi)存占用,其效率顯然要稍低一些。然而,考慮到PhoneGap在初始化時(shí)就加載了自己所有的核心插件,因此有必要精簡(jiǎn)這一部分進(jìn)行對(duì)比測(cè)試。

    4.5 改進(jìn)后的測(cè)試結(jié)果

    PhoneGap在應(yīng)用被系統(tǒng)加載時(shí),自動(dòng)初始化加載了所有核心插件,但這些插件大部分對(duì)于我們的程序是無(wú)用的。刪掉與本測(cè)試用例無(wú)關(guān)的諸多PhoneGap核心插件,例如GPS、網(wǎng)絡(luò)、羅盤等,理論上可以減小PhoneGap初始化所占用的系統(tǒng)資源。經(jīng)過(guò)刪除其插件加載后進(jìn)行再次測(cè)試,可以發(fā)現(xiàn),對(duì)改進(jìn)后的PhoneGap測(cè)試用例進(jìn)行10000次的隨機(jī)事件注入耗時(shí)198214ms,測(cè)試完畢后占用內(nèi)存5.3MB。雖然耗時(shí)仍大于基于WebView的測(cè)試用例,但是消耗內(nèi)存明顯降低。由此可看出,基于PhoneGap的測(cè)試用例經(jīng)過(guò)優(yōu)化精簡(jiǎn)后,效率大幅度提升。

    5 PhoneGap技術(shù)小結(jié)

    PhoneGap的優(yōu)勢(shì)是顯而易見的,跨平臺(tái)、易于使用、特別是對(duì)于目前正在使用JavaScript與HTML5+CSS3技術(shù)的開發(fā)者來(lái)說(shuō),可以將現(xiàn)有Web App快速的移植到各種流行的移動(dòng)應(yīng)用平臺(tái)上。更重要的是,通過(guò)PhoneGap的插件模式,可以將復(fù)雜業(yè)務(wù)交由本地代碼執(zhí)行,不但提高效率,更增強(qiáng)了代碼的可靠度。

    PhoneGap將幫助程序開發(fā)團(tuán)隊(duì)借助Web應(yīng)用項(xiàng)目開發(fā)經(jīng)驗(yàn)進(jìn)入跨平臺(tái)的移動(dòng)本地應(yīng)用開發(fā)領(lǐng)域。在掌握HTML,CSS以及JavaScript技術(shù)后,在使用PhoneGap不會(huì)遇到任何問(wèn)題。所需的只是對(duì)其API組件進(jìn)行明確介紹的文檔。另外,如果需要讓應(yīng)用和遠(yuǎn)程Web服務(wù)進(jìn)行通信,通過(guò)PhoneGap可以方便的引入JQuery的支持,以便創(chuàng)建強(qiáng)大的Ajax操作。隨著PhoneGap自身的發(fā)展,更多的移動(dòng)平臺(tái)將被統(tǒng)一納入其支持框架中,這無(wú)論對(duì)于應(yīng)用開發(fā)者還是移動(dòng)平臺(tái)提供商都有著巨大的市場(chǎng)前景。

    參考文獻(xiàn):

    [1] Andrew Lunny . PhoneGap Binger's Guide[M]. Birmingham B3 2PB, UK. Published by Packt Publishing Ltd,2011:21-22

    [2] Thomas Myer. Wrox Beginning PhoneGap [M]. Indianapolis. John Wiley & Sons, Inc.2011.11.

    [3] 關(guān)于跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架的探索[EB/OL].PhoneGap http://www.ibm.com/developerworks/ cn/opensource/os-cn-phonegap/

    [4] 解析PhoneGap插件如何使用[EB/OL].http://mobile.51cto.com/others-290644.htm

    [5] Phone Gap開發(fā)二:開發(fā)一個(gè)Phone Gap插件[EB/OL].http://gteam-yu.iteye.com/blog/1358707

    [6] Android自動(dòng)測(cè)試[EB/OL].Monkey http://www.cnblogs.com/yyangblog/archive/2011/03/10/ 1980068.html.

    [7] phoengap源碼解析——插件機(jī)制,java和js代碼互調(diào)用詳解[EB/OL].http://www.qhm123.com/ 2012/01/28/phonegap-source-code-analyzing-java-js-plugin-mechanism.html

    [8] 袁琦. 跨平臺(tái)嵌入式開發(fā)環(huán)境研究[J].電腦與電信,2008(11).

    [9] 李春虎. 基于Qt的跨平臺(tái)軟件設(shè)計(jì)及應(yīng)用[D].電子科技大學(xué),2011.

    [10] 趙勝海. 設(shè)計(jì)模式在嵌入式軟件設(shè)計(jì)中的研究與應(yīng)用[D].四川大學(xué),2006.

    [11] 鐘文. 網(wǎng)絡(luò)時(shí)代高校校友網(wǎng)絡(luò)管理系統(tǒng)[D].華南理工大學(xué),2012.

    [12] 牟杰. Director軟件促進(jìn)了跨平臺(tái)開發(fā)[J].多媒體世界,1995(11).

    [13] 何畏. 物化探軟件跨平臺(tái)移植技術(shù)的探討[J].物探化探計(jì)算技術(shù),2011(6).

    [14] 鐘文. 網(wǎng)絡(luò)時(shí)代高校校友網(wǎng)絡(luò)管理系統(tǒng)[D].華南理工大學(xué),2012.

    [15] 李寶韓. 基于Android的PhoneGap平臺(tái)研究及其跨移動(dòng)平臺(tái)媒體框架的擴(kuò)展[D].華南理工大學(xué),2012.

    [16] 楊安祺. 視窗操作系統(tǒng)下的視窗化編程方法研究[J].西北輕工業(yè)學(xué)院學(xué)報(bào),2001(4).

    [17] 張馳. 基于C++語(yǔ)言的跨平臺(tái)軟件開發(fā)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2010.

    猜你喜歡
    移動(dòng)應(yīng)用跨平臺(tái)
    跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
    T學(xué)校公共設(shè)施便捷報(bào)修平臺(tái)的移動(dòng)應(yīng)用研究
    基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
    基于OPC跨平臺(tái)通信的電機(jī)監(jiān)測(cè)與診斷系統(tǒng)
    基于B/S的跨平臺(tái)用戶界面可配置算法研究
    露出奶头的视频| 免费在线观看日本一区| 一本一本综合久久| 69av精品久久久久久| 我的女老师完整版在线观看| 亚洲一区高清亚洲精品| 舔av片在线| 国产精品久久久久久精品电影| 国产 一区精品| 国产老妇女一区| 欧美高清成人免费视频www| 亚洲中文日韩欧美视频| 赤兔流量卡办理| 国产探花在线观看一区二区| 久久精品国产99精品国产亚洲性色| 最近在线观看免费完整版| 欧美黑人巨大hd| 在线免费观看的www视频| 精品国产三级普通话版| 91av网一区二区| 国产高清视频在线播放一区| 一个人看的www免费观看视频| 美女被艹到高潮喷水动态| 国产色婷婷99| 亚洲av电影不卡..在线观看| 夜夜夜夜夜久久久久| 美女cb高潮喷水在线观看| 夜夜爽天天搞| 日本a在线网址| 国产一区二区三区在线臀色熟女| 免费不卡的大黄色大毛片视频在线观看 | 亚洲国产色片| 亚洲av一区综合| 亚洲内射少妇av| 亚洲自偷自拍三级| 久久中文看片网| 最新中文字幕久久久久| 深夜a级毛片| 免费看a级黄色片| 99国产极品粉嫩在线观看| 成人av一区二区三区在线看| 人妻夜夜爽99麻豆av| 亚洲成人久久性| av福利片在线观看| 熟妇人妻久久中文字幕3abv| 欧美激情国产日韩精品一区| 人人妻人人看人人澡| 国产高清三级在线| 精品久久久久久久久久久久久| 最近最新中文字幕大全电影3| 国产aⅴ精品一区二区三区波| 天堂网av新在线| 久久久精品大字幕| 日日夜夜操网爽| 天堂影院成人在线观看| 乱系列少妇在线播放| 国内精品宾馆在线| 日韩欧美精品免费久久| 亚洲精品影视一区二区三区av| 免费人成视频x8x8入口观看| 亚洲七黄色美女视频| 亚洲欧美日韩卡通动漫| 一个人免费在线观看电影| 欧美性感艳星| 日本免费a在线| or卡值多少钱| 我要搜黄色片| 超碰av人人做人人爽久久| 国产精品三级大全| 琪琪午夜伦伦电影理论片6080| 亚洲精品国产成人久久av| 91久久精品国产一区二区三区| 变态另类丝袜制服| 欧美日韩乱码在线| 久久亚洲真实| 中国美女看黄片| a在线观看视频网站| 最后的刺客免费高清国语| 久久九九热精品免费| 男人的好看免费观看在线视频| 最近最新免费中文字幕在线| 日本 欧美在线| av视频在线观看入口| 嫩草影院入口| 嫁个100分男人电影在线观看| 亚洲精华国产精华精| 亚洲五月天丁香| www.www免费av| 欧美色视频一区免费| 欧美色视频一区免费| 亚洲人与动物交配视频| 99热6这里只有精品| 国内精品宾馆在线| 国产亚洲av嫩草精品影院| 午夜免费激情av| 乱人视频在线观看| 长腿黑丝高跟| 欧美精品国产亚洲| 麻豆国产97在线/欧美| 久久人人爽人人爽人人片va| 88av欧美| 美女免费视频网站| 国产精品福利在线免费观看| 午夜福利欧美成人| 久久久久久伊人网av| 亚洲国产欧洲综合997久久,| 九色成人免费人妻av| 国产一区二区激情短视频| 国产一区二区在线av高清观看| 成年女人永久免费观看视频| 美女免费视频网站| 97人妻精品一区二区三区麻豆| 精品久久久久久久久亚洲 | 极品教师在线免费播放| 一个人免费在线观看电影| 欧美成人a在线观看| 亚洲精品久久国产高清桃花| 久久天躁狠狠躁夜夜2o2o| 1024手机看黄色片| 99热6这里只有精品| 夜夜夜夜夜久久久久| 国产单亲对白刺激| 欧洲精品卡2卡3卡4卡5卡区| 啦啦啦观看免费观看视频高清| 免费一级毛片在线播放高清视频| 波多野结衣巨乳人妻| 韩国av一区二区三区四区| 久久久久国产精品人妻aⅴ院| 国内精品一区二区在线观看| 全区人妻精品视频| 亚洲 国产 在线| 村上凉子中文字幕在线| 精品久久久久久久久亚洲 | av女优亚洲男人天堂| 中出人妻视频一区二区| 免费人成在线观看视频色| 成人国产综合亚洲| 色哟哟哟哟哟哟| 国内精品美女久久久久久| 日韩一本色道免费dvd| 3wmmmm亚洲av在线观看| 3wmmmm亚洲av在线观看| 精品国产三级普通话版| 国产精品,欧美在线| 国产精品日韩av在线免费观看| 一夜夜www| 性色avwww在线观看| 午夜爱爱视频在线播放| 亚洲一区高清亚洲精品| 精品99又大又爽又粗少妇毛片 | 波野结衣二区三区在线| 日日摸夜夜添夜夜添av毛片 | 日日啪夜夜撸| 黄片wwwwww| 精品乱码久久久久久99久播| 国产成人福利小说| 91久久精品国产一区二区成人| 18禁裸乳无遮挡免费网站照片| 日本欧美国产在线视频| 国产成人av教育| x7x7x7水蜜桃| 桃色一区二区三区在线观看| 中出人妻视频一区二区| 在线播放国产精品三级| 赤兔流量卡办理| 欧美精品啪啪一区二区三区| 99久久九九国产精品国产免费| 国产精品一区二区三区四区免费观看 | 99riav亚洲国产免费| 精品欧美国产一区二区三| 女人被狂操c到高潮| 亚洲成a人片在线一区二区| 欧美极品一区二区三区四区| 级片在线观看| 欧美潮喷喷水| 伊人久久精品亚洲午夜| 欧美一区二区精品小视频在线| 国产 一区精品| 婷婷六月久久综合丁香| 亚洲精品色激情综合| 黄色视频,在线免费观看| 国模一区二区三区四区视频| 能在线免费观看的黄片| 乱系列少妇在线播放| 欧美中文日本在线观看视频| 欧美国产日韩亚洲一区| 国产大屁股一区二区在线视频| 亚洲欧美日韩高清在线视频| 欧美日韩国产亚洲二区| 亚洲专区国产一区二区| 日韩人妻高清精品专区| 男人舔女人下体高潮全视频| 在线免费观看的www视频| 亚洲性夜色夜夜综合| 嫩草影院新地址| 日韩高清综合在线| 久久香蕉精品热| 又黄又爽又免费观看的视频| 国产一区二区三区视频了| 深夜a级毛片| 亚洲精品粉嫩美女一区| 欧美黑人巨大hd| 欧美色视频一区免费| 又爽又黄无遮挡网站| 中文字幕久久专区| 老熟妇乱子伦视频在线观看| 色哟哟哟哟哟哟| 欧美bdsm另类| 亚洲国产欧美人成| 一个人观看的视频www高清免费观看| 久久九九热精品免费| 韩国av在线不卡| 精品午夜福利视频在线观看一区| 日韩欧美在线二视频| 国产伦在线观看视频一区| 国产精品亚洲美女久久久| 亚洲第一区二区三区不卡| 国产三级在线视频| 国产精品一区二区三区四区久久| 国产精品爽爽va在线观看网站| 久久午夜福利片| 国内精品久久久久久久电影| 亚洲在线观看片| 又黄又爽又免费观看的视频| 日韩欧美 国产精品| 国内揄拍国产精品人妻在线| 亚洲最大成人av| 国模一区二区三区四区视频| 亚洲av免费高清在线观看| 亚洲一区高清亚洲精品| 99精品在免费线老司机午夜| 免费av不卡在线播放| 自拍偷自拍亚洲精品老妇| 九九久久精品国产亚洲av麻豆| 香蕉av资源在线| 狠狠狠狠99中文字幕| 久久精品国产亚洲网站| 国产色婷婷99| 国产精品98久久久久久宅男小说| 日韩欧美精品v在线| 色哟哟·www| 男插女下体视频免费在线播放| 亚洲不卡免费看| 又黄又爽又免费观看的视频| 自拍偷自拍亚洲精品老妇| 国产精品日韩av在线免费观看| 97热精品久久久久久| 亚洲精品456在线播放app | 国产真实伦视频高清在线观看 | 亚洲第一电影网av| 日韩在线高清观看一区二区三区 | 一进一出好大好爽视频| 日本a在线网址| 国内精品久久久久久久电影| 精品一区二区三区av网在线观看| 老熟妇乱子伦视频在线观看| 欧美日韩精品成人综合77777| 日本色播在线视频| 国产亚洲91精品色在线| 观看美女的网站| 亚洲成人久久爱视频| 国产精品久久电影中文字幕| 国产在线男女| 国产亚洲精品久久久久久毛片| 婷婷六月久久综合丁香| 精品免费久久久久久久清纯| 美女 人体艺术 gogo| 老女人水多毛片| 免费无遮挡裸体视频| 国产男靠女视频免费网站| 亚洲av日韩精品久久久久久密| 亚洲欧美日韩高清专用| 日韩欧美国产在线观看| 看免费成人av毛片| 精品久久久久久,| 偷拍熟女少妇极品色| 国产中年淑女户外野战色| 内地一区二区视频在线| 亚洲国产精品合色在线| 午夜福利欧美成人| 亚洲七黄色美女视频| 久久午夜亚洲精品久久| 精品99又大又爽又粗少妇毛片 | 最近视频中文字幕2019在线8| 在线免费观看不下载黄p国产 | 黄色女人牲交| 男女视频在线观看网站免费| 91麻豆av在线| 欧美激情久久久久久爽电影| 日韩欧美精品v在线| 欧美日韩乱码在线| 国产精品伦人一区二区| 特级一级黄色大片| 精品人妻视频免费看| 18禁在线播放成人免费| 能在线免费观看的黄片| 日日摸夜夜添夜夜添小说| 嫩草影视91久久| 嫩草影院精品99| 女的被弄到高潮叫床怎么办 | 九九热线精品视视频播放| 久9热在线精品视频| 亚洲av电影不卡..在线观看| 久久精品国产亚洲av涩爱 | av女优亚洲男人天堂| 久久国产精品人妻蜜桃| 麻豆久久精品国产亚洲av| 97超视频在线观看视频| 欧美色视频一区免费| 天堂av国产一区二区熟女人妻| av中文乱码字幕在线| 91麻豆精品激情在线观看国产| 深爱激情五月婷婷| 夜夜夜夜夜久久久久| 免费一级毛片在线播放高清视频| 老熟妇仑乱视频hdxx| 九色成人免费人妻av| 美女 人体艺术 gogo| 老司机深夜福利视频在线观看| 日本色播在线视频| 丝袜美腿在线中文| 亚洲久久久久久中文字幕| 99久久九九国产精品国产免费| 精华霜和精华液先用哪个| 免费大片18禁| 国产欧美日韩一区二区精品| 欧美国产日韩亚洲一区| 国产毛片a区久久久久| 日本色播在线视频| 91在线精品国自产拍蜜月| 久久精品国产亚洲网站| 国产午夜精品论理片| 亚洲自拍偷在线| 一个人观看的视频www高清免费观看| 中文在线观看免费www的网站| 99久久久亚洲精品蜜臀av| 日日干狠狠操夜夜爽| 国内精品久久久久精免费| 欧美一区二区精品小视频在线| 91久久精品国产一区二区三区| 在线看三级毛片| 内射极品少妇av片p| 男女做爰动态图高潮gif福利片| 亚洲欧美清纯卡通| 黄色欧美视频在线观看| 91久久精品电影网| 九九热线精品视视频播放| 在线看三级毛片| 又黄又爽又免费观看的视频| 国产伦精品一区二区三区视频9| 精品一区二区三区视频在线| 内射极品少妇av片p| 久久精品国产亚洲av香蕉五月| 麻豆国产av国片精品| 欧美人与善性xxx| 国产91精品成人一区二区三区| 可以在线观看的亚洲视频| 91狼人影院| 日日撸夜夜添| 国产精品美女特级片免费视频播放器| 99精品在免费线老司机午夜| 国产高清视频在线播放一区| 舔av片在线| 午夜福利成人在线免费观看| 亚洲经典国产精华液单| 亚洲av.av天堂| 久99久视频精品免费| 国产激情偷乱视频一区二区| 午夜免费成人在线视频| 舔av片在线| 又爽又黄无遮挡网站| 免费无遮挡裸体视频| 国产蜜桃级精品一区二区三区| 美女cb高潮喷水在线观看| 欧美最黄视频在线播放免费| 亚洲av中文av极速乱 | 国产在视频线在精品| 欧美日韩黄片免| 国产精品自产拍在线观看55亚洲| 婷婷丁香在线五月| 国产午夜福利久久久久久| 国产一区二区在线av高清观看| 国产成人aa在线观看| 中文字幕av在线有码专区| 2021天堂中文幕一二区在线观| 免费观看人在逋| 亚洲美女搞黄在线观看 | 精品日产1卡2卡| 国产探花极品一区二区| 日韩精品有码人妻一区| 日本一二三区视频观看| 成人精品一区二区免费| 国产不卡一卡二| 精品久久久久久久末码| 精品久久久噜噜| 日本五十路高清| 99久久无色码亚洲精品果冻| 十八禁国产超污无遮挡网站| 身体一侧抽搐| 日韩强制内射视频| 一卡2卡三卡四卡精品乱码亚洲| 老熟妇乱子伦视频在线观看| 日日撸夜夜添| 一进一出抽搐动态| 国产伦一二天堂av在线观看| 日韩中字成人| 嫩草影院新地址| 亚洲第一电影网av| ponron亚洲| 日日干狠狠操夜夜爽| 国产色爽女视频免费观看| 久久精品人妻少妇| 99国产精品一区二区蜜桃av| 别揉我奶头 嗯啊视频| 中文字幕av成人在线电影| 欧美激情在线99| 女的被弄到高潮叫床怎么办 | 久久久久久久久久黄片| bbb黄色大片| 欧美日韩瑟瑟在线播放| 91麻豆精品激情在线观看国产| 可以在线观看的亚洲视频| 人妻制服诱惑在线中文字幕| 天堂动漫精品| 亚洲精品456在线播放app | 我要搜黄色片| 国产又黄又爽又无遮挡在线| 波多野结衣高清无吗| 一本久久中文字幕| 欧美激情国产日韩精品一区| 久久精品影院6| 久久精品国产亚洲av天美| 国产精品久久久久久亚洲av鲁大| 久久亚洲真实| 天堂网av新在线| av国产免费在线观看| 毛片女人毛片| 内射极品少妇av片p| 国产国拍精品亚洲av在线观看| 亚洲精品456在线播放app | 日本爱情动作片www.在线观看 | 亚洲第一电影网av| 日本免费一区二区三区高清不卡| 日本a在线网址| 精品久久久久久久久久免费视频| 亚洲自拍偷在线| 毛片女人毛片| 熟妇人妻久久中文字幕3abv| 久久精品影院6| 校园春色视频在线观看| 国产美女午夜福利| 天天一区二区日本电影三级| 亚洲熟妇熟女久久| 国产v大片淫在线免费观看| av在线蜜桃| 色精品久久人妻99蜜桃| 国产免费男女视频| 欧美精品国产亚洲| 成人亚洲精品av一区二区| 22中文网久久字幕| 亚洲精品影视一区二区三区av| 91在线观看av| 天堂动漫精品| 成熟少妇高潮喷水视频| av在线观看视频网站免费| 禁无遮挡网站| 国产探花极品一区二区| 欧美精品国产亚洲| 午夜福利成人在线免费观看| 九九在线视频观看精品| 国产伦人伦偷精品视频| 99精品在免费线老司机午夜| 日韩中字成人| 久9热在线精品视频| 亚洲欧美日韩东京热| 久久精品综合一区二区三区| 国内精品久久久久久久电影| 国产亚洲精品综合一区在线观看| 久久这里只有精品中国| 乱系列少妇在线播放| 久久久久国产精品人妻aⅴ院| 91久久精品国产一区二区三区| 男女那种视频在线观看| 亚洲精品日韩av片在线观看| 一进一出抽搐动态| 亚洲中文字幕日韩| 日本 欧美在线| 成人综合一区亚洲| 亚洲精品成人久久久久久| bbb黄色大片| 亚洲经典国产精华液单| 深爱激情五月婷婷| 免费人成在线观看视频色| 99久久中文字幕三级久久日本| 国产精品久久电影中文字幕| 亚洲精品一区av在线观看| 人妻少妇偷人精品九色| 日本成人三级电影网站| 亚洲七黄色美女视频| 国产在线男女| 国产欧美日韩精品亚洲av| 别揉我奶头 嗯啊视频| 一级a爱片免费观看的视频| 精品人妻熟女av久视频| 久久香蕉精品热| 欧美zozozo另类| 老司机深夜福利视频在线观看| 美女黄网站色视频| 中文字幕免费在线视频6| 亚洲成人精品中文字幕电影| 最近在线观看免费完整版| 看十八女毛片水多多多| 狠狠狠狠99中文字幕| 中国美白少妇内射xxxbb| 亚洲熟妇中文字幕五十中出| 日韩欧美在线二视频| 午夜影院日韩av| 久久精品国产亚洲网站| 99久久久亚洲精品蜜臀av| 男人和女人高潮做爰伦理| 成人特级黄色片久久久久久久| or卡值多少钱| 久久国产精品人妻蜜桃| 成人三级黄色视频| 韩国av在线不卡| 免费看a级黄色片| 国产单亲对白刺激| 免费看a级黄色片| 51国产日韩欧美| 午夜福利高清视频| 亚洲国产色片| 999久久久精品免费观看国产| 俺也久久电影网| 欧美日本视频| 色综合站精品国产| 亚洲在线自拍视频| 在线免费观看的www视频| 99久久成人亚洲精品观看| 99国产极品粉嫩在线观看| 一本一本综合久久| 国产亚洲精品久久久久久毛片| 日本 欧美在线| 国产精品1区2区在线观看.| 日本爱情动作片www.在线观看 | 国内精品久久久久精免费| 亚洲av美国av| 国产高清三级在线| 免费电影在线观看免费观看| 国产精品永久免费网站| 久久婷婷人人爽人人干人人爱| 精品日产1卡2卡| 成人三级黄色视频| 久久草成人影院| 一a级毛片在线观看| 女的被弄到高潮叫床怎么办 | 亚洲一区高清亚洲精品| 国产av在哪里看| 国产69精品久久久久777片| 自拍偷自拍亚洲精品老妇| 国产视频内射| 波多野结衣高清无吗| 中文字幕精品亚洲无线码一区| av天堂在线播放| 一级黄片播放器| 婷婷精品国产亚洲av在线| 一级黄片播放器| 国产男靠女视频免费网站| 久久久国产成人精品二区| 国产午夜精品久久久久久一区二区三区 | 欧美三级亚洲精品| 久久国内精品自在自线图片| 精品一区二区三区视频在线观看免费| 免费观看的影片在线观看| 夜夜看夜夜爽夜夜摸| 毛片女人毛片| 三级国产精品欧美在线观看| 午夜爱爱视频在线播放| 午夜免费成人在线视频| 久久精品国产亚洲网站| 97人妻精品一区二区三区麻豆| 精品久久久久久成人av| www.色视频.com| 十八禁国产超污无遮挡网站| 亚州av有码| 黄色欧美视频在线观看| 波多野结衣高清作品| 久久久精品大字幕| 天堂动漫精品| 啦啦啦观看免费观看视频高清| 99在线人妻在线中文字幕| 亚洲av中文字字幕乱码综合| 琪琪午夜伦伦电影理论片6080| 看片在线看免费视频| 变态另类丝袜制服| 午夜视频国产福利| 欧美性感艳星| 国内精品一区二区在线观看| 久久久久久久精品吃奶| 国内精品一区二区在线观看| 性插视频无遮挡在线免费观看| 色综合色国产| 色精品久久人妻99蜜桃| 国产精品久久久久久久电影| 国产欧美日韩一区二区精品| 22中文网久久字幕| 国产中年淑女户外野战色| 亚洲精品亚洲一区二区| 日韩 亚洲 欧美在线| 国产男靠女视频免费网站| 亚洲精品456在线播放app | 麻豆国产av国片精品| 国内少妇人妻偷人精品xxx网站| 午夜福利高清视频| 热99re8久久精品国产| 无遮挡黄片免费观看|