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

一文讀懂直播卡頓優化那些事兒

運維 網絡運維
希望本文可以帶給大家一個相對全局的視角看待卡頓問題,認識到卡頓是什么、卡頓的成因、卡頓的分類、卡頓的優化和一些經驗積累,有的放矢地解決 App 流暢性問題。

希望本文可以帶給大家一個相對全局的視角看待卡頓問題,認識到卡頓是什么、卡頓的成因、卡頓的分類、卡頓的優化和一些經驗積累,有的放矢地解決 App 流暢性問題。接下來會從以下五個方面進行講述:

  • 什么是卡頓
  • 為什么會發生卡頓
  • 如何評價卡頓
  • 如何優化卡頓

1. 什么是卡頓

卡頓,顧名思義就是用戶體感界面不流暢。我們知道手機的屏幕畫面是按照一定頻率來刷新的,理論上講,24 幀的畫面更新就能讓人眼感覺是連貫的。但是實際上,這個只是針對普通的視頻而言。對于一些強交互或者較為敏感的場景來說,比如游戲,起碼需要 60 幀,30 幀的游戲會讓人感覺不適;位移或者大幅度動畫 30 幀會有明顯頓挫感;跟手動畫如果能到 90 幀甚至 120 幀,會讓人感覺十分細膩,這也是近來廠商主打高刷牌的原因。

對于用戶來說,從體感角度大致可以將卡頓分為以下幾類:

這些體驗對于用戶可以說是非常糟糕的,甚至會引起感官的煩躁,進而導致用戶不愿意繼續停留在我們的 App。可以說,流暢的體驗對于用戶來說至關重要。

2. 為什么會發生卡頓

用戶體感的卡頓問題原因很多,且常常是一個復合型的問題,為了聚焦,這里暫只考慮真正意義上的掉幀卡頓。

2.1 繞不開的 VSYNC

我們通常會說,屏幕的刷新率是 60 幀,需要在 16ms 內做完所有的操作才不會造成卡頓。但是這里需要明確幾個基本問題:

  • 為什么是 16ms?
  • 16ms 內都需要完成什么?
  • 系統如何盡力保證任務在 16ms 內完成?
  • 16ms 內沒有完成,一定會造成卡頓嗎?

這里先回答第一個問題:為什么是 16ms。早期的 Android 是沒有 vsync 機制的,CPU 和 GPU 的配合也比較混亂,這也造成著名的 tearing 問題,即 CPU/GPU 直接更新正在顯示的屏幕 buffer 造成畫面撕裂。后續 Android 引入了雙緩沖機制,但是 buffer 的切換也需要一個比較合適的時機,也就是屏幕掃描完上一幀后的時機,這也就是引入 vsync 的原因。

早先一般的屏幕刷新率是 60fps,所以每個 vsync 信號的間隔也是 16ms,不過隨著技術的更迭以及廠商對于流暢性的追求,越來越多 90fps 和 120fps 的手機面世,相對應的間隔也就變成了 11ms 和 8ms。

那既然有了 VSYNC,誰在消費 VSYNC?其實 Android 的 VSYNC 消費者有兩個,也就對應兩類 VSYNC 信號,分別是 VSYNC-app 和 VSYNC-sf,所對應的也是上層 view 繪制和 surfaceFlinger 的合成,具體的我們接下來詳細說。

這里還有一些比較有意思的點,有些廠商會有 vsync offset 的設計,App 和 sf 的 vsync 信號之間是有偏移量的,這也在一定程度上使得 App 和 sf 的協同效應更好。

2.2 View 顛沛流離的一生

在講下一 part 之前先引入一個話題:

一個 view 究竟是如何顯示在屏幕上的?

我們一般都比較了解 view 渲染的三大流程,但是 view 的渲染遠不止于此:

