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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Glide图片加载框架(三)缓存机制

發布時間:2023/12/13 Android 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Glide图片加载框架(三)缓存机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、緩存簡介
  • 二、緩存用法
    • 內存緩存方式
    • 磁盤緩存方式
  • 三、緩存KEY
  • 四、內存緩存
    • 內存緩存流程
  • 五、磁盤緩存
    • 磁盤緩存流程


Android Glide圖片加載框架系列文章

Android Glide圖片加載框架(一)基本用法

Android Glide圖片加載框架(二)源碼解析之with()

Android Glide圖片加載框架(二)源碼解析之load()

Android Glide圖片加載框架(二)源碼解析之into()

Android Glide圖片加載框架(三)緩存機制


一、緩存簡介


Glide的緩存設計可以說是非常先進的,考慮的場景也很周全。在緩存這一功能上,Glide又將它分成了兩個模塊,一個是 內存緩存 ,一個是 磁盤緩存

這兩個緩存模塊的作用各不相同,

  • 內存緩存 的主要作用是防止應用重復將圖片數據讀取到內存當中;

  • 磁盤緩存 的主要作用是防止應用重復從網絡或其他地方重復下載和讀取數據。

內存緩存硬盤緩存 的相互結合才構成了Glide極佳的圖片緩存效果,那么接下來我們就分別來分析一下這兩種緩存的使用方法以及它們的實現原理。


二、緩存用法


內存緩存方式

RequestOptions options = new RequestOptions(); // 禁止內存緩存 options.skipMemoryCache(true);Glide.with(this).load(url).apply(options).into(imageView);

磁盤緩存方式

RequestOptions options = new RequestOptions(); // 磁盤不緩存 options.diskCacheStrategy(DiskCacheStrategy.NONE);Glide.with(this).load(url).apply(options).into(imageView);

可以設置5種模式:

  • DiskCacheStrategy.NONE: 表示不緩存任何內容

  • DiskCacheStrategy.DATA: 表示只緩存原始圖片

  • DiskCacheStrategy.RESOURCE: 表示只緩存轉換過后的圖片

  • DiskCacheStrategy.ALL: 表示既緩存原始圖片,也緩存轉換過后的圖片

  • DiskCacheStrategy.AUTOMATIC: 表示讓Glide根據圖片資源智能地選擇使用哪一種緩存策略(默認選項)


三、緩存KEY


既然是緩存功能,就必然會有用于進行緩存的Key。那么Glide的緩存Key是怎么生成的呢?我不得不說,Glide的緩存Key生成規則非常繁瑣,決定緩存Key的參數竟然有8個之多。不過繁瑣歸繁瑣,至少邏輯還是比較簡單的,我們先來看一下Glide緩存Key的生成邏輯。

生成緩存Key的代碼在 Engine 類的 load() 方法當中,這部分代碼我們在上一篇文章當中已經分析過了,只不過當時忽略了緩存相關的內容,那么我們現在重新來看一下:

public class Engine implements EngineJobListener,MemoryCache.ResourceRemovedListener,EngineResource.ResourceListener {...public <R> LoadStatus load(GlideContext glideContext,Object model,Key signature,int width,int height,Class<?> resourceClass,Class<R> transcodeClass,Priority priority,DiskCacheStrategy diskCacheStrategy,Map<Class<?>, Transformation<?>> transformations,boolean isTransformationRequired,boolean isScaleOnlyOrNoTransform,Options options,boolean isMemoryCacheable,boolean useUnlimitedSourceExecutorPool,boolean useAnimationPool,boolean onlyRetrieveFromCache,ResourceCallback cb) {Util.assertMainThread();long startTime = VERBOSE_IS_LOGGABLE ? LogTime.getLogTime() : 0;EngineKey key = keyFactory.buildKey(model, signature, width, height, transformations,resourceClass, transcodeClass, options);...}... }

第27行可見,決定緩存Key的條件非常多,即使你用override()方法改變了一下圖片的width或者height,也會生成一個完全不同的緩存Key。

緩存key是一個 EngineKey 對象,該類重寫了 equals()hashCode() 方法,保證只有傳入EngineKey的所有參數都相同的情況下才認為是同一個 EngineKey 對象,代碼如下:

class EngineKey implements Key {...public boolean equals(Object o) {if (o instanceof EngineKey) {EngineKey other = (EngineKey) o;return model.equals(other.model)&& signature.equals(other.signature)&& height == other.height&& width == other.width&& transformations.equals(other.transformations)&& resourceClass.equals(other.resourceClass)&& transcodeClass.equals(other.transcodeClass)&& options.equals(other.options);}return false;}@Overridepublic int hashCode() {if (hashCode == 0) {hashCode = model.hashCode();hashCode = 31 * hashCode + signature.hashCode();hashCode = 31 * hashCode + width;hashCode = 31 * hashCode + height;hashCode = 31 * hashCode + transformations.hashCode();hashCode = 31 * hashCode + resourceClass.hashCode();hashCode = 31 * hashCode + transcodeClass.hashCode();hashCode = 31 * hashCode + options.hashCode();}return hashCode;}... }

四、內存緩存


默認情況下,Glide自動就是開啟內存緩存的 。也就是說,當我們使用Glide加載了一張圖片之后,這張圖片就會被緩存到內存當中,只要在它還沒從內存中被清除之前,下次使用Glide再加載這張圖片都會直接從內存當中讀取,而不用重新從網絡或硬盤上讀取了,這樣無疑就可以大幅度提升圖片的加載效率。比方說你在一個RecyclerView當中反復上下滑動,RecyclerView中只要是Glide加載過的圖片都可以直接從內存當中迅速讀取并展示出來,從而大大提升了用戶體驗。

而Glide最為人性化的是,你甚至不需要編寫任何額外的代碼就能自動享受到這個極為便利的內存緩存功能,因為Glide默認就已經將它開啟了。

那么既然已經默認開啟了這個功能,還有什么可講的用法呢?只有一點,如果你有什么特殊的原因需要禁用內存緩存功能,Glide對此提供了接口:

RequestOptions options = new RequestOptions(); options.skipMemoryCache(true);Glide.with(this).load(url).apply(options).into(img);

可以看到,只需要調用skipMemoryCache()方法并傳入true,就表示禁用掉Glide的內存緩存功能

接下來就讓我們就通過閱讀源碼來分析一下Glide的內存緩存功能是如何實現的。

內存緩存使用弱引用和LruCache算法結合完成的,弱引用來緩存的是正在使用中的圖片。圖片封裝類Resources內部有個計數器判斷是該圖片否正在使用。


