精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android 4.0的圖形硬件加速及繪制技巧

原創
移動開發 Android
最新的Android 4.0有很多新特性,51CTO特約了著名手機廠商Android開發工程師、最牛網站長作為本站專欄作者,為各位網友撰寫Android 4.0開發相關文章。本文我們將探討Android 4.0的圖形硬件加速及繪制技巧如何得到了更好的提升。

【51CTO獨家特稿】從Android 3.0開始,Android 2D的繪制流程就設計為能夠更好地支持硬件加速。使用GPU的View在Canvas上進行畫的操作時都會使用硬件加速。在***的Android版本里,圖形硬件加速及繪制技巧得到了更好的提升,51CTO特約了最牛網站長作為本站專欄作者,為各位網友撰寫Android 4.0開發相關文章。

Android 4.0

Android 4.0

1.Android 4.0硬件加速的使用

1.1 硬件加速的控制級別

啟用硬件加速的最簡單方法就是為整個系統打開硬件加速的全局設置。如果你的程序是標準View或者是Drawable 則硬件加速的全局設這并不會造成不良的影響。然而硬件加速并不支持所有2D畫的操作,所以開啟硬件加速可能會對使用自定義組件的應用程序造成影響,問題常常表現在不可見的元素異常和錯誤的像素渲染,為了解決這個問題Android可以讓你選擇啟動或者禁用以下級別的硬件加速:Application Activity Window 和 View 。

1.1.1 Application級別

在你的Android Manifest文件中添加 屬性標記,以便為整個應用程序使用硬件加速。

1.1.2 Activity級別

如果你的應用程序不能在Application應用級別表現良好的話,則可以使用對Activity進行單獨控制。要啟動或者禁用一個Activity的硬件加速,你可以使用activity的android:hardwareAccelerated屬性。下面的一個列子使整個Application啟用硬件加速,但是對一個Activity禁止使用硬件加速。

1.1.3 Window級別

如果你需要更細粒度的控制,你可以通過如下代碼給window進行加速。

  1. getWindow().setFlags( 
  2. WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); 

注意:現階段你不能在Window級別對它禁用硬件加速。

1.1.4 View級別

我們可以對單獨的View在運行時階段禁用硬件加速。我們可以使用如下代碼:

  1. myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

注意:現階段不能夠在View級別進行硬件加速。

1.2 判斷一個View是否已經啟用了硬件加速

有時候我們需要知道一個應用程序是否已經啟用了硬件加速,特別是針對一些自定義控件。因為你的應用程序做了很多自定義“畫”的操作,但并不是所有的過程都支持新的“畫”的渲染過程。

有兩種不同的方法來檢查Application是否啟用了硬件加速:

1.2.1 使用View.isHardwareAccelerated() 如果返回true則可以說明這個View所在的窗口已經啟用了硬件加速。

1.2.2 Canvas.isHardwareAccelerated() 如果返回true則說明這個Canvas已經啟用了硬件加速。

如果你必須要在你的繪畫代碼中進行是否已經加速的檢查,如果可能的話請使用Canvas.isHardwareAccelerated()來代替View.isHardwareAccelerated()。當一個View是存在于一個已經加速的Windows上時,任然可以使用沒有硬件加速的Canvas進行繪畫,這場發生在,比如,當我們把一個View畫到Bitmap上然后用作緩存。#p#

2.Android 4.0的繪制模型

當開啟了硬件加速,Android框架將會使用一種新的繪制模型,這種模型將會使用顯示列表把你的應用顯示到屏幕上。要完全理解顯示列表和他們如何影響你的應用程序,理解Android 4.0如何在非硬件加速的情況下如何繪制Views是很有必要的,下面將分別介紹軟件加速和硬件加速。

2.1基于軟件的繪制模型

在基于軟件繪制模型中,View的繪制遵循以下兩步:1.使整個控件層級無效。2.對層級進行繪制。