此處以一個通用的硬件加速流程來表征

  • Vsync 調度:很多同學的一個認知誤區在于認為 vsync 是每 16ms 都會有的,但是其實 vsync 是需要調度的,沒有調度就不會有回調;
  • 消息調度:主要是 doframe 的消息調度,如果消息被阻塞,會直接造成卡頓;
  • input 處理:觸摸事件的處理;
  • 動畫處理:animator 動畫執行和渲染;
  • view 處理:主要是 view 相關的遍歷和三大流程;
  • measure、layout、draw:view 三大流程的執行;
  • DisplayList 更新:view 硬件加速后的 draw op;
  • OpenGL 指令轉換:繪制指令轉換為 OpenGL 指令;
  • 指令 buffer 交換:OpenGL 的指令交換到 GPU 內部執行;
  • GPU 處理:GPU 對數據的處理過程;
  • layer 合成:surface buffer 合成屏幕顯示 buffer 的流程;
  • 光柵化:將矢量圖轉換為位圖;
  • Display:顯示控制;
  • buffer 切換:切換屏幕顯示的幀 buffer;

Google 將這個過程劃分為:其他時間/VSync 延遲、輸入處理、動畫、測量/布局、繪制、同步和上傳、命令問題、交換緩沖區。也就是我們常用的 GPU 嚴格模式,其實道理是一樣的。到這里,我們也就回答出來了第二個問題:16ms 內都需要完成什么?

準確地說,這里仍可以進一步細化:16ms 內完成 APP 側數據的生產;16ms 內完成 sf layer 的合成

View 的視覺效果正是通過這一整條復雜的鏈路一步步展示出來的,有了這個前提,那就可以得出一個結論:上述任意鏈路發生卡頓,均會造成卡頓。

2.3 生產者和消費者

我們再回到 Vsync 的話題,消費 Vsync 的雙方分別是 App 和 sf,其中 App 代表的是生產者,sf 代表的是消費者,兩者交付的中間產物則是 surface buffer。

再具體一點,生產者大致可以分為兩類,一類是以 window 為代表的頁面,也就是我們平時所看到的 view 樹這一套;另一類是以視頻流為代表的可以直接和 surface 完成數據交換的來源,比如相機預覽等。

對于一般的生產者和消費者模式,我們知道會存在相互阻塞的問題。比如生產者速度快但是消費者速度慢,亦或是生產者速度慢消費者速度快,都會導致整體速度慢且造成資源浪費。所以 Vsync 的協同以及雙緩沖甚至三緩沖的作用就體現出來了。

思考一個問題:是否緩沖的個數越多越好?過多的緩沖會造成什么問題?

答案是會造成另一個嚴重的問題:lag,響應延遲

這里結合 view 的一生,我們可以把兩個流程合在一起,讓我們的視角再高一層:

2.4 機制上的保護

這里我們來回答第三個問題,從系統的渲染架構上來說,機制上的保護主要有幾方面:

  • Vsync 機制的協同;
  • 多緩沖設計;
  • surface 的提供;
  • 同步屏障的保護;
  • 硬件繪制的支持;
  • 渲染線程的支持;
  • GPU 合成加速;

這些機制上的保護在系統層面最大程度地保障了 App 體驗的流暢性,但是并不能幫我們徹底解決卡頓。為了提供更加流暢的體驗,一方面,我們可以加強系統的機制保護,比如 FWatchDog;另一方面,需要我們從 App 的角度入手,治理應用內的卡頓問題。

2.5 再看卡頓的成因

經過上面的討論,我們得出一個卡頓分析的核心理論支撐:渲染機制中的任何流轉過程發生異常,均會造成卡頓。

那么接下來,我們逐個分析,看看都會有哪些原因可能造成卡頓。

2.5.1 渲染流程

Vsync 調度:這個是起始點,但是調度的過程會經過線程切換以及一些委派的邏輯,有可能造成卡頓,但是一般可能性比較小,我們也基本無法介入;

消息調度:主要是 doframe Message 的調度,這就是一個普通的 Handler 調度,如果這個調度被其他的 Message 阻塞產生了時延,會直接導致后續的所有流程不會被觸發。這里直播建立了一個 FWtachDog 機制,可以通過優化消息調度達到插幀的效果,使得界面更加流暢;

input 處理:input 是一次 Vsync 調度最先執行的邏輯,主要處理 input 事件。如果有大量的事件堆積或者在事件分發邏輯中加入大量耗時業務邏輯,會造成當前幀的時長被拉大,造成卡頓。抖音基礎技術同學也有嘗試過事件采樣的方案,減少 event 的處理,取得了不錯的效果;

