亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Android圖形系統(tǒng)渲染與合成鏈路:從App到屏幕的完整流程與性能優(yōu)化

Android圖形系統(tǒng)渲染與合成鏈路:從App到屏幕的完整流程與性能優(yōu)化 Android圖形系統(tǒng)這條路我寫到了第三篇。前兩篇我們聊了Window、Activity和View那一層的東西今天把視角拉到系統(tǒng)級(jí)專門聊渲染和合成的底層鏈路。這個(gè)系列里這篇是我覺得最值得反復(fù)讀的因?yàn)榫W(wǎng)上講Activity生命周期、講View繪制的文章很多但能把“App畫完一幀之后發(fā)生了什么”這件事講透的確實(shí)不多。簡單說這篇解決三個(gè)問題一幀畫面從App進(jìn)程到屏幕上經(jīng)過哪些進(jìn)程、哪幾道工序?yàn)槭裁从袝r(shí)候明明布局不復(fù)雜卻掉幀以及遇到渲染性能問題時(shí)怎么從原理反推出排查方向。適合已經(jīng)寫過自定義View、看得懂onDraw但對(duì)“屏幕為什么卡一下”“SurfaceView為什么快”這類問題還想再往深挖一層的同學(xué)。1. 整體設(shè)計(jì)與核心思路為什么要把渲染和合成拆成兩件事1.1 這是一條跨進(jìn)程的生產(chǎn)線Android的圖形鏈路本質(zhì)上是一條跨進(jìn)程的生產(chǎn)線。你可以把它想象成一家餐廳的后廚和傳菜口應(yīng)用進(jìn)程是廚師負(fù)責(zé)把食材UI狀態(tài)加工成菜品一幀畫面SystemServer里有一個(gè)叫SurfaceFlinger的進(jìn)程是傳菜員負(fù)責(zé)把所有廚師做好的菜各App的畫面按順序擺到一個(gè)盤子里最后端到餐桌上屏幕。為什么必須拆成兩個(gè)階段因?yàn)槠聊恢挥幸粋€(gè)但同時(shí)在“做菜”的App有好幾個(gè)。狀態(tài)欄、導(dǎo)航欄、桌面、你正在聊天的窗口每一層都是獨(dú)立App或獨(dú)立線程畫的。如果每個(gè)App直接去寫屏幕顯存那畫面一定亂套——你蓋住了我我刷掉了你。所以Android把“畫畫”和“上桌”分開App只負(fù)責(zé)往自己的緩沖區(qū)塊Buffer里畫畫完交給SurfaceFlinger統(tǒng)一決策誰在上面、誰在下面、誰需要被合成、誰直接透傳然后輸出到顯示器。這背后是一套典型的生產(chǎn)者-消費(fèi)者模型用類比的思路梳理一下就清楚了。角色對(duì)應(yīng)組件職責(zé)生產(chǎn)者App進(jìn)程內(nèi)的View系統(tǒng) HWUI渲染引擎把界面繪制成像素/指令寫入BufferQueue的空閑Buffer緩沖隊(duì)列BufferQueue管理Buffer的生產(chǎn)與消費(fèi)解決生產(chǎn)和消費(fèi)速度不一致的問題消費(fèi)者SurfaceFlinger進(jìn)程從BufferQueue取走已填好的Buffer合成后送顯屏幕Display / Composer最終把像素亮出來1.2 渲染和合成是兩套完全不同的“計(jì)時(shí)器”很多性能問題分析不準(zhǔn)就是因?yàn)闆]搞懂渲染和合成各走各的時(shí)鐘。渲染階段的節(jié)拍器叫Vsync應(yīng)用信號(hào)Choreographer合成階段的節(jié)拍器叫Vsync合成信號(hào)SurfaceFlinger的調(diào)度器。雖然都源自同一個(gè)硬件VBlank屏幕掃描完一幀后返回起點(diǎn)發(fā)出的脈沖但中間經(jīng)過了不同的分發(fā)路徑所以App畫一幀和系統(tǒng)合一層并不是嚴(yán)格的“你畫完我馬上合”。這也解釋了為什么有時(shí)候你的App明明在60fps穩(wěn)定輸出但用戶感知還是“有點(diǎn)不跟手”——因?yàn)楹铣呻A段如果某一幀耗時(shí)太長SurfaceFlinger來不及在下一輪Vsync之前完成合成就會(huì)跳過一幀。所以做性能優(yōu)化不能只盯著App側(cè)的渲染時(shí)間合成側(cè)的耗時(shí)同樣是變量。1.3 先把原理補(bǔ)齊再談?wù){(diào)優(yōu)我見過不少同學(xué)一上來就開“開發(fā)者選項(xiàng)-顯示Surface更新”“調(diào)試GPU過度繪制”一頓操作猛如虎最后也沒定位到根因。原因很簡單工具只能告訴你“這里有掉幀”“這里過度繪制了”但不會(huì)告訴你“為什么”。要回答為什么必須知道這條鏈路上每一站的工作方式。這篇博文就是想把這條鏈路從源頭捋到尾把每站的關(guān)鍵機(jī)制和對(duì)應(yīng)工具串成一個(gè)整體后面你無論是做應(yīng)用層優(yōu)化還是做系統(tǒng)層定制都有底子可以依靠。2. 應(yīng)用側(cè)渲染鏈路從setContentView到屏幕像素2.1 setContentView只是“布置場(chǎng)地”不是“畫畫”先糾正一個(gè)常見的誤解很多人以為調(diào)用setContentView之后布局就開始繪制了其實(shí)不是。setContentView做的事本質(zhì)上只是把XML布局解析成View樹掛到Window上這時(shí)候屏幕上什么都沒有。真正的第一次繪制要等到Vsync回調(diào)把消息發(fā)到主線程觸發(fā)Choreographer的doFrame才會(huì)走“measure量尺寸) - layout擺位置 - draw畫出來”這套流程。關(guān)于Choreographer你可以把它理解成一個(gè)“節(jié)拍器服務(wù)員”它跟硬件Vsync對(duì)齊然后一杯一杯地把咖啡回調(diào)端給主線程。主線程接到回調(diào)就開始干活。如果主線程忙著處理別的事物比如超長列表的item測(cè)量、一個(gè)巨大的Bitmap解碼沒能在下一杯咖啡送來之前干完那一幀就丟掉了——這就是掉幀的本質(zhì)。我第一次做性能排查時(shí)總以為是draw方法里的path計(jì)算太慢后來在Perfetto里才看到真正吃掉時(shí)間的其實(shí)是上一幀遺留的measure/layout任務(wù)draw本身反而是輕活。這個(gè)認(rèn)知直接影響了我后來的寫法能不動(dòng)的布局就不動(dòng)能動(dòng)局部就不invalidate整棵View樹。2.2 CPU畫指令GPU畫像素DisplayList的由來從Android 5.0開始View的draw方法執(zhí)行時(shí)CPU不再直接往Bitmap上畫像素而是把繪制操作封裝成一個(gè)指令列表這個(gè)列表叫DisplayList。說人話就是你把“畫一個(gè)紅色圓”“貼一張位圖”“在這段文字上加粗”這些操作按順序記錄下來但并不立刻執(zhí)行。這套設(shè)計(jì)的聰明之處在于緩存和復(fù)用。如果某一幀只是View的一個(gè)屬性變化比如平移DisplayList本身沒變那下一幀直接重放指令就行不需要重新measure、layout、遍歷整棵View樹。這也是屬性動(dòng)畫比invalidate整View高效的原因之一。當(dāng)然DisplayList也不是永遠(yuǎn)有效的一旦View調(diào)用了invalidate或者它的繪制狀態(tài)被標(biāo)記為dirty對(duì)應(yīng)節(jié)點(diǎn)的DisplayList就得重建。2.3 RenderThread與GPU執(zhí)行主線程不畫像素的真正原因DisplayList準(zhǔn)備好之后主線程的工作就基本結(jié)束了。接下來一個(gè)叫RenderThread的渲染線程會(huì)接管DisplayList把它轉(zhuǎn)成OpenGL ES現(xiàn)在也有Vulkan路徑的繪制命令提交給GPU執(zhí)行。這就是“硬件加速渲染”的默認(rèn)模型CPU負(fù)責(zé)“編劇本”生成DisplayListGPU負(fù)責(zé)“拍電影”渲染像素。為什么Android要專門搞一個(gè)RenderThread因?yàn)槿绻欣L制命令都由主線程提交給GPU那么當(dāng)GPU繁忙時(shí)主線程就會(huì)卡在等待GPU返回結(jié)果這一步導(dǎo)致點(diǎn)擊事件、輸入事件全部沒空處理用戶感知就是“點(diǎn)不動(dòng)”“卡死”。有了RenderThread之后主線程只管生成指令提交和等待GPU是后臺(tái)線程的事兩者可以流水線式并行。這在低端機(jī)上表現(xiàn)尤其明顯你給主線程減負(fù)一點(diǎn)點(diǎn)用戶能明顯感覺到界面“活”了很多。關(guān)于渲染引擎這兩年還有一個(gè)很值得關(guān)注的發(fā)展方向Flutter新默認(rèn)引擎Impeller它把Skia的運(yùn)行時(shí)shader編譯很大一部分挪到了離線階段目標(biāo)是解決首幀白屏和shader編譯卡頓問題。這個(gè)思路對(duì)Android原生也有借鑒意義——你的App如果大量使用自定義Shader編譯階段是繞不開的隱性成本可以像我后面講的那樣用預(yù)熱方式規(guī)避。2.4 BufferQueue生產(chǎn)者和消費(fèi)者之間的“物流中心”RenderThread渲染完成后GPU把像素寫入一塊Buffer然后通過BufferQueue把這塊Buffer交出去。BufferQueue本質(zhì)上是一個(gè)有狀態(tài)的隊(duì)列經(jīng)典的三板斧操作是dequeueBuffer取一塊空閑Buffer用于繪制、queueBuffer畫完放回隊(duì)列、acquireBuffer消費(fèi)者取走處理。幀率能不能穩(wěn)Buffer數(shù)量是關(guān)鍵。老Android版本只有雙緩沖App在畫幀A時(shí)屏幕正在顯示幀B如果App畫得太快想畫幀C但手里沒Buffer了只能干等屏幕把幀B掃完于是幀率被強(qiáng)制拉低。后來引入三緩沖相當(dāng)于給生產(chǎn)者多一塊后端Buffer緩沖讓生產(chǎn)者在某些時(shí)刻可以提前畫即使屏幕還沒掃完也能繼續(xù)干活。代價(jià)是額外的一層內(nèi)存和顯示延遲硬件條件允許時(shí)Android會(huì)自動(dòng)在三緩沖和雙緩沖之間切換不需要開發(fā)者手動(dòng)干預(yù)。3. 合成階段SurfaceFlinger是如何把畫面拼出來的3.1 所有App的出口都匯聚到SurfaceFlinger一個(gè)入口應(yīng)用側(cè)畫完之后所有窗口的Buffer都進(jìn)了SurfaceFlinger。SurfaceFlinger是整個(gè)圖形系統(tǒng)的“中央調(diào)度室”它維護(hù)了一張Layer列表每個(gè)Layer對(duì)應(yīng)一個(gè)窗口更準(zhǔn)確地說一個(gè)Surface。它要做的事是在每次Vsync合成信號(hào)到來時(shí)檢查哪些Layer有新幀到來dirty狀態(tài)然后根據(jù)每個(gè)Layer的顯示參數(shù)位置、大小、透明度、裁剪區(qū)域、Z序決定如何把它們輸出到屏幕這里的“Z序”就是窗口的蓋壓關(guān)系。狀態(tài)欄在頂層、輸入法在需要時(shí)浮起來、Dialog在最上面這些都是由WindowManager通過Transaction事務(wù)告知SurfaceFlinger的比如setLayer、setPosition、setAlpha。如果你看過相關(guān)代碼會(huì)發(fā)現(xiàn)WindowManager幾乎每幀都可能發(fā)起事務(wù)SurfaceFlinger要高效合并這些事務(wù)再應(yīng)用也是不小的負(fù)載。3.2 GPU合成與硬件合成誰適合合成誰只做透傳合成這一步得看抬誰來做。如果所有Layer都能交給硬件合成器那SurfaceFlinger就做個(gè)“甩手掌柜”直接把各Layer的Buffer地址、格式、裁剪信息打包發(fā)給顯示控制器讓硬件去完成疊加。這就是HWCHardware Composer模式省電且高效——注意這里“合成”其實(shí)是硬件在顯示掃描過程中完成的不走GPU甚至不額外占內(nèi)存帶寬。但硬件合成器并非全能的。某些Layer如果是GPU繪制的結(jié)果需要做旋轉(zhuǎn)/縮放/混合等復(fù)雜變換、需要特效處理HWC大概率不支持這時(shí)候SurfaceFlinger只能自己上通過OpenGL ES把所有Layer合到一塊新Buffer里再把這塊Buffer送去顯示這就是GLES合成。還有一類更進(jìn)階的東西硬件2D合成器。有些SoC會(huì)提供獨(dú)立的2D引擎來做圖層疊加像T113這類方案里提到的G2D就屬于此。這類引擎的核心價(jià)值在于用專門硬件處理2D合成比通用GPU更輕量、更省帶寬特別適合做LVGL這類GUI的渲染加速。但要用好它得清晰區(qū)分哪些操作是“純2D搬移/疊加”哪些操作必須走GPU這個(gè)邊界不把握好反而可能比全走GPU還慢。3.3 兩個(gè)被混淆的概念Layer與Surface很多人會(huì)把Layer和Surface當(dāng)成同一個(gè)東西其實(shí)Surface是生產(chǎn)端的Buffer容器Layer是合成端的一個(gè)顯示實(shí)體。一個(gè)Surface被queueBuffer之后SurfaceFlinger會(huì)為它建立/更新對(duì)應(yīng)的Layer或者Layer更新Buffer內(nèi)容。Layer還承擔(dān)了Buffer的緩存管理如果SurfaceFlinger發(fā)現(xiàn)一個(gè)Layer的內(nèi)容沒有變化即沒有新Buffer入隊(duì)就可以在合成時(shí)直接復(fù)用上一次的Buffer不需要重新合成一遍。這也是為什么靜態(tài)界面的省電效果遠(yuǎn)好于動(dòng)畫界面。在實(shí)際工作中統(tǒng)計(jì)Surface和Layer的數(shù)量是一項(xiàng)基本功。Layer太多意味著每一幀合成時(shí)要做更多決策、處理更多Buffer再強(qiáng)的合成器也會(huì)忙不過來。常見病根是多個(gè)浮窗、多個(gè)透明Activity、頻繁創(chuàng)建的SurfaceView。能用單Surface承載的內(nèi)容就盡量不要拆成多個(gè)窗口。3.4 為什么SurfaceView可以“局部更新”且開銷更低講到這里SurfaceView的優(yōu)勢(shì)就很好理解了。普通View的一切都要先經(jīng)過ViewRootImpl走DisplayList渲染到App的Surface上再由SurfaceFlinger合成。SurfaceView則單獨(dú)擁有一塊獨(dú)立的Surface獨(dú)立的BufferQueue而且默認(rèn)情況下它還有個(gè)重要特性它的Layer在Z序上位于宿主窗口的“挖洞”層之下也就是宿主窗口那塊區(qū)域相當(dāng)于被挖空了SurfaceView的內(nèi)容直接從前臺(tái)的獨(dú)立Layer透傳顯示。這意味著兩點(diǎn)第一SurfaceView的內(nèi)容更新不需要經(jīng)過App整體RenderThread重繪它能做到獨(dú)立于View樹的刷新第二因?yàn)樗仟?dú)立Layer在合成時(shí)可以直接交給HWC透傳不走GPU合成所以視頻播放場(chǎng)景特別偏愛它。這也是為什么我經(jīng)常建議如果你要高頻刷新一塊區(qū)域視頻、相機(jī)預(yù)覽、游戲畫面優(yōu)先考慮SurfaceView而不是在普通View里瘋狂invalidate。4. 性能優(yōu)化實(shí)戰(zhàn)從原理反推排查方向4.1 掉幀了先分清是誰的鍋經(jīng)驗(yàn)豐富的性能優(yōu)化工程師看到掉幀第一反應(yīng)不是改代碼而是先分類這幀是App側(cè)渲染慢還是合成側(cè)慢還是主線程調(diào)度慢三個(gè)方向?qū)?yīng)不同的證據(jù)來源。用adb shell dumpsys gfxinfo可以看App的繪制統(tǒng)計(jì)數(shù)據(jù)比如Draw、Prepare、Process等各階段耗時(shí)其中如果“Total GPU time”特別高說明GPU負(fù)擔(dān)重如果想看合成側(cè)的情況dumpsys SurfaceFlinger --latency可以輸出各Layer的幀時(shí)間戳信息配合分析是否有掉幀或Buffer不及時(shí)。我自己的習(xí)慣是先開Perfetto或Systrace抓一段場(chǎng)景數(shù)據(jù)找到掉幀的那個(gè)時(shí)刻看主線程上是不是有一個(gè)很長的任務(wù)常見的是setContentView大布局、getView重復(fù)創(chuàng)建、SharedPreferences讀取如果沒有再去RenderThread上找GPU瓶頸去看SurfaceFlinger那一段的時(shí)間線。只要這條鏈路的分析順序固定下來大多數(shù)性能問題都能定位到具體環(huán)節(jié)而不是靠猜。4.2 過度繪制與DisplayList緩存兩個(gè)容易被忽視的重災(zāi)區(qū)過度繪制是GPU壓力的主要來源。開發(fā)者選項(xiàng)里的“調(diào)試GPU過度繪制”用顏色區(qū)分繪制層級(jí)每多畫一層就多一層顏色最嚴(yán)重時(shí)整個(gè)屏幕都是紅色的。典型問題包括多層嵌套的背景疊底、帶陰影的CardView大面積堆疊、DrawerLayout/Scrim在桌面層上又畫了一層全屏遮罩。優(yōu)化的本質(zhì)是減少不必要的繪制指令能用一層背景解決的就不要疊三層能用clipRect裁剪掉不可見區(qū)域的就不讓那部分像素白白參與渲染。另一個(gè)重災(zāi)區(qū)是DisplayList緩存失效。很多時(shí)候你只是改了一個(gè)View的屬性但因?yàn)樗幱谝粋€(gè)復(fù)雜的ViewGroup中invalidate一觸發(fā)整個(gè)父容器的DisplayList都得重建。這個(gè)問題在看列表RecyclerView時(shí)尤其明顯如果你的item根布局寫得極其復(fù)雜或者item復(fù)用機(jī)制沒做好很容易一兩幀就把GPU打滿。我處理過一個(gè)實(shí)際案例明明GPU型號(hào)不差但列表滑動(dòng)就是掉幀最后定位到的問題是item的陰影效果在每次滑動(dòng)時(shí)都觸發(fā)整棵子樹DisplayList重建。把陰影改為預(yù)先畫好的純色陰影圖后幀率立刻回歸平穩(wěn)。4.3 setLayerType與硬件層的取舍View.setLayerType是一個(gè)容易被人濫用、也容易被人忽視的API。LAYER_TYPE_HARDWARE表示這個(gè)View會(huì)離屏渲染到一個(gè)Texture上之后系統(tǒng)可以直接復(fù)用這塊Texture而不用每次重新執(zhí)行draw方法。它適合用在動(dòng)畫頻繁的場(chǎng)景比如旋轉(zhuǎn)、縮放一個(gè)復(fù)雜View但有兩個(gè)坑一是離屏緩沖會(huì)額外占用GPU內(nèi)存濫用的話內(nèi)存吃緊反而觸發(fā)更頻繁的GC和掉幀二是如果View在動(dòng)畫過程中內(nèi)容頻繁變化比如每幀都在更新里面的文本或Bitmap那離屏緩沖還不如不建因?yàn)槊看蝺?nèi)容變化還是要重畫整個(gè)Texture等于白繞一圈。所以我的經(jīng)驗(yàn)是先用工具確認(rèn)動(dòng)畫期間是不是真的Draw方法重繪開銷很大確認(rèn)了再用LayerType不要一上來就“優(yōu)化”。另外如果你的App確實(shí)在動(dòng)畫期間遇到了Shader編譯卡頓可以采用一種“預(yù)熱”思路在啟動(dòng)階段用一個(gè)小區(qū)域、低開銷的方式提前觸發(fā)目標(biāo)Shader的一次編譯把編譯耗時(shí)的尖峰平移到用戶還沒明顯感知的時(shí)刻。這個(gè)技巧在Impeller出現(xiàn)之前是很多引擎做首幀優(yōu)化的妥協(xié)方案。4.4 開發(fā)者選項(xiàng)里的實(shí)用開關(guān)最后補(bǔ)充幾個(gè)開發(fā)者模式里對(duì)圖形調(diào)試極其實(shí)用的開關(guān)和它們的原理依據(jù)“顯示Surface更新”讓已提交的Surface在更新時(shí)閃爍能快速發(fā)現(xiàn)哪些Surface在刷幀、哪些在隱藏地偷跑資源。“顯示布局邊界”幫你看清楚每個(gè)控件的真實(shí)邊界Locate布局問題很直觀?!澳M輔助顯示設(shè)備”如果你在做多屏異顯或副屏適配用它模擬多個(gè)邏輯顯示?!癋orce GPU渲染”讓不支持硬件加速的繪制也強(qiáng)制走GPU路徑可以用來定位某些Canvas操作在軟件渲染下是否成為瓶頸。這些開關(guān)本身不復(fù)雜關(guān)鍵是結(jié)合前面講的鏈路知道它們改的是哪一環(huán)才能用得有意義。5. 常見問題與排查技巧實(shí)錄5.1 問題速查表下面是我在實(shí)際開發(fā)和調(diào)優(yōu)中遇到的一些典型現(xiàn)象整理成一張速查表可以直接對(duì)照排查。現(xiàn)象可能原因排查手段解決方向打開頁面黑屏一閃Activity主題是黑/白背景首幀未完成看看dumpsys gfxinfo首幀時(shí)間、Theme配置設(shè)置啟動(dòng)背景或減少首幀工作量列表滑動(dòng)掉幀item布局復(fù)雜、DisplayList頻繁重建Perfetto看RenderThread和主線程耗時(shí)簡化布局、復(fù)用View、減少invalidate范圍視頻播放卡頓/黑塊SurfaceView獨(dú)立時(shí)序與窗口切換沖突看SurfaceFlinger的Layer狀態(tài)檢查SurfaceView的surfaceDestroyed時(shí)序處理好Surface生命周期必要時(shí)用TextureView兜底界面整體白屏/無內(nèi)容合成Buffer異常或OpenGL崩潰看logcat里OpenGL errordumpsys SurfaceFlinger查Layer狀態(tài)檢查硬件加速開關(guān)確認(rèn)是否有關(guān)閉硬件加速的異常動(dòng)畫過程中掉幀嚴(yán)重動(dòng)畫導(dǎo)致DisplayList頻繁重建用過度繪制查看繪制層級(jí)考慮LAYER_TYPE_HARDWARE或?qū)?dòng)畫移到RenderThread可獨(dú)立處理的對(duì)象上高刷屏上幀率鎖在60系統(tǒng)合成或BufferQueue未匹配高刷模式dumpsys SurfaceFlinger --latency查看幀間隔調(diào)整刷新率切換策略確認(rèn)HWC狀態(tài)5.2 容易被忽略的三個(gè)坑第一個(gè)坑StrictMode和掉幀檢測(cè)只是結(jié)果指標(biāo)不是定位工具。我看到很多人卡頓發(fā)生時(shí)只會(huì)說“這一幀16.9ms”但根本不知道是哪里的16.9ms。其實(shí)應(yīng)該要抓Perfetto而且抓的時(shí)候一定要包含SurfaceFlinger進(jìn)程不然只能看到App內(nèi)部隔離的一半真相。第二個(gè)坑View.setBackground的顏色疊加。這個(gè)問題很隱蔽給根布局設(shè)了背景色給RecyclerView的item也設(shè)了背景色再給item里某個(gè)控件設(shè)了背景色結(jié)果三層的背景全部參與了繪制把GPU帶寬消耗在了看不見的地方。很多所謂的“復(fù)雜布局導(dǎo)致卡頓”其實(shí)根本原因是背景疊加把不必要的背景改成透明即可大幅改善。第三個(gè)坑Bitmap過大GPU紋理超限。OpenGL ES對(duì)紋理尺寸上限有要求部分低端機(jī)超過上限會(huì)直接繪制失敗或黑屏。排查時(shí)要檢查Bitmap原始尺寸避免用超大尺寸圖片做撐滿屏幕的背景正確做法是先用BitmapRegionDecoder等工具加載尺寸合適的采樣圖而不是讓GPU去處理一張明顯超限的紋理。寫在最后這條鏈路走下來我覺得最有價(jià)值的一點(diǎn)是當(dāng)你真正理解渲染和合成是兩套獨(dú)立機(jī)制后你在做界面優(yōu)化時(shí)就不會(huì)再被“卡頓”這個(gè)詞帶偏而是會(huì)冷靜地問是繪制階段慢了還是合成階段慢了是主線程掉幀還是GPU掉幀針對(duì)不同環(huán)節(jié)對(duì)癥下藥很多之前靠亂試碰運(yùn)氣的優(yōu)化就變成了有依據(jù)的工程決策。我個(gè)人還有一個(gè)習(xí)慣想分享給你遇到難定位的渲染問題先別急著改代碼先用dumpsys命令把當(dāng)前進(jìn)程的Surface、Layer、緩沖情況全部打出來看一眼很多時(shí)候問題會(huì)自己浮出水面。比如你懷疑某個(gè)彈窗一直在做動(dòng)畫一查Layer狀態(tài)發(fā)現(xiàn)它確實(shí)每隔幾幀就在queueBuffer那問題的源頭就清楚了。最后再補(bǔ)一條實(shí)戰(zhàn)經(jīng)驗(yàn)動(dòng)手優(yōu)化前先在真機(jī)上把“GPU呈現(xiàn)模式分析”打開跑一遍目標(biāo)場(chǎng)景觀察條形圖的高低和顏色分布。如果綠色條密集且高度一致說明渲染管線穩(wěn)定如果出現(xiàn)很多紅色長條再去深挖具體階段。磨刀不誤砍柴工原理和工具配合起來比一上來就寫優(yōu)化方案靠譜得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰色男人操熟女| 国产高清无码一区二区三区四区皇冠| 欧美91精彩| 午夜福利av电影在线| 9999九九九久久久| 四虎视频在线观看| 天天综合91在线| AV和黑人在线播放| 欧美色性情| 人妻社区男人天堂| 欧美性生活综合| 免费成人在线观看91| 亚洲素人网| 色老汉玖玖爱| 青娱乐 成人娱乐在线| 欧亚性爱在线视频| A级国产欧美激情在线| aV中文麻| 后入式五六区| 国产精品高潮久久AV| 久久久久国产无av| 国产精品美女在线一区| 人人看欧美性爱| 啊嗯嗯啊好大好爽| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 曰本精品久久久| 91人人臊| 国产人伦a片信息免费片| 天天综合欧美黑人| 伊人操操| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 色情五月丁香| 操逼逼福利视频| 日韩亚洲欧美中文字幕| 97资源亚洲| 亚洲伊人青青草| 久操在97| 天天综合网1| 粘花网06av视频| 国色天香av| 色五月亚洲| 黄色性爱网网| 91干熟女| 欧美性爱五月天| 黄片com.| 91足交| 欧美成人A√在线一区二区| 亚洲一二三四区| 久久超碰天天| 欧美另类天堂| 天天大干大香蕉| 超碰欧美在线欧美| 欧美高潮| 91美女视频。| 亚洲男人的天堂va亚洲男人社| 亚洲人成网站7777| 啪啪AV导航| 欧美一区二区三区蜜桃| 婷婷99| 婷婷色五月激情| 亚洲中文字幕三级在线| 午夜久久一区二区无码中出| 97精品久久久久久久| 男人的天堂欧美| 伊人国产视频| 男人的天堂久久久| 午夜福利激情在线视频| 亚洲av乱伦色图网站| 五月天婷婷综合网| 97玖玖超碰| 欧美日韩亚洲五月天婷婷| 91精产一区二区三区| 九九亚洲色在线观看| 亚州,欧美在线| 免费AV中文网在线观看| 免费公开人人操| 睡产熟女乱伦| 亚洲天堂中文字幕无码男同| 日本高清加勒比| 亚洲AV色图一区| 亚州综合图片| 大香蕉日韩| 亚洲精品久久久久毛片A片拉屎 | 成人国产二区三区在线,男女精品。| 97操b| 国产91精品在线免费| 欧美A片中文字幕| 日本高清_区二区三区| 可以免费观看的AV| 欧美综合天堂| 超碰在线香蕉| 午夜情侣自拍网站| 欧美日韩精品久久久久东北老熟妇| 精品亚洲天堂| 黄页视频网站野外| 欧美日韩理论一区| 综合色一区三区二区| 国产呦精品系列在线观看| 蜜乳Av成人片网站| 内射中出日韩在线观看视频| 亚洲日韩资源| 亚洲人妻中文高清| 色777999综合| 天天日天天搞天天干| 成人免费不卡在线视频| 99色骚| 亚欧色图在线激情| 激情五月天社区| 成年男人的天堂| 九九九九精品在线| 国产中文字幕曰本毛片| 日本丝袜美腿人妻九九| 亚洲精品国产无码高清| 大吊色| 欧美AB在线| 日韩婷婷| 九九久久国产精品怡红院| 久久永久无码人妻视频| 日韩97视频!在线| 久久三区四区| 亚洲啪啪性视频| 99re热| 久久久久久久伊人精品| 五月天伊人| 久久久天美| 午夜激情成人在线观看| 欧美A√综合网 | 色鬼在线综合| 国产精品不卡av免费在线观看| 亚洲无码99| 中文字幕免费在线观看| 日本有码影片下载| 澳门黄片一香蕉视频| 久久发布国产伦子伦精品| 国产综合久| 久久婷婷五月综合| 97极品无码| 天天影视色香色欲| 亚洲色图欧美色图另类图片| 白丝AV网站| 日本操逼视频在线| 欧美综合加勒比在线| 91美女精品| 中文字幕二区日韩天堂| 久久久久亚洲Av无码专区老牛影视| 夜色五月天| 78超碰| 麻豆久久久久久久久丝袜| 乱伦熟女论坛| 家庭乱伦国产精品| 久久色一区二区| 国产欧美日韩一区二区三区| 91插B网站| 人妻激情偷乱视三区频一区二区| 精品视频久久| 超碰97网址| 隔壁邻居波多野结衣中文字幕 | 日本欧美不卡| 你操综合| 亚洲国产一级精品毛一级精品看免费视频| 综合大香蕉美。| 久久五月婷| 日韩91网| 天天弄欧美| 欧美日韩一区二区三区四区蜜桃| 夜夜欧美| 亚洲色91C| 亚洲AV成人无码久久精品播放| 农村少妇久久久久久久| 欧美人妻精品| 欧美成人性爱视频免费观看| 九九热精品| 国产农村妇女精品一| 免费1级a做爰片观看| 91天天爱| 人妻丝袜无 码视频专区| 射综合网| 亚洲欧美综合图片| 色综合加勒比四四季| 天天舔天天日天天射| 欧美性爱一级操| 少妇综合网| 一二视频神马久久传媒| 国产精品久久久视频| 黄色AAAAA欧美| 91亚洲人| 大干人妻| 欧美在线55555| 五月婷婷六月色| 伊人久久大香线蕉无码| 精品人妻免费观看| 亚洲骚逼少妇| 9 1超碰九色| 色哟哟国产精品免费网址| 成人网站 免费观看| 亚洲人天堂| rivers-china.com| 91精品免费| 特级大荫道BBwBBwBBW| 久久久网站| 尤物网址| 蜜乳Av成人片网站| 男插女青青影院| 一区二区三区高清| 97亚洲综合在线| 四虎免费视频| 少妇蹲下买菜露大唇0| 2025亚洲男人天堂| 禁止观看美女黄| 日本超碰在线国产一区| 九九热精品视频在线观看| 日本欧美亚洲高清在线看| 乱伦色图网址是多少| 爱爱啊啊啊| 99热精品在线观看| 97超碰9| 久草综合网| 天天插夜夜操| 午夜操逼不卡| 日本不卡高清视频| 不卡一区二区日本视频| 国产精品不卡一区二区三区av| 亚洲色图A| 2020中文字幕在线| 丰满人妻-区二区三区免费看| 国产不卡的视频| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 金典av| laoshunv91| 亚洲男人的天堂V| 丁香九月激情| renqi久久久久久久久久久久| 人人爱操| 亚洲国产剧情少妇激情| 精品中文日韩字幕视频| 天天性射网| 天天干人妻视频| 亚洲人久久久久日| 91视频综合| 天天干夜夜肏| rivers-china.com| 久久风骚城市| 东京热AV男人的天堂| 精品一区二区三区蜜桃| 日韩av在线精品观看| 国产精品久久久久久高清无码免费看| 国产中文大片资源中文字幕| 日本精品一区二区中文字幕| 留下AⅤ黄色片| 这里只有精品视频在线| 国产精品久久久久久久久久梁医生| 伊人热综合| 久久一区二区高清免费| 五月婷色| 久久综合女优| 蜜汁欧美| 黄片免费视频2019| 2020国产精品| 欧美视频激情久久久久久| 日本五区不卡| 国产精品点击进入在线影院高清 | 色色色综合网| 亚洲偷91色| 丝袜美腿av女优在线| 日韩中文字幕精品一区在线| 中文字幕av乱伦| 热天堂一区二区| 99re99视频在线免费观看| 蜜桃臀AV在线| 中文字幕熟女人妻丝袜| 国产精品无码在线| 欧亚第一综合网| 久久久999国产| 日韩精品资源专区二区| 日韩人妻少妇 一区二区三区| 亚洲色图美腿丝袜| 激情小说亚洲色图| 亚洲中文字幕三级在线| 伊人青青草久久| 国产又粗又长的视频| 久久久精品91八戒| 蜜桃精久三区| 亚洲欧美电影| 天天射影院| 超碰免费欧美7| 精品国产一区二区久久| 国产怡红院在线| 性爱视频无打码在线观看| 无码9区| 国产丝袜高跟美女av免费观看| 欧美亚洲在线| 囯产乱伦一区二区三女| 国产视频小说| 超碰成人公开| 91天天c| 久久精品国产亚洲AV清纯| 日本午夜福利影院| 午夜精品久久久99热蜜桃的功能特点| 九九精品99| 97超碰天天爱天天爱| 久久久久久久唑| 操逼网站视频漫画国产| 国内一区二区三区| 日本高清有码网址视频| 欧美少妇高潮久久91| 精品日韩人妻精品一二三区| 欧美伦乱爱| 啪啪啪东京| 国产美女激情| 国产精品 久久久精品一牛| 青娱乐 成人娱乐在线| 69精品| 国产11页| 国产精品人妻免费精品| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 久久国产视频专区一二三| 久久专区| 亚洲精品天天影视综合网 | 果冻传媒A片一二三区 | 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 91狠狠狠| 五月天婷婷久久| 九七超碰人人乐| 婷婷久久综合久| 欧美亚州综合网图片| 日日夜夜狠狠| 黄色操人| 一本一道久久综合久久| 最新欧洲欧美日本激情网站| 97色97干| 欧美熟女丝袜| 人人色97| 国产一区二区三区免费视频在性观看 | 日本不卡高清视频| 亚洲第一视频 欧美风情 日韩| 少妇滛荡视频| 东北少妇高潮zzzz| 九九九九九用不成了| 中文字幕精品一区二区精| 久久久久96| 久久9视频| 成人线上超碰| 99后入| 人人操人人叉人人插人人| 久久久久久久久久黄色网| 丰满高潮18xxxx| 日少妇视频| 啊啊啊97视频| 岛国色情视频在线观看| 国产丰满少妇久久久精品影院| 久久亚洲AV成人精品无码| 欧美天天影院| 午夜福利久久久噜久噜久久综合 | 天天久久| 狠狠躁天天躁日日躁97| 好淫网一二三视区| 曰韩精品视频一区二区| 亚洲一区亚洲天堂| 午夜久久一区二区无码中出 | 混色激情av| 一中国女人毛片水真多| 欧美无圣光在线| 成人看片网站| 另类 日韩 熟女| 激情五月天中文字幕色| 日日天天久久啊啊aaa| 亚洲国产美女久久久久| 亚洲激情深爱文学小说网站| av久日| 在线黄页看毛片| 久久久久久久久久9| 成人精品视频一区二区| 欧美在线官网| 国产在线精品偷| 蜜桃狠狠色伊人亚洲综合网站| 91N五十路| 成年女人18级毛片毛片免费观看| 老熟女乱子伦中文字幕一区二区| 成年无码动漫av片无尽在线| 性性欧美| 一牛影视成人片免费| 男人天堂网站| 97爱| 蜜臀久久99精品久久久电影| 亚州,欧美在线| 国产精品电| 欧美日韩人妻婷婷一区| 久久久久久中文版| 啊啊啊好舒服视频在线观看| 天天插夜夜爽| 精品人妻一区二区乱码一区二区| 思思热在线视频精品| 日本高清一区二区在线| 欧美精品日韩一区二区| 日韩一区二区高清在线观看的| 男女啪啪网站免费视频| 国产精品内射婷婷一级二| 噜噜噜噜久久久精品免费| 91亚洲欧美综合高清在线| 骚逼一区二区| 色偷综合| 后入日本1234| 丝袜加勒比| 噜噜噜噜天天狠狠| 国产精选视频| 国产老女人久久毛| 日本操逼视频在线| 欧美 精品国产制服第一页| 欧美一级黄色免费专区| 国产午夜福利专区综合| 91精品国产91综合久久蜜臀| 国产无码高清操逼视频| 天天操天天射天天日| 亚洲国产97| 日韩日韩日韩-国产乱码精品一区二区| 久久久久96| 国内一级精品| 清纯唯美综合| 欧美特大AA级黄片| 久久久成人国产精品无码| 五月天婷婷成人网| 99精品无码| 嗯啊啊啊轻点视频| 国产人妻精品一区二区三区秋霞| 揉揉揉夜夜| 91综合网站| 亚洲高清无毛一区二区| 亚洲无码AV九九九| 亚州精品一区二区三区香中文字幕在线| 尻女朋友一夜| 天天躁狠狠躁av| 黑人性欧美| 精品国产91内射久久| 人妻人人做人人澡人人爽欧美一区| 操逼网免费无码视频| 久久人妻视频网| 91在线欧色| 亚洲综合图色在线| 婷婷久月| 欧美日韩岛国大片在线观看| 色鬼在线综合| 九九九久久久W精品| 日产操逼| 91色久| 中文字幕一区二区三区人妻少妇在线| 国产丁香精品露脸视频| 亚洲欧美一区二区网址| 国内三级自拍小视频在线观看| 久久精品亚洲婷婷| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 人妻爽爽啪视频| 亚洲资源一区| 日本免费专区| 欧美18禁91| 91制服丝袜| 亚洲 自拍偷拍 欧美| 成人综合色网| 91热| 操逼操操操91| 亚av顶级裸体一区二区三区四区五区| 日曰骚久久精品| 亚州成人a∨| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 美女熟妇色| 男人的天堂2019AV| 99热伊人| 九九亚洲视频| 日韩精品三级| 婷婷五月天激情网| 亚州Av天美传媒| 巨爆乳一区二区爆乳区| 91N欧美| 夜夜夜夜久久久久| 日韩av乱伦| 青青草原成人| 国产一区二区在线电影| 99re在线视频这里只有精品| 芊芊操逼视频无码| 久操视频免费观看| 404操逼福利视频| 超碰98综合网| 凹凸视频在线观看伊人| 91爱看| 狠狠干91| AV高清一区| 国产无吗在线播放| 亚洲国内精品成人不卡| 国产精品久久久久中文字幕| 欧美洲精品一级| 国产精品自拍xxxx| 97久久国产精品| 天天色黄色影院天天操| 夜夜骑天天燥| 精品亚洲国产成人av网站| 中文字幕文字幕无码一区二区三区电影99| 国产大陆天天艹| 干B| 99精品视频在线观看免费| 久久久久密臀视频| 中国国国产一级特黄毛片| 少妇专区一二三四五| 丰满人妻一区二区三区大胸懂色| 91国产伊人大香蕉| 丁香六月婷婷| 中文字幕高清精品一区| 亚洲怡春院| 日韩性爱播放| 蜜臀在线视频| 色老牛| 精品-91人妻子系列| 性欧美91| 97AV在线免费观看| 99热精品在线播放| 色就色综合| 黑人精品欧美一区二区蜜桃| 人妻少妇色综合| 中文字幕在线免费观看2| 久久一本大香蕉 | 综合av影片| 久久久久久AⅤ无码免费肉站| 欧美综合1性辶| 艳美熟妇先锋一二三区| 日本免费专区| 欧美综合天天| 丝袜高跟澳门91视频| 狠狠干综合| 操日韩第| 另类天堂| 亚洲国产中文字幕| 久热久一区二区三区| 乱伦图一区| 夜夜嗨视频| 另类视频在线| 偷拍网站久久男女男| 人人操人人插人www| 成人性生活高清视频在线播放| 国精综合一二三区影视| 人妻啊啊人妻啊| 黄色免费网页无码| av网站国产主播在线| 少妇第一页| 欧美熟妇视频| 国产福利精品最新在线| 国产精品人妻熟女aⅴ| 天天综合网在线观看| 97精品在线| 尤物av网站| 九九色色| 九九成人| 欧美成va视频网站| 日本操大逼| 狠狠操官网| 曰韩人妻中文字幕在线| 超碰久久综合| 国产第二页| 青青草啪啪网| 日韩99神马视频播放| 亚洲人成网www| 亚洲图片欧美在线视频| 亚洲国产高清福利视频| 丰满人妻一区二区三区四区| 欧美片第一页| 91人妻人人澡人人爽人人精品| 欧美人妻制服| 精品美女少妇一区二区| 神马久久久久久久久| 97超色| 亭亭在线资源| 亚洲男人天堂视频| 9ⅰ久久久天天| 97干综合网| 极品AV网站在线观看| av亚洲天堂资源网站| 操美女人妻| 91九色丨国产丨爆乳| 乱日视频| 午夜欧美J进J出白浆流出久久久| 求求你操操我| 亚洲欧美日韩电影网站一区 | 成人线上超碰| 亚州色综合| site:sinbotex.com| 亚洲在线a| 色激情综合网站| 免费视频在线一区二区不卡| 精品人妻一区二区三区在线视频不卡| 97爱综合| 74成人在线| 国产一区自拍欧美日韩| 日人妻视频91| 亚洲操人| 亚洲中文制服诱惑| 超碰久久草| 四虎免费视频| 丰满人妻一区二区三区免费| 天天看天天干| 免费簧片在线观看| 久操热线| 可以免费观看的AV| 欧美午夜色妇色鬼| 亚洲国产亚洲天堂| 国产AV中文| 大香蕉乱级| 久久国内| 亚洲精品一二三四区| 品亲网欧美品亲网| 欧美性性性| 婷婷av在线中文字幕| 免费簧片在线观看| 九色 人妻 大香蕉| 97久久天天综合色天天综合色电影| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚欧无码线免费观看视频| 亚洲图片色图欧美另类| 熟女人妻一区二区三区| 超碰爽人妻熟女Av| 精品制服美女中文一区二区三区| 女人天堂av在线播放| 国产精品久久久久亚洲av| 99性爱| 欧美日本天堂| 亚洲综合九九| 郑州宾馆老熟女露脸啪啪| 在线黄页看毛片| 亚洲污污网站| 欧美性爽xyxOOOO| 色婷亚洲五月在线观看| 精品无码久久久久| 亚洲狠| 亚洲高清无码在线桃色| 精品久久久久瑟瑟| 91色婷婷综合久久中文字幕二区| 浪人综合网| 久久9亚洲| 性生活性生大爱77AV国产| ji熟女.com| 国产黄a三级三级三级av在线看| 91国产大片| 男人的天堂2019| 伊人色综合网电影| 综合一区二区影视| 在线播放一级无码视频 | 欧美激情久| 欧州一区二区三区四区| www.人人cao| 人妻熟妇久草在线| 欧美特大AA级黄片| 国产精品制服丝袜中文字幕日韩一区二区三区 | 9Ⅰ超碰| 欧美劲爆视频一区二区| 97公开久久| 国产9 9在线 | 亚洲| 久久久精品日本一道| 密臀成人视频久久久| 操逼视频亚洲| 九九九九97| 中日韩免费看男女操逼大全| 亚洲18禁| 国产精品爆乳懂色蜜乳| 欧美大香蕉卡久久| 啊啊啊想要| 综合影院亚洲| 2019天天干| 加勒比在线视频| 屁股久久久久久| 鲁鲁色综合网| 国产在线综合福利网站| 久久9久9久99久9久9| 小说区 图片区色 综合区| 久草成人福利导航| 国产午夜在线观看| 免费农村成人少妇人妻Aa一区二区视频| 一区二区三| 日韩99999色| 三级日本一区二区三区| 青青久操| 福利色色| 免费视频观看60秒| 五月激情天| 电家庭影院午夜69久久夜色精品国产69乱| 天天肏美女| 秋霞免费无码视频日韩A片| 久久爽爽精品| 婷婷激情五月天小说网| 国产精品一区二区麻豆| 精品一区二区三区蜜桃臀赵总 | 色网在线视频观看免费| 欧美在线综合| 激情五月天婷婷| 天天欲望网| 男人亚洲91首页在线| 少妇被c 黄 免费观看| 97中文字幕色| 中日韩欧美精品无码AⅤ一区二区| 男人天堂最新手机版在线青青草| 激情五月天婷婷| aaa亚无码专区| 色偷综合| 亚洲图片 91| 亚洲三区视频| 殴美色网| 四虎884a| 91九色首页| 国产成人 综合亚洲 天堂| 欧美精品,四区。五区| 日韩三级视频一区二区三区| 自拍偷拍第26| 九九九不卡| 丝袜综合| 人妻嗯啊啊在线播放| 97干色| 人人九九精| 欧美激情视频一区二区三区不卡| 激情久久久| 国产精品久久妻无码网站| 欧美日日人人天天| 国产青视频| 无码99| 丁香六月东京热| 91一区二区三区蜜桃| 这里只有97精品| 少妇精品久久久| 91欧美高清| 99色色网| 国产AV超爽| 日本免费中文字幕在线| 久久久九九九| 天天躁狠狠躁av| 日日干日日操五月天伦理视频| 五月天色色色| 在线强奷到舒服的无码视频| 成人小说视频在线精品欧美| 97精| 精品在线78| 久久美国毛片| 97色色,97综合| 欧中日成人免费影视| 97久久精品亚洲| 九九综合久久| 成年人网站在线免费观看| 久久岛国| 久久亚洲一区女同性恋中文字幕| 久久AV色| 国产精品视频在线播放| 亚欧中文字幕在线视频| 综合网~91综合网| 人人爽天天爽| 久操九九九九| 欧美日韩99| 日本精品第一视频在'| 午夜福利免费福利视频| 2019久久久久久久久福利| 亚洲av无码成电影在线播放| 日本中文熟女视频| 国产乱伦视频污| 久久AV无码AV| 日韩激情电影中文字幕| 少妇熟女1区2区3区| 一中国女人毛片水真多| 日韩免费一级性爱视频| yaouchengrenav| 天美传媒AV在线播放| 78精品| 国产精品操| 国产女大学生AV| 人妻精品免费一二三区| 日本乱人伦片中文三区| 超碰无码加勒比| 东北丰满熟女国产一区| 国产亚洲精品农村妇女| 国产中文字幕在线点播| 欧美丰满少妇xx高潮| 国产精品自在线发布| 亚洲黄色网址视频| 狠狠综合网| 韩国女主播青草福利视频| 精品v1区| 亚洲 综合 第一页| 日韩91网| 成人精品久久| 国产操逼网站亚洲一级黄色| www.亚洲成人一区| 久久久99免费| 欧美视频边做饭边橾| www超碰| 福利风月五月天影院| 成人在线视频一区| 亚91网| 视频一区二区免费在线| 超碰成人公开| 丁香五月天视频| 欧美淫穴| 四虎免费看黄| 亚洲欧美综合网| 亚洲高清视频在线免费观看| 18禁中文字幕| 长长久久曰曰夜夜成人网| 91夜色chaopeng| 国产精品电| 亚洲国产丝袜熟女av| 欧日a| 久久精彩免费视频| 国产视频一区二区在线| 啊啊啊啊啊好舒服视频| 搡老女人老熟女91| 黄色小视频日本txt| 欧美成人都市人妻| 亚洲精品一区二区免费在线观看| 四虎影视精品| 色婷婷激一区二区三区| 综合影院亚洲| 天天色怡春院| 日本精品五区| 国产福利精品最新在线| 精品人妻一区二区免费蜜桃| 小电影欧美91| 免费的很黄很污的全部视频| 韩日精品四区| 美国三级日本三级久久99| 精品国产Av无码久久久伦古装| 素人一区二区三区日韩| 后入美女国产| av橘色网站| 久久黄色视频一区二区三区| 青青国产精品在线| 超碰97久| 91在线视频观看国产| 精品美女在线视频| 欧美激情一区| 韩国黄色片精品久久久| 97欧美色综合| 最新岛国大片| 99re3这里只有精品| 花花AV导航| 思思热免费视频观看| 2017大香蕉国产精品久久| 大香蕉欧美| 久久精品一区二区三区不卡| 久久婷婷苹果| 国产精品自产拍在线观看社区| 97AV在线免费观看| 日韩成人精品| 日欧美色| 久久 国产 无码| 97国伦国色| 97无码视频在线播放| 欧美|91色综合| 久久久久久久唑| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 欧美日韩不卡a片| 色五月69夫妻| 免费av高清无码| 丰满人妻-区二区三区免费看| 一起草日韩| 立川理惠被中出无码| 久久久成人国产精品无码| 内射中出日韩在线观看视频| 色五月激情AV在线| 国产成人亚洲精品无码最新在线| 精品国产乱码久久久久久影片| 国产精品不卡少妇白| 丁香婷婷大香蕉| 老熟女阿 国产91| 久99| 欧美色图91| 青娱乐日韩无码| 国产精品另类| 久操大香蕉手机视频在线看| 97手机日韩| 亚洲国产综合久久久性感熟妇| 婷婷操视频| 美女主播色欲91抠b在线播放| 久久久久久一日韩字幕无码| 蜜桃视频一区二区三区在线观看| 国产成人自拍视频视频| 亚洲素人网| 熟女人妻一区二区三区| 日韩电影中文字幕| 久久天天摸| 日韩黄片影院| 亚洲永久永久永久永久一级一级一级精品| 国产精品人人爽人人做可爱福利| daxiangjiao你懂的| 国产日韩欧美三级片| 东京热毛片177b2viP| 黄色二级片网站| 乱伦AVxx| 日本女人久久久| 伊人青青草久久| 一区三区啪啪| 国产精品96| 日韩美女高潮喷水视频| 91日韩在线| 性爱综合一区二区| 99精品无码| 欧美色66| 国产高潮AA片免费看| 亚洲欧美综合| 一区超碰一区| 亚州操操穴网| 中文字幕免费看大片| 亚洲色图图片| 色香伊人| 黄页大片在线观看| 久久久久久久国产a∨| 91网站18禁| 激情婷婷丁香| 欧美美女在线高潮999| 青草av在线| 精品黄色电影| 久久久久久久久国产| 蜜桃久久久久久久| 一区二区娱乐网站| 眼镜人妻101.com| 熟妇女伦乱视频| 欧美精品欧美精品系列| 日韩精品一区二区人人人| 欧美色66| 亚洲美乱| 九九色影院| 看黄片视频免费| 成人精品久久久午夜福利| 久久久涩| 久久人妻一区二区三区高清| 超碰国产情侣自拍网| 午夜一区| 婷婷中文网| 中文日本免费高清| 在线观看亚洲成人精品| 亚洲丝袜诱惑| 国产91美女视频| 亚洲欧美91√| 欧美伦乱爱| 超碰在线974| 丰满人妻一区二区三区四| 免费看一级a性色生活片久久无| 一区二区三区黄片免费观看| 亚洲无码电影久久久| 五十路一区无码| 久久久久久久久久久久久久久久9| 射 色综合| 色五月亚洲| 91精品丝袜久久久久久| 性爱乱伦一区| 日本高清有码网址视频| 久热影视| 99亚洲国产精品色一区二区三区| 久久久久女教师免费一区| 天天综合网~91入口| 污污污8888| 欧美色日本| 97国产色图| 日韩情色视频| 69AV女优男人的天堂| yirendaxiangjiashipin| 天天综合日韩网| 国内精品不卡无毒99999| 九月丁香婷婷| 国产精品国产自产拍高清AV| 五月天婷婷久久| 婷婷色综合| 看日韩美女二区三区免费操逼视频| 婷婷丁香五月综合| 999在线电影香蕉| 伊人综合色网| 欧美日日夜夜| 久久超碰爱| 91人妻超碰| 操美女人妻| 欧美久久久15P| 亚洲永久永久永久永久一级一级一级精品 | 国产一区二区欧美日本| 自拍偷拍2025在线观看| 99精品在线| 日韩精品.久久精品.AV女优.天美传媒| 日韩三四五区| 久久亚洲不卡一区二区三区| 国产精品不卡一区二区三区| 加勒比av网| 欧美色另类| 日韩三级伦理中文字幕| 亚洲精品尤物yw在线影院| 18禁的网站在线| 亚洲操逼网| 国产精品久久9| 亚洲国内精品成人不卡| 欧美熟女妇同| 97ai亚洲| 国内毛片欧美香蕉精品| 欧亚久久偷拍视频| 啊啊啊啊好疼视频| 精品人妻视频一区二区在线播放| 人人妻人人爽一区二区三区| A级国产欧美激情在线| 成人精品一区二区91毛片不卡| 精品国产精品一区二区| 9九九九九视频在线观看| 亚洲熟妇无码一区二区三区| 国产91专区| 操国产高清| 国产精品自在线发布| 欧美十八禁在线看| 97资源欧美| 青青草大香蕉视频| 日本一区二区三区午夜观看| 蜜桃无码AV一区二区| 亚洲综合码| 日影院久久婷婷夜夜网| 99re视频在线播放青草| 人妻献身系列第54部| 狠狠干,狠狠操| 成人久久精品| 亚洲人妻在线精品| 自怕偷自怕亚洲精品| 久久xxxx| 超碰97首页| 国语av狠狠色丁香婷婷综合激情| 乱伦3P视频| 在线观看一卡二卡| 亚洲偷91色| 国产辣妈在线视频福利| 色婷婷av在线观看| 九九九九精品一区| 亚洲无码com| 天天弄天天操| 死我十八禁| 日本熟女免费視颖| 精品一区96| 婷婷激情四射| 丰满的三级少妇欧美久久久| 欧美情色贴图| 超碰午夜| 成功精品影院| 91影视亚洲| 涩涩涩综合| 男人天堂站| 另类图片天天影视| 亚洲操逼网| 97欧美日韩中文| AV在线性爱| 91亚州欧美| 天天插夜夜操| 日本久久999| 夜嗨影院| 丝袜美腿91| 这里只有精品久久| 欧美综合天天| 97人亚洲综合字幕| 亚洲伊人a线观看视频| 蜜桃色院一区久久| 国产精品制服丝袜清纯唯美| 亚洲天天精品| 婷婷伊人綜合中文字幕| 亚州欧美色图| 大香蕉天天看妹子| 911av网站免费观看| 麻豆国产av网| 国产精品白丝在线播放| 国产自产91区13区| 日本成人免费一区二区三区| 亚洲美女精品| 超碰精品国产无码| 啊啊好多水| 嫩草在线视频| 欧美亚洲成人在线一区二区三区| 小视频玖玖| 国产精品3| 国产h片在线观看视频| 免费超碰97久久| 国产一区二区三区导航| 国产97在线播放| 99精品网| 97欧美综合| 97视频观看| 97资源视频| 日本三级韩国三级美三级91| 嫖老熟女A片一二三区| 一区二区三区一亚洲中文字幕、综合区灬 | 熟妇熟女亚洲天堂网| 超碰无码加勒比| aV中文麻| 日本1区2区不卡视频| 俞拍自拍| 视频在线观看一二三区| 国产操操日韩三级黄| 欧美激情精品| 2026国产精品视频| 插入综合网| 黄色免费网页无码| 久久AV无码AV| 青青草导航在线视频| 第二页中文字幕| 久久婷婷影院| 亚洲国产奇米影视久久| 欧美乱欲| 蜜臀99久久精品| 97色诱| 五月婷在线| 欧日a| 在线有码中文字幕| 精品欧美乱码久| 最新9久久久9免费视频| 日本伦理一区二区| 黄污污污污| 熟女人妻一区二区三区| 日韩无码操逼片| 另类天堂| AV天堂因数| 中文字幕精品三级久久久| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 99热色精品| 日本123区操B视频| 18禁免费视频| 成人一道本免费视频| 9久久久久| 国产综合久| 国产精品高朝久久久久久久| 天天夜夜久久| 丰满少妇一区二区三区专区| 婷婷色色网| 爱我干综合| 蜜臀操逼黄色视频操的好爽| 国产精品无码久久久久2028| 男女啪啪啪18禁网站| 国产精品美女| 啊啊嗯嗯好爽| 日日操夜夜操天天操免费观看麻豆| 美女天天干| 少妇久久久免费| 久久 久久国内精品亚洲| 亚洲AV不卡在线观看尤物| 开心六月色| 欧美 青青草| 精品人妻一区二区免费蜜桃| 综合日本女人伊人| 骚货| 亚洲伊人久久精品狠狠在线| 日韩三级久久久| 中文啪啪视频| 九九无码久久精品视频| 偷拍欧美激情| 热天堂一区二区| 国产大片精久久久久久| 日韩精品人妻中文字幕有码午| 一区二区三区男女操逼黄色小电影| 亚洲天堂性爱| 一区二区三区四区五区高清无码永久视频 | 美女啊啊啊啊啊啊| 九九色逼| 99热综合| 天天日少妇逼AV| 久久,精品一二三| 亚洲欧美九九| 青青草精玖玖69精品| 亚洲天堂第一页| 九九九九欧美| 热热色国产一二区AV| 免费视频观看60秒| 精品91| 中文字幕美女91|