當一個應用程序需要更新它UI的一部分時,它將會調用內容發生改變的View的invalidate()方法(或者invalidate的變體)。Invalidate的消息按照View的層級關系向上傳遞用以計算需要重畫的部分(即臟區域)。然后Android系統會對和臟區域有交集的所有View進行繪制,不幸的是這種模型中有兩個缺點:

2.1.1 在這種模型中當在不同的層進行畫的時候,會額外執行很多代碼。例如一個Button是位于另外一個View之上,當對Button調用 Invalidate()時,Android就會對這個View進行重繪,即便這個View沒有發生任何變化。

2.1.2 第二個問題是這種繪制模型會隱藏你Application中的Bug。因為Android系統會對和臟區域有交集的View進行重繪,在這種情況下如果一個view的內容發生了改變,即便這個View的Invalidate()的方法并沒有得到調用,它也可能被重繪。你便會依賴調用了invalidate()的其他的控件以便獲得正確的行為,因此每當你的Application發生改變時,這種行為多要隨之發生改變。也是基于次因,在你的自定義控件中你必須不斷地調用invalidate()方法,當你的數據或者是狀態會影響View的繪制代碼時。

注意:Android的View當它們的屬性發生改變時會自動的調用Invalidate()。比如,你改變一個 Textview的背景或者是它的文本。

2.2 基于硬件加速模型

Android 系統仍然通過invalidate()和draw()去請求屏幕更新和重新渲染,但是實際處理畫的方式是不同的。不是立即執行畫的命令,Android而會將所有畫的命令記錄在一個顯示列表里面,這個顯示列表包含了輸出的View層級的繪制代碼。還有一個優化就是Android在顯示列表中只會記錄和更新顯示層級中通過調用invalidate()函數被標記為“臟”的view。沒有被請求刷新的view可以通過重新請求先前的顯示列表以便重畫。新的繪制模型包括有三個步驟:1.禁用整個View層級。2.記錄和更新顯示列表。3.繪制顯示列表。

使用這個模型你不能依賴一個View和臟區域有交集就會執行draw()方法。要確保Android系統記錄了一個View的顯示列表,你必須調用invalidate()方法,如果忘記了調用刷新,會使View即便是發生了改變后也會看起來相同,這是一個比較容易發現bug的方式。

使用顯示列表的方式對動畫的表現也是很有好處的,因為設置指定的屬性值,比如透明度或者旋轉,就不需要請求刷新目標View(這將自動執行)。這項優化也應用于有顯示列表的Views(啟用了硬件加速的View),例如,現在有一個LinearLayout包含了一個ListView和Button,listview在button的上面。這時候LinearLayout的顯示列表如下所示:

◆DrawDisplayList(ListView) ;

◆DrawDisplayList(Button) ;

假設你現在你想更新這個Listview的不透明度,在設置Listview的 setAlpha(0.5f) 屬性之后,LinearLayout的顯示列表應該包含如下:

◆ SaveLayerAlpha(0.5)

◆ DrawDisplayList(ListView)

◆ Restore

◆ DrawDisplayList(Button)

這時候繪制Listview的復雜過程就會省略了,取而代之的是簡單的更新了LinearLayout的顯示列表。如果一個應用程序并沒有啟用硬件加速,Listview和它的父view的畫的代碼都會重新執行。#p#

3.Android 4.0 View的層

3.1層的分類

所有的Android版本都有能力對離屏緩沖進行渲染,或者是使用View的繪制緩沖,或者是使用Canvas.saveLayer()函數。離屏緩沖或者Layer能夠有很多種應用,例如能使處理復雜view的動畫效果或者應用一些合成效果都有更好地表現。例如你可以通過Canvas.saveLayer()的方式來對View做一個漸入漸出效果同時把它渲染到Layer中,然后再加上不透明效果合成后顯示到屏幕上。