內存緩存流程

  • 讀: 是先從弱引用中取,取不到再從lruCache取;

  • 存: 內存緩存取不到,從網絡拉取回來先放在弱引用里,渲染圖片,圖片對象Resources使用計數加一;

  • 渲染完圖片: 圖片對象Resources使用計數減一,如果計數為0,圖片緩存從弱引用中刪除,放入lruCache緩存。

上篇提到,Engine 在加載流程的中的入口方法是 load 方法:

public class Engine implements EngineJobListener,MemoryCache.ResourceRemovedListener,EngineResource.ResourceListener {...public <R> LoadStatus load(GlideContext glideContext,Object model,Key signature,int width,int height,Class<?> resourceClass,Class<R> transcodeClass,Priority priority,DiskCacheStrategy diskCacheStrategy,Map<Class<?>, Transformation<?>> transformations,boolean isTransformationRequired,boolean isScaleOnlyOrNoTransform,Options options,boolean isMemoryCacheable,boolean useUnlimitedSourceExecutorPool,boolean useAnimationPool,boolean onlyRetrieveFromCache,ResourceCallback cb) {Util.assertMainThread();long startTime = VERBOSE_IS_LOGGABLE ? LogTime.getLogTime() : 0;// 生成緩存keyEngineKey key = keyFactory.buildKey(model, signature, width, height, transformations,resourceClass, transcodeClass, options);// 從弱引用獲取圖片EngineResource<?> active = loadFromActiveResources(key, isMemoryCacheable);if (active != null) {cb.onResourceReady(active, DataSource.MEMORY_CACHE);if (VERBOSE_IS_LOGGABLE) {logWithTimeAndKey("Loaded resource from active resources", startTime, key);}return null;}// 從LruCache獲取緩存圖片EngineResource<?> cached = loadFromCache(key, isMemoryCacheable);if (cached != null) {cb.onResourceReady(cached, DataSource.MEMORY_CACHE);if (VERBOSE_IS_LOGGABLE) {logWithTimeAndKey("Loaded resource from cache", startTime, key);}return null;}EngineJob<?> current = jobs.get(key, onlyRetrieveFromCache);if (current != null) {current.addCallback(cb);if (VERBOSE_IS_LOGGABLE) {logWithTimeAndKey("Added to existing load", startTime, key);}return new LoadStatus(cb, current);}EngineJob<R> engineJob =engineJobFactory.build(key,isMemoryCacheable,useUnlimitedSourceExecutorPool,useAnimationPool,onlyRetrieveFromCache);DecodeJob<R> decodeJob =decodeJobFactory.build(glideContext,model,key,signature,width,height,resourceClass,transcodeClass,priority,diskCacheStrategy,transformations,isTransformationRequired,isScaleOnlyOrNoTransform,onlyRetrieveFromCache,options,engineJob);jobs.put(key, engineJob);engineJob.addCallback(cb);engineJob.start(decodeJob);if (VERBOSE_IS_LOGGABLE) {logWithTimeAndKey("Started new load", startTime, key);}return new LoadStatus(cb, engineJob);}... }

上面是從內存緩存中讀取圖片的主流程:

  • 生成緩存的key。

  • 從弱引用獲取圖片。

  • 弱引用沒取到,在從LruCache獲取緩存圖片。

  • 內存緩存取不到,進入異步處理。

我們具體看取圖片的兩個方法 loadFromActiveResources()loadFromCache()

  • loadFromActiveResources 使用的就是弱引用。

  • loadFromCache 使用的就是LruCache算法。

我們來看一下它們的源碼:

public class Engine implements EngineJobListener,MemoryCache.ResourceRemovedListener,EngineResource.ResourceListener {...private EngineResource<?> loadFromActiveResources(Key key, boolean isMemoryCacheable) {if (!isMemoryCacheable) {return null;}EngineResource<?> active = activeResources.get(key);if (active != null) {active.acquire();}return active;}private EngineResource<?> loadFromCache(Key key, boolean isMemoryCacheable) {if (!isMemoryCacheable) {return null;}EngineResource<?> cached = getEngineResourceFromCache(key);if (cached != null) {cached.acquire();activeResources.activate(key, cached);}return cached;}private EngineResource<?> getEngineResourceFromCache(Key key) {Resource<?> cached = cache.remove(key);final EngineResource<?> result;if (cached == null) {result = null;} else if (cached instanceof EngineResource) {// Save an object allocation if we've cached an EngineResource (the typical case).result = (EngineResource<?>) cached;} else {result = new EngineResource<>(cached, true /*isMemoryCacheable*/, true /*isRecyclable*/);}return result;}... }

loadFromActiveResources() 方法:

  • 首先就判斷 isMemoryCacheable 是不是 false ,如果是false的話就直接返回null。這就是 skipMemoryCache() 方法設置的是否內存緩存已被禁用。

  • 然后從 activeResources 當中取值,使用activeResources來緩存正在使用中的圖片,用來保護正在使用中的圖片不會被LruCache算法回收掉。


loadFromCache() 方法:

  • 首先就判斷 isMemoryCacheable 是不是 false ,如果是false的話就直接返回null。這就是 skipMemoryCache() 方法設置的是否內存緩存已被禁用。

  • 然后調用 getEngineResourceFromCache() 方法來獲取緩存。在這個方法中,會從中獲取圖片緩存 LruResourceCache ,LruResourceCache其實使用的就是LruCache算法實現的緩存。