動畫處理:主要是 animator 動畫的更新,同理,動畫數量過多,或者動畫的更新中有比較耗時的邏輯,也會造成當前幀的渲染卡頓。對動畫的降幀和降復雜度其實解決的就是這個問題;

view 處理:主要是接下來的三大流程,過度繪制、頻繁刷新、復雜的視圖效果都是此處造成卡頓的主要原因。比如我們平時所說的降低頁面層級,主要解決的就是這個問題;

measure/layout/draw:view 渲染的三大流程,因為涉及到遍歷和高頻執行,所以這里涉及到的耗時問題均會被放大,比如我們會降不能在 draw 里面調用耗時函數,不能 new 對象等等;

DisplayList 的更新:這里主要是 canvas 和 displaylist 的映射,一般不會存在卡頓問題,反而可能存在映射失敗導致的顯示問題;

OpenGL 指令轉換:這里主要是將 canvas 的命令轉換為 OpenGL 的指令,一般不存在問題。不過這里倒是有一個可以探索的點,會不會存在一類特殊的 canvas 指令,轉換后的 OpenGL 指令消耗比較大,進而導致 GPU 的損耗?有了解的同學可以探討一下;

buffer 交換:這里主要指 OpenGL 指令集交換給 GPU,這個一般和指令的復雜度有關。一個有意思的事兒是這里一度被我們作為線上采集 GPU 指標的數據源,但是由于多緩沖的因素數據準確度不夠被放棄了;

GPU 處理:顧名思義,這里是 GPU 對數據的處理,耗時主要和任務量和紋理復雜度有關。這也就是我們降低 GPU 負載有助于降低卡頓的原因;

layer 合成:這里主要是 layer 的 compose 的工作,一般接觸不到。偶爾發現 sf 的 vsync 信號被 delay 的情況,造成 buffer 供應不及時,暫時還不清楚原因;

光柵化/Display:這里暫時忽略,底層系統行為;

Buffer 切換:主要是屏幕的顯示,這里 buffer 的數量也會影響幀的整體延遲,不過是系統行為,不能干預。

2.5.2 視頻流

除了上述的渲染流程引起的卡頓,還有一些其他的因素,典型的就是視頻流。

  • 渲染卡頓:主要是 TextureView 渲染,textureview 跟隨 window 共用一個 surface,每一幀均需要一起協同渲染并相互影響,UI 卡頓會造成視頻流卡頓,視頻流的卡頓有時候也會造成 UI 的卡頓;
  • 解碼:解碼主要是將數據流解碼為 surface 可消費的 buffer 數據,是除了網絡外最重要的耗時點?,F在我們一般都會采用硬解,比軟解的性能高很多。但是幀的復雜度、編碼算法的復雜度、分辨率等也會直接導致解碼耗時被拉長;
  • OpenGL 處理:有時會對解碼完成的數據做二次處理,這個如果比較耗時會直接導致渲染卡頓;
  • 網絡:這個就不再贅述了,包括 DNS 節點優選、cdn 服務、GOP 配置等;
  • 推流異常:這個屬于數據源出了問題,這里暫時以用戶側的視角為主,暫不討論。
2.5.3 系統負載
  • 內存:內存的吃緊會直接導致 GC 的增加甚至 ANR,是造成卡頓的一個不可忽視的因素;
  • CPU:CPU 對卡頓的影響主要在于線程調度慢、任務執行的慢和資源競爭,比如降頻會直接導致應用卡頓;
  • GPU:GPU 的影響見渲染流程,但是其實還會間接影響到功耗和發熱;
  • 功耗/發熱:功耗和發熱一般是不分家的,高功耗會引起高發熱,進而會引起系統保護,比如降頻、熱緩解等,間接的導致卡頓。

2.6 卡頓的分類

我們此處再整體整理并歸類,為了更完備一些,這里將推流也放了上來。在一定程度上,我們遇到的所有卡頓問題,均能在這里找到理論依據,這也是指導我們優化卡頓問題的理論支撐。

3. 如何評價卡頓

3.1 線上指標

3.2 線下指標

Diggo 是字節自研的一個開放的開發調試工具平臺,是一個集「評價、分析、調試」為一體的,一站式工具平臺。內置性能測評、界面分析、卡頓分析、內存分析、崩潰分析、即時調試等基礎分析能力,可為產品開發階段提供強大助力。

