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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程

發布時間:2025/3/20 Android 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

在本系列的上一篇文章中,我們學習了WMS的誕生,WMS被創建后,它的重要的成員有哪些?Window添加過程的WMS部分做了什么呢?這篇文章會給你解答。

1.WMS的重要成員

所謂WMS的重要成員是指WMS中的重要的成員變量,如下所示。
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java

final WindowManagerPolicy mPolicy; final IActivityManager mActivityManager; final ActivityManagerInternal mAmInternal; final AppOpsManager mAppOps; final DisplaySettings mDisplaySettings; ... final ArraySet<Session> mSessions = new ArraySet<>(); final WindowHashMap mWindowMap = new WindowHashMap(); final ArrayList<AppWindowToken> mFinishedStarting = new ArrayList<>(); final ArrayList<AppWindowToken> mFinishedEarlyAnim = new ArrayList<>(); final ArrayList<AppWindowToken> mWindowReplacementTimeouts = new ArrayList<>(); final ArrayList<WindowState> mResizingWindows = new ArrayList<>(); final ArrayList<WindowState> mPendingRemove = new ArrayList<>(); WindowState[] mPendingRemoveTmp = new WindowState[20]; final ArrayList<WindowState> mDestroySurface = new ArrayList<>(); final ArrayList<WindowState> mDestroyPreservedSurface = new ArrayList<>(); ... final H mH = new H(); ... final WindowAnimator mAnimator; ...final InputManagerService mInputManager

這里列出了WMS的部分成員變量,下面分別對它們進行簡單的介紹。

mPolicy:WindowManagerPolicy
WindowManagerPolicy(WMP)類型的變量。WindowManagerPolicy是窗口管理策略的接口類,用來定義一個窗口策略所要遵循的通用規范,并提供了WindowManager所有的特定的UI行為。它的具體實現類為PhoneWindowManager,這個實現類在WMS創建時被創建。WMP允許定制窗口層級和特殊窗口類型以及關鍵的調度和布局。

mSessions:ArraySet
ArraySet類型的變量,元素類型為Session。在Android解析WindowManager(三)Window的添加過程這篇文章中我提到過Session,它主要用于進程間通信,其他的應用程序進程想要和WMS進程進行通信就需要經過Session,并且每個應用程序進程都會對應一個Session,WMS保存這些Session用來記錄所有向WMS提出窗口管理服務的客戶端。
mWindowMap:WindowHashMap
WindowHashMap類型的變量,WindowHashMap繼承了HashMap,它限制了HashMap的key值的類型為IBinder,value值的類型為WindowState。WindowState用于保存窗口的信息,在WMS中它用來描述一個窗口。綜上得出結論,mWindowMap就是用來保存WMS中各種窗口的集合。

mFinishedStarting:ArrayList
ArrayList類型的變量,元素類型為AppWindowToken,它是WindowToken的子類。要想理解mFinishedStarting的含義,需要先了解WindowToken是什么。WindowToken主要有兩個作用:

  • 可以理解為窗口令牌,當應用程序想要向WMS申請新創建一個窗口,則需要向WMS出示有效的WindowToken。AppWindowToken作為WindowToken的子類,主要用來描述應用程序的WindowToken結構,
    應用程序中每個Activity都對應一個AppWindowToken。
  • WindowToken會將相同組件(比如Acitivity)的窗口(WindowState)集合在一起,方便管理。

mFinishedStarting就是用于存儲已經完成啟動的應用程序窗口(比如Acitivity)的AppWindowToken的列表。
除了mFinishedStarting,還有類似的mFinishedEarlyAnim和mWindowReplacementTimeouts,其中mFinishedEarlyAnim存儲了已經完成窗口繪制并且不需要展示任何已保存surface的應用程序窗口的AppWindowToken。mWindowReplacementTimeout存儲了等待更換的應用程序窗口的AppWindowToken,如果更換不及時,舊窗口就需要被處理。

mResizingWindows:ArrayList
ArrayList類型的變量,元素類型為WindowState。
mResizingWindows是用來存儲正在調整大小的窗口的列表。與mResizingWindows類似的還有mPendingRemove、mDestroySurface和mDestroyPreservedSurface等等。其中mPendingRemove是在內存耗盡時設置的,里面存有需要強制刪除的窗口。mDestroySurface里面存有需要被Destroy的Surface。mDestroyPreservedSurface里面存有窗口需要保存的等待銷毀的Surface,為什么窗口要保存這些Surface?這是因為當窗口經歷Surface變化時,窗口需要一直保持舊Surface,直到新Surface的第一幀繪制完成。

mAnimator:WindowAnimator
WindowAnimator類型的變量,用于管理窗口的動畫以及特效動畫。

mH:H
H類型的變量,系統的Handler類,用于將任務加入到主線程的消息隊列中,這樣代碼邏輯就會在主線程中執行。

mInputManager:InputManagerService
InputManagerService類型的變量,輸入系統的管理者。InputManagerService(IMS)會對觸摸事件進行處理,它會尋找一個最合適的窗口來處理觸摸反饋信息,WMS是窗口的管理者,因此,WMS“理所應當”的成為了輸入系統的中轉站,WMS包含了IMS的引用不足為怪。

2.Window的添加過程(WMS部分)

我們知道Window的操作分為兩大部分,一部分是WindowManager處理部分,另一部分是WMS處理部分,如下所示。
在Android解析WindowManager(三)Window的添加過程這篇文章中,我講解了Window的添加過程的WindowManager處理部分,這一篇文章我們接著來學習Window的添加過程的WMS部分。
無論是系統窗口還是Activity,它們的Window的添加過程都會調用WMS的addWindow方法,由于這個方法代碼邏輯比較多,這里分為3個部分來閱讀。
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java

addWindow方法part1