  • 當我們從 LruResourceCache 中獲取到緩存圖片之后會將它從緩存中移除,將緩存圖片存儲到 activeResources 當中。activeResources就是弱引用的HashMap,用來緩存正在使用中的圖片。


這樣我們把從內存讀取圖片緩存的流程搞清了,那是什么時候存儲的呢。想想什么時候合適?是不是應該在異步處理獲取到圖片后,再緩存到內存?

EngineJob 獲取到圖片后 會回調Engine的 onEngineJobComplete() 。我們來看下做了什么:

public class Engine implements EngineJobListener,MemoryCache.ResourceRemovedListener,EngineResource.ResourceListener {...public void onEngineJobComplete(EngineJob<?> engineJob, Key key, EngineResource<?> resource) {Util.assertMainThread();// A null resource indicates that the load failed, usually due to an exception.if (resource != null) {resource.setResourceListener(key, this);if (resource.isCacheable()) {activeResources.activate(key, resource);}}jobs.removeIfCurrent(key, engineJob);}... }

onEngineJobComplete() 方法里將正在加載的圖片放到弱引用緩存。那什么時候放在LruCache里呢?當然是在使用完,那什么時候使用完呢?

那我們來看 EngineResource 這個類是怎么標記自己是否在被使用的。EngineResource是用一個acquired變量用來記錄圖片被引用的次數,調用acquire()方法會讓變量加1,調用release()方法會讓變量減1,代碼如下所示:

class EngineResource<Z> implements Resource<Z> {...private int acquired;void acquire() {if (isRecycled) {throw new IllegalStateException("Cannot acquire a recycled resource");}if (!Looper.getMainLooper().equals(Looper.myLooper())) {throw new IllegalThreadStateException("Must call acquire on the main thread");}++acquired;}void release() {if (acquired <= 0) {throw new IllegalStateException("Cannot release a recycled or not yet acquired resource");}if (!Looper.getMainLooper().equals(Looper.myLooper())) {throw new IllegalThreadStateException("Must call release on the main thread");}if (--acquired == 0) {listener.onResourceReleased(key, this);}}... }

可以看出當引用計數acquired變量為0,就是沒有在使用了,然后調用了 listener.onResourceReleased(key, this);

這個 listener 就是 Engine 對象,我們來看下它的 onResourceReleased() 方法:

public class Engine implements EngineJobListener,MemoryCache.ResourceRemovedListener,EngineResource.ResourceListener {...public void onResourceReleased(Key cacheKey, EngineResource<?> resource) {Util.assertMainThread();activeResources.deactivate(cacheKey);if (resource.isCacheable()) {cache.put(cacheKey, resource);} else {resourceRecycler.recycle(resource);}}... }

做了三件事:

  • 從弱引用刪除圖片緩存

  • 是否支持緩存,緩存到LruCache緩存

  • 不支持緩存直接調用垃圾回收,回收圖片

到這里內存緩存的讀和存的流程就介紹完了,根據源碼回頭看看我們之前列的Glide內存緩存流程,就清晰很多了。


五、磁盤緩存


磁盤緩存流程

  • 讀: 先找處理后(result)的圖片,沒有的話再找原圖。