由Android 3.0開始你就能夠通過View.setLayerType()方法對何時以及如何使用層有了更多的控制,這個API具有兩個參數一個是你想使用的層類型,另外一個是可選參數Paint表明了Layer是如何被疊加的。你可以把Paint參數應用到顏色過濾上,特別是混合模式或者是對一個layer進行不透明效果。一個View可以使用如下的三種layer類型之一:

◆ LAYER_TYPE_NONE: 這個View將被按普通的方式進行渲染,但是不會返回一個離屏的緩沖,這個是默認的行為。

◆ LAYER_TYPE_HARDWARE:如果這個應用被硬件加速的話,這個View將會在硬件中渲染為硬件紋理,如果應用程序并沒有被硬件加速,則其效果和LAYER_TYPE_SOFTWARE是相同的。

◆ LAYER_TYPE_SOFTWARE: 此View 通過軟件渲染為一個bitmap。

3.2 層的使用

使用層的類型取決于你的目的:

3.2.1 性能:使用硬件層來渲染一個View成為硬件紋理。一旦一個View被渲染為一個層,它的繪制代碼將不會得到執行,直到你調用了invalidate()函數。對于一些動畫,比如透明動畫可以直接應用到一個層上,這是GPU最有效率的使用方式。

3.2.2 顯示效果:使用硬件或者軟件層和Paint來對一個View進行特殊的視覺處理,例如你可以對一個View通過使用ColorMatrixColorFilter來實現黑白效果。

3.2.3 兼容性:使用軟件層類型會強制使一個view在軟件中被渲染。如果一個view是硬件加速的話(比如你設置整個應用程序是硬件加速的話),同時有渲染的問題,這是一種很簡單的方式來限制硬件繪制流程。

3.3 View的層和動畫的關系

當你的應用程序已經使用了硬件加速的話,硬件層能夠帶來更為快速和更為平滑的動畫效果。當對一個復雜的View進行動畫操作時,因為要進行很多的畫操作,所以并不可能總是能達到60幀每秒。在這種情況下可以通過硬件層來渲染為硬件紋理來提高性能。硬件紋理操作可以用作對一個view進行動畫操作,當進行動畫的時候可以減少對View自身頻繁的重繪。除非你改變這個view的屬性(調用invalidate()方法)或者你手動的調用invalidate()。如果在你的應用中運行一個動畫,但是并沒有得到你想要的平滑效果,可以考慮為你要動畫的view開啟硬件層。

當一個View通過硬件層返回時,當所有的層疊加后最終的畫面顯示在屏幕時,View一些屬性會被同時被處理。設置這些屬性是十分有效率的,因為他們不需要View去invalidate和重繪。如下的屬性將影響層的疊加,設置這些屬性將會使View自動請求刷新,而且不需要對View進行重繪。

◆alpha: 改變層的透明度。

◆x, y, translationX, translationY: 改變層的位置

◆scaleX, scaleY: 改變層的大小

◆rotation, rotationX, rotationY:在3D空間內改變層的方向

◆pivotX, pivotY: 指定它進行變形的原點位置

這些屬性是通過ObjectAnimator對象對一個view進行動畫操作時所使用的,如果你想訪問這些屬性,直接調用這些屬性的setter或者getter方法,例如想改變View的alpha則直接調用setAlpha()。如下的代碼片段顯示了一個View通過Y軸進行3D旋轉。

  1. view.setLayerType(View.LAYER_TYPE_HARDWARE, null); 
  2. ObjectAnimator.ofFloat(view, "rotationY", 180).start(); 