4. 如何優化卡頓

4.1 常用的工具

4.1.1 線上工具

4.1.2 線下工具

4.2 常用的思路

這里主要針對 UI 卡頓和 UI/流相互影響打來的卡頓。

對于 UI 卡頓來說,我們手握卡頓優化的 8 板大斧子,所向披靡:

  • 下線代碼;
  • 減少執行次數;
  • 異步;
  • 打散;
  • 預熱;
  • 復用;
  • 方案優化;
  • 硬件加速;

總體思路就是「能不干就不干、能少干就少干、能早點干就早點兒干、能晚點兒干就晚點兒干、能讓別人干就讓別人干、能干完一次當 10 次就只干一次,實在不行,再考慮自己大干一場」。

這里例舉出一些常見的優化思路,注意這一定也不可能是全部,如果有其他好的優化思路,我們可以一起交流。

4.3 一些做過的事兒

4.3.1 解決 UI 卡頓引起的流卡頓

直播對于 SurfaceView 的切換是一個長期的專項,分為多期逐步將 SurfaceView 在直播全量落地,場景覆蓋秀場直播、聊天室、游戲直播、電商直播、媒體直播等,業務上對于滲透率和停留時長有比較顯著的收益,同時功耗的收益也很可觀。

這里是一個權衡的問題,SurfaceView 的兼容性問題 pk 帶來的收益是否能打平,一般來說,越是復雜的業務場景,收益約大。

4.3.2 解決 message 調度

FWatchDog 是基于對 MessageQueue 的調度策略和同步屏障原理,以均幀耗時為閾值判定丟幀后主動在 MessageQueue 中插入同步屏障,保證渲染異步 message 和 doframe 的優先執行,達到一種渲染插幀的效果,同時具備 ANR 自動恢復同步屏障的能力,保障打散的有效。

所以 FWatchDog 和打散是好的搭檔,能產生 1+1 大于 2 的效果。

4.3.3 減少執行次數

一個典型的應用場景就是滑動場景的 GC 抑制,能夠顯著提高用戶上下滑的使用體驗。這個場景相信每個業務都會存在,特別是存在大量遍歷的邏輯,優化效果明顯。

4.3.4 代碼下線

一些老的框架、無用的邏輯以及存在性不高的代碼都可以下線,這里基本業務強相關,就不舉具體的例子了。

4.3.5 解決耗時函數(打散/異步)

首先是打散,直播做了很多 task 的拆分以及打散,第一可以減輕當前渲染幀的耗時壓力,第二可以和 FWatchDog 結合達到插幀的效果。這里其實還可以控制 task 的執行優先級,包括隊列的插隊等,總之 MessageQueue 的合理調度是很有必要的。

異步的使用也相對比較多,一個埋點日志的框架,以及一些 inflate 的加載等,都可以使用異步來解決卡頓問題。

4.3.6 預熱

直播提供了一個預熱框架,可以讓直播內部的一次性成本邏輯得到在宿主側執行的機會,同時提供完備的隊列優先級管理、同步異步管理和 task 生命周期管理,降低直播內部首次加載的卡頓問題。

4.3.7 硬件加速

拉高硬件的運行性能,比如 CPU 頻率、GPU 頻率、線程綁大核以及網絡相關的調優,從底層提高 App 的運行體驗。

責任編輯:未麗燕 來源: 字節跳動技術團隊
相關推薦

2022-06-26 00:18:05

企業產品化變量

2022-10-14 17:41:30

字符編碼硬件

2021-08-04 16:06:45

DataOps智領云

2023-12-22 19:59:15

2022-04-08 09:47:55

性能優化開發

2022-09-22 09:00:46

CSS單位

2025-04-03 10:56:47

2022-11-06 21:14:02

數據驅動架構數據

2018-09-28 14:06:25

前端緩存后端

2023-11-27 17:35:48

ComponentWeb外層

2022-07-05 06:30:54

云網絡網絡云原生

2023-05-20 17:58:31

低代碼軟件

2022-10-20 08:01:23

2022-12-01 17:23:45

2021-12-29 18:00:19

無損網絡網絡通信網絡

2025-10-14 09:01:20

2022-07-26 00:00:03

語言模型人工智能

2021-08-11 10:21:24