public int addWindow(Session session, IWindow client, int seq,WindowManager.LayoutParams attrs, int viewVisibility, int displayId,Rect outContentInsets, Rect outStableInsets, Rect outOutsets,InputChannel outInputChannel) {int[] appOp = new int[1];int res = mPolicy.checkAddPermission(attrs, appOp);//1if (res != WindowManagerGlobal.ADD_OKAY) {return res;}...synchronized(mWindowMap) {if (!mDisplayReady) {throw new IllegalStateException("Display has not been initialialized");}final DisplayContent displayContent = mRoot.getDisplayContentOrCreate(displayId);//2if (displayContent == null) {Slog.w(TAG_WM, "Attempted to add window to a display that does not exist: "+ displayId + ". Aborting.");return WindowManagerGlobal.ADD_INVALID_DISPLAY;}...if (type >= FIRST_SUB_WINDOW && type <= LAST_SUB_WINDOW) {//3parentWindow = windowForClientLocked(null, attrs.token, false);//4if (parentWindow == null) {Slog.w(TAG_WM, "Attempted to add window with token that is not a window: "+ attrs.token + ". Aborting.");return WindowManagerGlobal.ADD_BAD_SUBWINDOW_TOKEN;}if (parentWindow.mAttrs.type >= FIRST_SUB_WINDOW&& parentWindow.mAttrs.type <= LAST_SUB_WINDOW) {Slog.w(TAG_WM, "Attempted to add window with token that is a sub-window: "+ attrs.token + ". Aborting.");return WindowManagerGlobal.ADD_BAD_SUBWINDOW_TOKEN;}}... } ... }

WMS的addWindow返回的是addWindow的各種狀態,比如添加Window成功,無效的display等等,這些狀態被定義在WindowManagerGlobal中。
注釋1處根據Window的屬性,調用WMP的checkAddPermission方法來檢查權限,具體的實現在PhoneWindowManager的checkAddPermission方法中,如果沒有權限則不會執行后續的代碼邏輯。注釋2處通過displayId來獲得窗口要添加到哪個DisplayContent上,如果沒有找到DisplayContent,則返回WindowManagerGlobal.ADD_INVALID_DISPLAY這一狀態,其中DisplayContent用來描述一塊屏幕。注釋3處,type代表一個窗口的類型,它的數值介于FIRST_SUB_WINDOW和LAST_SUB_WINDOW之間(1000~1999),這個數值定義在WindowManager中,說明這個窗口是一個子窗口,不了解窗口類型取值范圍的請閱讀Android解析WindowManager(二)Window的屬性這篇文章。注釋4處,attrs.token是IBinder類型的對象,windowForClientLocked方法內部會根據attrs.token作為key值從mWindowMap中得到該子窗口的父窗口。接著對父窗口進行判斷,如果父窗口為null或者type的取值范圍不正確則會返回錯誤的狀態。

addWindow方法part2

...AppWindowToken atoken = null;final boolean hasParent = parentWindow != null;WindowToken token = displayContent.getWindowToken(hasParent ? parentWindow.mAttrs.token : attrs.token);//1final int rootType = hasParent ? parentWindow.mAttrs.type : type;//2boolean addToastWindowRequiresToken = false;if (token == null) {if (rootType >= FIRST_APPLICATION_WINDOW && rootType <= LAST_APPLICATION_WINDOW) {Slog.w(TAG_WM, "Attempted to add application window with unknown token "+ attrs.token + ". Aborting.");return WindowManagerGlobal.ADD_BAD_APP_TOKEN;}if (rootType == TYPE_INPUT_METHOD) {Slog.w(TAG_WM, "Attempted to add input method window with unknown token "+ attrs.token + ". Aborting.");return WindowManagerGlobal.ADD_BAD_APP_TOKEN;}if (rootType == TYPE_VOICE_INTERACTION) {Slog.w(TAG_WM, "Attempted to add voice interaction window with unknown token "+ attrs.token + ". Aborting.");return WindowManagerGlobal.ADD_BAD_APP_TOKEN;}if (rootType == TYPE_WALLPAPER) {Slog.w(TAG_WM, "Attempted to add wallpaper window with unknown token "+ attrs.token + ". Aborting.");return WindowManagerGlobal.ADD_BAD_APP_TOKEN;}...if (type == TYPE_TOAST) {// Apps targeting SDK above N MR1 cannot arbitrary add toast windows.if (doesAddToastWindowRequireToken(attrs.packageName, callingUid,parentWindow)) {Slog.w(TAG_WM, "Attempted to add a toast window with unknown token "+ attrs.token + ". Aborting.");return WindowManagerGlobal.ADD_BAD_APP_TOKEN;}}final IBinder binder = attrs.token != null ? attrs.token : client.asBinder();token = new WindowToken(this, binder, type, false, displayContent,session.mCanAddInternalSystemWindow);//3} else if (rootType >= FIRST_APPLICATION_WINDOW && rootType <= LAST_APPLICATION_WINDOW) {//4atoken = token.asAppWindowToken();//5if (atoken == null) {Slog.w(TAG_WM, "Attempted to add window with non-application token "+ token + ". Aborting.");return WindowManagerGlobal.ADD_NOT_APP_TOKEN;} else if (atoken.removed) {Slog.w(TAG_WM, "Attempted to add window with exiting application token "+ token + ". Aborting.");return WindowManagerGlobal.ADD_APP_EXITING;}} else if (rootType == TYPE_INPUT_METHOD) {if (token.windowType != TYPE_INPUT_METHOD) {Slog.w(TAG_WM, "Attempted to add input method window with bad token "+ attrs.token + ". Aborting.");return WindowManagerGlobal.ADD_BAD_APP_TOKEN;}}...

注釋1處通過displayContent的getWindowToken方法來得到WindowToken。注釋2處,如果有父窗口就將父窗口的type值賦值給rootType,如果沒有將當前窗口的type值賦值給rootType。接下來如果WindowToken為null,則根據rootType或者type的值進行區分判斷,如果rootType值等于TYPE_INPUT_METHOD、TYPE_WALLPAPER等值時,則返回狀態值WindowManagerGlobal.ADD_BAD_APP_TOKEN,說明rootType值等于TYPE_INPUT_METHOD、TYPE_WALLPAPER等值時是不允許WindowToken為null的。通過多次的條件判斷篩選,最后會在注釋3處隱式創建WindowToken,這說明當我們添加窗口時是可以不向WMS提供WindowToken的,前提是rootType和type的值不為前面條件判斷篩選的值。WindowToken隱式和顯式的創建肯定是要加以區分的,注釋3處的第4個參數為false就代表這個WindowToken是隱式創建的。接下來的代碼邏輯就是WindowToken不為null的情況,根據rootType和type的值進行判斷,比如在注釋4處判斷如果窗口為應用程序窗口,在注釋5處會將WindowToken轉換為專門針對應用程序窗口的AppWindowToken,然后根據AppWindowToken的值進行后續的判斷。

addWindow方法part3

... final WindowState win = new WindowState(this, session, client, token, parentWindow,appOp[0], seq, attrs, viewVisibility, session.mUid,session.mCanAddInternalSystemWindow);//1if (win.mDeathRecipient == null) {//2// Client has apparently died, so there is no reason to// continue.Slog.w(TAG_WM, "Adding window client " + client.asBinder()+ " that is dead, aborting.");return WindowManagerGlobal.ADD_APP_EXITING;}if (win.getDisplayContent() == null) {//3Slog.w(TAG_WM, "Adding window to Display that has been removed.");return WindowManagerGlobal.ADD_INVALID_DISPLAY;}mPolicy.adjustWindowParamsLw(win.mAttrs);//4 win.setShowToOwnerOnlyLocked(mPolicy.checkShowToOwnerOnly(attrs));res = mPolicy.prepareAddWindowLw(win, attrs);//5 ...win.attach();mWindowMap.put(client.asBinder(), win);//6if (win.mAppOp != AppOpsManager.OP_NONE) {int startOpResult = mAppOps.startOpNoThrow(win.mAppOp, win.getOwningUid(),win.getOwningPackage());if ((startOpResult != AppOpsManager.MODE_ALLOWED) &&(startOpResult != AppOpsManager.MODE_DEFAULT)) {win.setAppOpVisibilityLw(false);}}final AppWindowToken aToken = token.asAppWindowToken();if (type == TYPE_APPLICATION_STARTING && aToken != null) {aToken.startingWindow = win;if (DEBUG_STARTING_WINDOW) Slog.v (TAG_WM, "addWindow: " + aToken+ " startingWindow=" + win);}boolean imMayMove = true;win.mToken.addWindow(win);//7if (type == TYPE_INPUT_METHOD) {win.mGivenInsetsPending = true;setInputMethodWindowLocked(win);imMayMove = false;} else if (type == TYPE_INPUT_METHOD_DIALOG) {displayContent.computeImeTarget(true /* updateImeTarget */);imMayMove = false;} else {if (type == TYPE_WALLPAPER) {displayContent.mWallpaperController.clearLastWallpaperTimeoutTime();displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;} else if ((attrs.flags&FLAG_SHOW_WALLPAPER) != 0) {displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;} else if (displayContent.mWallpaperController.isBelowWallpaperTarget(win)) {displayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;}}...

在注釋1處創建了WindowState,它存有窗口的所有的狀態信息,在WMS中它代表一個窗口。從WindowState傳入的參數,可以發現WindowState中包含了WMS、Session、WindowToken、父類的WindowState、LayoutParams等信息。緊接著在注釋2和3處分別判斷請求添加窗口的客戶端是否已經死亡、窗口的DisplayContent是否為null,如果是則不會再執行下面的代碼邏輯。注釋4處調用了WMP的adjustWindowParamsLw方法,該方法的實現在PhoneWindowManager中,會根據窗口的type對窗口的LayoutParams的一些成員變量進行修改。注釋5處調用WMP的prepareAddWindowLw方法,用于準備將窗口添加到系統中。
注釋6處將WindowState添加到mWindowMap中。注釋7處將WindowState添加到該WindowState對應的WindowToken中(實際是保存在WindowToken的父類WindowContainer中),這樣WindowToken就包含了相同組件的WindowState。

addWindow方法總結

addWindow方法分了3個部分來進行講解,主要就是做了下面4件事:

  • 對所要添加的窗口進行檢查,如果窗口不滿足一些條件,就不會再執行下面的代碼邏輯。
  • WindowToken相關的處理,比如有的窗口類型需要提供WindowToken,沒有提供的話就不會執行下面的代碼邏輯,有的窗口類型則需要由WMS隱式創建WindowToken。
  • WindowState的創建和相關處理,將WindowToken和WindowState相關聯。
  • 創建和配置DisplayContent,完成窗口添加到系統前的準備工作。
  • 結語

    在本篇文章中我們首先學習了WMS的重要成員,了解這些成員有利于對WMS的進一步分析。接下來我們又學習了Window的添加過程的WMS部分,將addWindow方法分為了3個部分來進行講解,從addWindow方法我們得知WMS有3個重要的類分別是WindowToken、WindowState和DisplayContent,關于它們會在本系列后續的文章中進行介紹。

    ?

    轉載于:https://www.cnblogs.com/ganchuanpu/p/6864088.html

    總結

    以上是生活随笔為你收集整理的Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    久久99久久99精品免观看软件 | 综合久久精品 | 深爱开心激情 | 9999激情 | 999抗病毒口服液 | 国产视频精品网 | 99精品视频在线 | 久久成人欧美 | 2000xxx影视 | 欧美精品一区二区在线观看 | 99精品国产高清在线观看 | 精品999在线观看 | 久草视频在 | 国产黄色特级片 | 日日操操操 | 日韩精品播放 | 亚洲一级二级 | 九九久久久 | 国产无遮挡又黄又爽在线观看 | 国产精品黑丝在线观看 | 91久久偷偷做嫩草影院 | 色悠悠久久综合 | 菠萝菠萝在线精品视频 | 国产精品1区2区3区 久久免费视频7 | 久久综合九九 | 久久精品视频国产 | 国产日产欧美在线观看 | 808电影 | 免费日韩一区二区 | 欧美激情第28页 | 日本中文字幕电影在线免费观看 | 免费99视频 | 国产成人精品久久亚洲高清不卡 | 免费在线一区二区三区 | 91麻豆免费视频 | 中文字幕.av.在线 | 亚洲人片在线观看 | 成人免费视频网 | 国产人成看黄久久久久久久久 | 国产精品免费久久久久久久久久中文 | 精品国产色 | 最新中文字幕在线观看视频 | 日p视频在线观看 | 亚洲另类人人澡 | 波多野结衣综合网 | 欧美国产精品一区二区 | 精品久久网 | 视频福利在线观看 | 在线免费av观看 | 久久男人免费视频 | 免费成人av网站 | 天天综合久久综合 | 久草视频免费在线观看 | 高清不卡一区二区在线 | 日韩成人免费在线观看 | 深爱婷婷| 亚洲精品动漫成人3d无尽在线 | 久久综合色天天久久综合图片 | 人人爽久久涩噜噜噜网站 | 精品一区二区在线观看 | 九九在线国产视频 | 色综合久久悠悠 | 欧美一级大片在线观看 | 日韩一区二区三区高清在线观看 | 日韩精品免费专区 | 永久黄网站色视频免费观看w | 天天干视频在线 | 日韩精品免费一区 | 男女免费视频观看 | 黄色一级在线视频 | 玖玖在线资源 | 国产精品ⅴa有声小说 | 综合色狠狠 | 天天综合色 | 国产日本在线 | 国产精品一区二区三区免费看 | 黄色成人毛片 | 在线国产一区二区三区 | 在线视频91 | 亚洲精品永久免费视频 | 黄色小网站在线观看 | 91精品国产综合久久福利 | 玖玖爱免费视频 | 丁香婷婷综合色啪 | 日韩高清激情 | 最近的中文字幕大全免费版 | 在线免费观看成人 | 免费高清在线观看成人 | 超碰在线免费福利 | 亚洲精品美女免费 | 色婷婷综合成人av | 99久久精品国产一区二区成人 | www·22com天天操 | 亚洲欧美国产精品久久久久 | 丁香午夜婷婷 | 午夜国产在线 | 国语麻豆 | 在线观看不卡的av | www久久国产| 国内视频一区二区 | 视频一区二区国产 | 毛片黄色一级 | 免费三级骚 | 国产999在线| 亚洲成av人影片在线观看 | 伊人久久影视 | 中文字幕在线观看免费观看 | 免费日韩一级片 | 亚洲精品成人在线 | 亚洲高清久久久 | 日韩激情小视频 | 色噜噜日韩精品欧美一区二区 | 中文字幕国语官网在线视频 | www久| 四虎成人免费观看 | 成人 亚洲 欧美 | 国产视频一二三 | 日韩精品一区二区三区三炮视频 | 1024久久 | 色婷婷国产精品一区在线观看 | 色爱区综合激月婷婷 | 日韩美视频| 亚洲黄色在线免费观看 | 日韩精品久久久久久 | 黄色av电影在线观看 | 99色资源 | 久久久麻豆视频 | 欧美另类巨大 | 天天爱天天射天天干天天 | www久久国产 | 精品日本视频 | 91大神精品视频 | 91色一区二区三区 | 天天操天天干天天玩 | 免费成人在线网站 | 亚洲高清精品在线 | 日本精品视频一区二区 | 久久无码av一区二区三区电影网 | 色姑娘综合网 | 日本中文在线观看 | 国产小视频免费在线网址 | 日韩精品中文字幕av | 欧美激情第八页 | 干亚洲少妇 | 日韩精品一区二区三区第95 | 免费看黄色小说的网站 | 亚洲精品国产视频 | 91麻豆高清视频 | 99爱在线 | 美女黄视频免费 | 久久精品中文字幕一区二区三区 | 日韩不卡高清视频 | 欧日韩在线视频 | 狠狠狠狠狠狠狠狠干 | 天天干天天射天天插 | 亚洲激情校园春色 | 91av电影| 99精品久久久久久久久久综合 | 91精品国产成 | 大荫蒂欧美视频另类xxxx | 天天草天天爽 | 久久亚洲热 | 日韩videos高潮hd | 亚洲精品久久久久www | 超碰官网 | 国产视频 久久久 | 亚洲精品在线资源 | 日韩欧美在线高清 | 天天干天天综合 | 欧美日韩一级久久久久久免费看 | 日韩电影中文,亚洲精品乱码 | 免费av观看 | 一区二区三区动漫 | 久久中文字幕在线视频 | 久久一区二区三区国产精品 | 99视频免费在线观看 | 国产精品 日韩 | 成人91在线观看 | 欧美日韩中文在线观看 | 国产网站在线免费观看 | 2020天天干天天操 | 国产视频中文字幕在线观看 | 亚州精品视频 | 欧美精品少妇xxxxx喷水 | 成人97视频 | 黄色三级免费 | 亚洲欧美成人 | 国产精品午夜免费福利视频 | 国产精品视频大全 | 国产精品6 | 综合国产在线 | 欧美久久久久久久久久久久 | 久久精品网址 | 粉嫩aⅴ一区二区三区 | 最新av在线播放 | 欧美日韩午夜爽爽 | 久草视频免费在线播放 | 在线观看久 | 一区二区成人国产精品 | 中文字幕色综合网 | 97碰视频| 网站在线观看你们懂的 | 精品亚洲欧美一区 | 午夜少妇一区二区三区 | 日色在线视频 | 久久草在线视频国产 | 很黄很色很污的网站 | 日本黄色免费网站 | 国产视频久久久久 | 国产一区二区三区 在线 | 91探花在线| 激情深爱 | 啪啪动态视频 | 97视频总站 | 天天爱天天舔 | av成人黄色| 伊人资源视频在线 | 久久久久久久精 | 国产精品24小时在线观看 | 最新av在线免费观看 | 精品一区二区三区香蕉蜜桃 | 久久公开免费视频 | wwwwww黄| 日韩有码第一页 | 精品黄色片 | 中文字幕乱码一区二区 | 丰满少妇一级 | www.夜色.com| 麻豆视频观看 | 欧美福利视频一区 | 六月激情网 | 国产高清视频免费 | 一区二区三区日韩精品 | 欧美孕妇视频 | 久久理论视频 | 久久婷婷精品 | 久久9999久久免费精品国产 | 国产精品一区二区在线观看免费 | 亚洲国产成人在线观看 | 69精品视频 | 五月婷婷丁香激情 | 日韩成人看片 | 青草视频在线 | 一区二区三区久久 | 国产精品视频资源 | 亚洲一区二区视频在线播放 | 久久精品电影 | 日韩欧美一区二区三区免费观看 | 欧亚久久 | 欧美色图狠狠干 | 国产成人一区二 | av在线电影播放 | 中文在线最新版天堂 | 波多野结衣小视频 | 免费a v在线| 欧美视频日韩 | 欧美视频日韩视频 | 免费视频久久久久 | 欧美a√在线 | 99久久久久国产精品免费 | 99视频精品视频高清免费 | 免费在线观看午夜视频 | 国产探花 | 91在线看免费 | 成人黄色短片 | 久久综合成人网 | 996久久国产精品线观看 | 成人午夜电影久久影院 | 日本在线中文在线 | 精品久久久久久亚洲综合网站 | 91一区啪爱嗯打偷拍欧美 | 在线观看中文字幕一区二区 | 麻豆高清免费国产一区 | 嫩草91影院| 亚洲精品欧美专区 | 韩国av三级 | 成人在线视频免费 | 波多野结衣久久资源 | 国产国产人免费人成免费视频 | 国产精品你懂的在线观看 | 激情久久影院 | 五月婷婷狠狠 | 国产一级片网站 | 欧美色插 | 久久精品中文字幕一区二区三区 | 日韩在线播放视频 | 8x8x在线观看视频 | 中文字幕在线日本 | 综合色综合色 | 色综合久久久久综合 | 国内精品久久久久久久久 | 97视频在线观看网址 | 日韩午夜在线观看 | 国产成人高清在线 | 日韩在线激情 | 毛片的网址 | 午夜丁香网 | 免费在线观看视频一区 | 天天狠狠| 97超碰站 | 国产成人精品日本亚洲999 | 久久亚洲日本 | 99在线免费观看视频 | 国产精品无 | 欧美一级片| 亚洲午夜久久久久久久久电影网 | 国产黄色高清 | 欧美一区二区精美视频 | 青青射 | 久久96 | 色av男人的天堂免费在线 | 午夜视频日本 | 在线视频a | 亚洲天天摸日日摸天天欢 | 三级动态视频在线观看 | 国产高清无线码2021 | 韩国视频一区二区三区 | 国产电影一区二区三区四区 | sm免费xx网站 | 日韩高清一区 | av在线短片 | 免费观看视频黄 | 最新极品jizzhd欧美 | 久久国产精品视频 | 午夜久久电影网 | 456成人精品影院 | 激情五月婷婷激情 | 久久av不卡 | 国产麻豆电影在线观看 | 国产视频一二三 | 91在线视频免费播放 | 国产91在线看 | 五月婷婷色综合 | 日韩一二区在线观看 | 久久免费视频在线观看6 | 手机在线观看国产精品 | 永久免费视频国产 | 天天综合导航 | 午夜精品久久久久久久99 | 天天在线免费视频 | 久久久麻豆 | 日韩视频一区二区 | 国产一级免费观看视频 | 亚洲午夜久久久久 | 精品无人国产偷自产在线 | 91福利在线导航 | 一区二区视频欧美 | 在线亚洲欧美视频 | 91亚色视频在线观看 | 波多野结衣在线播放视频 | 91看毛片| 久草在线这里只有精品 | 国产成人一区二区三区电影 | 黄色三级免费 | 97视频在线观看免费 | 天天色图| 特级片免费看 | 涩涩资源网 | 欧美尹人 | 欧美激情视频在线免费观看 | 999久久久久久久久 69av视频在线观看 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 91九色最新地址 | 国产精品久久久久久久久毛片 | 久久综合色天天久久综合图片 | 亚洲午夜久久久久久久久 | 久久九九影视 | 国产99久 | 欧美精品第一 | 九九九热精品免费视频观看网站 | 欧美a免费 | 国产成人综合在线观看 | 中文字幕乱码亚洲精品一区 | 人人干人人干人人干 | 亚洲精品电影在线 | 夜夜爱av| 亚洲乱码久久久 | 国产伦精品一区二区三区照片91 | av青草| 欧美一二区视频 | 免费看的黄色的网站 | 深爱激情综合 | 欧亚日韩精品一区二区在线 | 婷婷激情久久 | 亚洲国产精品99久久久久久久久 | 久草在线免费资源站 | 国产91九色蝌蚪 | 免费在线观看黄网站 | 亚洲国产影院av久久久久 | 久久99国产精品二区护士 | 日韩美女久久 | 亚洲最新av在线网站 | 2019中文最近的2019中文在线 | av资源在线看 | 中文字幕亚洲在线观看 | 99在线热播精品免费99热 | 久草男人天堂 | 日韩精品一区二区三区中文字幕 | 亚洲黄色在线免费观看 | 亚洲天天 | 色婷婷 亚洲 | 国产精品久久久久一区二区 | 欧美日韩国产一区二区三区 | 免费在线观看一区 | 韩国av一区二区 | wwwwww色 | 日韩欧美视频在线播放 | 成年人在线观看网站 | 亚洲伦理电影在线 | 日韩免费av在线 | 一区二区三区三区在线 | 91视频首页 | 久久成人国产精品 | 激情开心 | 麻花传媒mv免费观看 | 精品国产视频一区 | 色五月情| 亚洲精品国产精品乱码在线观看 | 色的网站在线观看 | 亚洲劲爆av| 国产做爰视频 | 国产一区二区三区高清播放 | 婷婷福利影院 | 亚洲一级在线观看 | 看av免费 | 99精品国产99久久久久久97 | 日本在线视频网址 | 91久久国产自产拍夜夜嗨 | 69av视频在线观看 | 色天天综合久久久久综合片 | 国产免费人成xvideos视频 | 国产精品视频免费在线观看 | 亚洲在线视频观看 | 狠狠操狠狠干天天操 | 日韩中文字幕在线看 | 国产精品完整版 | 国产一区二区三区黄 | 亚洲视频高清 | 国产麻豆电影 | 九九久久国产精品 | av天天干 | www.亚洲视频 | 国产精品96久久久久久吹潮 | 久久精彩 | 91成人网在线 | 国产色女 | 欧美成人基地 | 999成人精品 | 中文字幕日韩伦理 | 一区二区中文字幕在线播放 | av片中文 | 日韩欧美视频在线播放 | 91激情视频在线观看 | 婷婷丁香激情综合 | 成年性视频 | 日韩精品高清不卡 | 欧美国产一区二区 | 日韩精品一区二区三区免费观看 | 香蕉视频在线免费看 | 成人在线免费小视频 | 日韩欧美成 | 国产精品国产自产拍高清av | 国产精品一区二区62 | 天天色天天干天天色 | 成人sm另类专区 | 91黄色视屏 | 91私密视频 | 在线成人免费电影 | 亚洲 精品在线视频 | 日日夜夜免费精品视频 | 国产黄色一级大片 | 国内外成人在线 | 精品主播网红福利资源观看 | 欧美成人在线免费 | 婷婷丁香狠狠爱 | www.香蕉视频 | 黄色视屏在线免费观看 | 狠狠搞,com| 97超碰在| 国产+日韩欧美 | 国产一级黄大片 | 成人毛片在线观看 | 天天操综合网 | 久久国产精品免费一区二区三区 | 国产精品18久久久久久久久久久久 | 精品国产美女 | 天堂av中文字幕 | 国产精品久久久久久久久蜜臀 | 欧美天堂影院 | 久久精品小视频 | 久草在线资源视频 | 欧美 日韩 性 | 国产裸体永久免费视频网站 | 久久综合色天天久久综合图片 | 欧美在线观看小视频 | 国产三级香港三韩国三级 | 96精品视频| 狠狠色丁香久久婷婷综合_中 | 日韩精品免费一区二区 | 91av网站在线观看 | 亚洲国产成人高清精品 | 日韩久久久 | 午夜在线免费观看视频 | 午夜精品一区二区三区在线视频 | 亚洲一级二级三级 | 国产成人精品久久久久 | 久久久久成人精品亚洲国产 | 狠狠干狠狠色 | 国产精品白浆 | 91精品老司机久久一区啪 | 在线一区av| 国产精品去看片 | 中文日韩在线视频 | 欧美日韩中文字幕在线视频 | 丁香六月五月婷婷 | 免费 在线 中文 日本 | 综合久久五月天 | 插插插色综合 | 亚洲欧美精品一区二区 | 精品人妖videos欧美人妖 | 精品一区二区三区在线播放 | 国产片免费在线观看视频 | 久久夜色电影 | 九九精品视频在线看 | 国产视频中文字幕在线观看 | 欧美精品久久人人躁人人爽 | 欧美福利网站 | 99这里只有精品99 | 欧美韩国日本在线观看 | 日韩中文字幕a | 亚洲日本在线一区 | 久草在线这里只有精品 | www.69xx| 亚洲成人av电影在线 | 日韩特黄av | 久久激情五月婷婷 | 在线播放 亚洲 | 久久高清片 | 日本久久精品视频 | 在线观看日韩中文字幕 | 久久综合加勒比 | 久久久免费高清视频 | 成人精品亚洲 | 五月天精品视频 | 国产精品av在线免费观看 | 黄色1级大片| 国产精品毛片久久久久久久 | 四虎免费在线观看视频 | 久久精品美女视频 | www日韩在线观看 | 美女视频久久黄 | 欧美一区免费观看 | 97视频在线看 | 成人性生交大片免费看中文网站 | 精品视频免费观看 | 五月婷婷视频在线 | 91视频在线观看大全 | 韩国视频一区二区三区 | 蜜臀久久99精品久久久酒店新书 | 久久午夜电影院 | 福利二区视频 | 欧美人体xx | www.福利视频 | 久久视频一区 | 成人免费在线看片 | 久久久免费高清视频 | 美女黄视频免费 | 狠日日| 激情图片区 | 91久久奴性调教 | 国产亚洲成av人片在线观看桃 | 亚洲伊人成综合网 | 1024手机基地在线观看 | 国产成人精品aaa | 日韩高清在线一区 | 色综合久久久久综合99 | 久久 在线 | 国产精品99久久久久久大便 | www..com黄色片 | 亚洲国产中文字幕在线观看 | 久草97| 日韩在线视频免费看 | 国内视频| 中文字幕在线不卡国产视频 | 久久精品在线免费观看 | 精品一区免费 | 一级成人免费视频 | 天天操天天射天天操 | 天天伊人网 | 亚洲人成免费网站 | 96香蕉视频 | 精品国产乱子伦一区二区 | 日韩3区 | 一区二区三区四区五区六区 | 天天操夜操 | 日本最新中文字幕 | 婷婷四房综合激情五月 | 在线观看视频你懂 | 蜜臀av免费一区二区三区 | 在线观看小视频 | 激情久久网 | 精品国产伦一区二区三区免费 | 久久午夜羞羞影院 | 中文字幕在线播放av | 激情 婷婷 | 三级av免费观看 | 日本激情中文字幕 | 久久美女高清视频 | 成人激情开心网 | 超碰97网站 | 就操操久久 | 在线亚洲午夜片av大片 | 精品国产aⅴ一区二区三区 在线直播av | 成人黄色在线看 | 91精品国产91久久久久福利 | av色综合| 天天操欧美 | 毛片网站免费 | 国产成人精品在线 | 六月丁香在线视频 | 日韩欧美精品一区二区 | 日本久热| 69欧美视频 | 久久综合婷婷 | 99re国产视频 | 亚洲专区欧美专区 | 成人av动漫在线观看 | 日韩com| 国产精品电影一区二区 | 亚洲在线精品视频 | www.玖玖玖 | 九色激情网 | 国产精品手机在线观看 | 中文字幕精品视频 | 亚洲人精品午夜 | 久久精品一区二区三区中文字幕 | 麻豆果冻剧传媒在线播放 | 久久久久国产精品视频 | 欧美在线观看视频一区二区三区 | 99久久999久久久精玫瑰 | 日韩在线中文字幕 | 免费在线一区二区 | 这里只有精品视频在线观看 | 激情五月***国产精品 | 91成人破解版 | 亚洲欧洲久久久 | av动图| 亚洲精品乱码久久久久久写真 | 四虎在线视频 | 成人午夜电影免费在线观看 | 欧美激情视频一区二区三区免费 | 福利一区二区在线 | 激情视频在线观看网址 | 亚洲国产精品第一区二区 | 亚洲涩涩网站 | 亚洲国产网站 | 午夜精品福利一区二区 | 色全色在线资源网 | 91伊人久久大香线蕉蜜芽人口 | 国产精品乱码久久久久 | 在线天堂v | 夜夜操天天操 | 成人黄色在线播放 | 天天操天天草 | 99在线热播精品免费99热 | www.com久久久| 欧美精品一区二区在线观看 | 日韩影片在线观看 | 国产破处视频在线播放 | 日韩精品在线观看视频 | www色片| 在线视频1卡二卡三卡 | 黄色影院在线免费观看 | 99精品久久久 | 在线天堂视频 | 色婷婷国产精品 | av+在线播放在线播放 | 精品国产黄色片 | 久久国产精品久久w女人spa | 国产免费又爽又刺激在线观看 | 波多野结衣最新 | 精品综合久久久 | 97操碰 | 成人av一二三区 | 亚洲色影爱久久精品 | 在线观看小视频 | 久久狠狠一本精品综合网 | 久久99精品国产一区二区三区 | 国产美女免费看 | 91人人澡人人爽人人精品 | 91精品国产91p65 | 综合色久 | 成人在线免费小视频 | 中文在线免费看视频 | 精品成人国产 | 在线观看国产成人av片 | 欧美日韩精品免费观看 | 91九色在线视频观看 | 久久激情五月婷婷 | 久久久久国产精品视频 | 很黄很污的视频网站 | 91九色综合 | 久久久久久久久久久国产精品 | 91看片麻豆 | 亚洲电影自拍 | 97超在线| 精品一区二区免费在线观看 | 久久tv视频 | 成年人电影免费在线观看 | 欧美成人h版电影 | 麻豆国产精品一区二区三区 | 国产精品久久久久久久久搜平片 | 六月丁香婷婷网 | 欧美日韩精品影院 | 欧美色综合天天久久综合精品 | 91精品成人久久 | 精品亚洲免费 | 欧美在线资源 | 99c视频在线 | 9999毛片 | 偷拍福利视频一区二区三区 | 日韩在线电影 | 欧美日韩不卡在线观看 | 青青看片 | 国产在线观看二区 | 青青河边草免费视频 | 婷婷播播网 | 国产成人黄色 | 亚洲精品美女免费 | 在线黄色毛片 | 91在线中文字幕 | 手机看片1042 | av色一区| 精品国产欧美一区二区 | 免费观看性生活大片3 | 三级毛片视频 | 在线国产91 | 日韩精品视频网站 | а中文在线天堂 | 亚洲精品日韩在线观看 | 国产一二三在线视频 | 日韩大片在线播放 | 欧美另类美少妇69xxxx | 精品亚洲国产视频 | 日韩免费av片 | 五月丁香| 婷婷网址 | 婷婷去俺也去六月色 | 午夜久久电影网 | 欧美二区视频 | 久久久精品网 | 九月婷婷色 | 国产剧情久久 | 日韩视频一区二区三区 | a级黄色片视频 | 国产精品美女久久久 | 精品国产91亚洲一区二区三区www | 天天艹天天 | 超碰在线人人草 | 色综合久久综合网 | 国产电影黄色av | 五月婷婷在线视频 | 特级xxxxx欧美 | 999成人免费视频 | 久久精品视频在线观看免费 | 国产精品精品久久久久久 | 国产精品美女久久久久久2018 | 国内精品久久久久国产 | 免费在线a| 国产一区二区午夜 | 色欧美日韩 | 99情趣网视频 | 久久国产精品第一页 | 四虎国产精品免费观看视频优播 | 草久久久久久 | 中文字幕日韩av | 亚洲精品视频一 | 国产资源在线免费观看 | 波多野结衣一区二区三区中文字幕 | 99久久日韩精品视频免费在线观看 | 激情喷水 | 九九视频在线观看视频6 | 天天干天天天天 | 毛片基地黄久久久久久天堂 | 午夜私人影院 | 精品在线免费观看 | 91c网站色版视频 | 在线观看的黄色 | 在线观看色网站 | 九九九九九九精品任你躁 | 国产精品每日更新 | 91九色综合 | 九色视频网 | 成人一级片在线观看 | 成年人黄色av | 国产一级a毛片视频爆浆 | 国产韩国日本高清视频 | 欧美伦理一区二区 | 99久久精品无免国产免费 | 国产精品日韩高清 | 日韩欧美在线免费观看 | 精品国产黄色片 | 碰超在线97人人 | 人人澡人人干 | 五月婷婷六月丁香在线观看 | 免费日韩av片 | 日韩免费视频在线观看 | 欧美日本在线视频 | 天天干天天操天天做 | 国产亚洲精品成人av久久ww | 午夜精品久久久久久久久久 | 天天插综合网 | 欧美黑人巨大xxxxx | 成人97人人超碰人人99 | 日日狠狠 | 日韩高清在线一区二区三区 | 青春草免费在线视频 | 日韩中字在线 | 五月天丁香视频 | 国产美腿白丝袜足在线av | 少妇搡bbb | 国产精品高潮久久av | 亚洲综合色av | 综合网久久 | 亚洲国产成人精品在线观看 | 国产精彩在线视频 | 91传媒在线看 | 欧美日韩亚洲国产一区 | 久草www | 欧美激情综合色综合啪啪五月 | 精品在线视频播放 | 日韩在线视频网 | 美国av片在线观看 | 成人免费91 | 欧美一级片免费播放 | 丁香激情五月 | 91精品欧美 | 在线观看91精品国产网站 | 狠狠色狠狠色综合日日92 | 久久久国产精华液 | 欧美精品久久99 | 精品久久久久久久久久 | 亚洲动漫在线观看 | 久久99亚洲网美利坚合众国 | 免费视频91| 久久久wwww | 欧美日韩亚洲精品在线 | 亚洲国产欧美一区二区三区丁香婷 | www.伊人网| 91片黄在线观看动漫 | 亚洲春色综合另类校园电影 | 99久久这里有精品 | 在线观看视频你懂得 | 久产久精国产品 | 天天综合久久综合 | 亚洲免费视频观看 | 精品国产中文字幕 | 97色免费视频 | 久久人人爽人人爽人人片av免费 | 欧美一级免费黄色片 | 国产一二区免费视频 | 日韩 国产 | 久久69精品 | 欧美午夜视频在线 | 91一区二区三区久久久久国产乱 | 亚洲人成在线观看 | 在线激情电影 | 97成人资源站 | 久久免费精品国产 | 国产精品麻豆视频 | 欧美日韩视频观看 | 日韩欧美电影网 | 伊人婷婷综合 | 日韩久久视频 | av丝袜在线 | 黄在线免费看 | 日韩视频免费 | 亚洲精品视频一二三 | 日韩一级电影网站 | 久久久免费毛片 | 天天操操操操操 | 色在线最新 | 男女日麻批 | 中文字幕 国产专区 | 色综合网| 午夜123| 中文在线www | av一区二区三区在线 | 97精品久久人人爽人人爽 | 深爱激情av | 少妇自拍av | 国产精品一区二区久久 | 黄色中文字幕 | 天天操夜夜操国产精品 | 亚洲在线国产 | 亚洲码国产日韩欧美高潮在线播放 | 国产手机视频在线播放 | av片免费播放 | 亚洲电影第一页av | 国产成年免费视频 | 91精品国产入口 | 欧美日本一区 | 国产91精品一区二区麻豆亚洲 | 在线a亚洲视频播放在线观看 | 在线看国产视频 | 国产视频一区二区在线 | 97在线观看免费视频 | 日本久久成人中文字幕电影 | 伊人永久在线 | 亚洲黄色在线看 | 久久不射网站 | 欧美另类色图 | 国产不卡视频在线 | 激情欧美一区二区三区免费看 | 日韩在线视频看看 | 99免费在线播放99久久免费 | 国产精品福利在线观看 | 国产精品人成电影在线观看 | 色噜噜在线观看视频 | 国产另类av| 亚洲国产电影在线观看 | 日韩精品欧美视频 | 国产精品久久久久久久电影 | 日本久久久久久久久久久 | 99热只有精品在线观看 | 狠狠色狠狠色综合系列 | 超碰av在线 | 欧美综合色在线图区 | 天堂中文在线视频 | 日日干日日 | 久久久黄视频 | 久久无码精品一区二区三区 | 在线电影91| 久久久在线视频 | 久久久久久久久久久久99 | 黄色tv视频 | 九九交易行官网 | 国产资源网 | 亚洲乱码久久久 | 懂色av懂色av粉嫩av分享吧 | 免费进去里的视频 | 亚洲国产欧美在线人成大黄瓜 | 亚洲精品中文字幕视频 | 欧美一级片在线播放 | 中文字幕在线视频网站 | www久草| 在线观看亚洲a | 亚洲精品在线看 | 成人av影院在线观看 | 久久综合色综合88 | 国产色妞影院wwwxxx | 亚洲麻豆精品 | 丁香六月伊人 | 六月丁香六月婷婷 | 999国产在线 | 奇米777777 | 国产日产精品一区二区三区四区的观看方式 | 91麻豆免费版 | 91精品一区二区三区蜜臀 | 成人亚洲免费 | 日批网站在线观看 | 国产一级精品在线观看 | 狠狠色丁香婷婷综合基地 | 国产夫妻性生活自拍 | 99精品视频在线观看播放 | 狠狠黄| 日韩av有码在线 | 青青河边草免费 | 少妇av网| 国产小视频免费在线网址 | 97精品欧美91久久久久久 | 看片网站黄色 | 91在线一区二区 | 国产不卡在线视频 | 国产精品白丝av | 又黄又爽又色无遮挡免费 | 国产一区二区视频在线 | 久久天天躁狠狠躁夜夜不卡公司 | 国内精品视频在线播放 | 国产剧在线观看片 | 日日碰狠狠添天天爽超碰97久久 | 在线播放精品一区二区三区 | 亚洲精品乱码白浆高清久久久久久 | 国产精品永久在线 | 99精品视频在线播放观看 | 在线亚洲精品 | av福利网址导航大全 | 久久人人爽人人爽人人 | 日韩成人精品一区二区三区 | 日日干天天干 | 亚洲精品综合一区二区 | 欧美一级黄大片 | 国产精品久久久久久久久久新婚 | 亚洲在线精品 | 国产成人免费在线 | 丁香狠狠 | 九九九九精品 | 伊人网av |