因為硬件層會消耗視頻的內存,強烈的推薦你在作動畫的時候啟用他們,當動畫完成了之后禁用他們,你可以通過動畫監聽來完成這些。代碼如下:

  1. View.setLayerType(View.LAYER_TYPE_HARDWARE, null); 
  2. ObjectAnimator animatorObjectAnimator.ofFloat(view, "rotationY", 180); 
  3. animator.addListener(new AnimatorListenerAdapter() { 
  4. @Override 
  5. public void onAnimationEnd(Animator animation) { 
  6. view.setLayerType(View.LAYER_TYPE_NONE, null); 
  7. }); 
  8. animator.start(); 

#p#

Android 4.0提示和技巧

切換到硬件加速2D圖形可以立即增強表現,但是你還是需要通過如下的建議來設計你的應用程序來更有效率的使用GPU。

4.1 減少你程序中使用View的數量

你系統中畫的view的數量越多,你的程序就會越慢,在軟件繪制的流程也是一樣的,減少view的數量是優化你UI的一個最簡單的方法。

4.2 避免過多繪制

不要過多的疊加層,當一個View被其他view完全遮擋住了的話,***把被遮擋的view移除掉。如果你需要繪制不同的層做一個疊加效果的話,考慮把這些層合并為一個層。就現在的硬件來看,有一個好的經驗就是動畫的每幀不要繪制多余屏幕像素2.5倍的像素數量(bimap中的透明像素也計算在內)。

4.3 不要在繪制的方法中創建繪制對象

一個常見的錯誤就是當繪制方法被調用的時候,每次都要創建一個新的Paint或者Path。這將迫使垃圾回收器過于頻繁的運行,這將對緩沖和硬件的繪制造成影響。

4.4 不要過于頻繁的修改形狀

以復雜的shapes,path和旋轉為例,這些繪制都會用到紋理的遮罩。每當你創建或者修改一個path,硬件渲染過程都會創建一個新的遮罩,這耗費的代價是相當大的。

4.5 不要過于頻繁的修改bitmap

每當修改一次bitmap的內容,當你下次再繪制它的時候都會以GPU的紋理形式上傳一次。

4.6 要小心使用alpha通道

當你使用setAlpha ,AlphaAnimation或者ObjectAnimator設置一個View的透明效果時。它將需要2倍離屏的渲染緩沖填充率,當應用一個alpha到一個大的View上的時候,考慮設置view 層的類型為LAYER_TYPE_HARDWARE。

本文作者的微博為http://weibo.com/zuiniuwang 歡迎大家與他聯系。

【51CTO.com獨家特稿,非經授權謝絕轉載,合作媒體轉載請注明原文作者及出處!】

責任編輯:佚名 來源: 51CTO.com
相關推薦

2012-07-24 14:30:58

Windows 8操作系統

2020-07-08 08:30:28

Windows操作系統功能

2012-01-11 16:02:56

Android 4.0Launcher源碼分析

2017-02-07 10:56:59

Android硬件加速App

2009-12-23 13:55:44

WPF硬件加速

2017-12-25 14:29:31

NFV硬加速運營商

2010-06-24 10:59:11

Bzip2算法

2010-07-20 16:01:44

GPU硬件加速瀏覽器

2010-10-08 09:18:06

Ubuntu 10.1GPU硬件加速

2011-07-14 09:30:47

HTML 5Windows PhoMango

2021-01-12 09:00:17

FirefoxLinux開發者

2010-01-27 09:17:43

Office 2010GUP加速

2017-08-07 18:20:14

Windows 7WindowsCPU

2011-05-04 09:23:19

Android 3.1硬件加速FlashPlayer

2010-05-19 11:17:24

Office 2010

2010-09-16 11:09:34

IE 9 Beta評測

2020-07-08 17:24:10

Windows 10GPU硬件

2022-08-03 08:00:00

機器人硬件開發

2022-06-15 16:06:29

LZ4 算法硬件加速

2011-03-16 17:12:46

IE9GPU
點贊
收藏

51CTO技術棧公眾號

精品国产一区二区三区久久久| 国产麻豆91视频| 欧美人xxx| 麻豆成人精品| 精品国产一区二区三区四区在线观看| 日韩欧美中文视频| 欧美激情网站| 亚洲欧洲美洲综合色网| 国产美女精品在线观看| 波多野结衣一本一道| 亚洲精品极品少妇16p| 日韩电视剧免费观看网站| 不卡av免费在线| 青青在线视频| 中文字幕欧美三区| 国产精品久久久久久久久婷婷| 国产精华7777777| 午夜精品婷婷| 在线视频亚洲欧美| 美女黄色一级视频| 成人污版视频| 日本乱码高清不卡字幕| 2022中文字幕| caoporn国产精品免费视频| 成人福利在线看| 国产在线精品一区免费香蕉| 亚洲 欧美 日韩 在线| 欧美精品成人| 久久精品国产免费观看 | 国产精品中文字幕一区二区三区| 日本久久久久久| 精品一区在线视频| 911精品美国片911久久久 | www.久久久久.com| 欧美国产一区在线| 任我爽在线视频精品一| 五月婷婷深深爱| 成人中文字幕电影| 亚洲精品欧美极品| 91亚洲国产成人精品一区| 新67194成人永久网站| 久久理论片午夜琪琪电影网| 亚洲不卡在线播放| 婷婷综合社区| 神马国产精品影院av| 欧美多人猛交狂配| 亚洲欧美成人vr| 国产视频精品免费播放| 香港三日本8a三级少妇三级99| 亚洲精品.com| 好吊成人免视频| 国产精品久久..4399| 国产深夜视频在线观看| 亚洲综合激情网| 免费的一级黄色片| 欧美人与牲禽动交com| 亚洲色图欧美偷拍| 男人天堂成人网| 精品国产白色丝袜高跟鞋| 国产精品国产三级国产有无不卡 | 黄色国产在线| 久久精品网站免费观看| 欧美一二三区| 国产三级在线看| 国产精品情趣视频| 中文字幕欧美日韩一区二区三区 | 欧美日韩国产va另类| 青草草在线视频| 在线日韩欧美| 51午夜精品视频| 中文字幕69页| 美美哒免费高清在线观看视频一区二区| 国产精品高潮在线| 国产一区二区三区三州| 国产精品一区二区久久不卡| 国产精品乱码一区二区三区| 神马亚洲视频| 国产精品理论片在线观看| 香蕉精品视频在线| 国产深夜视频在线观看| 一本大道久久精品懂色aⅴ| 天堂社区在线视频| 久久亚洲精精品中文字幕| 精品美女被调教视频大全网站| 成年人的黄色片| 精品国产一区二区三区噜噜噜| 久久视频免费观看| 日韩aaaaaa| 奇米综合一区二区三区精品视频| 96sao精品视频在线观看| 色丁香婷婷综合久久| 国产日本欧洲亚洲| 国产美女作爱全过程免费视频| 日本蜜桃在线观看视频| 欧美色图片你懂的| 精品伦一区二区三区| 沈樵精品国产成av片| 成年人精品视频| 人妻 日韩精品 中文字幕| 精品一区二区三区香蕉蜜桃| 国产一区免费在线| 精品黄色免费中文电影在线播放| 婷婷激情综合网| 久久精品视频在线观看免费| 免费久久精品| 欧美成人午夜剧场免费观看| 91精品国产综合久久久蜜臀九色| 国产一区二区三区黄视频| 精品国产综合久久| av网址在线看| 欧美亚一区二区| 国产成人av无码精品| 午夜av一区| 国产精品第三页| 日韩永久免费视频| 亚洲精品成人悠悠色影视| 丁香婷婷激情网| 草莓视频一区二区三区| 日韩三级成人av网| 天天射天天干天天| 99精品1区2区| 大伊香蕉精品视频在线| 精品国产亚洲日本| 亚洲一区二区精品| 久久黄色精品视频| 成人精品鲁一区一区二区| 中国老女人av| 偷拍自拍亚洲| 中文字幕亚洲综合久久| 免费看日批视频| 99久久精品一区| 欧美日韩不卡在线视频| 国产情侣一区在线| 久久精品国产亚洲7777| 中文字幕av片| 久久久国产精华| www黄色日本| 日韩av影院| 91高清视频免费| 亚洲色欧美另类| 精品人伦一区二区三区蜜桃免费 | 精品国产乱子伦一区二区| 久久中文字幕国产| 精品国产av一区二区| 综合久久国产九一剧情麻豆| 黑森林精品导航| 日韩精品dvd| 成人av在线亚洲| 免费大片黄在线观看视频网站| 欧美色手机在线观看| 久久久久亚洲AV成人无在| 男女男精品视频网| 日韩av电影免费在线观看| 免费在线观看一区| 中文字幕亚洲无线码a| 中文字幕精品一区二区精| 国产精品免费久久久久| 亚洲免费av一区| 久久久久国产| av色综合网| 九色porny自拍视频在线观看| 精品国产网站在线观看| av大片免费在线观看| 91在线播放网址| 久久久久久三级| 婷婷精品进入| 97影院在线午夜| a级片在线免费| 亚洲美女av黄| 欧美高清69hd| 亚洲精品高清在线| 国产精品无码专区| 三级欧美在线一区| 椎名由奈jux491在线播放| 亚洲国产高清在线观看| 97碰碰碰免费色视频| 精品av中文字幕在线毛片| 欧美色综合久久| 看免费黄色录像| 91视频精品在这里| 日韩一区二区三区不卡视频| 欧美在线91| 好吊色欧美一区二区三区| 欧美影视资讯| 久久99精品久久久久久琪琪| 五月婷婷丁香网| 欧美日韩国产bt| 久久伊人成人网| 国产喷白浆一区二区三区| 色18美女社区| 亚洲永久在线| 伊人色综合久久天天五月婷| 国产精品宾馆| 国产精品网址在线| av中文在线资源库| 久久韩剧网电视剧| 欧洲av在线播放| 欧美日韩一区二区不卡| 日韩av男人天堂| 综合久久久久久| 中文幕无线码中文字蜜桃| 国产精品羞羞答答xxdd| 别急慢慢来1978如如2| 韩国自拍一区| 亚洲资源在线网| 中文字幕伦av一区二区邻居| 91夜夜未满十八勿入爽爽影院| 神马久久午夜| 欧美精品福利在线| 日本中文字幕电影在线免费观看 | 91在线高清免费观看| 中文一区一区三区高中清不卡免费| 日韩在线精品一区| 欧美扣逼视频| 亚洲а∨天堂久久精品9966| 一二区在线观看| 色欲综合视频天天天| 黄色激情视频在线观看| 亚洲男人电影天堂| 亚洲激情图片网| 久久久久久毛片| 中文字幕在线播放一区| 国产精品一区专区| 久久久久久蜜桃一区二区| 亚洲永久视频| 免费看一级大黄情大片| 狠狠色综合网| 屁屁影院ccyy国产第一页| 99久久精品费精品国产风间由美| 热re99久久精品国99热蜜月| 欧美丝袜足交| 国产精品自拍首页| 中文字幕一区图| 99精彩视频| 亚洲高清在线一区| 97netav| 久久三级中文| 91九色蝌蚪成人| 精品午夜av| 亚洲最大成人在线| 日韩精品成人在线观看| 444亚洲人体| 看亚洲a级一级毛片| 91网站在线看| 成人国产精品久久| 91日韩在线视频| 国产午夜亚洲精品一级在线| 91久久在线播放| 国产麻豆精品| 91网免费观看| 一区三区自拍| 国产在线一区二| 日韩伦理一区二区三区| 久久精品国产精品青草色艺| 日韩中文av| 欧美日韩另类综合| 成人看的视频| 宅男一区二区三区| 欧美国产三级| 丁香花在线影院观看在线播放 | 中文字幕色av一区二区三区| 可以免费看av的网址| 亚洲免费视频中文字幕| 免费在线观看av网址| 五月激情六月综合| 无码人妻av免费一区二区三区| 欧美调教femdomvk| 国产精品九九九九| 精品欧美乱码久久久久久1区2区 | 国产亚洲欧美另类中文| 18免费在线视频| 欧美老女人性视频| 交100部在线观看| 国产精品欧美一区二区| 国产精品视频一区二区三区综合 | 国内自拍第二页| 成人在线综合网站| 国产小视频自拍| 18成人在线观看| 国产精品午夜影院| 日本道色综合久久| 精品人妻无码一区二区三区蜜桃一| 亚洲成人xxx| 亚洲1卡2卡3卡4卡乱码精品| 九色91av视频| 色婷婷综合久久久中字幕精品久久| 91免费看国产| 亚洲va久久久噜噜噜久久| 伊人久久大香线蕉午夜av| 在线看片一区| 狠狠操狠狠干视频| 91丨porny丨蝌蚪视频| 日韩三级在线观看视频| 欧美视频在线观看免费| 99免费在线视频| 亚洲欧美日韩区| 欧洲性视频在线播放| 国产精品日韩在线一区| 精品视频自拍| 中文字幕在线亚洲三区| 亚洲欧美不卡| 久久久男人的天堂| 国产精品福利一区二区| 97久久久久久久| 欧美mv日韩mv亚洲| 自拍视频在线| 欧美在线观看网址综合| 日韩在线观看一区二区三区| 日韩久久久久久久久久久久久| 亚洲视频福利| 91日韩精品视频| 国产人成一区二区三区影院| 99视频在线看| 欧美成人a在线| 久久99精品久久| 国产精品夜间视频香蕉| 亲子伦视频一区二区三区| 日韩一级片一区二区| 蓝色福利精品导航| 欧美激情aaa| 精品欧美国产一区二区三区| 成人久久精品人妻一区二区三区| 日韩有码在线播放| 欧美成人三级| 日韩免费av一区二区三区| 国产偷自视频区视频一区二区| 国产免费a级片| 一区二区三区欧美亚洲| 国产女人18毛片18精品| 最新国产精品拍自在线播放| 亚洲欧美在线成人| 日本不卡高清视频一区| 欧美专区一区二区三区| 亚洲啪av永久无码精品放毛片| 一区二区三区精品视频在线| 99精品视频在线播放免费| yellow中文字幕久久| 欧美激情不卡| 亚洲综合视频一区| 老司机午夜精品| 亚洲欧美另类日本| 欧美日韩一区三区四区| 在线观看黄av| 国产精品亚洲аv天堂网| 色乱码一区二区三区网站| 久久久久久久久久久久91| 欧美国产在线观看| 国产一区二区在线视频聊天| www.精品av.com| 欧美a在线观看| 免费人成自慰网站| 91视频免费播放| 中文字幕在线日本| 伊人久久久久久久久久久| 国产精品传媒麻豆hd| 日日噜噜噜夜夜爽爽| 国产精品538一区二区在线| 国产精品第72页| 国产网站欧美日韩免费精品在线观看 | 国产精品69页| 国产精品久久三| av免费观看在线| 97在线视频一区| 久久av电影| 在线观看中文av| 午夜国产精品一区| 成年人在线观看网站| 成人福利视频在线观看| 狠久久av成人天堂| 在线观看国产网站| 欧美日韩视频在线第一区 | 熟妇人妻av无码一区二区三区| 欧美在线观看日本一区| 精品香蕉视频| 中文字幕人妻无码系列第三区| 亚洲精品国久久99热| 五月婷婷六月丁香| 国产日产欧美a一级在线| 欧美一区二区三区久久精品| 800av在线播放| 欧美三级韩国三级日本三斤| 黄色成人在线观看| 久久久精品有限公司| 理论片日本一区| 日韩网红少妇无码视频香港| 这里只有精品在线观看| 网站一区二区| 国产免费视频传媒| 一区二区欧美在线观看| 国产一级二级三级在线观看| 91嫩草免费看| 久久字幕精品一区| 精品一区在线观看视频| 亚洲网址你懂得| 岛国成人av| 欧美视频亚洲图片| 日本韩国视频一区二区| 欧美极品少妇videossex| 无码免费一区二区三区免费播放| 成人黄页在线观看|