云直播阿里云邊緣云

2021-05-18 09:48:58

前端開發架構
點贊
收藏

51CTO技術棧公眾號

国产福利一区二区三区视频| 中文字幕人成人乱码| 欧美性20hd另类| 亚洲美女网站18| 成人午夜视频一区二区播放| 奶水喷射视频一区| 麻豆国产精品va在线观看不卡 | 国产ts人妖调教重口男| 伊人成人在线视频| 精品偷拍各种wc美女嘘嘘| 亚洲性图一区二区| 国产极品在线观看| 一区在线观看免费| 欧美大陆一区二区| 精品欧美一区二区精品少妇| 久久综合中文| 久久久免费在线观看| www中文在线| 成人午夜网址| 717成人午夜免费福利电影| 国产青青在线视频| 亚洲无线看天堂av| 国产精品你懂的在线欣赏| 国产精品制服诱惑| 国产区精品在线| 日韩高清不卡一区二区| 992tv成人免费影院| 成年人一级黄色片| 欧美限制电影| 亚洲人成免费电影| 国产ts丝袜人妖系列视频| 亚洲精品影片| 日韩一区二区电影网| 日韩不卡一二三| 裤袜国产欧美精品一区| 香蕉成人伊视频在线观看| 国产日韩第一页| www亚洲人| 2017欧美狠狠色| 国产亚洲一区在线播放 | 91网在线播放| 26uuu亚洲综合色| 国产一区国产精品| 午夜精品久久久久久久99| 久久精品国产精品亚洲红杏| 国产精品国产三级国产aⅴ9色 | 黄色片在线免费观看| 成+人+亚洲+综合天堂| 99热99热| 亚洲风情第一页| 国产a久久麻豆| 99re在线国产| 亚洲精品人妻无码| 成人精品国产免费网站| 国产精品视频入口| 亚洲精品国产精| 成人免费高清视频| 国产视频一区二区不卡| 欧美视频一二区| www.亚洲色图.com| 久久一区免费| 国产黄色在线| 1024亚洲合集| av在线免费观看国产| av电影免费在线看| 欧美日韩免费在线| 男女无套免费视频网站动漫| 全球中文成人在线| 日韩一区二区三区在线视频| 精品人妻二区中文字幕| 欧美wwwwww| 亚洲日韩欧美视频一区| 欧美激情久久久久久久| 在线国产一区| 97国产精品免费视频| 午夜婷婷在线观看| 麻豆久久一区二区| 999热视频| 视频在线不卡| 国产精品理论在线观看| 欧美极品少妇无套实战| 中日韩脚交footjobhd| 欧美探花视频资源| av在线天堂网| 欧美精品色图| 欧美国产日韩视频| 免费看日批视频| 精品一区二区在线视频| 丁香五月网久久综合| 黄色在线免费观看大全| 亚洲欧美日韩一区| 欧美久久在线观看| 成人在线高清| 亚洲电影在线观看| 日本伦理一区二区三区| 亚洲美女一区| 亚洲a级在线观看| 青梅竹马是消防员在线| 一区在线中文字幕| 日本精品一区二区三区四区| 96视频在线观看欧美| 精品在线观看国产| 精品国产欧美日韩不卡在线观看| 精品国产91乱码一区二区三区四区| 精品日本一线二线三线不卡| 亚洲久久久久久| 国产精品福利在线观看播放| 97超级碰碰人国产在线观看| 国产伦精品一区二区三区免.费| 日韩av一区二区在线影视| 99久久精品免费看国产四区| 岛国最新视频免费在线观看| 亚洲一二三四区| 视频免费1区二区三区| 亚欧日韩另类中文欧美| 欧美巨乳在线观看| 91福利在线观看视频| 91美女片黄在线| 老子影院午夜伦不卡大全| 不卡亚洲精品| 亚洲欧美日韩久久久久久| 国产一级视频在线观看| 国产自产高清不卡| 亚洲午夜精品国产| 偷拍精品精品一区二区三区| 亚洲精品成人久久| 久久久久国产精品夜夜夜夜夜| 精品不卡视频| 亚洲精品免费网站| 99中文字幕一区| 色激情天天射综合网| 毛茸茸多毛bbb毛多视频| 亚洲精品社区| 国产高清在线精品一区二区三区| 神马电影在线观看| 亚洲一区二区在线播放相泽| 国产999免费视频| 亚洲成人精选| 91久久精品国产91久久性色| 日本中文字幕在线看| 欧美色精品天天在线观看视频| 亚洲五月激情网| 欧美黄色大片在线观看| 国产精品国语对白| 成年午夜在线| 欧美猛男超大videosgay| 中国毛片在线观看| 久久精品91| 青青草原成人| 国产精品久久久久久久久久齐齐| 日韩欧美亚洲国产另类 | 久久伊人蜜桃av一区二区| 免费 成 人 黄 色| 亚洲毛片免费看| 日韩av免费在线观看| 韩国中文字幕2020精品| 91久久精品网| 91制片厂在线| 精品一区二区国语对白| 久久观看最新视频| 精品三级av在线导航| 91av在线免费观看| 北条麻妃在线| 91麻豆精品国产91久久久更新时间| 欧美无人区码suv| 国产精品视频| 香蕉久久免费影视| 国产一区二区av在线| 欧美人与性动交a欧美精品| 色综合免费视频| 色天天综合久久久久综合片| 网爆门在线观看| 国产九色精品成人porny| www国产免费| 国产伦精品一区二区三区免费优势| 日韩中文第一页| www.97超碰| 精品福利樱桃av导航| 中国女人特级毛片| 国产剧情一区在线| 777米奇影视第四色| 欧美hd在线| 国产乱码精品一区二区三区不卡| 91在线视频| 欧美一区二区视频在线观看| 亚洲激情视频一区| 国产精品午夜春色av| 日本人dh亚洲人ⅹxx| 亚洲综合电影一区二区三区| 亚洲国产精品综合| 高清日韩中文字幕| 国产免费亚洲高清| 福利影院在线看| 久久伊人精品一区二区三区| 四虎永久在线精品免费网址| 欧美日韩一区成人| 日韩熟女精品一区二区三区| 国产精品国产三级国产普通话99 | 狠狠人妻久久久久久| 久久久久久久久99精品| 下面一进一出好爽视频| 久久亚洲精品伦理| 精品一区二区三区无码视频| 大色综合视频网站在线播放| 国产精品亚洲一区| 91麻豆精品一二三区在线| 欧洲成人在线观看| 俺来俺也去www色在线观看| 中文字幕日韩欧美| 日本天堂影院在线视频| 日韩视频在线永久播放| 中文字幕乱码中文字幕| 欧美日韩视频在线| 久草成人在线视频| 成人免费一区二区三区视频 | 国产午夜精品一区在线观看| 欧洲成人在线视频| 国产精品一二三产区| 欧美精品在线网站| 91精品专区| 亚洲免费一级电影| 污视频软件在线观看| 精品国偷自产国产一区| 国产理论视频在线观看| 精品视频在线视频| 超碰在线97观看| 色哟哟精品一区| 日韩色图在线观看| 香蕉乱码成人久久天堂爱免费| aa一级黄色片| 成人国产一区二区三区精品| 午夜视频在线网站| 精品一区二区在线免费观看| 亚洲xxx在线观看| 青青草成人在线观看| 日本xxxxxxx免费视频| 亚洲综合欧美| 欧洲av无码放荡人妇网站| 在线亚洲精品| av免费观看网| 亚洲欧美日本日韩| 任你操这里只有精品| 亚洲免费网址| 久草在在线视频| 蜜臀国产一区二区三区在线播放| a级片一区二区| 国产精品久久天天影视| 自拍偷拍亚洲色图欧美| 亚洲成人日韩| 欧美日韩dvd| 激情综合视频| 亚洲熟妇国产熟妇肥婆| 国产日韩亚洲欧美精品| 粉嫩虎白女毛片人体| 日韩精品亚洲一区二区三区免费| wwwwww欧美| 夜久久久久久| 国产在线青青草| 日韩成人精品视频| 中文字幕成人免费视频| 国产伦精品一区二区三区免费| 玩弄japan白嫩少妇hd| 日韩电影在线一区二区| 天天做天天干天天操| 国产福利一区二区三区视频在线 | 91美女视频网站| 久久美女免费视频| 国产精品久久久久9999吃药| 波多野结衣亚洲一区二区| 亚洲va欧美va人人爽| 最新中文字幕一区| 欧美日韩亚洲综合一区二区三区| 日本一区二区三区四区五区| 色婷婷久久久亚洲一区二区三区| 久久黄色免费网站| 欧美色另类天堂2015| 无码一区二区三区| 6080午夜不卡| 亚洲色图欧美视频| 日韩在线小视频| 不卡视频观看| 国产精品久久一区| 一区二区三区高清在线观看| 欧美精品七区| 一个色综合网| 成人性做爰aaa片免费看不忠| 国产农村妇女精品一区二区| 国产精品无码av无码| 国产麻豆午夜三级精品| 性久久久久久久久久| 亚洲精品菠萝久久久久久久| 日本午夜视频在线观看| 337p亚洲精品色噜噜| 性感美女一级片| 久热国产精品视频| 久久精品女人天堂av免费观看| 日本精品va在线观看| 91亚洲精品在看在线观看高清| 国产欧美一区二区三区视频| 日韩精品三级| 天天人人精品| 欧美日本一区二区高清播放视频| 青青青在线观看视频| 日日夜夜精品视频免费| 三大队在线观看| 久久精品视频免费观看| 久久久一二三区| 欧美男生操女生| 国产女人在线视频| 97在线视频免费| 日韩精品免费视频一区二区三区| 高清不卡日本v二区在线| 欧美综合在线视频观看| 国产无限制自拍| 国产精品伊人色| 黄色精品视频在线观看| 在线一区二区三区做爰视频网站| 秋霞av一区二区三区| 精品福利一二区| 污污的网站在线看| 91久久久久久久久| 久久久综合色| 天天干在线影院| 国产亚洲精品资源在线26u| 午夜影院在线看| 日韩精品一区二区三区在线观看| 熟妇人妻av无码一区二区三区| 亚洲欧美国产va在线影院| 尤物视频在线看| 成人亲热视频网站| 欧美国产偷国产精品三区| www.天天射.com| 国产欧美一区视频| 亚洲精品成人在线视频| 日韩av在线一区二区| 岛国av在线网站| 国内精品一区二区| 国产亚洲综合精品| 中文字幕影片免费在线观看| 亚洲午夜av在线| 粉嫩av一区二区夜夜嗨| 欧美激情视频一区| 99精品国产一区二区三区2021| 欧美一级日本a级v片| 一本色道久久综合亚洲精品高清| 欧美精品久久久久久久久25p| 国产久卡久卡久卡久卡视频精品| 在线观看国产免费视频| 午夜精品久久一牛影视| 污视频在线免费观看| 欧洲亚洲妇女av| 成人同人动漫免费观看| 在线观看国产一级片| 亚洲少妇中出一区| 亚洲av综合色区无码一区爱av| 亚洲精品美女在线观看播放| 阿v视频在线| 欧美大香线蕉线伊人久久| 蜜乳av另类精品一区二区| 丰满的亚洲女人毛茸茸| 91麻豆精品国产91久久久使用方法 | 欧美人xxxxx| 日本欧美久久久久免费播放网| www.欧美com| 亚洲第一激情av| 欧美精品久久久久久久久久丰满| 欧美巨大黑人极品精男| 卡通动漫国产精品| 久久久免费视频网站| 中日韩免费视频中文字幕| 国产人妖在线播放| 57pao成人国产永久免费| 凹凸成人精品亚洲精品密奴| 性欧美在线视频| 午夜精品福利一区二区蜜股av| 国产又粗又猛又爽又黄视频 | 成人av播放| 亚洲综合激情| 日韩一区二区不卡视频| 精品处破学生在线二十三| 精品网站在线| 日韩一级特黄毛片| 国产午夜精品一区二区| www.四虎在线观看| 日本成人免费在线| 亚洲欧美综合| 最近中文字幕免费视频| 欧美一卡在线观看| 91精品论坛| 91视频成人免费| 久久久www成人免费毛片麻豆| 日韩精品视频播放| 在线播放日韩精品| xvideos.蜜桃一区二区| 特级丰满少妇一级| 亚洲一区二区视频在线| www.亚洲资源| 国产精品亚洲一区| 狠狠色丁香婷婷综合久久片| 亚洲天堂av片|