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

    一種基于ReactNative的代碼壓縮與動(dòng)態(tài)加載的實(shí)現(xiàn)方法

    2016-04-08 02:35:33金昱東
    軟件 2016年2期
    關(guān)鍵詞:跨平臺(tái)

    金昱東

    摘要:隨著移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,移動(dòng)設(shè)備與平臺(tái)也在不斷更新迭代,多種平臺(tái)與操作系統(tǒng)共存。對(duì)用戶而言,多了一種選擇,而對(duì)于開發(fā)者而言,則大大增加了開發(fā)成本。為了實(shí)現(xiàn)相同的功能,為每個(gè)平臺(tái)單獨(dú)開發(fā)應(yīng)用無疑是一種非常耗費(fèi)人力資源的解決方案;而基于Web的跨平臺(tái)開發(fā)方案并不能保證在不同平臺(tái)提供統(tǒng)一流暢的用戶體驗(yàn)。因此降低開發(fā)成本、保證應(yīng)用體驗(yàn)是移動(dòng)平臺(tái)開發(fā)一直追求和關(guān)注的兩個(gè)核心點(diǎn)。本文論述了React Native相比其他跨平臺(tái)解決方案的優(yōu)勢(shì)與不同,并在React Native基礎(chǔ)上提供了一種代碼壓縮與動(dòng)態(tài)加載的解決方案,大幅減少動(dòng)態(tài)加載業(yè)務(wù)代碼的大小與傳輸時(shí)間,將其在實(shí)際開發(fā)中的實(shí)用性進(jìn)一步提高。

    關(guān)鍵詞:軟件工程;移動(dòng)互聯(lián)網(wǎng);跨平臺(tái);ReactNative;動(dòng)態(tài)加載

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

    文獻(xiàn)標(biāo)識(shí)碼:A

    DOI:10.3969/j.issn.1003-6970.2016.02.020

    引言

    移動(dòng)端的操作系統(tǒng)目前呈現(xiàn)兩極分化,Android與iOS是目前最普及的兩個(gè)移動(dòng)操作系統(tǒng)。然而在為它們開發(fā)同一個(gè)應(yīng)用程序時(shí),通常都需要兩套開發(fā)人員來維護(hù)兩個(gè)不同的代碼倉庫。除了React Native外比較流行的解決辦法是使用Htm15等Web技術(shù)來實(shí)現(xiàn)“一套代碼,多處運(yùn)行”。然而由于設(shè)備與操作系統(tǒng)的差異性,基于Web的界面與交互在兩個(gè)平臺(tái)上的體驗(yàn)并不一致且相差甚遠(yuǎn)。因此它只解決了開發(fā)成本的問題,并沒有解決保證應(yīng)用體驗(yàn)的問題。然而React Native則很好的同時(shí)解決了這兩個(gè)問題。

    另外值得一提的是在Android與iOS平臺(tái)都可以實(shí)現(xiàn)代碼的動(dòng)態(tài)加載,與Web同樣靈活。即在程序運(yùn)行的過程中更新業(yè)務(wù)代碼,可以用來實(shí)現(xiàn)bug修復(fù)或應(yīng)用升級(jí)等功能。

    Android依托于Java的Classloader,而iOS依托于Objective-的動(dòng)態(tài)性。React Native主要使用JS作為開發(fā)語言,也非常好的支持了動(dòng)態(tài)加載機(jī)制,但缺點(diǎn)是打包后的JS代碼過多,不利于在質(zhì)量較低的移動(dòng)網(wǎng)絡(luò)下進(jìn)行傳輸。因此本論文提出了一種基于ReactNative的代碼壓縮方法,可以大幅精簡(jiǎn)JS代碼量,使其在移動(dòng)網(wǎng)絡(luò)下的穩(wěn)健性更高、實(shí)用性更強(qiáng)。

    1 React Native的概念

    React Native是Facebook在2015年發(fā)布的一套基于JavaScript的開源框架。React Native結(jié)合了Web應(yīng)用和Native應(yīng)用的優(yōu)勢(shì),可以使用JavaScript來開發(fā)iOS和Android原生應(yīng)用。在JavaScript中用React抽象操作系統(tǒng)原生的UI組件,代替DOM元素來渲染界面。因此它同時(shí)解決了以下的兩個(gè)問題:

    1.1 減少開發(fā)成本

    無論是Android還是iOS平臺(tái),React Native都使用JavaScript作為主要的開發(fā)語言,同時(shí)它也使用了React來簡(jiǎn)化和加速開發(fā)流程。由于Android與iOS中的系統(tǒng)UI組件大部分都相似(如文字、圖片、列表等),基礎(chǔ)功能(如本地存儲(chǔ)、動(dòng)畫、通知)也基本類似,因此React Native將這些組件統(tǒng)一抽象為一個(gè)Module,開發(fā)者不用再關(guān)心到底當(dāng)前編寫的Module運(yùn)行在哪個(gè)平臺(tái)上,只需要關(guān)注本身的業(yè)務(wù)邏輯即可。

    而對(duì)于Android與iOS所各自特有的概念,ReactNative進(jìn)行單獨(dú)定義,如Android中的Toolbar、iOS中的TabBar等等。這樣開發(fā)者就可以針對(duì)不同平臺(tái)的特性,在現(xiàn)有代碼基礎(chǔ)上稍作修改以適配不同的移動(dòng)操作系統(tǒng)。Android軟件的設(shè)計(jì)與其他系統(tǒng)中軟件設(shè)計(jì)基本類似,可能在測(cè)試方法、測(cè)試用例的編寫上有所不同,但是畢竟開發(fā)流程并不同意。

    Facebook在提出React Native的時(shí)候提出“Learnonce,write anywhere”,即不同的平臺(tái)代碼不會(huì)完全相同,但是會(huì)很相似。即也可以保證一套開發(fā)人員即可完成多平臺(tái)業(yè)務(wù)場(chǎng)景的開發(fā)與實(shí)現(xiàn),相較于傳統(tǒng)的開發(fā)方式有很大改觀。

    1.2 提供一致的用戶體驗(yàn)

    一般來講,在各自平臺(tái)使用原生的API開發(fā)的應(yīng)用是運(yùn)行效率最高的,即用戶體驗(yàn)最好的。而基于Web形式的應(yīng)用既需要加載時(shí)間,又需要有較強(qiáng)的處理器進(jìn)行DOM渲染,因此在不同平臺(tái)、不同設(shè)備上的體驗(yàn)非常不一致。雖然說JQuery等開源方案經(jīng)過優(yōu)化可以達(dá)到比較好的效果,但是離原生應(yīng)用差距還是較大。

    舉例來說PhoneGap屬于較為成熟的基于Web的跨平臺(tái)解決方案,它在iOS上的流暢度和加載時(shí)間要遠(yuǎn)遠(yuǎn)好于Android,或Android中只能處理一些簡(jiǎn)單的靜態(tài)邏輯。如果僅僅使用PhoneGap為iOS開發(fā),就失去了跨平臺(tái)解決方案的意義。

    React Native雖然使用JavaScript作為開發(fā)語言,但是它并不將界面UI渲染到Web上,而是使用JavaScript解釋器,將JS代碼解釋為原生的組件再渲染到界面上。因此,從用戶體驗(yàn)上來講,React Native的渲染效率應(yīng)該與原生應(yīng)用是一致的。它與Web類的開發(fā)框架的不同之處在下一章進(jìn)行詳細(xì)講解。

    2 React Native運(yùn)行原理

    由于Android版本的React Native剛處于測(cè)試階段,因此這里選取iOS作為分析對(duì)象,對(duì)不同平臺(tái)來說,它們的實(shí)現(xiàn)原理基本類似。

    2.1 JS與原生模塊相互調(diào)用

    在iOS中,React Native使用白帶的JavaScriptCore作為JS的解析引擎,但并沒有用到JavaScriptCore提供的一些可以讓JS與OC互調(diào)的特性,而是自己實(shí)現(xiàn)了一套機(jī)制,這套機(jī)制可以通用于所有JS引擎上,這么做應(yīng)該也是考慮到了項(xiàng)目的靈活性與iOS安全機(jī)制的問題。

    實(shí)際上普通的JS與原生代碼的調(diào)用非常簡(jiǎn)掣,無論是Android還是iOS,原生代碼可以向JS傳遞消息,如iOS中webview提供的stringByEvaluatingjavaScriptFromString方法可以直接執(zhí)行一段JS腳本,并且可以獲取它的返回值。這個(gè)返回值其實(shí)就相當(dāng)于JS向原生代碼傳遞消息。React Native就是以此為基礎(chǔ),通過模塊配置表和響應(yīng)流程實(shí)現(xiàn)了原生代碼與JS代碼的無縫銜接調(diào)用。

    2.2 模塊配置表

    在React Native初始化的時(shí)候,為了使JS知道可調(diào)用的原生模塊Module方法與命名,需要將一份Module的配置表傳遞給JS,配置表里包含了所有的模塊和模塊中的方法信息。

    React Native框架中提供了一個(gè)叫做RCTBridgeModule的接口。在React Native初始化的時(shí)候,可以通過runtime接口objc_getClassList獲取所有的類,然后逐個(gè)判斷是否實(shí)現(xiàn)了RCTBridgeModule接口,就可以找到所有的模塊類了。一個(gè)模塊中有很多方法,一些可以暴露給JS調(diào)用,另一些則不需要。需要暴露的方法使用RCT_EXPORT_METHOD宏定義包裹,其實(shí)是將方法名在編譯時(shí)重新定義為有固定前綴的方法,方便查找并記錄。

    因此在原生代碼中定義好了接口與函數(shù),ReactNative就會(huì)根據(jù)運(yùn)行時(shí)環(huán)境獲取所有的模塊與其方法生成模塊配置表。這個(gè)配置表在原生代碼與JS代碼之間都維持一份相同的配置,便于原生代碼與JS代碼相互調(diào)用。

    2.3 事件傳遞響應(yīng)流程

    React Native的主要核心是自己實(shí)現(xiàn)了一套JS與原生代碼相互調(diào)用的機(jī)制,這也是與其他基于Web的跨平臺(tái)方案不同的地方。使用JS寫好業(yè)務(wù)代碼后,由React Native進(jìn)行解釋,偏向效率的邏輯執(zhí)行、UI渲染都會(huì)在原生階段進(jìn)行處理,因此React Native的執(zhí)行效率要比其他的跨平臺(tái)方案高很多。

    JS與原生代碼的調(diào)用流程比較負(fù)責(zé),如下所示:

    1、JS端調(diào)用原生模塊中的某個(gè)方法

    2、將調(diào)用分解為模塊名、方法名、參數(shù),傳遞給MessageQueue進(jìn)行處理,生成callbackld

    3、將模塊名、方法名、參數(shù)對(duì)應(yīng)模塊配置表,轉(zhuǎn)換成模塊id、方法id、參數(shù)id

    4、原生模塊根據(jù)各個(gè)id確定被調(diào)用的方法與參數(shù)

    5、執(zhí)行原生代碼邏輯,將執(zhí)行結(jié)果進(jìn)行回調(diào)

    6、JS端根據(jù)callbackld接收?qǐng)?zhí)行結(jié)果

    其中需要特別注意的是,JS并不會(huì)主動(dòng)傳遞數(shù)據(jù)給OC。在調(diào)用OC方法時(shí),會(huì)把模塊id、方法id放入到一個(gè)隊(duì)列中。等原生代碼過來調(diào)用JS的任意方法時(shí),將這個(gè)隊(duì)列返回再執(zhí)行這個(gè)隊(duì)列中需要執(zhí)行的方法。所以React Native是一種基于事件響應(yīng)機(jī)制的框架,在沒有操作時(shí)不會(huì)進(jìn)行無效的循環(huán)執(zhí)行。

    3 代碼壓縮與動(dòng)態(tài)加載

    3.1 動(dòng)態(tài)加載的概念

    在移動(dòng)平臺(tái)安裝或更新軟件時(shí),通常使用apk或ipa文件進(jìn)行安裝,也就是所稱的安裝包。這個(gè)安裝包中包含了應(yīng)用全部功能的實(shí)現(xiàn)。然而通常情況下,用戶只有下載完整的安裝包才能使用最新版的軟件系統(tǒng)。動(dòng)態(tài)加載的概念則是只下載更新部分的特定代碼(文件形式),覆蓋到原來的代碼空間,這個(gè)概念與我們?cè)赪indows平臺(tái)上所說的補(bǔ)丁概念類似。

    在移動(dòng)平臺(tái)的背景下,由于用戶的網(wǎng)絡(luò)環(huán)境可能更差、存儲(chǔ)空間更小,因此動(dòng)態(tài)加載就非常適用于移動(dòng)平臺(tái)軟件的更新與需求實(shí)現(xiàn)。另外一方面,由于移動(dòng)互聯(lián)網(wǎng)發(fā)展迅速、軟件迭代頻繁,動(dòng)態(tài)加載可以在不下載完整安裝包的情況下,讓用戶沒有感知的完成應(yīng)用的更新,更有利于修復(fù)線上bug與需求的快速實(shí)現(xiàn)。

    React Native就完全支持動(dòng)態(tài)加載的這個(gè)特性,當(dāng)開發(fā)人員編寫好新的功能模塊時(shí),將業(yè)務(wù)代碼與所需要的資源(Assets)打包下發(fā)到軟件中,軟件再動(dòng)態(tài)加載業(yè)務(wù)代碼,實(shí)現(xiàn)動(dòng)態(tài)加載。主要流程如下圖所示:

    需要注意的是,在下載更新包之后,需要對(duì)代碼的版本、安全性進(jìn)行驗(yàn)證,防止打錯(cuò)版本或第三方對(duì)軟件進(jìn)行篡改劫持。

    3.2 簡(jiǎn)化JS代碼結(jié)構(gòu)

    在React Native當(dāng)中,可以對(duì)JS業(yè)務(wù)代碼進(jìn)行打包處理,即JS代碼既可以在線訪問也可以離線訪問。使用如下命令可以將JS業(yè)務(wù)代碼進(jìn)行打包:

    react-native Bundle-minify

    這樣就可以將JS業(yè)務(wù)代碼打包成一個(gè)bunlde文件,在app運(yùn)行時(shí)指定這個(gè)文件的本地地址(或在線地址)就可以對(duì)其進(jìn)行訪問并解釋執(zhí)行。但是有一個(gè)非常明顯的缺陷是,使用React Native提供的bunlde命令打包出的JS文件代碼量非常的大,至少有5萬行以上。React Native應(yīng)用加載的流程如下圖所示:從圖中可以看到,第三步與第四步中是較為耗時(shí)的兩個(gè)過程。沒有經(jīng)過處理的bunlde文件體積通常在300KB以上,如果使用2G網(wǎng)絡(luò)傳輸則需要至少十秒以上,這對(duì)于用戶體驗(yàn)有非常大的影響。另外,過多的代碼量對(duì)移動(dòng)的設(shè)備的性能也會(huì)造成影響,5萬行代碼的執(zhí)行時(shí)間通常也在200到300毫秒之間,雖然說時(shí)間并不多,但是用戶可以明顯感受到加載界面時(shí)的卡頓現(xiàn)象。

    因此在本研究當(dāng)中針對(duì)這兩個(gè)非常耗時(shí)的環(huán)節(jié)進(jìn)行優(yōu)化,提出了一種分離基礎(chǔ)JS與業(yè)務(wù)JS的方法,可以大大縮小代碼的下載與加載時(shí)間。如下圖所示:

    如上圖所示,原有的Bundle文件中,同時(shí)夾雜了基礎(chǔ)JS代碼與業(yè)務(wù)JS代碼?;A(chǔ)JS代碼指的是業(yè)務(wù)代碼運(yùn)行時(shí)所依賴的基礎(chǔ)環(huán)境。我們?yōu)椴煌K打包出的的Bundle文件中都會(huì)包含基礎(chǔ)JS代碼,因此如果軟件中同時(shí)有多個(gè)Bundle文件時(shí),會(huì)造成空間的浪費(fèi)。經(jīng)過驗(yàn)證基礎(chǔ)JS代碼大概在5萬行左右,而業(yè)務(wù)JS根據(jù)業(yè)務(wù)復(fù)雜程度而定,一般不超過IOKB,這樣就非常有利于業(yè)務(wù)JS在網(wǎng)絡(luò)中進(jìn)行傳遞與動(dòng)態(tài)加載。

    3.3 動(dòng)態(tài)加載與實(shí)驗(yàn)驗(yàn)證

    在分離了JS代碼之后,就可以針對(duì)具體的業(yè)務(wù)場(chǎng)景進(jìn)行優(yōu)化。由于基礎(chǔ)JS文件較大,不適合在網(wǎng)絡(luò)中進(jìn)行傳輸,因此可以將其緩存在本地。而每次啟動(dòng)應(yīng)用進(jìn)行更新時(shí),只需要下載體積非常小的業(yè)務(wù)JS。流程如下圖所示:

    應(yīng)用啟動(dòng)后,加載本地的基礎(chǔ)JS代碼,且在不同的業(yè)務(wù)場(chǎng)景切換時(shí)不再次加載。即基礎(chǔ)JS在各個(gè)業(yè)務(wù)場(chǎng)景間進(jìn)行共享。其次從網(wǎng)絡(luò)中下載業(yè)務(wù)JS代碼,由于單個(gè)業(yè)務(wù)場(chǎng)景邏輯本身實(shí)現(xiàn)并不需要非常大的代碼量,因此一般業(yè)務(wù)JS打包并壓縮之后可以保持在SKB左右,使用2G網(wǎng)絡(luò)進(jìn)行下載時(shí)僅僅需要1秒就可以完成。同時(shí)由于不再需要加載基礎(chǔ)JS,渲染業(yè)務(wù)場(chǎng)景的時(shí)間也會(huì)更少,經(jīng)過實(shí)驗(yàn)驗(yàn)證僅需10到50毫秒即可渲染完畢。相較于之前的200毫秒有較大的提升。如下表所示:

    4 結(jié)論

    React Native不同于其他的跨平臺(tái)開發(fā)框架,它同時(shí)解決了開發(fā)成本和運(yùn)行效率的兩個(gè)關(guān)鍵問題。在此基礎(chǔ)之上本論文優(yōu)化了其工程代碼結(jié)構(gòu),將基礎(chǔ)JS與業(yè)務(wù)JS相互隔離,兩部分可獨(dú)立更新與迭代替換。其次在使用React Native進(jìn)行動(dòng)態(tài)加載時(shí),僅需加載業(yè)務(wù)JS即可,大幅減少了在移動(dòng)網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)大小,加快了界面的載入速度,同時(shí)也明顯提升了應(yīng)用的用戶體驗(yàn)。

    猜你喜歡
    跨平臺(tái)
    跨層級(jí)網(wǎng)絡(luò)、跨架構(gòu)、跨平臺(tái)的數(shù)據(jù)共享交換關(guān)鍵技術(shù)研究與系統(tǒng)建設(shè)
    一款游戲怎么掙到全平臺(tái)的錢?
    潛力雙跨平臺(tái):進(jìn)階:誰將跨入下一個(gè)“十大”?
    跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
    基于C++語言的跨平臺(tái)軟件開發(fā)的設(shè)計(jì)
    基于C++語言的跨平臺(tái)軟件開發(fā)
    移動(dòng)互聯(lián)網(wǎng)應(yīng)用跨平臺(tái)開發(fā)
    一種虛擬現(xiàn)實(shí)應(yīng)用程序跨平臺(tái)方法的研究
    基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
    基于OPC跨平臺(tái)通信的電機(jī)監(jiān)測(cè)與診斷系統(tǒng)
    麻豆成人午夜福利视频| 中国美白少妇内射xxxbb| 建设人人有责人人尽责人人享有的 | 亚洲av中文字字幕乱码综合| videos熟女内射| 人妻系列 视频| 日韩亚洲欧美综合| 亚洲精品久久午夜乱码| 在线观看三级黄色| 菩萨蛮人人尽说江南好唐韦庄| 亚洲成人中文字幕在线播放| 国产精品一区二区性色av| 80岁老熟妇乱子伦牲交| 在线观看人妻少妇| 久久久久久久国产电影| 国产视频内射| av不卡在线播放| 天天躁日日操中文字幕| 国产免费一区二区三区四区乱码| 男女边吃奶边做爰视频| 最新中文字幕久久久久| 一区二区三区精品91| 国产白丝娇喘喷水9色精品| 男女无遮挡免费网站观看| 亚洲美女搞黄在线观看| 美女高潮的动态| 国产美女午夜福利| 青春草视频在线免费观看| 建设人人有责人人尽责人人享有的 | 欧美bdsm另类| 亚洲成人中文字幕在线播放| 婷婷色麻豆天堂久久| 免费av不卡在线播放| 高清视频免费观看一区二区| 精品一区二区三卡| 18禁动态无遮挡网站| 麻豆精品久久久久久蜜桃| 免费观看的影片在线观看| 一级毛片久久久久久久久女| 97超视频在线观看视频| 一区在线观看完整版| 国内少妇人妻偷人精品xxx网站| 免费大片黄手机在线观看| 午夜免费观看性视频| 老熟女久久久| 国产视频内射| 亚洲欧美日韩另类电影网站 | 尤物成人国产欧美一区二区三区| 成年免费大片在线观看| 成年人午夜在线观看视频| 91精品国产国语对白视频| 亚洲精品色激情综合| 一区二区三区精品91| 纵有疾风起免费观看全集完整版| 久久久久久久久久人人人人人人| 一个人看视频在线观看www免费| 精品久久久噜噜| 精品人妻一区二区三区麻豆| 18禁动态无遮挡网站| 建设人人有责人人尽责人人享有的 | 99久久综合免费| 亚洲av电影在线观看一区二区三区| 十分钟在线观看高清视频www | 欧美变态另类bdsm刘玥| 黄色欧美视频在线观看| 国产亚洲av片在线观看秒播厂| 又爽又黄a免费视频| 麻豆精品久久久久久蜜桃| 久久久色成人| 免费观看的影片在线观看| 欧美成人一区二区免费高清观看| 在线观看国产h片| 国产亚洲午夜精品一区二区久久| 亚州av有码| 日韩中文字幕视频在线看片 | 在线亚洲精品国产二区图片欧美 | 网址你懂的国产日韩在线| 国产成人a区在线观看| 在线观看人妻少妇| 国产乱人偷精品视频| 精品亚洲乱码少妇综合久久| 亚洲精品456在线播放app| 一级av片app| 麻豆精品久久久久久蜜桃| 日韩 亚洲 欧美在线| 51国产日韩欧美| 亚洲国产色片| 国内精品宾馆在线| 国产精品嫩草影院av在线观看| 18禁在线无遮挡免费观看视频| 丰满少妇做爰视频| 午夜老司机福利剧场| 精品久久久久久久末码| 久久99热这里只频精品6学生| 综合色丁香网| 免费观看性生交大片5| 卡戴珊不雅视频在线播放| 国产黄片视频在线免费观看| 久久青草综合色| 国产免费视频播放在线视频| 天天躁日日操中文字幕| 国产成人a∨麻豆精品| 91久久精品国产一区二区成人| 午夜老司机福利剧场| 亚洲国产最新在线播放| 久久国产亚洲av麻豆专区| 六月丁香七月| 嫩草影院新地址| 久久综合国产亚洲精品| 天堂8中文在线网| 日本av手机在线免费观看| 少妇裸体淫交视频免费看高清| 日韩强制内射视频| 亚洲一级一片aⅴ在线观看| 亚洲欧洲国产日韩| 日韩中文字幕视频在线看片 | 久久久久久人妻| 高清在线视频一区二区三区| 又爽又黄a免费视频| 一级爰片在线观看| 免费人成在线观看视频色| 亚洲三级黄色毛片| 久久亚洲国产成人精品v| 一个人看视频在线观看www免费| 三级经典国产精品| 精品熟女少妇av免费看| 精品熟女少妇av免费看| 久久人妻熟女aⅴ| 国产永久视频网站| 男女边摸边吃奶| 91午夜精品亚洲一区二区三区| av在线观看视频网站免费| 婷婷色综合大香蕉| 丰满人妻一区二区三区视频av| 纯流量卡能插随身wifi吗| 黄色视频在线播放观看不卡| 在线免费观看不下载黄p国产| 男人狂女人下面高潮的视频| 建设人人有责人人尽责人人享有的 | 少妇裸体淫交视频免费看高清| 国产免费视频播放在线视频| 夜夜骑夜夜射夜夜干| 国产在视频线精品| 精品一区二区三区视频在线| 亚洲欧美中文字幕日韩二区| 国产片特级美女逼逼视频| 久久久色成人| 狂野欧美激情性bbbbbb| 欧美日韩亚洲高清精品| 直男gayav资源| 极品少妇高潮喷水抽搐| 亚洲国产毛片av蜜桃av| 中国美白少妇内射xxxbb| 91狼人影院| 插逼视频在线观看| 成人毛片a级毛片在线播放| av网站免费在线观看视频| 久久久午夜欧美精品| 日韩伦理黄色片| 亚洲一级一片aⅴ在线观看| 亚洲欧洲日产国产| 啦啦啦中文免费视频观看日本| 精品久久久久久久末码| 毛片女人毛片| 啦啦啦啦在线视频资源| 高清在线视频一区二区三区| 秋霞伦理黄片| 不卡视频在线观看欧美| 肉色欧美久久久久久久蜜桃| 午夜福利在线在线| 亚洲综合色惰| 我要看日韩黄色一级片| 久久精品国产综合久久久| 欧美精品亚洲一区二区| 蜜桃国产av成人99| av天堂在线播放| 国产av一区二区精品久久| 看十八女毛片水多多多| 交换朋友夫妻互换小说| 日本午夜av视频| 精品久久蜜臀av无| 久久综合国产亚洲精品| 王馨瑶露胸无遮挡在线观看| 亚洲专区国产一区二区| 国产成人欧美| 久久精品熟女亚洲av麻豆精品| 久久久久精品人妻al黑| 精品国产乱码久久久久久男人| 亚洲av国产av综合av卡| 99热网站在线观看| 久久人人爽av亚洲精品天堂| 丰满少妇做爰视频| 麻豆乱淫一区二区| 亚洲国产精品国产精品| 人妻 亚洲 视频| 亚洲av美国av| 久久人妻熟女aⅴ| 如日韩欧美国产精品一区二区三区| 桃花免费在线播放| 一级毛片女人18水好多 | 亚洲男人天堂网一区| 国产免费福利视频在线观看| 免费观看a级毛片全部| 久久久精品国产亚洲av高清涩受| 亚洲国产中文字幕在线视频| 久久久久网色| 午夜精品国产一区二区电影| 久久久国产欧美日韩av| 亚洲,欧美,日韩| 日本a在线网址| 美女主播在线视频| 国产亚洲午夜精品一区二区久久| 人人妻人人添人人爽欧美一区卜| 在线 av 中文字幕| 18禁观看日本| 午夜福利视频在线观看免费| 在线精品无人区一区二区三| 黄色一级大片看看| 久久人妻熟女aⅴ| 制服诱惑二区| 91麻豆av在线| 午夜日韩欧美国产| 热re99久久精品国产66热6| 91成人精品电影| 美女中出高潮动态图| 99久久人妻综合| 考比视频在线观看| 午夜福利在线免费观看网站| 国产成人精品久久二区二区91| 国产精品久久久久久人妻精品电影 | 黄色片一级片一级黄色片| 中文字幕色久视频| 精品第一国产精品| 国产片特级美女逼逼视频| av在线app专区| h视频一区二区三区| 午夜福利免费观看在线| 国产精品国产三级专区第一集| 一本色道久久久久久精品综合| 精品第一国产精品| 午夜激情av网站| 中文字幕亚洲精品专区| 免费看不卡的av| 你懂的网址亚洲精品在线观看| 69精品国产乱码久久久| 国产亚洲午夜精品一区二区久久| 中文字幕av电影在线播放| 亚洲欧美一区二区三区国产| 涩涩av久久男人的天堂| 99re6热这里在线精品视频| 大型av网站在线播放| 日本vs欧美在线观看视频| 国产精品一区二区免费欧美 | xxxhd国产人妻xxx| 美国免费a级毛片| 伊人久久大香线蕉亚洲五| 亚洲,欧美精品.| 亚洲av欧美aⅴ国产| 99热网站在线观看| 久久人人爽av亚洲精品天堂| 热99国产精品久久久久久7| av线在线观看网站| 亚洲第一青青草原| 性色av乱码一区二区三区2| 亚洲人成电影观看| 自拍欧美九色日韩亚洲蝌蚪91| 久久 成人 亚洲| 欧美成人午夜精品| 国产日韩欧美在线精品| 国产精品一区二区在线观看99| 一区二区三区精品91| 午夜激情久久久久久久| 久久精品国产综合久久久| a 毛片基地| a 毛片基地| 亚洲欧美日韩高清在线视频 | 国产av精品麻豆| 99久久99久久久精品蜜桃| 亚洲 欧美一区二区三区| 亚洲精品日本国产第一区| 男人舔女人的私密视频| 久久精品国产亚洲av涩爱| 国产精品国产三级专区第一集| av网站在线播放免费| 色播在线永久视频| 亚洲 国产 在线| 亚洲精品美女久久av网站| 一级,二级,三级黄色视频| 日韩av免费高清视频| 亚洲午夜精品一区,二区,三区| 国产又爽黄色视频| 51午夜福利影视在线观看| bbb黄色大片| 久久人人爽av亚洲精品天堂| 亚洲熟女毛片儿| 亚洲精品一二三| 男女下面插进去视频免费观看| 在线av久久热| 无限看片的www在线观看| 男女午夜视频在线观看| 美女高潮到喷水免费观看| 麻豆国产av国片精品| 国产人伦9x9x在线观看| 一二三四在线观看免费中文在| 久久狼人影院| 男的添女的下面高潮视频| 国产精品人妻久久久影院| 在线 av 中文字幕| 国产又爽黄色视频| 亚洲欧美一区二区三区黑人| av又黄又爽大尺度在线免费看| 亚洲午夜精品一区,二区,三区| 国产精品久久久人人做人人爽| 满18在线观看网站| 狂野欧美激情性xxxx| 午夜福利影视在线免费观看| 一个人免费看片子| 黄频高清免费视频| 国产成人免费观看mmmm| 最近手机中文字幕大全| 亚洲欧美色中文字幕在线| 你懂的网址亚洲精品在线观看| 99热网站在线观看| 亚洲国产最新在线播放| 大香蕉久久成人网| svipshipincom国产片| 国产视频一区二区在线看| 赤兔流量卡办理| 亚洲av国产av综合av卡| 国产成人av激情在线播放| 天天躁夜夜躁狠狠躁躁| 看十八女毛片水多多多| 99久久精品国产亚洲精品| 婷婷色综合www| 国产淫语在线视频| 这个男人来自地球电影免费观看| 青春草亚洲视频在线观看| 日韩中文字幕欧美一区二区 | 国产成人欧美在线观看 | 黄色视频在线播放观看不卡| 日韩电影二区| 欧美xxⅹ黑人| 男女边吃奶边做爰视频| 久久国产精品影院| 国产精品久久久人人做人人爽| 欧美精品一区二区免费开放| 亚洲,一卡二卡三卡| 国产爽快片一区二区三区| 国产高清不卡午夜福利| 777米奇影视久久| 亚洲欧美一区二区三区国产| 亚洲,欧美精品.| 日本午夜av视频| 欧美日韩视频高清一区二区三区二| 国产高清视频在线播放一区 | 精品少妇黑人巨大在线播放| 后天国语完整版免费观看| 亚洲精品av麻豆狂野| 亚洲av成人不卡在线观看播放网 | 国产一区二区三区综合在线观看| 男人操女人黄网站| 黄色毛片三级朝国网站| 久久久久久久大尺度免费视频| 亚洲成色77777| 首页视频小说图片口味搜索 | 色网站视频免费| 狂野欧美激情性xxxx| 青春草亚洲视频在线观看| 亚洲成人免费电影在线观看 | 又粗又硬又长又爽又黄的视频| 亚洲欧美精品综合一区二区三区| 午夜免费观看性视频| 欧美精品一区二区免费开放| 日本av手机在线免费观看| 亚洲av在线观看美女高潮| 精品免费久久久久久久清纯 | 丰满迷人的少妇在线观看| 日韩 亚洲 欧美在线| 精品人妻熟女毛片av久久网站| 久久久精品国产亚洲av高清涩受| 一本大道久久a久久精品| 一区福利在线观看| 国产精品一国产av| 好男人视频免费观看在线| 精品亚洲成a人片在线观看| 久久久国产精品麻豆| 自拍欧美九色日韩亚洲蝌蚪91| a 毛片基地| 啦啦啦 在线观看视频| 一本色道久久久久久精品综合| 中文乱码字字幕精品一区二区三区| 亚洲国产精品999| 亚洲欧美成人综合另类久久久| 日韩免费高清中文字幕av| 赤兔流量卡办理| 黄色片一级片一级黄色片| 欧美性长视频在线观看| 99re6热这里在线精品视频| 国产97色在线日韩免费| 亚洲国产精品成人久久小说| 亚洲精品美女久久久久99蜜臀 | 悠悠久久av| 人体艺术视频欧美日本| 国产人伦9x9x在线观看| 韩国精品一区二区三区| 亚洲av欧美aⅴ国产| 久久99热这里只频精品6学生| 91成人精品电影| 大香蕉久久成人网| 99久久综合免费| 久久久精品免费免费高清| 麻豆国产av国片精品| 2021少妇久久久久久久久久久| 国产精品香港三级国产av潘金莲 | 亚洲午夜精品一区,二区,三区| 国产欧美日韩一区二区三 | 黄色一级大片看看| 精品欧美一区二区三区在线| 一区二区三区激情视频| 国产有黄有色有爽视频| 国产一区二区 视频在线| av线在线观看网站| 天天躁夜夜躁狠狠久久av| 日日爽夜夜爽网站| 美女午夜性视频免费| 男人操女人黄网站| 五月天丁香电影| 成年人免费黄色播放视频| 久久久久国产一级毛片高清牌| 国产精品国产三级国产专区5o| 午夜福利在线免费观看网站| 爱豆传媒免费全集在线观看| 久久国产精品影院| 成人免费观看视频高清| 一边亲一边摸免费视频| 亚洲国产欧美日韩在线播放| 99国产精品一区二区蜜桃av | 国产精品一区二区免费欧美 | 十八禁高潮呻吟视频| 99国产精品一区二区蜜桃av | 免费一级毛片在线播放高清视频 | 日本欧美视频一区| 青草久久国产| 又黄又粗又硬又大视频| 国产一区二区 视频在线| 国产在线一区二区三区精| 国产女主播在线喷水免费视频网站| 亚洲黑人精品在线| 亚洲av男天堂| 一边摸一边做爽爽视频免费| 国产精品九九99| 一级毛片电影观看| 老熟女久久久| 亚洲黑人精品在线| 亚洲中文日韩欧美视频| 欧美黑人精品巨大| 日本wwww免费看| 午夜两性在线视频| 香蕉丝袜av| 高清不卡的av网站| 久久精品熟女亚洲av麻豆精品| 免费在线观看黄色视频的| 在线 av 中文字幕| 黄色视频不卡| 久久久精品94久久精品| av天堂在线播放| 久久精品成人免费网站| 热re99久久国产66热| 另类亚洲欧美激情| 日韩制服骚丝袜av| 一边摸一边做爽爽视频免费| 少妇裸体淫交视频免费看高清 | 欧美另类一区| 精品人妻一区二区三区麻豆| 两性夫妻黄色片| 曰老女人黄片| 精品久久久久久久毛片微露脸 | 亚洲人成电影观看| 色婷婷久久久亚洲欧美| 在线天堂中文资源库| 国产男女内射视频| 精品人妻1区二区| 观看av在线不卡| 一级黄色大片毛片| 亚洲欧美一区二区三区黑人| 啦啦啦视频在线资源免费观看| a级片在线免费高清观看视频| 一级毛片 在线播放| 久久久久久久国产电影| 日韩av在线免费看完整版不卡| 王馨瑶露胸无遮挡在线观看| 18禁国产床啪视频网站| 啦啦啦在线观看免费高清www| 亚洲伊人色综图| 日本午夜av视频| 亚洲中文字幕日韩| 最近最新中文字幕大全免费视频 | kizo精华| 自拍欧美九色日韩亚洲蝌蚪91| 好男人电影高清在线观看| 国产黄频视频在线观看| 日韩 亚洲 欧美在线| 欧美日韩亚洲综合一区二区三区_| 黄片播放在线免费| 欧美97在线视频| 午夜免费鲁丝| 91字幕亚洲| 亚洲av国产av综合av卡| 不卡av一区二区三区| 女性生殖器流出的白浆| 黑人猛操日本美女一级片| 亚洲欧美色中文字幕在线| 亚洲av成人精品一二三区| 久久久久久免费高清国产稀缺| 日韩av不卡免费在线播放| 人妻人人澡人人爽人人| 国产三级黄色录像| 久久综合国产亚洲精品| 两个人免费观看高清视频| 各种免费的搞黄视频| 纯流量卡能插随身wifi吗| 成人手机av| 国产精品免费视频内射| 免费观看av网站的网址| 99久久99久久久精品蜜桃| 亚洲久久久国产精品| www.熟女人妻精品国产| 国产成人系列免费观看| 亚洲欧美成人综合另类久久久| 晚上一个人看的免费电影| 91国产中文字幕| 一级黄色大片毛片| 人成视频在线观看免费观看| 热99国产精品久久久久久7| 欧美日韩综合久久久久久| 丝袜美足系列| 视频区欧美日本亚洲| 人人妻人人添人人爽欧美一区卜| 国产又色又爽无遮挡免| 美女扒开内裤让男人捅视频| 国产成人系列免费观看| 亚洲伊人久久精品综合| 久久精品久久久久久久性| 国产成人影院久久av| 久久久久国产精品人妻一区二区| 高清黄色对白视频在线免费看| av电影中文网址| 国产av精品麻豆| 亚洲欧美一区二区三区久久| 大香蕉久久网| 国产av国产精品国产| 亚洲久久久国产精品| 两个人看的免费小视频| 免费看不卡的av| 精品一区在线观看国产| 国产主播在线观看一区二区 | 黑人巨大精品欧美一区二区蜜桃| 国产精品偷伦视频观看了| 久久国产精品影院| 中国美女看黄片| 亚洲熟女毛片儿| 亚洲精品自拍成人| 97人妻天天添夜夜摸| 亚洲人成77777在线视频| 午夜91福利影院| 波野结衣二区三区在线| 男男h啪啪无遮挡| 老司机影院毛片| 一级毛片我不卡| 精品国产乱码久久久久久男人| 一级毛片我不卡| 一级毛片黄色毛片免费观看视频| 欧美日韩国产mv在线观看视频| 国产男女超爽视频在线观看| 热re99久久国产66热| 午夜福利免费观看在线| 日韩免费高清中文字幕av| 国产成人精品久久久久久| 高清欧美精品videossex| 大话2 男鬼变身卡| 国产老妇伦熟女老妇高清| 亚洲一码二码三码区别大吗| 五月天丁香电影| 精品福利永久在线观看| 欧美 亚洲 国产 日韩一| 成年美女黄网站色视频大全免费| 女性被躁到高潮视频| 国产成人精品久久二区二区91| 在现免费观看毛片| 久久久久久久久久久久大奶| 亚洲一区中文字幕在线| 久久99一区二区三区| 97人妻天天添夜夜摸| 婷婷色麻豆天堂久久| 欧美成人午夜精品| 青草久久国产| 80岁老熟妇乱子伦牲交| 亚洲精品国产一区二区精华液| 久久亚洲精品不卡| 搡老乐熟女国产| 尾随美女入室| 久久久久久久久免费视频了| 久久精品国产亚洲av涩爱| 国精品久久久久久国模美| 亚洲中文av在线| 亚洲av片天天在线观看| 少妇裸体淫交视频免费看高清 | 99国产精品99久久久久| 成人免费观看视频高清| 一级毛片我不卡| 亚洲七黄色美女视频| 一二三四在线观看免费中文在| 丝袜人妻中文字幕| 飞空精品影院首页| 日韩一卡2卡3卡4卡2021年|