  • 存: 先存原圖,再存處理后的圖。

注: diskCacheStrategy設置的的緩存模式即影響讀取,也影響存儲。

在判斷了兩級內存緩存之后,如果拿不到緩存,就會接著創建 EngineJobDecodeJob ,然后接著就會調用進 DecodeJob 線程的 run() 方法:

class DecodeJob<R> implements DataFetcherGenerator.FetcherReadyCallback,Runnable,Comparable<DecodeJob<?>>,Poolable {...@Overridepublic void run() {// This should be much more fine grained, but since Java's thread pool implementation silently// swallows all otherwise fatal exceptions, this will at least make it obvious to developers// that something is failing.GlideTrace.beginSectionFormat("DecodeJob#run(model=%s)", model);// Methods in the try statement can invalidate currentFetcher, so set a local variable here to// ensure that the fetcher is cleaned up either way.DataFetcher<?> localFetcher = currentFetcher;try {if (isCancelled) {notifyFailed();return;}runWrapped();} catch (Throwable t) {// Catch Throwable and not Exception to handle OOMs. Throwables are swallowed by our// usage of .submit() in GlideExecutor so we're not silently hiding crashes by doing this. We// are however ensuring that our callbacks are always notified when a load fails. Without this// notification, uncaught throwables never notify the corresponding callbacks, which can cause// loads to silently hang forever, a case that's especially bad for users using Futures on// background threads.if (Log.isLoggable(TAG, Log.DEBUG)) {Log.d(TAG, "DecodeJob threw unexpectedly"+ ", isCancelled: " + isCancelled+ ", stage: " + stage, t);}// When we're encoding we've already notified our callback and it isn't safe to do so again.if (stage != Stage.ENCODE) {throwables.add(t);notifyFailed();}if (!isCancelled) {throw t;}} finally {// Keeping track of the fetcher here and calling cleanup is excessively paranoid, we call// close in all cases anyway.if (localFetcher != null) {localFetcher.cleanup();}GlideTrace.endSection();}}private void runWrapped() {switch (runReason) {case INITIALIZE:stage = getNextStage(Stage.INITIALIZE);currentGenerator = getNextGenerator();runGenerators();break;case SWITCH_TO_SOURCE_SERVICE:runGenerators();break;case DECODE_DATA:decodeFromRetrievedData();break;default:throw new IllegalStateException("Unrecognized run reason: " + runReason);}}... }

run() 中主要還是調用的 runWrapper() 方法,繼而調用 runGenerator()

class DecodeJob<R> implements DataFetcherGenerator.FetcherReadyCallback,Runnable,Comparable<DecodeJob<?>>,Poolable {...private void runGenerators() {currentThread = Thread.currentThread();startFetchTime = LogTime.getLogTime();boolean isStarted = false;while (!isCancelled && currentGenerator != null&& !(isStarted = currentGenerator.startNext())) {stage = getNextStage(stage);currentGenerator = getNextGenerator();if (stage == Stage.SOURCE) {reschedule();return;}}// We've run out of stages and generators, give up.if ((stage == Stage.FINISHED || isCancelled) && !isStarted) {notifyFailed();}// Otherwise a generator started a new load and we expect to be called back in// onDataFetcherReady.}... }

這里調用了一個循環獲取解析生成器 Generator 的方法,而解析生成器有多個實現類:ResourcesCacheGeneratorSourceGeneratorDataCacheGenerator,它們負責各種硬盤緩存策略下的緩存管理,所以這里關鍵的條件在于 currentGenerator.startNext() 循環獲取每個Generator能否獲取到緩存,獲取不到就通過 getNextGenerator() 進行下一種:

class DecodeJob<R> implements DataFetcherGenerator.FetcherReadyCallback,Runnable,Comparable<DecodeJob<?>>,Poolable {...private DataFetcherGenerator getNextGenerator() {switch (stage) {case RESOURCE_CACHE:return new ResourceCacheGenerator(decodeHelper, this);case DATA_CACHE:return new DataCacheGenerator(decodeHelper, this);case SOURCE:return new SourceGenerator(decodeHelper, this);case FINISHED:return null;default:throw new IllegalStateException("Unrecognized stage: " + stage);}}... }

所以我們看看 ResourceCacheGenerator.startNext() ,看下它是用什么來緩存的,其中部分代碼如下:

class ResourceCacheGenerator implements DataFetcherGenerator,DataFetcher.DataCallback<Object> {...public boolean startNext() {...while (modelLoaders == null || !hasNextModelLoader()) {...Key sourceId = sourceIds.get(sourceIdIndex);Class<?> resourceClass = resourceClasses.get(resourceClassIndex);Transformation<?> transformation = helper.getTransformation(resourceClass);currentKey =new ResourceCacheKey(// NOPMD AvoidInstantiatingObjectsInLoopshelper.getArrayPool(),sourceId,helper.getSignature(),helper.getWidth(),helper.getHeight(),transformation,resourceClass,helper.getOptions());cacheFile = helper.getDiskCache().get(currentKey);if (cacheFile != null) {sourceKey = sourceId;modelLoaders = helper.getModelLoaders(cacheFile);modelLoaderIndex = 0;}}...return started;}... }

這里通過一個資源的關鍵信息生成key,然后調用 helper.getDiskCache().get() ,我們跟進去 DiskCache 看看:

final class DecodeHelper<Transcode> {...DiskCache getDiskCache() {return diskCacheProvider.getDiskCache();}... } class DecodeJob<R> implements DataFetcherGenerator.FetcherReadyCallback,Runnable,Comparable<DecodeJob<?>>,Poolable {...interface DiskCacheProvider {DiskCache getDiskCache();}... }

可以看到最終是調用了 DiskCacheProvider 接口的 getDiskCache() 方法獲取一個 DiskCache 對象,那么這個D對象又是什么來頭呢?

public interface DiskCache {... }

可以看到這是一個用來緩存硬盤數據的接口,那么它的實現就是我們要找的最終目標:

public class DiskLruCacheWrapper implements DiskCache {...private DiskLruCache diskLruCache;... }

里面的就不詳細分析下去了,這里主要維護了一個 DiskLruCache ,Glide就是通過這個來實現硬盤緩存的。

可以看到Glide的硬盤緩存是依靠DiskLruCache來進行緩存的,同樣也是Lru算法。

總結

以上是生活随笔為你收集整理的Android Glide图片加载框架(三)缓存机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

激情五月婷婷综合网 | 国产精品久久电影网 | 久久久91精品国产一区二区三区 | 久久成人亚洲欧美电影 | av网站在线免费观看 | 日韩欧美大片免费观看 | 亚洲成人黄色在线 | 超碰在线亚洲 | 在线天堂视频 | 亚洲精品国产日韩 | 西西444www高清大胆 | 成人在线视频一区 | 91香蕉视频720p | 久久免费在线视频 | 国产精品第一 | 伊人伊成久久人综合网站 | 国产黄色精品在线观看 | 国产高清视频免费在线观看 | 久久久久久久国产精品 | 久久久私人影院 | 日本在线观看中文字幕无线观看 | 免费在线观看中文字幕 | 久久精品成人 | 国产色小视频 | 亚洲综合在线视频 | 国产麻豆精品久久一二三 | 亚洲综合视频在线 | 最新极品jizzhd欧美 | 久久久久中文字幕 | 国产精品视屏 | 在线看中文字幕 | 国产精品免费人成网站 | 国产中文字幕在线看 | 波多野结衣在线观看一区二区三区 | 日韩在线观看影院 | 中文字幕中文字幕在线中文字幕三区 | 欧美精品免费一区二区 | 91网址在线看 | 一区免费观看 | 日本韩国欧美在线观看 | 狠狠躁夜夜a产精品视频 | 九九九热| 91手机视频| 久久艹久久 | 国产精品久久在线 | 天天舔天天射天天操 | 黄色软件在线观看视频 | 亚洲艳情| 亚洲jizzjizz日本少妇 | 成年美女黄网站色大片免费看 | 日韩欧美在线观看一区二区三区 | 一区在线观看视频 | 中文一区二区三区在线观看 | av久久久久久 | 天天综合五月天 | 2019国产精品| 欧美性生活小视频 | 视频在线99 | 黄色亚洲在线 | 日日夜夜噜 | 黄色毛片观看 | av电影免费在线 | 夜夜操狠狠操 | 久久久久国产精品厨房 | 国产理论一区二区三区 | 二区三区在线视频 | 日韩免费电影网 | 亚洲伊人网在线观看 | 又色又爽又黄高潮的免费视频 | 国产精品美女www爽爽爽视频 | 国产精品69久久久久 | 免费看的黄色录像 | 国产又粗又猛又黄 | 五月天欧美精品 | 久草在线视频免费资源观看 | 中文字幕网站 | 九色自拍视频 | 久久国产精品网站 | 亚洲涩涩涩涩涩涩 | 日韩网站视频 | 成人资源站 | 一区二区观看 | 国产精品成 | 国产精品自产拍在线观看网站 | 探花视频免费观看 | 香蕉视频国产在线观看 | 国产精品不卡在线观看 | 亚洲黄色在线观看 | 五月天综合婷婷 | 超碰人人做 | 综合久久五月天 | 国产婷婷精品av在线 | 日韩成人免费在线 | 国产色视频网站2 | 久久成年人 | 久久精品电影院 | 国产精品粉嫩 | 日韩欧美精品一区二区三区经典 | www亚洲一区 | 丁香六月色 | 久久夜色精品国产欧美一区麻豆 | 天天操人 | 国产精品久免费的黄网站 | 蜜臀av.com | 久久兔费看a级 | 五月天丁香视频 | 免费精品国产 | 欧美激情精品久久 | 国产亚洲欧美在线视频 | 国产专区在线视频 | 女人高潮一级片 | 人人舔人人舔 | 国产精品免费大片视频 | 日韩免费视频观看 | 国产热re99久久6国产精品 | 亚洲欧美乱综合图片区小说区 | 天天射天天射天天射 | 日批在线观看 | 久久99婷婷 | 国产精品久久久久久久久久不蜜月 | 国产探花 | 手机在线永久免费观看av片 | 国产精选在线观看 | 婷婷久久一区二区三区 | 在线视频福利 | 精品视频一区在线 | 狠狠久久婷婷 | 久久国产精品99久久久久久丝袜 | 国产精品美女999 | 日韩电影在线观看中文字幕 | 精品久久久久久久久中文字幕 | 在线精品视频免费播放 | 国产资源在线免费观看 | 国产手机精品视频 | 青春草国产视频 | 色婷婷综合成人av | 中文字幕在线视频免费播放 | 久久男人中文字幕资源站 | 92精品国产成人观看免费 | 久热只有精品 | 欧美在线91 | 国产精品涩涩屋www在线观看 | 五月婷婷在线视频观看 | 少妇自拍av | 高清国产在线一区 | 国产69精品久久app免费版 | 青青久视频 | 91专区在线观看 | 国产精品久99 | 激情在线网 | 国产精品成人一区二区三区吃奶 | 免费黄色在线播放 | 午夜在线免费视频 | 久久久亚洲精华液 | 国产一级免费在线 | 天天av综合网 | 午夜精品一区二区国产 | 国产在线播放一区二区三区 | 毛片精品免费在线观看 | 日日夜夜精品 | 国产亚洲情侣一区二区无 | 亚洲成av人片一区二区梦乃 | www.国产毛片| 91传媒在线观看 | 日韩理论在线播放 | 国产在线视频一区二区 | 中文字幕 成人 | 三级在线国产 | 精品国产一区二区三区噜噜噜 | 特级毛片aaa | 久草在线在线视频 | 日韩欧美在线观看一区二区三区 | 欧美日韩国产欧美 | 成年人免费观看国产 | 五月综合色婷婷 | 欧美日韩在线视频一区二区 | 97人人视频| 国产精品综合久久 | 国产精品高潮久久av | 亚洲综合丁香 | 欧美日韩在线精品一区二区 | 天天射天天舔天天干 | 91成熟丰满女人少妇 | 亚洲手机天堂 | 国产综合香蕉五月婷在线 | 日韩精品中文字幕在线不卡尤物 | 久久成人一区 | 久久免费精品一区二区三区 | 99精品在线免费观看 | 黄色网在线播放 | 亚洲色综合 | 国产不卡av在线播放 | 国产成人精品一区二区 | 2018亚洲男人天堂 | 国产高清免费观看 | 97涩涩视频 | 免费高清男女打扑克视频 | 欧美精品久久久久性色 | 精品国产一区二区三区四区在线观看 | 国产无区一区二区三麻豆 | 日韩精品一区二区久久 | 欧美激情精品久久久久久 | 国产中文字幕在线免费观看 | 午夜在线资源 | 久久精品91久久久久久再现 | 西西www444| www.福利视频 | 国产一区二区高清视频 | 国产精品黄色影片导航在线观看 | 久久激情网站 | 99精品国产成人一区二区 | 91亚洲欧美激情 | 天天干夜夜操视频 | 欧美一级视频免费 | 国产精品久久久av | 欧美少妇影院 | 97在线观看免费高清完整版在线观看 | 美女很黄免费网站 | 999视频精品 | 久久综合九色综合久99 | 黄色片网站免费 | 亚洲精品在线二区 | 91精品91 | 一区二区中文字幕在线播放 | 亚洲免费激情 | 激情五月婷婷丁香 | 99爱这里只有精品 | 92国产精品久久久久首页 | 久久av中文字幕片 | 5月丁香婷婷综合 | 色网站中文字幕 | 亚洲一区尤物 | 欧美日韩精品免费观看 | 中文一区在线 | 国产免费高清 | 欧美日韩精品在线 | 91精品国产三级a在线观看 | 中文国产在线观看 | 麻豆视频在线免费观看 | 天天操天天摸天天爽 | 在线免费中文字幕 | 日日夜夜中文字幕 | 久久 国产一区 | 丁香婷婷射 | 波多野结衣在线播放一区 | 中文在线亚洲 | 久久国内精品 | 麻豆视频在线播放 | 91大片网站| 开心激情婷婷 | 欧美日韩高清在线 | 色偷偷av男人天堂 | 精品91在线| 欧美乱熟臀69xxxxxx | 97在线观看免费观看高清 | 欧美久久九九 | 碰超在线97人人 | 成人免费大片黄在线播放 | 97国产情侣爱久久免费观看 | 亚洲一二区精品 | 91人人网 | 中文日韩在线 | 免费毛片一区二区三区久久久 | 欧美成天堂网地址 | 国产二级视频 | 黄色国产区 | 456免费视频 | 亚洲视频在线视频 | 国产精品综合久久久久 | 亚洲最新av在线网址 | 日韩午夜电影网 | 国产精品一区二区电影 | 国产日韩视频在线观看 | 一级黄色网址 | 91精彩视频| 91av成人| 日韩小视频网站 | 欧美日韩一区二区在线 | 69国产精品视频免费观看 | 日日插日日干 | 色网免费观看 | 97精品在线观看 | 欧美日韩一区二区三区不卡 | 亚洲精品久久视频 | 99久久精品久久久久久清纯 | 成年人黄色大全 | 国产精品久久久一区二区 | 午夜国产福利在线观看 | 伊人视频| 色播六月天| 粉嫩aⅴ一区二区三区 | www黄色大片 | 亚洲午夜久久久久久久久 | 久久免费视频1 | 精品久久美女 | av成人在线网站 | 激情婷婷在线观看 | 九七视频在线观看 | 亚洲理论视频 | 国产999精品久久久久久麻豆 | 亚洲日日夜夜 | 欧美激情一区不卡 | 久久99精品国产99久久 | 欧美另类高清 videos | 91最新网址在线观看 | 国产精品美女毛片真酒店 | 91亚洲国产成人 | 国产一级片直播 | 欧美色综合| 麻豆视频免费在线播放 | 丁香在线观看完整电影视频 | 国产一在线精品一区在线观看 | 免费裸体视频网 | 久久国产精品久久久 | 日韩欧美第二页 | 亚洲精品国产区 | 国产成人99av超碰超爽 | 国产理论免费 | av大全在线看 | 波多野结衣视频一区二区三区 | 天天碰天天操视频 | 91在线播 | 久久精品欧美视频 | 福利视频| 国产成人免费在线 | 狠狠做深爱婷婷综合一区 | 天天拍夜夜拍 | 伊人伊成久久人综合网小说 | 九九九热 | 国产精品破处视频 | 99在线视频精品 | 国产精品国产亚洲精品看不卡 | 激情综合网在线观看 | 中文字幕在线播出 | 蜜桃视频日本 | 精品国产乱码久久久久久1区二区 | 欧美性一级观看 | 国产免费大片 | 日韩黄色免费电影 | 91视频91蝌蚪 | 日本护士三级少妇三级999 | 中文字幕一区二区三区久久蜜桃 | 午夜国产影院 | 中文在线a√在线 | 国产区 在线 | 在线观看av免费 | 免费午夜网站 | 色综合中文综合网 | 欧美一级片免费在线观看 | 欧美国产日韩在线观看 | 最近中文字幕高清字幕在线视频 | 国产日韩精品在线观看 | 九九久久国产精品 | 国产精品久久久久久久久久久久午夜 | 成人97人人超碰人人99 | 中文字幕精品一区 | 91在线操| 91人人干 | 亚洲美女精品区人人人人 | 亚洲特级片 | 国产青草视频在线观看 | 精品国内自产拍在线观看视频 | 国产成人精品久久久久 | 在线 国产 日韩 | 香蕉视频导航 | 久久av网址 | 久久极品| 国产福利在线 | 2020天天干天天操 | 久久精品中文字幕免费mv | 手机成人av | 成人午夜电影在线 | 久久精品中文字幕免费mv | 午夜视频免费在线观看 | 精品国偷自产在线 | 狠狠干狠狠艹 | 亚洲国产一区在线观看 | 91在线观看欧美日韩 | av免费观看高清 | av在线播放观看 | 精品福利视频在线观看 | 色播五月激情五月 | 超碰午夜 | 婷婷久久一区 | 在线天堂中文www视软件 | 国产午夜精品久久久久久久久久 | 91 中文字幕 | 亚洲免费av一区二区 | 国产精品久久久久9999吃药 | 黄色一二级片 | 91精品视频免费 | 国产一区二区三区网站 | 国产成人久久av | 国产999精品视频 | 亚洲国产成人精品在线 | 婷婷播播网| 欧美人zozo | a成人v在线 | 深爱激情亚洲 | av电影在线免费观看 | 日韩欧美高清不卡 | 麻豆传媒视频观看 | 亚洲高清在线视频 | 国产一区二区三区视频在线 | 色视频在线免费 | 欧美一级性生活 | 亚洲精品理论 | 激情狠狠干 | 久久影院亚洲 | 97视频成人 | 成人香蕉视频 | 激情欧美xxxx| 91九色视频在线播放 | 精品一区二区综合 | 久久久久国产精品免费免费搜索 | 999久久久久久久久久久 | 九九热国产视频 | 亚洲小视频在线观看 | 在线视频 一区二区 | 五月婷婷黄色网 | 人人网人人爽 | 欧美激情综合色综合啪啪五月 | 青草视频免费观看 | 三上悠亚一区二区在线观看 | 中文字幕韩在线第一页 | 欧美一区中文字幕 | 国产精品av在线免费观看 | 午夜精品久久久久久久爽 | 蜜臀av网站| 色婷婷成人 | 亚洲婷婷网| 99视频一区 | 韩日视频在线 | 永久免费看av | 国产成人在线观看 | 中文字幕一区二区三区四区 | 亚洲欧美国产精品18p | 一性一交视频 | 久久成人在线视频 | 日韩亚洲在线 | 日韩免费一区二区 | 国产精品一区二区在线免费观看 | 亚洲欧美国产精品久久久久 | av中文字幕在线播放 | 精品在线不卡 | 久久久久国产精品免费免费搜索 | 欧美91精品国产自产 | 91精品影视 | 久久精品国产一区二区 | 精品在线小视频 | 97**国产露脸精品国产 | 成人毛片久久 | 黄色tv视频 | 国产玖玖在线 | 国产h在线观看 | 天天干,天天插 | 日韩av不卡在线观看 | 激情综合中文娱乐网 | 国产午夜一级毛片 | 国产一级片免费播放 | 人人爽人人香蕉 | 色综合综合| 日韩精品一区二区三区电影 | www.福利 | 国产乱码精品一区二区三区介绍 | 日韩一级理论片 | 亚州性色 | 日韩网站在线播放 | 成人app在线免费观看 | 天天操天天色天天射 | 国产精品免费人成网站 | 精品国产欧美一区二区三区不卡 | 久久久久久黄色 | 国产在线精品二区 | 99视频在线看 | 91成人久久 | 在线视频日韩欧美 | 免费在线观看成人小视频 | 免费看一级特黄a大片 | 国产男女免费完整视频 | 最近乱久中文字幕 | 77国产精品 | 免费成人黄色av | 国产乱对白刺激视频在线观看女王 | 四虎在线免费观看 | 欧美视频99 | 最近久乱中文字幕 | 丁香影院在线 | av一级黄| 天天操狠狠操网站 | 亚洲国产精品一区二区久久hs | 日韩超碰 | 中文字幕在线观看第二页 | 麻花豆传媒一二三产区 | 国产日本在线 | 国产成人精品综合久久久久99 | 国产午夜免费视频 | 国产精品欧美久久久久三级 | 少妇搡bbbb搡bbb搡aa | 精品色综合 | 久久精品香蕉视频 | 日韩中文字幕电影 | 综合在线色 | 欧美一区二区在线免费看 | 四虎8848免费高清在线观看 | 久久久久久久久久久久电影 | 操操操夜夜操 | 91观看视频 | 欧美一级片免费观看 | 激情深爱 | 国内视频1区 | 欧美亚洲精品在线观看 | 黄色a视频免费 | 国产三级国产精品国产专区50 | 97香蕉超级碰碰久久免费软件 | 97人人精品 | 中字幕视频在线永久在线观看免费 | 国产精品porn | 亚洲成人av一区二区 | 国产福利一区二区三区在线观看 | 国产精品久久久久久久午夜片 | 国产一级特黄毛片在线毛片 | 亚洲最新毛片 | 欧美精品亚洲精品日韩精品 | 青青色影院 | 九九在线国产视频 | 婷婷5月激情5月 | 国产污视频在线观看 | 嫩嫩影院理论片 | 日本公妇色中文字幕 | 一本一本久久a久久精品牛牛影视 | 免费观看全黄做爰大片国产 | 久久免费精彩视频 | 色综合久久88色综合天天免费 | 九九精品毛片 | 午夜精品区 | 四虎国产精品免费观看视频优播 | 精品福利在线观看 | 超碰午夜| 久久久电影网站 | 香蕉视频导航 | a黄色一级 | 在线观看成人网 | 欧美黑人猛交 | 精品免费观看视频 | 91在线视频免费观看 | 黄色成人毛片 | 国产明星视频三级a三级点| 综合久久一本 | 久久久免费精品 | 日韩在线短视频 | 东方av免费在线观看 | 综合网伊人| 亚洲一级二级 | 午夜精品一区二区三区在线播放 | 在线观看中文 | 天天色棕合合合合合合 | 久久久资源网 | 丁香av | 欧美人人爱| 日韩三级在线 | 精品国产一区二区三区久久 | 国产一区二区久久久久 | 亚洲视频中文 | 午夜在线看片 | 99精品色| 亚洲一区二区观看 | 国产成人久久精品一区二区三区 | 国产精品ssss在线亚洲 | 国产美女免费观看 | 99热精品国产一区二区在线观看 | 色综合久久精品 | 天天色天天骑天天射 | a在线免费观看视频 | 天天干天天怕 | 在线观看a视频 | 久草免费在线观看 | 久久久国产影视 | 国产精品高清一区二区三区 | 91久久奴性调教 | 国产麻豆视频免费观看 | 日韩三级视频 | 国产一区二区电影在线观看 | av夜夜操 | 欧美亚洲国产日韩 | wwwav视频 | 中文区中文字幕免费看 | 黄色小说视频网站 | 96av麻豆蜜桃一区二区 | 国产一区欧美在线 | 久久综合激情 | 免费在线看v| 国产区在线视频 | 欧美精品一级视频 | 97超碰中文字幕 | 亚洲黄色一级视频 | 国产精品成人一区二区 | 色视频网址 | 亚洲免费精品视频 | 色婷婷久久一区二区 | 久久久免费看 | 韩日电影在线免费看 | 久久人人插 | 色射爱| av电影免费在线播放 | www.天天综合 | 在线观看免费日韩 | 国产精品v a免费视频 | 主播av在线 | 天天操人| 亚洲永久精品在线观看 | 在线免费中文字幕 | 久久a v电影| 精品免费一区二区三区 | 最近中文字幕免费大全 | 国产色一区| 久久精品4 | 偷拍视频一区 | 97精品国产91久久久久久 | 久久成人久久 | 9992tv成人免费看片 | 国产在线高清视频 | 欧美日韩在线网站 | 国产精品久久久久久久久久久久午 | 美女免费网站 | 日韩久久久久久久 | 午夜婷婷综合 | 久久国产精品区 | 亚洲精品一区二区三区四区高清 | 日韩艹 | 91九色视频在线观看 | 精品久久久久亚洲 | 久久精品永久免费 | 日韩成年视频 | 国产精品一区二区在线看 | 国产免费成人 | 黄色软件视频网站 | 欧美日韩精品免费观看 | 婷婷在线播放 | 国产黄色视 | 视频国产在线 | 亚洲精品美女久久久 | 成人精品一区二区三区中文字幕 | 午夜神马福利 | 中文字幕免费一区二区 | 最新色视频 | 亚洲毛片一区二区三区 | www.夜夜骑.com | 国产亚洲成av人片在线观看桃 | 欧美日韩国产一区 | 欧美a免费| 成人在线观看网址 | 婷婷六月色 | 操久 | 国产一区在线免费观看视频 | 久久久久久久电影 | 久久精品久久精品 | www色网站| 国产专区在线视频 | 96精品高清视频在线观看软件特色 | 99爱精品在线 | 国产成人av网 | 免费国产亚洲视频 | 久久在线观看视频 | 99在线热播精品免费 | 天天干国产 | 免费日韩电影 | 婷婷色站 | 国产色婷婷精品综合在线手机播放 | 激情欧美日韩一区二区 | 国产成人精品在线播放 | 亚洲1级片 | 色99网| 玖草在线观看 | 97综合视频 | 操高跟美女 | 不卡电影一区二区三区 | 中文字幕观看在线 | 国产精品s色 | 正在播放亚洲精品 | 亚洲理论视频 | 国内视频1区 | 夜夜操天天摸 | 在线播放视频一区 | 9在线观看免费高清完整版在线观看明 | 中文字幕黄色网址 | 欧美色婷婷 | 国产高清免费观看 | 97色国产 | 丁香五婷 | 成人91在线| 中中文字幕av | 精品美女在线视频 | 亚洲国产高清视频 | 婷婷六月综合网 | 色干干| 97在线视频免费 | 久久久国产成人 | 久久99久久99精品中文字幕 | 精品国产一二三 | 天天综合视频在线观看 | 69av网| av免费片 | 国产午夜精品久久久久久久久久 | 亚洲日本va午夜在线影院 | 欧美大荫蒂xxx | 成人免费亚洲 | 中文字幕在线国产 | 日韩av成人免费看 | 国产在线观看高清视频 | 国产91电影在线观看 | 天天色官网 | 日批视频在线观看免费 | 2021国产在线视频 | 视频成人免费 | 免费看一级黄色大全 | 在线看中文字幕 | 成人啪啪18免费游戏链接 | 欧美视频日韩视频 | 亚洲伊人第一页 | 国产高清在线免费视频 | 色999五月色 | 免费观看国产精品视频 | 97热视频| 久久污视频 | av在线播放快速免费阴 | 日日操狠狠干 | 亚洲一区日韩精品 | 国语自产偷拍精品视频偷 | 午夜精品久久久99热福利 | 伊人精品在线 | 国产视频黄| 国产精品美女久久久久久久网站 | 久草视频在线免费看 | 国产在线免费 | 又色又爽又黄 | 天天干天天做天天爱 | 午夜久操 | 涩涩网站在线播放 | 国内精品久久久久久久久久久 | 国产一区二区三区高清播放 | 欧美一区在线观看视频 | 久操视频在线播放 | 精品亚洲成人 | 久久成人麻豆午夜电影 | www.亚洲视频.com| 在线视频一区观看 | 成人三级av| 国产天天爽 | 丁香五月缴情综合网 | 久久免费视频这里只有精品 | 国产成人精品一区二区三区福利 | 国产精品久久久久久爽爽爽 | 97视频总站 | 69国产精品成人在线播放 | 国产成人精品亚洲 | 欧美一区二视频在线免费观看 | 在线视频 成人 | 欧美aaaxxxx做受视频 | 美女视频网站久久 | 国产日韩精品一区二区三区在线 | 99在线观看视频网站 | 精品欧美一区二区精品久久 | av片一区二区| 911国产精品| 日韩有码中文字幕在线 | 国产精品99久久久久久人免费 | 日本久久成人中文字幕电影 | 狠狠的日| 免费黄色网址大全 | 四虎亚洲精品 | 午夜精品久久久久久久久久久久 | 午夜在线观看一区 | 成 人 黄 色 视频免费播放 | 亚洲精品在线视频播放 | 亚洲激情综合 | va视频在线观看 | 中文字幕在线视频国产 | 日韩毛片在线免费观看 | 国产黄色理论片 | 91九色视频导航 | 免费在线观看av网址 | 国产免费观看视频 | 丰满少妇对白在线偷拍 | 免费观看丰满少妇做爰 | 天天干.com | 在线视频免费观看 | 在线岛国av | 久久成人国产精品免费软件 | 日韩av午夜在线观看 | 天天操天天艹 | 国产男女无遮挡猛进猛出在线观看 | 久久免费av电影 | 日韩午夜精品 | 久久影院一区 | 在线观看免费av片 | 99在线高清视频在线播放 | 在线va视频| 操久在线 | 国产精品一区二区三区在线播放 | 欧美极品久久 | 天天干天天射天天插 | 久久97精品| 狠狠久久婷婷 | 中文字幕在线日亚洲9 | 国产精品久久久久影视 | 日韩av影片在线观看 | 久久99精品久久只有精品 | 久久字幕网 | 国产又粗又猛又黄 | 中文字幕免费高清av | 国产一级性生活 | 中文字幕精品一区二区三区电影 | 精品国产成人av | 91日韩精品 | 久久国色夜色精品国产 | 在线欧美中文字幕 | 81国产精品久久久久久久久久 | 日韩激情av在线 | 综合色天天 | 久久情网 | 日本中文字幕网址 | 人人涩| 欧美黄在线| 91亚洲精 | 97电影在线 | 国产在线a免费观看 | 日韩精品一区在线观看 | 日日摸日日添日日躁av | 久久久国产日韩 | 亚洲精品久久激情国产片 | 欧美日韩国产在线一区 | 久久视频免费在线 | 久久这里只有精品久久 | 天天天色 | 日本不卡一区二区 | 色偷偷888欧美精品久久久 | 欧美一区二区在线刺激视频 | 中文在线中文资源 | 亚洲专区在线播放 | 日日操网| 日韩视频一区二区三区在线播放免费观看 | 日韩午夜在线播放 | 久久免费视频6 | 91精品视屏 | 综合视频在线 | 日韩在线视频一区二区三区 | 国产黄色特级片 | 久草在线视频免赞 | 国产精品一区二区果冻传媒 | 日韩高清免费无专码区 | 在线视频1卡二卡三卡 | 久久久久久免费视频 | 国产成人免费高清 | 欧美精选一区二区三区 | 国产精品久久久久aaaa | 婷婷九九| 国产资源 | 国产激情久久久 | 日本在线观看一区 | 日韩有码专区 | 黄色在线小网站 | 91精品视频观看 | 中文字幕的 | 国产专区视频在线 | 夜添久久精品亚洲国产精品 | japanesefreesexvideo高潮 | 日日夜夜精品 | 色综合久久88色综合天天免费 | 欧美精品三级 | 国产综合精品一区二区三区 | 亚洲成人频道 | 人人爽人人舔 | 激情导航 | 欧美激情视频一区二区三区免费 | 99免费精品视频 | 99久久精品免费看国产麻豆 | 久久观看免费视频 | 人人精品久久 | 色综合久久综合网 | 天天射天天干天天操 | 日本久久免费视频 | 国产高清中文字幕 | 久久成人麻豆午夜电影 | 伊人婷婷激情 | 日韩在线观看免费 | 久久婷婷激情 | 国产精品va在线观看入 | 久久国产精品视频观看 | 亚洲女欲精品久久久久久久18 | 成人黄色大片在线免费观看 | 国产高清不卡av | 免费一级片在线观看 | 久久婷婷精品视频 | 国产精品免费麻豆入口 | 伊人久操 | 久久久官网| 视频精品一区二区三区 | 婷婷久久国产 | 国产xvideos免费视频播放 | 亚洲欧洲日韩 | 久久免费久久 | 国产精品美女久久久免费 | 国产精品99久久久久久宅男 | www.国产视频 | 色噜噜日韩精品欧美一区二区 | 国产精品成人免费一区久久羞羞 | 亚欧日韩av | 国产黄色大片免费看 | 久久99视频免费观看 | 欧美日视频 | 麻豆视频在线播放 | 毛片网免费 | 成人在线免费观看网站 | www国产精品com| 91成人精品一区在线播放69 | 亚洲欧洲在线视频 | 99视频网站 | 免费在线观看毛片网站 | 99久久久国产精品 | 久久久一本精品99久久精品66 | 日日爱影视 | 中日韩欧美精彩视频 | 精品91在线 | 激情网色 | 国产精品乱码久久 | 国产大陆亚洲精品国产 | 久久久伦理 | 国产精品久久久久久久婷婷 | 国产九色在线播放九色 | 亚洲成人午夜在线 | 天天干天天干天天操 | 国产成人不卡 | 91大神免费在线观看 | 久久a v视频 | 最近中文字幕国语免费av | 久久网站免费 | 在线视频a | 精品亚洲视频在线观看 | 四虎在线永久免费观看 | 国产成人一区二区三区在线观看 | 日韩久久影院 | 久草干 | 国产精品一级视频 | 波多野结衣在线观看一区二区三区 | 色橹橹欧美在线观看视频高清 | 探花系列在线 | 98福利在线 | 一级片免费观看视频 | 色在线免费观看 | 玖玖精品视频 | 亚洲精品国产欧美在线观看 | 久久成人国产精品入口 | 美女精品久久久 | 在线之家免费在线观看电影 | 天天操夜夜做 | 五月天综合网站 | 亚洲精品一区二区三区高潮 | 久久国产欧美日韩精品 | 亚洲 综合 国产 精品 | 香蕉影院在线观看 | 国产精品高潮呻吟久久av无 | 亚洲精品乱码久久久久久蜜桃不爽 | 2019国产精品 | 99久久婷婷国产一区二区三区 | 天天操天天能 | 狠狠狠色丁香综合久久天下网 | 狠狠狠狠狠狠狠狠 | 亚洲区视频在线观看 | 波多野结衣视频一区二区三区 | 极品国产91在线网站 | 国产精品女视频 | 国产精品美女www爽爽爽视频 | 欧美另类tv | 国产亚洲精品美女 | 99精品欧美一区二区三区黑人哦 | 91九色成人 | 久久久影院| 激情av一区二区 | 亚洲精品美女久久久久 | 天天玩天天干 | 国产成人精品一区二区三区网站观看 | 丁香六月婷婷开心婷婷网 | 国产午夜精品av一区二区 | 国产色久 | 成人a毛片| 国产一级在线播放 | 国产 视频 久久 | 又黄又刺激视频 | 免费久久99精品国产 | 毛片网站免费在线观看 | 国产精品女 | 欧美在线视频a | av在线免费在线 | 中文字幕一区在线观看视频 | 久久人人97超碰国产公开结果 | 久久免费美女视频 | 久久歪歪 |