日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Volley完全解析(四),带你从源码的角度理解Volley

發(fā)布時(shí)間:2024/4/15 Android 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Volley完全解析(四),带你从源码的角度理解Volley 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

經(jīng)過前三篇文章的學(xué)習(xí),Volley的用法我們已經(jīng)掌握的差不多了,但是對(duì)于Volley的工作原理,恐怕有很多朋友還不是很清楚。因此,本篇文章中我們就來一起閱讀一下Volley的源碼,將它的工作流程整體地梳理一遍。同時(shí),這也是Volley系列的最后一篇文章了。

其實(shí),Volley的官方文檔中本身就附有了一張Volley的工作流程圖,如下圖所示。


多數(shù)朋友突然看到一張這樣的圖,應(yīng)該會(huì)和我一樣,感覺一頭霧水吧?沒錯(cuò),目前我們對(duì)Volley背后的工作原理還沒有一個(gè)概念性的理解,直接就來看這張圖自然會(huì)有些吃力。不過沒關(guān)系,下面我們就去分析一下Volley的源碼,之后再重新來看這張圖就會(huì)好理解多了。

說起分析源碼,那么應(yīng)該從哪兒開始看起呢?這就要回顧一下Volley的用法了,還記得嗎,使用Volley的第一步,首先要調(diào)用Volley.newRequestQueue(context)方法來獲取一個(gè)RequestQueue對(duì)象,那么我們自然要從這個(gè)方法開始看起了,代碼如下所示:

public static RequestQueue newRequestQueue(Context context) {return newRequestQueue(context, null); }
這個(gè)方法僅僅只有一行代碼,只是調(diào)用了 newRequestQueue()的方法重載,并給第二個(gè)參數(shù)傳入null。那我們看下帶有兩個(gè)參數(shù)的newRequestQueue()方法中的代碼,如下所示:

public static RequestQueue newRequestQueue(Context context, HttpStack stack) {File cacheDir = new File(context.getCacheDir(), DEFAULT_CACHE_DIR);String userAgent = "volley/0";try {String packageName = context.getPackageName();PackageInfo info = context.getPackageManager().getPackageInfo(packageName, 0);userAgent = packageName + "/" + info.versionCode;} catch (NameNotFoundException e) {}if (stack == null) {if (Build.VERSION.SDK_INT >= 9) {stack = new HurlStack();} else {stack = new HttpClientStack(AndroidHttpClient.newInstance(userAgent));}}Network network = new BasicNetwork(stack);RequestQueue queue = new RequestQueue(new DiskBasedCache(cacheDir), network);queue.start();return queue; }
可以看到,這里在第10行判斷如果stack是等于null的,則去創(chuàng)建一個(gè)HttpStack對(duì)象,這里會(huì)判斷如果手機(jī)系統(tǒng)版本號(hào)是大于9的,則創(chuàng)建一個(gè)HurlStack的實(shí)例,否則就創(chuàng)建一個(gè)HttpClientStack的實(shí)例。實(shí)際上 HurlStack的內(nèi)部就是使用HttpURLConnection進(jìn)行網(wǎng)絡(luò)通訊的,而HttpClientStack的內(nèi)部則是使用HttpClient進(jìn)行網(wǎng)絡(luò)通訊的,這里為什么這樣選擇呢?可以參考我之前翻譯的一篇文章Android訪問網(wǎng)絡(luò),使用HttpURLConnection還是HttpClient?

創(chuàng)建好了HttpStack之后,接下來又創(chuàng)建了一個(gè)Network對(duì)象,它是用于根據(jù)傳入的HttpStack對(duì)象來處理網(wǎng)絡(luò)請(qǐng)求的,緊接著new出一個(gè)RequestQueue對(duì)象,并調(diào)用它的start()方法進(jìn)行啟動(dòng),然后將RequestQueue返回,這樣newRequestQueue()的方法就執(zhí)行結(jié)束了。

那么RequestQueue的start()方法內(nèi)部到底執(zhí)行了什么東西呢?我們跟進(jìn)去瞧一瞧:

public void start() {stop(); // Make sure any currently running dispatchers are stopped.// Create the cache dispatcher and start it.mCacheDispatcher = new CacheDispatcher(mCacheQueue, mNetworkQueue, mCache, mDelivery);mCacheDispatcher.start();// Create network dispatchers (and corresponding threads) up to the pool size.for (int i = 0; i < mDispatchers.length; i++) {NetworkDispatcher networkDispatcher = new NetworkDispatcher(mNetworkQueue, mNetwork,mCache, mDelivery);mDispatchers[i] = networkDispatcher;networkDispatcher.start();} }
這里先是創(chuàng)建了一個(gè)CacheDispatcher的實(shí)例,然后調(diào)用了它的start()方法,接著在一個(gè)for循環(huán)里去創(chuàng)建NetworkDispatcher的實(shí)例,并分別調(diào)用它們的start()方法。這里的CacheDispatcher和NetworkDispatcher都是繼承自Thread的,而默認(rèn)情況下for循環(huán)會(huì)執(zhí)行四次,也就是說當(dāng)調(diào)用了Volley.newRequestQueue(context)之后,就會(huì)有五個(gè)線程一直在后臺(tái)運(yùn)行,不斷等待網(wǎng)絡(luò)請(qǐng)求的到來, 其中 CacheDispatcher是緩存線程,NetworkDispatcher是網(wǎng)絡(luò)請(qǐng)求線程。

得到了RequestQueue之后,我們只需要構(gòu)建出相應(yīng)的Request,然后調(diào)用RequestQueue的add()方法將Request傳入就可以完成網(wǎng)絡(luò)請(qǐng)求操作了,那么不用說,add()方法的內(nèi)部肯定有著非常復(fù)雜的邏輯,我們來一起看一下:

public <T> Request<T> add(Request<T> request) {// Tag the request as belonging to this queue and add it to the set of current requests.request.setRequestQueue(this);synchronized (mCurrentRequests) {mCurrentRequests.add(request);}// Process requests in the order they are added.request.setSequence(getSequenceNumber());request.addMarker("add-to-queue");// If the request is uncacheable, skip the cache queue and go straight to the network.if (!request.shouldCache()) {mNetworkQueue.add(request);return request;}// Insert request into stage if there's already a request with the same cache key in flight.synchronized (mWaitingRequests) {String cacheKey = request.getCacheKey();if (mWaitingRequests.containsKey(cacheKey)) {// There is already a request in flight. Queue up.Queue<Request<?>> stagedRequests = mWaitingRequests.get(cacheKey);if (stagedRequests == null) {stagedRequests = new LinkedList<Request<?>>();}stagedRequests.add(request);mWaitingRequests.put(cacheKey, stagedRequests);if (VolleyLog.DEBUG) {VolleyLog.v("Request for cacheKey=%s is in flight, putting on hold.", cacheKey);}} else {// Insert 'null' queue for this cacheKey, indicating there is now a request in// flight.mWaitingRequests.put(cacheKey, null);mCacheQueue.add(request);}return request;} }
可以看到,在第11行的時(shí)候會(huì)判斷當(dāng)前的請(qǐng)求是否可以緩存,如果不能緩存則在第12行直接將這條請(qǐng)求加入網(wǎng)絡(luò)請(qǐng)求隊(duì)列,可以緩存的話則在第33行將這條請(qǐng)求加入緩存隊(duì)列。在默認(rèn)情況下,每條請(qǐng)求都是可以緩存的,當(dāng)然我們也可以調(diào)用Request的setShouldCache(false)方法來改變這一默認(rèn)行為。

OK,那么既然默認(rèn)每條請(qǐng)求都是可以緩存的,自然就被添加到了緩存隊(duì)列中,于是一直在后臺(tái)等待的緩存線程就要開始運(yùn)行起來了,我們看下CacheDispatcher中的run()方法,代碼如下所示:

public class CacheDispatcher extends Thread {……@Overridepublic void run() {if (DEBUG) VolleyLog.v("start new dispatcher");Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);// Make a blocking call to initialize the cache.mCache.initialize();while (true) {try {// Get a request from the cache triage queue, blocking until// at least one is available.final Request<?> request = mCacheQueue.take();request.addMarker("cache-queue-take");// If the request has been canceled, don't bother dispatching it.if (request.isCanceled()) {request.finish("cache-discard-canceled");continue;}// Attempt to retrieve this item from cache.Cache.Entry entry = mCache.get(request.getCacheKey());if (entry == null) {request.addMarker("cache-miss");// Cache miss; send off to the network dispatcher.mNetworkQueue.put(request);continue;}// If it is completely expired, just send it to the network.if (entry.isExpired()) {request.addMarker("cache-hit-expired");request.setCacheEntry(entry);mNetworkQueue.put(request);continue;}// We have a cache hit; parse its data for delivery back to the request.request.addMarker("cache-hit");Response<?> response = request.parseNetworkResponse(new NetworkResponse(entry.data, entry.responseHeaders));request.addMarker("cache-hit-parsed");if (!entry.refreshNeeded()) {// Completely unexpired cache hit. Just deliver the response.mDelivery.postResponse(request, response);} else {// Soft-expired cache hit. We can deliver the cached response,// but we need to also send the request to the network for// refreshing.request.addMarker("cache-hit-refresh-needed");request.setCacheEntry(entry);// Mark the response as intermediate.response.intermediate = true;// Post the intermediate response back to the user and have// the delivery then forward the request along to the network.mDelivery.postResponse(request, response, new Runnable() {@Overridepublic void run() {try {mNetworkQueue.put(request);} catch (InterruptedException e) {// Not much we can do about this.}}});}} catch (InterruptedException e) {// We may have been interrupted because it was time to quit.if (mQuit) {return;}continue;}}} }
代碼有點(diǎn)長,我們只挑重點(diǎn)看。首先在11行可以看到一個(gè)while(true)循環(huán),說明緩存線程始終是在運(yùn)行的,接著在第23行會(huì)嘗試從緩存當(dāng)中取出響應(yīng)結(jié)果,如何為空的話則把這條請(qǐng)求加入到網(wǎng)絡(luò)請(qǐng)求隊(duì)列中,如果不為空的話再判斷該緩存是否已過期,如果已經(jīng)過期了則同樣把這條請(qǐng)求加入到網(wǎng)絡(luò)請(qǐng)求隊(duì)列中,否則就認(rèn)為不需要重發(fā)網(wǎng)絡(luò)請(qǐng)求,直接使用緩存中的數(shù)據(jù)即可。之后會(huì)在第39行調(diào)用Request的 parseNetworkResponse()方法來對(duì)數(shù)據(jù)進(jìn)行解析,再往后就是將解析出來的數(shù)據(jù)進(jìn)行回調(diào)了,這部分代碼我們先跳過,因?yàn)樗倪壿嫼蚇etworkDispatcher后半部分的邏輯是基本相同的,那么我們等下合并在一起看就好了,先來看一下NetworkDispatcher中是怎么處理網(wǎng)絡(luò)請(qǐng)求隊(duì)列的,代碼如下所示:

public class NetworkDispatcher extends Thread {……@Overridepublic void run() {Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);Request<?> request;while (true) {try {// Take a request from the queue.request = mQueue.take();} catch (InterruptedException e) {// We may have been interrupted because it was time to quit.if (mQuit) {return;}continue;}try {request.addMarker("network-queue-take");// If the request was cancelled already, do not perform the// network request.if (request.isCanceled()) {request.finish("network-discard-cancelled");continue;}addTrafficStatsTag(request);// Perform the network request.NetworkResponse networkResponse = mNetwork.performRequest(request);request.addMarker("network-http-complete");// If the server returned 304 AND we delivered a response already,// we're done -- don't deliver a second identical response.if (networkResponse.notModified && request.hasHadResponseDelivered()) {request.finish("not-modified");continue;}// Parse the response here on the worker thread.Response<?> response = request.parseNetworkResponse(networkResponse);request.addMarker("network-parse-complete");// Write to cache if applicable.// TODO: Only update cache metadata instead of entire record for 304s.if (request.shouldCache() && response.cacheEntry != null) {mCache.put(request.getCacheKey(), response.cacheEntry);request.addMarker("network-cache-written");}// Post the response back.request.markDelivered();mDelivery.postResponse(request, response);} catch (VolleyError volleyError) {parseAndDeliverNetworkError(request, volleyError);} catch (Exception e) {VolleyLog.e(e, "Unhandled exception %s", e.toString());mDelivery.postError(request, new VolleyError(e));}}} }
同樣地,在第7行我們看到了類似的while(true)循環(huán),說明網(wǎng)絡(luò)請(qǐng)求線程也是在不斷運(yùn)行的。在第28行的時(shí)候會(huì)調(diào)用Network的performRequest()方法來去發(fā)送網(wǎng)絡(luò)請(qǐng)求,而Network是一個(gè)接口,這里具體的實(shí)現(xiàn)是BasicNetwork,我們來看下它的 performRequest()方法,如下所示:

public class BasicNetwork implements Network {……@Overridepublic NetworkResponse performRequest(Request<?> request) throws VolleyError {long requestStart = SystemClock.elapsedRealtime();while (true) {HttpResponse httpResponse = null;byte[] responseContents = null;Map<String, String> responseHeaders = new HashMap<String, String>();try {// Gather headers.Map<String, String> headers = new HashMap<String, String>();addCacheHeaders(headers, request.getCacheEntry());httpResponse = mHttpStack.performRequest(request, headers);StatusLine statusLine = httpResponse.getStatusLine();int statusCode = statusLine.getStatusCode();responseHeaders = convertHeaders(httpResponse.getAllHeaders());// Handle cache validation.if (statusCode == HttpStatus.SC_NOT_MODIFIED) {return new NetworkResponse(HttpStatus.SC_NOT_MODIFIED,request.getCacheEntry() == null ? null : request.getCacheEntry().data,responseHeaders, true);}// Some responses such as 204s do not have content. We must check.if (httpResponse.getEntity() != null) {responseContents = entityToBytes(httpResponse.getEntity());} else {// Add 0 byte response as a way of honestly representing a// no-content request.responseContents = new byte[0];}// if the request is slow, log it.long requestLifetime = SystemClock.elapsedRealtime() - requestStart;logSlowRequests(requestLifetime, request, responseContents, statusLine);if (statusCode < 200 || statusCode > 299) {throw new IOException();}return new NetworkResponse(statusCode, responseContents, responseHeaders, false);} catch (Exception e) {……}}} }

這段方法中大多都是一些網(wǎng)絡(luò)請(qǐng)求細(xì)節(jié)方面的東西,我們并不需要太多關(guān)心,需要注意的是在第14行調(diào)用了HttpStack的performRequest()方法,這里的HttpStack就是在一開始調(diào)用newRequestQueue()方法是創(chuàng)建的實(shí)例,默認(rèn)情況下如果系統(tǒng)版本號(hào)大于9就創(chuàng)建的HurlStack對(duì)象,否則創(chuàng)建HttpClientStack對(duì)象。前面已經(jīng)說過,這兩個(gè)對(duì)象的內(nèi)部實(shí)際就是分別使用HttpURLConnection和HttpClient來發(fā)送網(wǎng)絡(luò)請(qǐng)求的,我們就不再跟進(jìn)去閱讀了,之后會(huì)將服務(wù)器返回的數(shù)據(jù)組裝成一個(gè)NetworkResponse對(duì)象進(jìn)行返回。

在NetworkDispatcher中收到了NetworkResponse這個(gè)返回值后又會(huì)調(diào)用Request的parseNetworkResponse()方法來解析NetworkResponse中的數(shù)據(jù),以及將數(shù)據(jù)寫入到緩存,這個(gè)方法的實(shí)現(xiàn)是交給Request的子類來完成的,因?yàn)椴煌N類的Request解析的方式也肯定不同。還記得我們?cè)谏弦黄恼轮袑W(xué)習(xí)的自定義Request的方式嗎?其中parseNetworkResponse()這個(gè)方法就是必須要重寫的。

在解析完了NetworkResponse中的數(shù)據(jù)之后,又會(huì)調(diào)用ExecutorDelivery的postResponse()方法來回調(diào)解析出的數(shù)據(jù),代碼如下所示:


public void postResponse(Request<?> request, Response<?> response, Runnable runnable) {request.markDelivered();request.addMarker("post-response");mResponsePoster.execute(new ResponseDeliveryRunnable(request, response, runnable)); }
其中,在mResponsePoster的execute()方法中傳入了一個(gè)ResponseDeliveryRunnable對(duì)象,就可以保證該對(duì)象中的run()方法就是在主線程當(dāng)中運(yùn)行的了,我們看下run()方法中的代碼是什么樣的:

private class ResponseDeliveryRunnable implements Runnable {private final Request mRequest;private final Response mResponse;private final Runnable mRunnable;public ResponseDeliveryRunnable(Request request, Response response, Runnable runnable) {mRequest = request;mResponse = response;mRunnable = runnable;}@SuppressWarnings("unchecked")@Overridepublic void run() {// If this request has canceled, finish it and don't deliver.if (mRequest.isCanceled()) {mRequest.finish("canceled-at-delivery");return;}// Deliver a normal response or error, depending.if (mResponse.isSuccess()) {mRequest.deliverResponse(mResponse.result);} else {mRequest.deliverError(mResponse.error);}// If this is an intermediate response, add a marker, otherwise we're done// and the request can be finished.if (mResponse.intermediate) {mRequest.addMarker("intermediate-response");} else {mRequest.finish("done");}// If we have been provided a post-delivery runnable, run it.if (mRunnable != null) {mRunnable.run();}} }

代碼雖然不多,但我們并不需要行行閱讀,抓住重點(diǎn)看即可。其中在第22行調(diào)用了Request的deliverResponse()方法,有沒有感覺很熟悉?沒錯(cuò),這個(gè)就是我們?cè)谧远xRequest時(shí)需要重寫的另外一個(gè)方法,每一條網(wǎng)絡(luò)請(qǐng)求的響應(yīng)都是回調(diào)到這個(gè)方法中,最后我們?cè)僭谶@個(gè)方法中將響應(yīng)的數(shù)據(jù)回調(diào)到Response.Listener的onResponse()方法中就可以了。

好了,到這里我們就把Volley的完整執(zhí)行流程全部梳理了一遍,你是不是已經(jīng)感覺已經(jīng)很清晰了呢?對(duì)了,還記得在文章一開始的那張流程圖嗎,剛才還不能理解,現(xiàn)在我們?cè)賮碇匦驴聪逻@張圖:


其中藍(lán)色部分代表主線程,綠色部分代表緩存線程,橙色部分代表網(wǎng)絡(luò)線程。我們?cè)谥骶€程中調(diào)用RequestQueue的add()方法來添加一條網(wǎng)絡(luò)請(qǐng)求,這條請(qǐng)求會(huì)先被加入到緩存隊(duì)列當(dāng)中,如果發(fā)現(xiàn)可以找到相應(yīng)的緩存結(jié)果就直接讀取緩存并解析,然后回調(diào)給主線程。如果在緩存中沒有找到結(jié)果,則將這條請(qǐng)求加入到網(wǎng)絡(luò)請(qǐng)求隊(duì)列中,然后處理發(fā)送HTTP請(qǐng)求,解析響應(yīng)結(jié)果,寫入緩存,并回調(diào)主線程。

怎么樣,是不是感覺現(xiàn)在理解這張圖已經(jīng)變得輕松簡單了?好了,到此為止我們就把Volley的用法和源碼全部學(xué)習(xí)完了,相信你已經(jīng)對(duì)Volley非常熟悉并可以將它應(yīng)用到實(shí)際項(xiàng)目當(dāng)中了,那么Volley完全解析系列的文章到此結(jié)束,感謝大家有耐心看到最后。



原文URL:http://blog.csdn.net/guolin_blog/article/details/17656437

總結(jié)

以上是生活随笔為你收集整理的Android Volley完全解析(四),带你从源码的角度理解Volley的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

成人一级片视频 | 香蕉视频在线网站 | 2019中文字幕第一页 | 五月婷婷综合在线观看 | 久久综合色影院 | 久久99精品久久久久蜜臀 | 免费视频久久久 | 高清av免费看 | 狠狠色丁香婷婷综合视频 | 99在线高清视频在线播放 | 天天射天天干天天 | 91超在线 | 天天插天天色 | 欧美一级黄大片 | 中文字幕 二区 | 亚洲精品午夜久久久久久久久久久 | 久草在线视频国产 | 国内精品久久久久国产 | 98精品国产自产在线观看 | www.五月激情.com | 黄色大片免费播放 | 亚洲午夜久久久久久久久电影网 | 免费视频久久久 | 日韩成人在线一区二区 | 日韩在线观看你懂的 | 国产粉嫩在线 | 一级片视频在线 | 成人午夜电影网站 | 亚洲国产资源 | 97人人爽 | 蜜臀aⅴ国产精品久久久国产 | 丁香婷婷色综合亚洲电影 | 91在线视频免费播放 | 国产精品激情偷乱一区二区∴ | 精品国自产在线观看 | 日本精品午夜 | 99久久精品国产欧美主题曲 | 97视频免费观看2区 亚洲视屏 | 国产一区视频免费在线观看 | 亚洲国产中文字幕 | 国产精品免费在线播放 | 狠狠狠色丁香婷婷综合久久88 | 999久久国精品免费观看网站 | 中文字幕4 | 国产黄色片在线免费观看 | 日韩精品最新在线观看 | 一级黄色片网站 | 91麻豆免费视频 | 欧美日韩伦理一区 | 精品视频在线观看 | 美女视频永久黄网站免费观看国产 | 在线免费中文字幕 | 精品久久一区二区 | 婷婷丁香激情网 | 免费av影视 | 国产成人精品一区在线 | 91人人爽久久涩噜噜噜 | 91激情视频在线观看 | 97成人免费视频 | 久久亚洲精品国产亚洲老地址 | 日韩一区二区三区在线观看 | 二区三区中文字幕 | 日韩黄色av网站 | 69国产盗摄一区二区三区五区 | 国产精品精品 | 亚洲精品视频网站在线观看 | 日本黄色免费网站 | 蜜桃视频在线观看一区 | 17婷婷久久www| 五月激情视频 | 一区二区三区免费 | 国产一区二区高清 | 高潮毛片无遮挡高清免费 | 久久人人爽爽 | 黄色av免费看 | 免费v片 | 狠狠伊人| 色婷婷激情 | 中文字幕免费观看 | 日韩成人免费在线观看 | 国产在线观看av | 精品国产理论片 | 久久国产精品免费一区二区三区 | 久久avav | 日韩天堂网 | 在线观看日韩视频 | 国产尤物在线观看 | 欧美色就是色 | 免费亚洲视频在线观看 | 国产精品久久艹 | 免费在线观看中文字幕 | 婷婷网址 | 亚洲最新av在线网址 | 色婷婷婷| www.久久久.cum | 国产中文在线视频 | 91插插影库 | 99久久婷婷国产综合亚洲 | 精品欧美一区二区精品久久 | 亚洲一区二区视频 | 456免费视频 | 中文字幕在线影院 | 国产精品久久久久永久免费观看 | 亚洲涩涩涩涩涩涩 | 黄色av影视| 亚洲激情中文 | 久保带人 | 国产高清专区 | 国产精品免费久久久久久 | 中文字幕在线一区二区三区 | 99久久综合精品五月天 | 成人av一区二区在线观看 | 国产大片黄色 | 又粗又长又大又爽又黄少妇毛片 | 亚洲另类视频在线观看 | av在线免费在线 | 日韩精品一区二区免费视频 | 一区二区三区在线视频111 | 婷婷综合成人 | 美女视频一区二区 | 日韩a级黄色 | 不卡的av片 | 日韩aⅴ视频 | 欧美日韩视频在线观看一区二区 | 久久精品国产精品亚洲 | 亚洲欧美国产精品久久久久 | 91视频免费视频 | 成人午夜黄色影院 | 久久久精品成人 | 中文字幕乱码日本亚洲一区二区 | 国产一区二区视频在线播放 | 777久久久| 91丨九色丨国产丨porny精品 | 日韩av片免费在线观看 | 国产精品入口麻豆www | 欧美日韩免费在线观看视频 | 韩国精品一区二区三区六区色诱 | 一区二区三区日韩视频在线观看 | 黄色av播放 | 国产精品久久久777 成人手机在线视频 | 亚一亚二国产专区 | 日本大尺码专区mv | 中文国产成人精品久久一 | 色五月成人 | 日韩欧美在线高清 | 国产白浆在线观看 | 日韩欧美国产精品 | 久久人人爽人人人人片 | 狠狠干狠狠操 | 成年人app网址 | 天天操天| 国产视频黄 | 婷婷六月综合网 | 欧美尹人 | 国产美女无遮挡永久免费 | 国产精品手机播放 | 97国产小视频 | 波多野结衣一区 | 奇米网网址 | 日本在线观看一区二区三区 | 国产不卡在线视频 | 久久黄色影院 | 中文字幕视频三区 | 欧美大荫蒂xxx | 91九色自拍 | 国产老妇av | 最近中文字幕高清字幕在线视频 | 久久久精品一区二区三区 | 久草网免费| 午夜在线免费视频 | 手机av电影在线 | 人人看人人草 | 欧美日韩伦理在线 | 久久草网站 | 欧美男同网站 | 国产91在线 | 美洲 | www视频免费在线观看 | 成年人在线免费视频观看 | 国产免费观看高清完整版 | 国产一级视频在线观看 | 日韩欧美视频在线播放 | 婷婷亚洲综合 | 久久久久北条麻妃免费看 | 成人av免费在线观看 | 欧女人精69xxxxxx | av 一区二区三区四区 | 麻豆一区在线观看 | 国产 一区二区三区 在线 | 色小说av | av在线免费在线 | 午夜视频在线观看一区二区 | av天天在线观看 | 一区在线免费观看 | 久久成人国产精品入口 | 亚洲精品456在线播放乱码 | 中文字幕电影一区 | 日韩欧美视频一区 | 99热这里只有精品久久 | 9999在线视频| 国产不卡精品视频 | 五月婷婷在线视频观看 | 91丝袜美腿 | 午夜婷婷在线观看 | 婷婷性综合 | 亚洲高清视频在线观看免费 | 日本爱爱免费视频 | 日韩免费一二三区 | 国产少妇在线观看 | 人人干在线观看 | 久久久这里有精品 | 丁香电影小说免费视频观看 | 久久久久99999| 国产精品网红直播 | 精品久久久国产 | 97综合网 | 久久久久久久av麻豆果冻 | 国产黄在线| 欧美日韩国产mv | 91亚洲欧美激情 | 人人干人人添 | 久久9精品 | 国产精品久久在线观看 | 日韩av免费观看网站 | 天堂av免费看 | 97碰在线视频 | 91最新中文字幕 | 久久综合五月天婷婷伊人 | 久久亚洲综合国产精品99麻豆的功能介绍 | 免费视频一区 | 免费看精品久久片 | 热99久久精品| 在线免费性生活片 | 亚洲人成免费 | 久久视频这里有久久精品视频11 | 亚洲日本欧美在线 | 天天射日 | 91麻豆视频网站 | 婷婷丁香自拍 | 午夜精品在线看 | 4438全国亚洲精品在线观看视频 | 久久久免费毛片 | 国产第一二区 | 精品视频免费看 | 香蕉久久久久久av成人 | 欧洲一区二区在线观看 | 久久网站最新地址 | 亚洲综合视频在线观看 | 日本一区二区三区免费观看 | 夜夜骑天天操 | 国内久久视频 | 黄色成人av| 五月激情丁香 | 国产精品理论视频 | 欧美在线视频不卡 | 天天干视频在线 | 亚洲黄色三级 | 一级黄色大片在线观看 | 九九视频这里只有精品 | 在线91观看 | 精品美女国产在线 | 天天躁日日躁狠狠躁 | 日韩区欠美精品av视频 | 日日操日日操 | 久久久久久久久国产 | 超碰免费久久 | 日韩在线免费 | 婷婷深爱网 | 99视频网址 | 亚洲天堂毛片 | 久久久久综合网 | 成人av在线观 | 日韩免费二区 | 国内精品久久影院 | 久久视频一区 | 中文字幕国产精品一区二区 | 久草免费新视频 | 97夜夜澡人人爽人人免费 | 亚洲精品国精品久久99热 | 99在线免费观看视频 | 在线观看亚洲专区 | 在线免费观看av网站 | 欧美激情视频在线免费观看 | 午夜精品久久久久久久久久久 | 最近中文字幕在线 | 五月天亚洲激情 | 久热免费在线观看 | a资源在线| 亚洲成人av电影 | 成人在线一区二区 | 国产精品18videosex性欧美 | 在线免费黄色毛片 | 99久高清在线观看视频99精品热在线观看视频 | 成人毛片在线观看 | 天天艹天天| 免费久久99精品国产婷婷六月 | 日本中文字幕在线播放 | 又黄又爽又无遮挡免费的网站 | 亚洲精品午夜一区人人爽 | 亚洲成人资源 | 亚洲人人av| 久久久www| 美女网站黄免费 | 国产一级二级三级视频 | 国产一区二区在线观看免费 | 免费国产黄线在线观看视频 | 97中文字幕 | 中国黄色一级大片 | 成人三级网站在线观看 | 91亚洲精品久久久久图片蜜桃 | 伊人影院得得 | 天天色草 | 夜夜澡人模人人添人人看 | 国产精品久久久久久久久久久久久久 | 国产成人福利片 | 亚洲国产精品电影 | 精品a在线| 99精品久久久 | 成人精品影视 | 97国产在线播放 | 久久激情五月婷婷 | 亚洲一本视频 | 激情伊人五月天 | 成人毛片a | 日韩精品第1页 | 成人黄色片在线播放 | 欧美一区在线观看视频 | 99热都是精品 | 一区二区三区在线视频111 | 欧美粗又大 | 色婷婷国产精品一区在线观看 | 久久久久国产精品厨房 | 亚洲成aⅴ人片久久青草影院 | 日日夜夜综合网 | av网站在线观看播放 | 亚洲黄色影院 | 欧美激情另类文学 | 日韩二区在线播放 | 日韩欧美91| 国产黄色特级片 | 国产精彩视频 | 国产在线视频一区二区 | 91在线公开视频 | 黄色免费网站下载 | 国产破处精品 | 97视频久久久 | 久草精品电影 | 亚洲va在线va天堂 | 日韩在线视频不卡 | 国产精品99久久免费观看 | 91大神dom调教在线观看 | 九九热免费视频在线观看 | 国产一区影院 | 视频91| 日韩大陆欧美高清视频区 | 手机在线黄色网址 | 免费欧美精品 | 国产精品1区2区3区在线观看 | 国产精品mv在线观看 | 欧美日韩精品综合 | 日韩va欧美va亚洲va久久 | 国产视频一二三 | 国产精品美女久久久久久久网站 | 蜜臀久久99精品久久久酒店新书 | 黄色三级久久 | 91精品一区在线观看 | 精品国自产在线观看 | 精品专区 | 亚洲激情六月 | 91人人网| 国产亚洲精品久久久久5区 成人h电影在线观看 | av成人在线观看 | 天无日天天操天天干 | 青青河边草免费直播 | 黄色在线网站噜噜噜 | 国产99久久九九精品 | 成人四虎| 久久综合久久综合久久 | 中文字幕在线免费97 | 国产欧美日韩视频 | 伊人五月在线 | 在线观看免费色 | 成人午夜久久 | 久久1区 | 亚洲亚洲精品在线观看 | 在线观av| 我要色综合天天 | 黄色毛片视频免费观看中文 | 一区 二区电影免费在线观看 | 亚州性色 | 伊人天天狠天天添日日拍 | 国际精品久久 | 国产一区自拍视频 | 西西大胆免费视频 | 韩国三级av在线 | 婷婷激情站 | 日韩精品一区二区三区外面 | 天天摸日日摸人人看 | av在线播放免费 | 午夜精品一区二区三区在线视频 | 国产在线观看黄 | 91在线亚洲| 久久的色| 在线观看av黄色 | 色视频成人在线观看免 | 最新国产精品视频 | 激情大尺度视频 | 精品福利国产 | 久久精品永久免费 | 青青射| 国产午夜精品视频 | 人人草人人做 | av一本久道久久波多野结衣 | 天天摸天天操天天爽 | 色婷婷啪啪免费在线电影观看 | 日本高清中文字幕有码在线 | 九九视频精品在线 | 日韩亚洲在线视频 | 色七七亚洲影院 | 天堂黄色片 | 日本三级人妇 | 91在线影院 | 香蕉免费 | 91福利视频一区 | 激情网五月婷婷 | 久久久久久综合网天天 | 欧美韩国在线 | 日韩有色 | 天天人人综合 | 一区二区三区在线免费 | 亚洲 成人 欧美 | 久操中文字幕在线观看 | 久久久久久久综合色一本 | 在线 视频 一区二区 | 亚洲精品国产精品久久99热 | 国产小视频精品 | 午夜精品在线看 | 国产v在线播放 | 日韩在线激情 | 日韩中字在线观看 | 日韩欧美视频免费在线观看 | 中文字幕在线免费观看 | 亚洲天天在线日亚洲洲精 | 国产福利电影网址 | 美女视频久久久 | 久久视频在线观看 | 日日干日日色 | 欧美亚洲国产一卡 | 国产视频一区二区在线播放 | 操天天操 | 成人在线视频免费 | 亚洲成av人片在线观看www | 欧美一区二区三区在线看 | 99在线观看免费视频精品观看 | 国产在线小视频 | 亚洲狠狠操 | 国内一区二区视频 | 亚洲精品国产精品99久久 | 天天操夜夜干 | 中文字幕你懂的 | 欧美在线aaa| 成人在线观看资源 | 天天综合操 | 色综合天天天天做夜夜夜夜做 | 男女精品久久 | 久久精品国产免费看久久精品 | 日韩免费观看高清 | 成人免费观看a | 欧美视频国产视频 | 在线免费观看视频你懂的 | 日韩在线电影一区 | 精品主播网红福利资源观看 | 在线激情影院一区 | 亚洲黑丝少妇 | 99日韩精品 | 免费视频黄| 国际精品久久久久 | 欧美色图亚洲图片 | 日本性xxx | 在线观看精品一区 | 欧美日韩不卡在线观看 | 一二三精品视频 | 日韩激情综合 | 日日麻批40分钟视频免费观看 | 亚洲精品久久在线 | 麻花豆传媒mv在线观看网站 | 91桃色在线观看视频 | 91av在线免费观看 | 色综合色综合色综合 | 亚洲人成免费 | 色狠狠婷婷 | 久久av免费电影 | 中文字幕最新精品 | 国产精品久久久久久av | www.色爱 | 日日操操 | 国产精品美女毛片真酒店 | 久久久久久久久久久久电影 | 国产精品久久久久久久久久白浆 | 国产一区二区免费在线观看 | 国产专区第一页 | 欧美日韩激情视频8区 | 亚洲精品综合久久 | 欧美一级免费黄色片 | 99热999 | 91九色视频在线观看 | 夜夜干夜夜 | 一区二区三区四区五区在线视频 | 黄色免费av| 91伊人久久大香线蕉蜜芽人口 | 碰超在线观看 | 99色国产| 热久久精品在线 | 久久夜视频 | 亚洲天天在线 | 色干综合 | 四虎国产视频 | 国产成人久久 | 日韩精品久久一区二区 | 亚洲丁香日韩 | 欧美疯狂性受xxxxx另类 | 日韩精品专区在线影院重磅 | 黄色影院在线观看 | 久久久久久久久亚洲精品 | 久久亚洲美女 | 国产最新91 | 91成人天堂久久成人 | 成人h电影 | 色在线亚洲 | 手机看片 | av丝袜制服 | av网站免费在线 | 成人看片 | 国产网站在线免费观看 | 99久久精品久久久久久动态片 | 色a4yy| 欧美va天堂va视频va在线 | 精品一二三四视频 | 丁香九月激情综合 | 国产五月色婷婷六月丁香视频 | 麻豆传媒视频在线免费观看 | 中文字幕欧美日韩va免费视频 | 亚洲一区免费在线 | 国产精品不卡在线观看 | 永久免费在线 | 日韩黄色一级电影 | 丁香视频全集免费观看 | 国产精品久久久视频 | 91丨九色丨高潮丰满 | 亚洲精品456在线播放乱码 | 国内外成人在线视频 | 国产成人在线免费观看 | 成人三级视频 | 亚洲精品99久久久久久 | 五月激情视频 | 欧美日韩午夜 | 亚洲精品一区二区三区新线路 | 久久亚洲影视 | av看片网址 | 中文字幕在线观看一区二区三区 | 五月婷婷综合激情 | 国产欧美日韩视频 | 日本色小说视频 | 日韩av片无码一区二区不卡电影 | 91免费在线看片 | 日韩免费高清在线观看 | 精品女同一区二区三区在线观看 | 色婷五月 | 久久久96| 一级黄色电影网站 | 久久久精品99 | 天天综合区 | 久久久国内精品 | 在线视频app | 综合久久精品 | 国产在线不卡精品 | 最新av在线播放 | 日韩精品一区二区在线观看 | 欧美日韩精品综合 | 国产无套精品久久久久久 | 91一区啪爱嗯打偷拍欧美 | 狠狠色婷婷丁香六月 | 久日精品 | 国产黄色片免费在线观看 | 啪啪免费观看网站 | 国产精品入口麻豆 | jizz欧美性9| 亚洲国产一区在线观看 | 日日干综合| 欧美特一级| 国产又粗又猛又黄又爽视频 | 天堂av高清 | 国产黄色av| 成人黄色大片网站 | 国产精品一区二区 91 | 免费在线观看日韩视频 | 国产精品一区二区三区四区在线观看 | 97手机电影网 | 五月婷婷欧美视频 | 久久草av | www.狠狠操.com | 在线看国产 | 午夜视频99 | 五月婷婷狠狠 | 久久天堂亚洲 | 人人澡人摸人人添学生av | 久久久久欠精品国产毛片国产毛生 | 国产精品久久99精品毛片三a | 国产日韩精品一区二区三区在线 | 免费在线视频一区二区 | 在线观看91av| 中文字幕久久网 | 国产高潮久久 | 日韩在线免费观看视频 | 国产视频不卡一区 | 日本爱爱免费 | 97超碰超碰久久福利超碰 | 丁香婷婷色月天 | 一区二区不卡高清 | 欧美激情片在线观看 | 欧美乱淫视频 | 日本中文乱码卡一卡二新区 | 久久久免费在线观看 | 最新日韩在线 | 天天艹 | 在线中文字幕电影 | 97超碰资源总站 | 日韩大片在线免费观看 | 在线成人观看 | 久久99在线视频 | 日韩动态视频 | 国产黑丝袜在线 | 国产精品18久久久久久久久 | 精品一区二区影视 | 免费看网站在线 | 日韩中文字幕一区 | 去看片| 在线成人免费av | 天堂久色| 亚洲国产精品日韩 | 在线观看视频在线 | 欧美aa一级 | 成人三级网址 | 亚洲传媒在线 | 午夜av大片 | 久久99最新地址 | 在线岛国av| 国产91精品看黄网站在线观看动漫 | 婷婷在线视频观看 | 天天色天天色天天色 | 日韩美女av在线 | 99re6热在线精品视频 | 国产麻豆剧传媒免费观看 | 91精品国产乱码在线观看 | 黄污视频网站大全 | 91在线看片| 有码中文字幕 | 欧美日韩精品在线视频 | 日韩黄色网络 | 婷婷视频在线 | 久久婷婷一区二区三区 | 欧美色婷 | 亚洲成人av电影 | 伊人五月天.com | 黄色小网站免费看 | 国产在线一卡 | 91看片一区二区三区 | 五月综合激情婷婷 | 国产精品美女 | 精品免费视频123区 午夜久久成人 | 在线观看色网站 | 午夜黄色大片 | 国产不卡在线播放 | 伊人中文网 | 96久久久 | 永久免费毛片在线观看 | 精品在线小视频 | 一区二区三区在线观看 | 91网页版免费观看 | 久久r精品 | 97在线观看免费 | 久久精品99国产 | 成人免费精品 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 日韩区视频 | 成人国产精品电影 | 国产成人一区二区三区 | 伊人五月 | 国产精品99久久免费黑人 | 国产精品情侣视频 | 久久艹精品 | av电影免费在线看 | 国产99久久久国产精品免费看 | 亚洲精品久久久久久久不卡四虎 | 九九在线免费视频 | 亚洲视频一区二区三区在线观看 | 国产 欧美 日本 | 五月综合婷 | 久久免费视频国产 | 永久免费视频国产 | 久久免费a| 久久人人爽爽人人爽人人片av | 香蕉视频在线免费 | 亚洲欧美乱综合图片区小说区 | 天堂网中文在线 | 成人av日韩| 免费中文字幕在线观看 | 国产色婷婷 | 色综合久久久久久中文网 | 国产一级性生活 | 欧美va在线观看 | 久久成人精品视频 | 人人玩人人添人人澡超碰 | 99中文字幕| 波多野结衣一区二区三区中文字幕 | 麻豆一二 | 中文字幕视频免费观看 | 久久国产精品影视 | 在线亚洲天堂网 | 久久综合久久综合这里只有精品 | 香蕉视频在线播放 | 亚洲精品午夜视频 | 欧美亚洲国产一卡 | 中文字幕日韩av | 国产精品美 | 91尤物在线播放 | 久久久久久久久国产 | 亚洲美女视频在线观看 | 99久久99热这里只有精品 | 操操操com | 国产中文字幕网 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 欧美a视频在线观看 | 久久国产精品久久久 | 欧美激情xxxx | 国产精品精品国产色婷婷 | 一区二区三区在线不卡 | 免费在线成人av电影 | 91av社区| 蜜臀久久99静品久久久久久 | 香蕉视频国产在线观看 | 久草久草视频 | 亚洲三级视频 | 亚洲人在线视频 | 91亚洲精品久久久蜜桃 | 欧美一级片免费在线观看 | 国产亚洲aⅴaaaaaa毛片 | 18久久久久 | 免费成人黄色av | 亚洲精品在线免费播放 | 日韩在线视频在线观看 | 一区二区三区免费看 | 91福利国产在线观看 | 精品一区中文字幕 | 91人人射| 91大神dom调教在线观看 | 视频成人永久免费视频 | 欧美一区二区三区免费观看 | 一级特黄av | 日韩午夜视频在线观看 | 五月婷婷视频在线 | 久久久麻豆精品一区二区 | 手机在线观看国产精品 | 国产精品久久一区二区三区, | 美女视频黄免费的 | 国产亚洲一区二区在线观看 | 久久久久国产精品免费 | 日韩sese| 成人免费观看网址 | 手机版av在线 | 久久99热久久99精品 | 99久久毛片 | 在线观看免费观看在线91 | 丁香综合五月 | 夜夜爽www | 久草99| 91在线精品播放 | 国产人成一区二区三区影院 | 色夜影院 | 免费福利视频网 | 天天摸天天舔 | 色婷婷狠狠五月综合天色拍 | 国产精品观看在线亚洲人成网 | 免费看色视频 | 综合网天天色 | 日韩精品久久中文字幕 | 欧美成人高清 | 欧美地下肉体性派对 | 亚洲国产日韩av | 免费一级黄色 | 国产精品人人做人人爽人人添 | 91久久奴性调教 | 久久精品国产成人精品 | 国产v欧美| 欧美电影在线观看 | 天天艹天天 | 国产视频中文字幕在线观看 | 久久天天躁狠狠躁亚洲综合公司 | 国产又粗又猛又黄又爽的视频 | 亚洲天堂网在线播放 | 粉嫩av一区二区三区四区 | 99热国内精品| 丁香久久| 激情中文字幕 | 91高清免费 | 久久精久久精 | 久久久久久久免费看 | 伊人在线视频 | 国产亚洲欧美在线视频 | 国产精品第十页 | 美女黄久久 | 日韩国产欧美在线播放 | 超碰人人舔 | 欧美日韩在线看 | 日韩理论电影在线观看 | 国产精品免费久久久久影院仙踪林 | 亚洲成a人片综合在线 | 97超碰国产精品 | 久操中文字幕在线观看 | 久草爱| 欧美性精品 | www.色国产 | 日日夜夜天天 | 欧美日韩精品在线观看 | 欧美精品免费在线观看 | 天天想夜夜操 | 国产第一页精品 | 日韩欧美精品在线 | 日韩免费在线一区 | 国产精品视频永久免费播放 | 日本视频久久久 | 国产精品免费不 | 成+人+色综合 | 中文字幕av免费观看 | 五月婷婷综合网 | 欧美日韩xx | 久久国产免 | 国产九色视频在线观看 | 中文字幕在线日亚洲9 | 狠狠色伊人亚洲综合网站色 | 手机av看片| 91av观看| 亚洲精品中文字幕视频 | 国产亚洲午夜高清国产拍精品 | 一级a毛片高清视频 | 国产精品18p | 999热线在线观看 | 午夜av大片 | 在线观看午夜av | 亚洲精品国产成人 | 免费的国产精品 | 能在线观看的日韩av | 992tv在线| 国内小视频在线观看 | 欧美日韩69 | 亚洲少妇天堂 | 天天综合网在线 | 成人精品国产 | 在线国产视频观看 | 日韩av资源在线观看 | 久久久久激情视频 | 色综合咪咪久久网 | 91天堂素人约啪 | 美女免费黄网站 | ww亚洲ww亚在线观看 | 黄色av成人在线观看 | 美女视频久久 | 午夜av在线 | www.久久久久| 91在线麻豆 | 黄在线免费观看 | ww亚洲ww亚在线观看 | 综合网伊人 | 久久久久久免费视频 | 国产一级视频在线 | 在线观看一 | 天天伊人网 | 国产精品一区二区精品视频免费看 | 成人视屏免费看 | 久久久五月天 | 国产成人精品在线 | 久久99久久久久 | 久久精精品视频 | 国产精品免费看久久久8精臀av | 免费亚洲精品视频 | 97在线影视 | 天堂va在线观看 | 国产精品k频道 | 色国产在线| 黄色福利视频网站 | 国产 日韩 在线 亚洲 字幕 中文 | av福利在线免费观看 | 亚洲精品1区2区3区 超碰成人网 | 天堂在线一区二区三区 | 色婷五月天 | 狠狠网站 | 天天综合网久久 | 久久经典国产 | 色视频网站在线观看一=区 a视频免费在线观看 | 久久免费看 | 国产短视频在线播放 | 国产在线综合视频 | 天天综合色 | 色视频 在线 | 天天色天天射天天综合网 | 日韩精品亚洲专区在线观看 | 国产成人61精品免费看片 | 日韩动漫免费观看高清完整版在线观看 | av三级在线免费观看 | 成人免费视频视频在线观看 免费 | zzijzzij亚洲成熟少妇 | 久草电影免费在线观看 | 97成人在线视频 | 久久在线免费观看 | av天天干| 涩涩在线 | 黄色网址av| 久久草在线免费 | 免费在线看v | 欧美一区二区三区在线观看 | 国产一区二区久久精品 | 国产成人精品国内自产拍免费看 | 激情狠狠干| 日本久久免费电影 | 亚洲九九精品 | 国产区精品区 | 日韩在线观看一区二区 | 久久综合偷偷噜噜噜色 | 免费观看视频的网站 | 欧美va天堂va视频va在线 | 黄色www在线观看 | 日韩在线免费播放 | 午夜在线观看一区 | 涩涩网站在线播放 | 欧美午夜a| 在线观看黄色国产 | www.久艹 | 在线视频观看成人 | 亚洲精品玖玖玖av在线看 | 日韩视频一区二区在线观看 | 国产精品黄 | 国产h在线播放 | 色资源二区在线视频 | 国产精品爽爽久久久久久蜜臀 | 亚洲精品九九 | 国产激情小视频在线观看 | 99视频精品 | 99久久精品国产系列 | 99精品国产亚洲 | 中文字幕刺激在线 | 久久99这里只有精品 | 中文在线8资源库 | 少妇精品久久久一区二区免费 | 黄色三级在线看 | 人人澡人人添人人爽一区二区 | 免费高清无人区完整版 | 成人一级片在线观看 | 999精品| av大全在线免费观看 | 久久综合久久88 | 亚洲欧美色婷婷 | 国产黄色片免费在线观看 | 欧美另类调教 | 国内精品久久久久影院一蜜桃 | 99国产精品视频免费观看一公开 | 成人超碰在线 | 狠狠干电影 | 91亚洲精品国偷拍自产在线观看 | 天天se天天cao天天干 | 色婷婷五| 日韩精品一区二区三区第95 | 精品欧美一区二区精品久久 | 精品女同一区二区三区在线观看 | 丁香久久久| 色网站视频 | 久久久久国产一区二区三区四区 | 亚洲精品网页 | 亚洲欧美综合精品久久成人 | 99中文在线 | 在线观看黄a | 在线观看国产www | 综合久久网站 | 九九精品毛片 | 欧美精品久久久久久久久久白贞 | 亚洲精品国产品国语在线 | 国产精品国产三级国产aⅴ入口 | 婷婷色综合色 | 久久天天草| 国产精品美女久久久久久网站 | 欧美日韩一级视频 | 亚洲精品久久久久999中文字幕 | 亚洲精品99 | 日韩在线字幕 | 久久99精品热在线观看 | 成人免费中文字幕 | 中文字幕在线免费看 | 欧美一级片在线 | 欧美日韩1区2区 | 欧美精品乱码99久久影院 |