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

歡迎訪問 生活随笔!

生活随笔

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

Android

android surfaceflinger 老罗,「Android」SurfaceFlinger分析

發布時間:2025/3/12 Android 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android surfaceflinger 老罗,「Android」SurfaceFlinger分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇針對surfaceFlinger模塊進行分析,目錄如下:

1、SurfaceFlinger功能

1.1、BufferQueue原理(native/libs/gui模塊)

1.2? ?layer顯示內存分配(native/libs/ui模塊)

1.3、surfaceFlinger處理(native/.../surfaceFlinger模塊)

2、工程代碼解析:

2.1、surfaceFlinger啟動過程

2.2、surfaceFlinger事務處理

3、總結(處理流程、交互模塊)

***********************************************************×*********************************×*******

1、SurfaceFlinger功能:

surfaceflinger作用是接受多個來源的圖形顯示數據,將他們合成,然后發送到顯示設備。

比如打開應用,常見的有三層顯示,頂部的statusbar底部或者側面的導航欄以及應用的界面,每個層是單獨更新和渲染,這些界面都是有surfaceflinger合成一個刷新到硬件顯示。

在顯示過程中使用到了bufferqueue,surfaceflinger作為consumer方,比如windowmanager管理的surface作為生產方產生頁面,交由surfaceflinger進行合成。

1.1、BufferQueue原理(和SF交互)

bufferqueue分為生產者和消費者

比如應用通過windowsmanager分配一個surface,需要分配(dequeueBuffer)顯示空間在上面進行繪圖,在圖形繪制完成后需要推送(queueBuffer)到surfaceflinger進行合成顯示。

surfaceflinger作為消費者,通過acquireBuffer()得到一個要合成的圖形,在合成完畢后再releaseBuffer()將圖形釋放。

(1)在bufferQueuei所在目錄下?ComposerService 為單例模式負責與surfaceflinger建立binder連接,在native/libs/gui庫。

代碼如下:

class ComposerService : public Singleton{

spmComposerService;

sp<:deathrecipient>mDeathObserver;

Mutex mLock;

ComposerService();voidconnectLocked();voidcomposerServiceDied();

friendclass Singleton;public://Get a connection to the Composer Service. This will block until//a connection is established.即getComposerService

static spgetComposerService();

};

(2)ComposerService 為單例模式負責與surfaceflinger建立binder連接;

(3)SurfaceComposerClient則在于surfaceflinger建立連接后(即getComposerService)建立與Client的連接,

通過client調用createSurface,然后返回SurfaceControl;

(4)SurfaceControl負責這個顯示層的控制。

sp SurfaceControl::getSurface() const{

Mutex::Autolock _l(mLock);if (mSurfaceData == 0) {//This surface is always consumed by SurfaceFlinger, so the//producerControlledByApp value doesn't matter; using false.

mSurfaceData = new Surface(mGraphicBufferProducer, false);

}returnmSurfaceData;

}

通過SurfaceControl::getSurface(),得到的真正的顯示層,這樣之后可以通過Lock和unlock將surface空間分配繪圖,再返回給surfaceflinger。

1.2?layer顯示內存分配

(1)surface創建后得到 mGraphicBufferProducer,new GraphicBuffer分配一個GraphicBuffer:

int Surface::dequeueBuffer(android_native_buffer_t** buffer, int* fenceFd) {.....}

(2)?在graphicbuffer.cpp中分配一個共享內存,在native/libs/ui模塊:

GraphicBuffer::GraphicBuffer(...){...}

status_t GraphicBuffer::initWithSize(...){...}

(3)GraphicBufferAllocator::get() 使用gralloc進行內存分配,分配完成后,得到bufferIdx 將他發給client端也就是surface端

(4)返回虛擬地址給上層

1.3、surfaceFlinger處理

上面創建一個surface后,surfaceflinger對應的是一個layer,當上層layer調用刷新后,onFrameAvailable被調用,通知surfaceflinger有layer更新

void BufferLayer::onFrameAvailable(const BufferItem&item) {

mFlinger->signalLayerUpdate();

}

2、工程代碼解析:

2.1、surfaceFlinger啟動過程:

(代碼取自其他博客提供下載的源碼https://blog.csdn.net/ztguang/article/details/64905058,Android7.0以上)

1、surfaceFlinger代碼倉位置:/frameworks/native/services/surfaceflingers

surfaceFlinger啟動進程的腳本是surfceFlinger.rc文件,內容如下:

1 service surfaceflinger /system/bin/surfaceflinger2 class core3 user system4 group graphics drmrpc readproc5 onrestart restart zygote6 writepid /dev/stune/foreground/tasks

socket pdx/system/vr/display/client

stream 0666 system graphics u:object_r:pdx_display_client_endpoint_socket:s0

socket pdx/system/vr/display/manager

stream 0666 system graphics u:object_r:pdx_display_manager_endpoint_socket:s0

socket pdx/system/vr/display/vsync

stream 0666 system graphics u:object_r:pdx_display_vsync_endpoint_socket:s0

注:在.bp腳本中會初始化該腳本,之后執行main_surfaceflinger.cpp文件 (rc文件有3個socket,用于跨進程通信)

2、創建進程后執行main函數,main函數在frameworks/native/services/surfaceflinger/main_surfaceflinger.cpp,main函數主要代碼如下:

int main(int, char**) {

//忽略了SIGPIPE信號,因為在SurfaceFlinger的Client-Server模型中,或者說IPC機制中,很可能會觸發SIGPIPE信號,而這個信號的默認動作是終止進程

當客戶端/服務端的socket關閉時,防止進程退出

signal(SIGPIPE, SIG_IGN);//When SF is launched in its own process, limit the number of//binder threads to 4.即SF進程開啟后,線程池限制最大數量為4

ProcessState::self()->setThreadPoolMaxThreadCount(4);//start the thread pool即啟動線程池

//大多數程序都是需要IPC的,這里也需要,但是使用Binder機制是很繁瑣的,所以Android為程序進程使用Binder機制封裝了兩個實現類:ProcessState、IPCThreadState

//其中ProcessState負責打開Binder驅動,進行mmap等準備工作;IPCThreadState負責具體線程跟Binder驅動進行命令交互。

spps(ProcessState::self());

ps->startThreadPool();//instantiate surfaceflinger即實例化,以及設置進程優先級、事物處理策略

sp flinger = newSurfaceFlinger();

setpriority(PRIO_PROCESS,0, PRIORITY_URGENT_DISPLAY);

set_sched_policy(0, SP_FOREGROUND);

#ifdef ENABLE_CPUSETS//Put most SurfaceFlinger threads in the system-background cpuset//Keeps us from unnecessarily using big cores//Do this after the binder thread pool init

set_cpuset_policy(0, SP_SYSTEM);#endif

//initialize before clients can connect即初始化

flinger->init();//publish surface flinger即發布SF,注冊到ServiceManager,sp是strongponiter強指針(sp對象的析構函數調用RefBase的decStrong來減少強弱引用指針計數)

spsm(defaultServiceManager());

sm->addService(String16(SurfaceFlinger::getServiceName()), flinger, false);//publish GpuService即注冊GPUservice

sp gpuservice = newGpuService();

sm->addService(String16(GpuService::SERVICE_NAME), gpuservice, false);struct sched_param param = {0};

param.sched_priority= 2;if (sched_setscheduler(0, SCHED_FIFO, ?m) != 0) {

ALOGE("Couldn't set SCHED_FIFO");

}//run surface flinger in this thread即運行當前線程

flinger->run();return 0;

}

在執行main函數的時候,執行經過了以下過程:

(1)創建SurfaceFlinger對象,在其構造函數中,主要是一些成員變量的初始化工作。在SurfaceFlinger.cpp中的構造函數代碼如下:

SurfaceFlinger::SurfaceFlinger()

: BnSurfaceComposer(),

mTransactionFlags(0),

mTransactionPending(false),

mAnimTransactionPending(false),

mLayersRemoved(false),

mRepaintEverything(0),

mRenderEngine(NULL),

mBootTime(systemTime()),

mBuiltinDisplays(),

mVisibleRegionsDirty(false),

mGeometryInvalid(false),

mAnimCompositionPending(false),

mDebugRegion(0),

mDebugDDMS(0),

mDebugDisableHWC(0),

mDebugDisableTransformHint(0),

mDebugInSwapBuffers(0),

mLastSwapBufferTime(0),

mDebugInTransaction(0),

mLastTransactionTime(0),

mBootFinished(false),

mForceFullDamage(false),

mPrimaryDispSync("PrimaryDispSync"),

mPrimaryHWVsyncEnabled(false),

mHWVsyncAvailable(false),

mHasColorMatrix(false),

mHasPoweredOff(false),

mFrameBuckets(),

mTotalTime(0),

mLastSwapTime(0)

{......}

(2) 因為這里的SurfaceFlinger對象是一個StrongPointer(強指針,見老羅博客https://blog.csdn.net/luoshengyang/article/details/6786239),所以首先會走到RefBase的onFirstRef方法。

voidSurfaceFlinger::onFirstRef()

{

mEventQueue.init(this);

}

查看surfaceFlinger.h,發現mEventQueue是MessqgeQueue創建的對象。所以初始化會創建消息隊列需要的Handler、Looper。在相同目錄下的MessageQueue.cpp文件中:

void MessageQueue::init(const sp&flinger)

{

mFlinger=flinger;

mLooper= new Looper(true);

mHandler= new Handler(*this);

}

此處MessageQueue不是常見的消息隊列,在surfaceFlinger目錄單獨編寫,mEventQueue更像是消息循環機制的管理者,其中包含了一個looper,一個handler。

looper中的mMessageEnvelopes這個容器才是真正存儲消息的地方:

/*MessageQueue.cpp*/

voidMessageQueue::waitMessage() {

int32_tret= mLooper->pollOnce(-1);

}

handler也不是常見的那個handler,而是Messagequeue中自定義的一個事件處理器,是專門為surfaceflinger設計的,handler收到消息,進一步回調surfaceflinger中的onMessageReceived。

void MessageQueue::Handler::handleMessage(constMessage&message) {switch(message.what) {

caseINVALIDATE:

mQueue.mFlinger->onMessageReceived(message.what);

} }

(3)之后執行surfaceFlinger::init,方法主要實現的功能:

初始化EGL

創建HWComposer

初始化非虛擬顯示屏

啟動EventThreada線程

啟動開機動畫

在SurfaceFlinger.cpp中的代碼如下:

voidSurfaceFlinger::init() {

ALOGI("SurfaceFlinger's main thread ready to run."

"Initializing graphics H/W...");  //開始SF線程的準備工作,初始化graphics H/W

{//Autolock scope

Mutex::Autolock _l(mStateLock);//initialize EGL for the default display即初始化EGL,作為默認顯示(EGL見https://blog.csdn.net/ieearth/article/details/71180457)

mEGLDisplay =eglGetDisplay(EGL_DEFAULT_DISPLAY);

eglInitialize(mEGLDisplay, NULL, NULL);//start the EventThread開啟事件線程

sp vsyncSrc = new DispSyncSource(&mPrimaryDispSync,

vsyncPhaseOffsetNs,true, "app");

mEventThread= new EventThread(vsyncSrc, *this);

sp sfVsyncSrc = new DispSyncSource(&mPrimaryDispSync,

sfVsyncPhaseOffsetNs,true, "sf");

mSFEventThread= new EventThread(sfVsyncSrc, *this);

mEventQueue.setEventThread(mSFEventThread);//set SFEventThread to SCHED_FIFO to minimize jitter

struct sched_param param = {0};

param.sched_priority= 2;if (sched_setscheduler(mSFEventThread->getTid(), SCHED_FIFO, ?m) != 0) {

ALOGE("Couldn't set SCHED_FIFO for SFEventThread");

}//Get a RenderEngine for the given display / config (can't fail)

mRenderEngine =RenderEngine::create(mEGLDisplay,

HAL_PIXEL_FORMAT_RGBA_8888);

}//Drop the state lock while we initialize the hardware composer. We drop//the lock because on creation, it will call back into SurfaceFlinger to//initialize the primary display.即初始化硬件composer對象,和顯示設備交互,硬件顯示設備

mHwc = new HWComposer(this);

mHwc->setEventHandler(static_cast<:eventhandler>(this));

Mutex::Autolock _l(mStateLock);//retrieve the EGL context that was selected/created即檢索創建的EGL上下文

mEGLContext = mRenderEngine->getEGLContext();

LOG_ALWAYS_FATAL_IF(mEGLContext==EGL_NO_CONTEXT,"couldn't create EGLContext");//make the GLContext current so that we can create textures when creating//Layers (which may happens before we render something)即顯示設備

getDefaultDisplayDevice()->makeCurrent(mEGLDisplay, mEGLContext);

mEventControlThread= new EventControlThread(this);

mEventControlThread->run("EventControl", PRIORITY_URGENT_DISPLAY);//創建EventControl//initialize our drawing state

mDrawingState =mCurrentState;//set initial conditions (e.g. unblank default device)即初始化顯示裝備

initializeDisplays();

mRenderEngine->primeCache();//start boot animation即啟動開機動畫

startBootAnim();

ALOGV("Done initializing");

}

(4)Android系統中有一個ServiceManager,專門用來管理所有的服務,而SurfaceFlinger不是由ServiceManager啟動的,因此需要向ServiceManager注冊SurfaceFlinger,同時還注冊了GpuService。(在main函數里面注冊)

(5)執行SF的run方法,SurfaceFlinger::run,進入消息循環,SurfaceFlinger啟動成功,開始工作。代碼如下:

voidSurfaceFlinger::run() {do{

waitForEvent();

}while (true);

}

(分析參考博客https://blog.csdn.net/u012439416/article/details/79733178)

waitForEvent方法如下:

mEventQueue.waitMessage();

MessageQueue的waitMessage方法也是一個do – while循環,里面邏輯如下:

>阻塞消息:

IPCThreadState::self()->flushCommands();

int32_t ret= mLooper->pollOnce(-1);

flushCommands方法主要是對binder驅動進行交互, 清理binder

pollOnce是消息機制,主要調用了epoll_wait函數,會阻塞,阻塞完了會分發消息隊列中的消息。這里的消息只有自己在Handler中發的消息,還有在setEventThread中自己添加的消息。

>處理不同消息

2.2、工作流程

在執行SF的run方法時,SurfaceFlinger::run,進入MessageQueue.cpp中的waitForEvent方法:

當Surface繪制完成后會發出一個Invalidate的消息給Surfaceflinger的等待線程,當waitForEvent接收到消息后就會交給onMessageReceivered去處理,處理過程中會依次調用handleMessageTransaction、handleMessageInvalidate、handleMessageRefresh接口。

(1)調用handleMessageTransaction時,會調用:

>?有事務處理請求時,調用handleTransaction進行處理(getTransactionFlags)

> 調用handleTransactionLocked

> commitTransactionao提交事務

該函數主要處理之前對屏幕和應用程序窗口的改動。窗口狀態的改變只能在一個Transaction中進行。因為窗口狀態的改變可能造成本窗口和其他窗口的可見區域變化,所以就必須重新來計算窗口的可見區域。在這個處理子過程中Android會根據標志位來對所有layer進行遍歷,一旦發現哪個窗口的狀態發生了變化就設置標志位以在將來重新計算這個窗口的可見區域。

(2)調用handleMessageInvalidate時,會調用handlePageFlip

>?handlePageFlip繪制(Layer從FrontBuffer中取得新數據,并生成一張OpenGL中的紋理。現在Layer準備好了數據,下一步開始進行繪制)

該函數主要調用handlePageFlip()函數,該函數主要是從各Layer對應的BufferQueue中拿圖形緩沖區數據,并根據內容更新臟區域。

(3)handleMessageRefresh——進行合并和渲染輸出:

(4)合并渲染完成后,該線程繼續等待下一個invalidate消息。

4、總結(處理流程、交互模塊)

4.1、處理流程

首先SF的啟動過程:> 啟動進程腳本.rc

> main_sf.cpp的main()函數

>> 啟動線程池,設置線程最大數量

>> 實例化(創建對象)SF.cpp

>>> SF:SF構造函數,初始化一些成員變量

>>> (強指針

)SF::onFirstRef執行到MessageQueue.cpp,執行init()創建Handler、Looper

>> 設置進程優先級

>> 執行sf.init()初始化方法

>>> 初始化 graphics H/W ...,

>>> 創建對象顯示設備HWComposer.cpp

>>> 創建event線程

>>> 初始化顯示設備

>>?注冊ServiceManager、GPUService

>> 運行SF.run()方法  (詳細處理合成圖像)

SF的工作流程分析(實現圖像混合):

> 在run方法中waitForEvent等待事件(MessagQueu.cpp),收到重繪消息后,將退出等待,交給onMessageReceivered去處理

> handleMessageTransaction處理事務

>> 有事務處理請求時,調用handleTransaction進行處理(getTransactionFlags)

>> 調用handleTransactionLocked

>> commitTransactionao提交事務

> handleMessageInvalidateia調用handlePageFlip繪制

> handleMessageRefresh合并和渲染

> 完成后,線程繼續等待下一個invalidate消息

(以下是深入理解Android的講解,源碼為2.2)

> 處理事務

>> 有事務處理請求時,調用handleTransaction進行處理(getTransactionFlags)

>> 調用handleTransactionLocked

>> commitTransactionao提交事務

> handlePageFlip繪制(Layer從FrontBuffer中取得新數據,并生成一張OpenGL中的紋理。現在Layer準備好了數據,下一步開始進行繪制)

> handleRepaint對每一層進行重繪(顯示層的onDraw函數,使用OpenGL)

> 繪制完圖后,unlockClient釋放之前占著FrontBuffer的索引,調用各個顯示層的finishPageFlip函數

> postFrameBuffer調用DisplayHardware.cpp的flip函數,flipg調用eglSwapBuffers函數,以完成FrameBuffer的apgeFlip操作,之后混合后的圖像就會傳遞到屏幕中顯示

交互模塊:

應用通過windowsmanager分配一個surface,需要分配顯示空間在上面進行繪圖,在圖形繪制完成后需要推送到surfaceflinger進行合成顯示。

surfaceflinger作為消費者,得到一個要合成的圖形,在合成完畢后再將圖形釋放。

大概流程:

->bufferqueue.cpp(../native/libs/gui庫)

-> composerService(單例模式)與SF建立bind連接

-> SurfaceComposerClinet.cpp調用createaSurfce創建surface,返回surfaceControl

-> 創建surface后在graphicBuffer.cpp(../native/libs/ui庫)分配共享內存

-> 創建surface后,SF也對應一個layer,當上層layer調用刷新后,onFrameAvailable被調用,通知SF有layer更新

!!!因為初次接觸,翻閱《深入理解Android》(2.2源碼)以及其他的博客(Android6.0以上源碼)很多地方還不理解,所以有不正確的地方還請指正。

總結

以上是生活随笔為你收集整理的android surfaceflinger 老罗,「Android」SurfaceFlinger分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

伊人手机在线 | 久草剧场| 麻豆免费看片 | 奇米网在线观看 | 久艹在线播放 | 欧美日韩视频一区二区三区 | 国产一区二区在线免费播放 | 亚洲第一中文网 | 超碰在线天天 | 精品久久久免费 | 一区二区三区在线影院 | 超碰午夜 | 在线一二三区 | 精品欧美一区二区三区久久久 | 国产精品av久久久久久无 | 国产成人免费高清 | 亚洲乱码中文字幕综合 | 久久久免费av | 中文字幕精品www乱入免费视频 | 日本不卡123区 | 亚洲午夜久久久久久久久久久 | 美女网站在线 | 日本精品久久久久中文字幕5 | 青青草视频精品 | 午夜狠狠操 | 国产精品乱码高清在线看 | 免费av成人在线 | 看av在线 | 欧美乱熟臀69xxxxxx | 天天搞天天干天天色 | 婷婷激情五月综合 | 国产精品永久在线观看 | www.av在线播放 | 久久久综合 | 日韩精品视频免费专区在线播放 | 国产成人黄色在线 | 国产精品正在播放 | 亚洲电影一区二区 | 精品二区久久 | 亚洲高清在线观看视频 | 91日韩精品 | 天天玩天天干天天操 | 国产麻豆果冻传媒在线观看 | 久久99精品久久久久久久久久久久 | 五月婷婷,六月丁香 | 亚洲一区二区三区91 | 国产精品专区h在线观看 | 国产手机视频在线观看 | 日韩精品电影在线播放 | 久草在线视频首页 | 九九九国产 | 亚洲专区免费观看 | 亚洲一区二区视频在线 | 久久精品网址 | 欧洲精品视频一区二区 | 麻豆国产网站 | av在线h| 中文字幕 成人 | 久久国产精品免费一区二区三区 | 蜜臀久久99精品久久久久久网站 | 国产中文字幕在线观看 | free. 性欧美.com | www久久com| 久草电影免费在线观看 | 99爱在线观看 | 激情av五月婷婷 | 国外av在线| 中文字幕高清在线 | av色综合| 国产视频一区二区三区在线 | 午夜免费在线观看 | 97国产小视频 | 色网站在线免费观看 | 久久久久网站 | 久久美女免费视频 | 国产 视频 高清 免费 | 国产一区免费视频 | 精品日本视频 | av亚洲产国偷v产偷v自拍小说 | 九九欧美 | 一区二区三区福利 | 一区 二区电影免费在线观看 | 少妇自拍av | 成人97视频一区二区 | 亚洲视频网站在线观看 | 欧美日韩在线观看不卡 | 亚洲国产精品99久久久久久久久 | 亚洲最新av | www.伊人色.com | 婷婷国产视频 | 插婷婷| 天天操天天添天天吹 | 国产成人一区二区三区 | 日韩免费观看一区二区三区 | 成年人在线看片 | 亚洲精品在 | 亚洲日韩欧美一区二区在线 | 久草在线视频网站 | 国产在线观看免 | 亚洲成人精品国产 | 国产精品久久久电影 | 国产69精品久久99的直播节目 | 国产精品久久婷婷六月丁香 | 欧美精品九九99久久 | 国产成人亚洲在线观看 | 亚洲精品资源 | 国产一区国产二区在线观看 | 亚洲精品tv久久久久久久久久 | 免费在线观看av的网站 | 美女搞黄国产视频网站 | 国产福利a | 69视频在线播放 | 福利二区视频 | 久久免费美女视频 | 久久高清免费观看 | 国产精品高清一区二区三区 | 日韩中文字幕国产精品 | 99精品福利视频 | 91九色老| 三级黄免费看 | 日韩电影在线观看一区二区三区 | 婷婷丁香色综合狠狠色 | 激情影音先锋 | 欧美va天堂va视频va在线 | 久久99国产精品久久99 | 日韩激情中文字幕 | 96超碰在线 | 色偷偷88888欧美精品久久 | 91自拍成人| 国内久久久久 | 国产精品对白一区二区三区 | 国产在线成人 | 久久第四色 | 久热免费在线观看 | 欧美综合国产 | 美女网站在线看 | 特级西西人体444是什么意思 | 国产成人久久久久 | 日韩高清在线一区二区 | 欧美精品久久久久久久久老牛影院 | 亚洲国产视频直播 | 日韩在线观看电影 | 国内精品美女在线观看 | 日韩视频中文字幕 | 精品99在线视频 | 日日夜夜天天人人 | 色鬼综合网| 久草91视频 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 日韩午夜电影网 | 免费成人黄色片 | 六月激情 | 激情综合站 | 91成品人影院 | 亚州精品天堂中文字幕 | 999精品网| 免费黄在线看 | 国产原创在线 | 青青河边草观看完整版高清 | 九色91在线视频 | 欧美一级专区免费大片 | 91精品国产综合久久福利不卡 | 99精品视频在线看 | 亚洲精品动漫久久久久 | 国产精品久久久久久久久久直播 | 久草久视频 | 精品在线观看免费 | 日日操日日干 | 日韩理论在线观看 | 免费麻豆 | 精品一区二区影视 | 91九色网站| 在线观看视频在线 | 国产精品久久电影网 | 久热免费| 五月天激情视频 | 9999国产精品| 91色视频| 中文字幕亚洲综合久久五月天色无吗'' | 99色网站 | 日韩av视屏 | 国产精品区二区三区日本 | 中文字幕丝袜制服 | 久久99热久久99精品 | 麻豆视频免费在线观看 | 久久国产精品99久久久久久进口 | 天天摸夜夜添 | 成人精品福利 | 极品美女被弄高潮视频网站 | 免费久久网 | 国产专区视频 | 一级片免费观看 | 国产欧美最新羞羞视频在线观看 | 天天操导航 | 国产成人一区二区三区在线观看 | 国产精品久久久久9999 | 日本二区三区在线 | 久久免费视频在线观看30 | 射射射综合网 | 日韩av二区 | 黄色午夜 | 国产在线观看一区 | 中文字幕人成乱码在线观看 | 狠狠婷婷| av一本久道久久波多野结衣 | 亚洲精品免费视频 | 不卡中文字幕av | 国产精品美女 | 成人在线中文字幕 | 亚洲精品视频二区 | 99精品视频一区 | 婷婷丁香国产 | 麻豆免费精品视频 | 美女网站视频免费黄 | 欧美成人精品三级在线观看播放 | 精品一区91 | 久久婷婷精品 | 激情丁香综合五月 | 精品一区91| 天天草天天插 | 午夜视频在线观看一区 | 免费色视频网址 | 日韩在线资源 | 国产福利不卡视频 | 亚洲精品免费在线视频 | www.色爱| 丁香六月婷 | 91精品视频一区二区三区 | 日韩亚洲欧美中文字幕 | 91九色在线视频观看 | av看片网 | 超碰在线日韩 | 亚洲最大成人网4388xx | 四虎成人精品在永久免费 | 一区二区三区四区五区在线 | 久久精品毛片 | 超级碰碰碰免费视频 | 亚洲三区在线 | 91网在线| 国产91aaa | www.国产在线视频 | 亚洲精品黄色片 | 国产亚洲婷婷免费 | 天天操天天射天天添 | 久久歪歪 | 偷拍精偷拍精品欧洲亚洲网站 | 亚洲动漫在线观看 | 日韩精品免费一线在线观看 | 日本大片免费观看在线 | 在线免费观看视频a | av在观看| 国产精品久久久久9999吃药 | 日本中文字幕在线视频 | 国产福利精品在线观看 | 日一日干一干 | 日韩免费一级a毛片在线播放一级 | 国产日韩在线观看一区 | 国内精品久久久精品电影院 | 亚洲精品一区二区久 | 精品一区二区久久久久久久网站 | 五月花激情 | 中国精品少妇 | 狠狠干中文字幕 | 91在线视频免费 | 国产你懂的在线 | 亚洲视频观看 | 六月丁香综合网 | 亚洲国产综合在线 | 天天操天天爽天天干 | 在线观看免费91 | 在线有码中文字幕 | 国产麻豆精品免费视频 | 国产高清在线看 | 国产乱码精品一区二区蜜臀 | 色av网站| 99久久精品视频免费 | 99精品视频免费看 | 日韩理论片 | 亚洲成人av在线电影 | 午夜国产一区二区 | 欧美日韩精品在线播放 | 欧美一级片免费观看 | 国产免费嫩草影院 | 亚洲成人av免费 | 久久久久久久久电影 | 国产视频2区 | 久久久久久久久久久久久影院 | 亚洲女裸体 | 91av在线视频免费观看 | 久久在线看 | 久久精品国产亚洲aⅴ | 国产色婷婷精品综合在线手机播放 | 中文不卡视频在线 | 国产h片在线观看 | 狠狠躁日日躁夜夜躁av | 字幕网资源站中文字幕 | 麻豆高清免费国产一区 | 在线午夜av| 亚洲日本一区二区在线 | 麻豆一二三精选视频 | 国产精品99久久久久久久久久久久 | 欧美日韩二区在线 | 91精品天码美女少妇 | 国产精品久久久久影院日本 | 国产五月天婷婷 | 91成人在线免费观看 | 欧美日韩国产二区 | 91九色国产 | 欧美日韩中字 | 亚洲精品综合在线观看 | 日本九九视频 | 亚洲人毛片 | 国产精品视频最多的网站 | 97视频中文字幕 | 美女在线观看网站 | 婷婷综合网| 97天堂网 | 免费看一级特黄a大片 | 人人干干人人 | www.黄色| 成人国产精品av | 免费黄色网址网站 | 中文字幕av一区二区三区四区 | 人人网av| 国产裸体永久免费视频网站 | 日韩av中文字幕在线免费观看 | 成人av资源网 | 国产精品免费观看视频 | 国产一级久久久 | 亚洲在线看 | 精品久久久久亚洲 | 国产成视频在线观看 | 日韩r级在线 | 九九免费精品视频在线观看 | 四虎在线免费观看视频 | 四月婷婷在线观看 | 精品久久久亚洲 | 激情综合五月天 | 黄色网址在线播放 | 久久综合中文字幕 | 国产精品 999 | 天天综合网久久综合网 | 国产麻豆视频网站 | 久久成年人 | 国产五月色婷婷六月丁香视频 | 免费麻豆 | 黄色毛片观看 | 国产中文字幕av | 天天天天爽 | 日本中文字幕电影在线免费观看 | 精品免费一区 | 欧美日韩激情视频8区 | 国产美女精品在线 | 天堂av网站 | 天天搞天天干天天色 | 精品在线你懂的 | 日韩专区中文字幕 | 久久久久久美女 | 国产精品男女 | 美女黄频网站 | 国产色就色 | 日韩欧美精品在线 | 激情综合亚洲 | 香蕉免费| 国产精品久久久久久久久毛片 | 国产精品自产拍在线观看蜜 | www久久精品| 国产精品免费久久久久影院仙踪林 | 黄色片网站av | 91精品国产麻豆国产自产影视 | 欧美亚洲免费在线一区 | 黄色三级免费 | 成人毛片100免费观看 | 美女视频一区二区 | 国产精品v欧美精品 | 99久久精品午夜一区二区小说 | 免费视频黄 | 久久久久国产精品一区二区 | 国产日韩欧美在线影视 | 狠狠精品 | 色视频在线看 | 在线成人观看 | 玖玖在线看 | 日本三级大片 | 久久午夜影院 | 久久国产精品系列 | 在线观看国产一区二区 | 激情综合交 | 国产一区二区网址 | 成人毛片一区 | 麻豆传媒视频在线播放 | 超碰人人av | 国产色黄网站 | 99精品久久只有精品 | 西西www444| 精品国模一区二区 | 日韩艹 | 久久不射网站 | 99热999| av免费在线观| 日韩精品免费专区 | 人人搞人人干 | 在线视频在线观看 | 91高清在线 | 在线黄色国产电影 | 色视频 在线 | 尤物一区二区三区 | 久久黄色影院 | 在线视频 国产 日韩 | 久久久久国产成人精品亚洲午夜 | 在线观看精品一区 | 天天干天天拍天天操天天拍 | 欧美在线观看视频一区二区 | 992tv人人网tv亚洲精品 | 麻豆国产网站入口 | 久草手机视频 | 国产一级二级在线 | 9草在线 | 日韩中文字幕免费视频 | 久草在线电影网 | 黄色福利视频网站 | 亚洲人在线7777777精品 | 日日日日日 | 在线视频在线观看 | www.狠狠色.com| 日韩欧美国产激情在线播放 | 国产精品久久久影视 | 天天躁天天操 | 日日操天天射 | 日本午夜免费福利视频 | 在线免费观看国产精品 | 丁香在线观看完整电影视频 | av黄免费看| av大片免费在线观看 | 久久久一本精品99久久精品66 | 日韩久久一区 | 狠狠干网 | 狠狠色噜噜狠狠 | 国产成人精品一区二区三区福利 | 日韩精品资源 | 欧洲一区精品 | 色午夜影院 | 久久草视频 | a级片网站 | 日本在线观看视频一区 | 在线91精品 | 在线观看免费黄色 | 黄色网www | 99中文字幕在线观看 | 日韩在观看线 | 国产精品久久久久久久久免费 | 久久不射电影院 | 在线视频日韩一区 | 成年人视频免费在线播放 | 在线观看视频中文字幕 | 91九色视频网站 | 欧美日韩精品在线一区二区 | 99爱视频在线观看 | 国产婷婷精品 | av中文字幕在线播放 | 黄色一级大片在线免费看国产一 | 国产香蕉97碰碰久久人人 | 人人爽久久久噜噜噜电影 | 免费在线国产精品 | 日日添夜夜添 | 成年人视频在线免费 | 色偷偷97| 日韩欧美一区二区三区在线观看 | 久久免费观看少妇a级毛片 久久久久成人免费 | 97超碰在线人人 | 久久精品99北条麻妃 | 亚洲精品久久久久久久不卡四虎 | 国产九九九精品视频 | 欧美男同网站 | 亚洲黄色av一区 | 久久精品官网 | 亚州激情视频 | 91精品推荐| 久久视频免费看 | 国产一级特黄毛片在线毛片 | 免费在线91 | 欧美日韩国产在线 | 久久久久欠精品国产毛片国产毛生 | 香蕉视频久久久 | 日日婷婷夜日日天干 | 成人va天堂 | 国产成人福利在线 | 欧美一区二区三区在线观看 | 在线观看免费一级片 | 黄色av免费看 | 国产成人精品在线观看 | 国产成人精品一二三区 | 中文字幕乱视频 | 91精品国产自产老师啪 | 在线日韩精品视频 | 国产高清小视频 | 久久久久久久久艹 | 久久国产精品色婷婷 | 在线观看的av | 成人毛片一区 | 中文字幕av网站 | 日韩欧美在线一区 | free,性欧美| 欧美精品在线一区 | 亚洲日本va中文字幕 | 99久久精品久久亚洲精品 | 日日干日日 | 色999视频 | 五月天激情开心 | 久久久久久久久久久久影院 | 激情五月婷婷丁香 | 9999免费视频 | 久久精品视频在线观看 | 在线观看av黄色 | 午夜婷婷综合 | 国产精品免费久久久久影院仙踪林 | 国产成人免费观看久久久 | 丁香视频全集免费观看 | 国产在线观看免 | 毛片无卡免费无播放器 | 黄色网址a| 免费观看完整版无人区 | 免费成人av网站 | 日韩av快播电影网 | 欧美色图亚洲图片 | 久久超| 97人人澡人人添人人爽超碰 | 国产精品福利午夜在线观看 | 91成人区 | 中文字幕第 | 免费在线观看不卡av | 在线视频日韩欧美 | 国产黄色网 | 日韩aa视频 | 91理论片午午伦夜理片久久 | 狠狠操夜夜 | 亚洲精品乱码久久久久久按摩 | 免费三级骚 | 成人一区二区在线观看 | 免费看精品久久片 | 国产中文字幕在线观看 | 久久久久亚洲国产精品 | 免费av在线网站 | 免费观看久久久 | 免费成人在线视频网站 | 国产免费视频在线 | 欧美日韩精品在线一区二区 | 五月天六月婷婷 | 狠狠色噜噜狠狠狠合久 | 午夜精品久久久 | 人人爽久久久噜噜噜电影 | 97超级碰 | www天天干 | 最近最新最好看中文视频 | 五月天综合 | 久久久av电影 | 九九久久精品视频 | 久久人人爽人人爽 | 中文资源在线播放 | av在线一二三区 | 国产成人免费观看 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 欧美专区日韩专区 | 97国产精品亚洲精品 | 欧美久久电影 | 一级黄色电影网站 | 在线免费观看黄色av | 天天综合网入口 | 精品国产成人 | 亚洲精品美女久久久久 | 美女网站久久 | 亚洲h视频在线 | 日韩在线大片 | 国产精品一区久久久久 | 国产特级毛片aaaaaa毛片 | 国产香蕉视频在线播放 | 国产精品一区二区三区在线播放 | 国内精品在线观看视频 | 日韩在线看片 | 精品一区二区免费 | 亚洲日韩欧美一区二区在线 | 中文字幕第一页在线视频 | 亚洲国产精品传媒在线观看 | 久久午夜电影院 | 欧美日韩p片| 99精品视频在线播放免费 | 国产视频每日更新 | 中文字幕91 | 91手机视频在线 | 国产在线观看地址 | 亚洲国产片| 久久99热这里只有精品国产 | 国产小视频国产精品 | 在线免费黄色 | 91在线精品秘密一区二区 | 天天干天天天天 | 97在线公开视频 | 深爱激情站 | 91成人免费观看视频 | 丁香激情视频 | 在线天堂中文在线资源网 | 久久在线观看视频 | 国产精品永久 | 国产精品一区二区久久 | 欧美资源在线观看 | 亚洲aⅴ久久精品 | 欧美网址在线观看 | av理论电影| 91视频在线免费观看 | 免费精品在线观看 | 91av在线精品| 黄色免费看片网站 | 狠狠干天天操 | 国产成人精品日本亚洲999 | 丁香婷婷激情国产高清秒播 | 色福利网| 亚洲jizzjizz日本少妇 | 国产 亚洲 欧美 在线 | 日韩网站在线播放 | 欧美性猛片, | 国产精品s色 | 日韩黄色一级电影 | 九草视频在线 | 欧美三级高清 | 国产精品久久久久久久久久免费看 | 欧美日韩中文字幕综合视频 | 色五婷婷| 九九九九精品九九九九 | 亚洲香蕉在线观看 | 午夜在线免费视频 | 九九九九九九精品 | www中文在线 | 一区二区三区在线观看中文字幕 | 国产精品久久久久久婷婷天堂 | 夜夜躁日日躁狠狠久久av | 99免费在线视频观看 | 日本精品在线 | 国产精品久久久久久久久费观看 | 27xxoo无遮挡动态视频 | 久久久久国产精品一区 | 日韩久久久久久久久久 | 综合久久2023 | 一区免费视频 | 色搞搞| 午夜私人影院久久久久 | 91av电影在线观看 | 亚洲精品一区二区网址 | 日韩大片在线看 | 久久国产精品久久精品国产演员表 | 婷婷五月色综合 | 欧美日韩精品综合 | 999久久久免费视频 午夜国产在线观看 | 91porny九色在线播放 | 精品1区二区 | 最新av免费| 成人av一区二区兰花在线播放 | 亚洲传媒在线 | 日本黄色免费在线 | 中文av网| 福利一区视频 | 国产一线二线三线在线观看 | 中文字幕欧美三区 | 91视频高清完整版 | 国产精品视频永久免费播放 | 亚洲年轻女教师毛茸茸 | 丁香久久婷婷 | 国产日韩欧美自拍 | 色婷婷视频网 | 日韩av中文| 久久久精品国产一区二区电影四季 | 久久成人一区二区 | 国内精品久久久久久久久久久 | 亚洲精品影视 | 欧美一区二区三区在线看 | 色综合久久久久综合体桃花网 | 日日夜夜天天 | av福利超碰网站 | 区一区二区三区中文字幕 | 欧美a视频在线观看 | 久久久久五月天 | 午夜久久福利视频 | 中文字幕国产精品一区二区 | 亚洲欧美日韩在线一区二区 | 国产精品久久久久aaaa九色 | 综合网伊人| 国产精品欧美一区二区三区不卡 | www.com黄色| 国产原创av在线 | 最近免费中文视频 | 久久久久久免费网 | 久久爱资源网 | 免费观看性生活大片3 | 久久综合久久综合久久 | 婷婷色五| 国产成人精品一区二区三区 | 亚洲国产欧美一区二区三区丁香婷 | 亚洲精品小区久久久久久 | 成人教育av | 色在线观看网站 | 制服丝袜在线91 | 五月天综合色 | 日本黄色一级电影 | 日韩中文在线视频 | 色91在线| 在线99 | 五月天婷婷在线播放 | 2023年中文无字幕文字 | 亚洲精品国产精品乱码在线观看 | 日韩精品中文字幕在线不卡尤物 | 国产精品九九久久99视频 | 国产人成在线观看 | 最新av电影网站 | 999久久久欧美日韩黑人 | avav99| av在线免费播放 | 亚洲精品国产精品国 | 色偷偷88888欧美精品久久 | 国产亚洲视频在线 | 亚洲欧美乱综合图片区小说区 | 日本中文乱码卡一卡二新区 | 欧美大片在线观看一区 | 视频在线观看99 | 免费国产视频 | 日韩视频一区二区三区 | 天天天干夜夜夜操 | 国产剧情亚洲 | 色婷婷综合久久久久中文字幕1 | 中文字幕在线观看国产 | 久久亚洲成人网 | 国产香蕉久久精品综合网 | 亚洲精品高清视频在线观看 | 一区二区三区韩国免费中文网站 | av在线a | 91手机视频| 国产做aⅴ在线视频播放 | 日韩精品久久久久久久电影99爱 | 色狠狠综合| 免费污片 | 夜夜嗨av色一区二区不卡 | 99久久久久久久久久 | 一区二区国产精品 | 亚洲在线高清 | 在线午夜 | 婷婷久久亚洲 | 色网站视频 | 婷婷伊人五月天 | 日韩在线观看av | 国产精品一区免费观看 | 最近日本字幕mv免费观看在线 | 在线观看亚洲免费视频 | 日韩在线精品视频 | 四虎成人免费观看 | 国产爽妇网 | 黄色一级网 | 久久国产视频网 | 中午字幕在线 | 麻豆系列在线观看 | 在线观看韩国av | 91精品蜜桃 | 国产精品美女在线 | 一区二区三区在线看 | 中文字幕 国产视频 | 日韩成年视频 | 久久国产精品一国产精品 | 五月丁香 | 午夜丰满寂寞少妇精品 | 久章草在线观看 | 成人在线观看免费视频 | 久久毛片网 | 欧美精品久久久久久久久久 | 天天射天天操天天干 | 日韩字幕| 免费中文字幕视频 | 日韩,中文字幕 | 特级毛片爽www免费版 | 免费日韩 | 麻豆果冻剧传媒在线播放 | 午夜久久久久久久久久影院 | av软件在线观看 | 亚洲激情中文 | 在线中文字幕电影 | 国产三级午夜理伦三级 | 日本在线中文在线 | 欧美日韩国语 | 成人免费观看网址 | 91爱看片 | 黄色小视频在线观看免费 | 欧美a级在线免费观看 | 特级a老妇做爰全过程 | 国产精品免费久久 | 久久精品三级 | 99精品免费| 日韩欧美一区二区三区免费观看 | 超碰97久久 | 一二三区在线 | 91视频91自拍| 欧美调教网站 | 国产日韩中文在线 | 在线国产视频观看 | 99久久这里只有精品 | 二区三区精品 | 国产91在线观 | 黄色av一级| 久久久久综合视频 | 日韩有码第一页 | 午夜手机看片 | 国产精品久久99精品毛片三a | 伊人久操 | 色美女在线 | av在线日韩 | 国产黄色精品在线观看 | 国内精品久久久久久久久久清纯 | 国产偷v国产偷∨精品视频 在线草 | www.国产毛片 | 国产香蕉97碰碰久久人人 | 天天射天天色天天干 | 国产视频精品在线 | 国产高潮久久 | 日本一区二区三区免费观看 | 亚洲成年片 | 91精品区| 国产精品第2页 | 99热官网| 天天搞天天干天天色 | 一区二区三区在线视频111 | 欧美色888 | 久久久国产一区二区三区 | 色噜噜日韩精品一区二区三区视频 | 国产精品免费在线视频 | 在线看中文字幕 | 最新av电影网址 | 亚洲日韩中文字幕在线播放 | 亚洲伊人av | 亚洲精品综合欧美二区变态 | 天天色天天操综合网 | 日精品在线观看 | 在线观看精品 | 天天射天天拍 | 欧美日韩高清免费 | 成人黄色免费在线观看 | 成人久久亚洲 | 蜜臀av性久久久久av蜜臀妖精 | 精品国产伦一区二区三区观看体验 | 97av免费视频 | 日韩理论在线播放 | 中文字幕成人av | 精品国产一区在线观看 | 草久中文字幕 | 久久国内精品99久久6app | 婷婷www| www.久久91| 天天爽天天碰狠狠添 | 国产在线超碰 | 亚洲婷婷在线视频 | 99久久精品免费看国产一区二区三区 | 91精品国产自产在线观看永久 | 国产精品视频免费看 | 久草青青在线观看 | 欧日韩在线 | 日韩黄色在线 | 婷婷丁香花 | 国产色拍拍拍拍在线精品 | 国产手机视频在线 | 久久99久国产精品黄毛片入口 | 欧美一级性生活视频 | 国产精品18久久久 | 日本aa在线 | 亚洲网站在线 | 又黄又刺激视频 | 人人澡人人舔 | 精品女同一区二区三区在线观看 | 成人在线播放网站 | 国产亚洲情侣一区二区无 | 麻豆传媒电影在线观看 | 五月天婷亚洲天综合网鲁鲁鲁 | 不卡日韩av | 91少妇精拍在线播放 | 一区二区精品在线观看 | 91片在线观看 | 久久久久久久久久久久99 | 黄色三级在线观看 | 四虎国产精品免费观看视频优播 | 伊人欧美 | 日韩欧美高清免费 | 人人藻人人澡人人爽 | 久久久国产一区二区三区 | 成人影音在线 | 天天草天天摸 | 亚洲最快最全在线视频 | 国产精品99久久久久的智能播放 | 国产精品午夜免费福利视频 | 热久久精品在线 | 丁香六月在线观看 | 在线小视频你懂得 | 天天射天天射天天射 | 在线91播放 | 久久首页 | 精品免费视频. | 亚洲欧美日韩在线一区二区 | 国产精品情侣视频 | 欧美一区二区三区免费观看 | 国产视频导航 | www.日本色| 天天干夜夜夜 | 久久精品国产成人精品 | 久久av影视 | 在线天堂中文在线资源网 | 亚洲综合精品在线 | a成人v | 九九亚洲精品 | 中文字幕在线资源 | 在线观看国产日韩 | 99精品视频网 | 毛片美女网站 | 中文字幕在线播放一区二区 | 久久se视频| 成人在线免费看 | 久久精品中文 | 最新日韩视频在线观看 | 91少妇精拍在线播放 | 婷婷综合电影 | 亚洲精品午夜视频 | 欧美精品国产综合久久 | 国产专区精品 | 九九色综合 | 久久精品99 | 精品久久一级片 | 日日干日日操 | 国产成人精品一区二区三区在线观看 | 永久免费的啪啪网站免费观看浪潮 | 99re8这里有精品热视频免费 | 久久久免费视频播放 | 久草在线免费看视频 | 99热免费在线 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 中文字幕资源网 | 婷婷丁香自拍 | 久草影视在线观看 | 久久久www成人免费毛片 | 国产精品久免费的黄网站 | 国产一在线精品一区在线观看 | 亚洲精品在线观看av | 最近中文字幕免费观看 | 久草在线资源观看 | 精品亚洲视频在线观看 | 中文字幕电影一区 | 成人av电影在线 | 高清av中文字幕 | 亚洲人成在线电影 | 国产亚洲久一区二区 | 成年美女黄网站色大片免费看 | 亚州av免费 | 欧美精品久久久久久久 | 91香蕉国产 | 99爱在线观看 | 国产经典 欧美精品 | 波多野结衣视频一区 | 天天碰天天操视频 | 婷婷久久综合九色综合 | 日韩在线网址 | 日本中文字幕观看 | 中文字幕一区二区在线播放 | 国产福利午夜 | 精品国产免费人成在线观看 | 日韩美女免费线视频 | 久久精品99精品国产香蕉 | 久精品在线 | 能在线看的av | 亚洲黄色在线观看 | 国产日韩三级 | 国产黄色片在线免费观看 | 日韩中文字幕亚洲一区二区va在线 | 在线观看黄 | 国产96精品 | 五月婷婷黄色 | 日韩经典一区二区三区 | 亚洲专区视频在线观看 | 色婷婷国产在线 | 天天天天天天天天操 | 在线 精品 国产 | 国产精品一区二区av影院萌芽 | 精品中文字幕在线 | 天天综合网天天 | 在线视频欧美精品 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 五月婷婷在线观看视频 | 又黄又刺激的网站 | 久香蕉| 黄免费在线观看 | 不卡国产在线 | 丁香婷婷久久 | 国产精品乱看 | 日韩理论影院 | av中文字幕在线观看网站 | 91福利视频久久久久 | 欧美成人理伦片 | 欧美一级片在线观看视频 | 91久久黄色 |