日韩中文字幕色资源,337p日本欧洲中国大胆精品,亚洲专区视频一区二区,91大神视频在线观看,亚洲av日韩精品久久国产多毛女,日韩一区二区三在线视频,av网站免费在线不卡,黄色国产午夜精品久久久,北条av在线一二三

Android深入淺出之Surface探討

來源:網(wǎng)絡(luò)

點擊:1187

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: Android,Surface

      一 目的

      本節(jié)的目的就是為了講清楚Android中的Surface系統(tǒng),大家耳熟能詳?shù)腟urfaceFlinger到底是個什么東西,它的工作流程又是怎樣的。當然,鑒于SurfaceFlinger的復雜性,我們依然將采用情景分析的辦法,找到合適的切入點。

      一個Activity是怎么在屏幕上顯示出來的呢?我將首先把這個說清楚。

      接著我們把其中的關(guān)鍵調(diào)用抽象在Native層,以這些函數(shù)調(diào)用為切入點來研究SurfaceFlinger。好了,開始我們的征途吧。

      二 Activity是如何顯示的

      最初的想法就是,Activity獲得一塊顯存,然后在上面繪圖,最后交給設(shè)備去顯示。這個道理是沒錯,但是Android的SurfaceFlinger是在System Server進程中創(chuàng)建的,Activity一般另有線程,這之間是如何。..如何掛上關(guān)系的呢?我可以先提前告訴大家,這個過程還比較復雜。呵呵。

      好吧,我們從Activity最初的啟動開始。代碼在

      framework/base/core/java/android/app/ActivityThread.java中,這里有個函數(shù)叫handleLaunchActivity

     ?。?---》ActivityThread:: handleLaunchActivity()]

      private final void handleLaunchActivity(ActivityRecord r, Intent customIntent) {

      Activity a = performLaunchActivity(r, customIntent);

      if (a != null) {

      r.createdConfig = new Configuration(mConfiguration);

      Bundle oldState = r.state;

      handleResumeActivity(r.token, false, r.isForward);

      ----》調(diào)用handleResumeActivity

      }

      handleLaunchActivity中會調(diào)用handleResumeActivity。

     ?。?--》ActivityThread:: handleResumeActivity]

      final void handleResumeActivity(IBinder token, boolean clearHide, boolean isForward) {

      boolean willBeVisible = !a.mStartedActivity;

      if (r.window == null && !a.mFinished && willBeVisible) {

      r.window = r.activity.getWindow();

      View decor = r.window.getDecorView();

      decor.setVisibility(View.INVISIBLE);

      ViewManager wm = a.getWindowManager();

      WindowManager.LayoutParams l = r.window.getAttributes();

      a.mDecor = decor;

      l.type = WindowManager.LayoutParams.TYPE_BASE_APPLICATION;

      if (a.mVisibleFromClient) {

      a.mWindowAdded = true;

      wm.addView(decor, l); //這個很關(guān)鍵。

      }

     

      上面addView那幾行非常關(guān)鍵,它關(guān)系到咱們在Activity中setContentView后,整個Window到底都包含了些什么。我先告訴大家。所有你創(chuàng)建的View之上,還有一個DecorView,這是一個FrameLayout,另外還有一個PhoneWindow。上面這些東西的代碼在

      framework/Policies/Base/Phone/com/android/Internal/policy/impl。這些隱藏的View的創(chuàng)建都是由你在Acitivty的onCreate中調(diào)用setContentView導致的。

     ?。?---》PhoneWindow:: addContentView]

      public void addContentView(View view, ViewGroup.LayoutParams params) {

      if (mContentParent == null) { //剛創(chuàng)建的時候mContentParent為空

      installDecor();

      }

      mContentParent.addView(view, params);

      final Callback cb = getCallback();

      if (cb != null) {

      cb.onContentChanged();

      }

      }

      installDecor將創(chuàng)建mDecor和mContentParent。mDecor是DecorView類型,

      mContentParent是ViewGroup類型

      private void installDecor() {

      if (mDecor == null) {

      mDecor = generateDecor();

      mDecor.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);

      mDecor.setIsRootNamespace(true);

      }

      if (mContentParent == null) {

      mContentParent = generateLayout(mDecor);

      那么,ViewManager wm = a.getWindowManager()又返回什么呢?

      PhoneWindow從Window中派生,Acitivity創(chuàng)建的時候會調(diào)用它的setWindowManager。而這個函數(shù)由Window類實現(xiàn)。

      代碼在framework/base/core/java/android/view/Window.java中

      public void setWindowManager(WindowManager wm,IBinder appToken, String appName) {

      mAppToken = appToken;

      mAppName = appName;

      if (wm == null) {

      wm = WindowManagerImpl.getDefault();

      }

      mWindowManager = new LocalWindowManager(wm);

      }

      你看見沒,分析JAVA代碼這個東西真的很復雜。mWindowManager的實現(xiàn)是LocalWindowManager,但由通過Bridge模式把功能交給WindowManagerImpl去實現(xiàn)了。

      真的很復雜!

      好了,羅里羅嗦的,我們回到wm.addView(decor, l)。最終會由WindowManagerImpl來完成

      addView操作,我們直接看它的實現(xiàn)好了。

      代碼在framework/base/core/java/android/view/WindowManagerImpl.java

     ?。?---》addView]

      private void addView(View view, ViewGroup.LayoutParams params, boolean nest)

      {

      ViewRoot root; //ViewRoot,我們的主人公終于登場!

      synchronized (this) {

      root = new ViewRoot(view.getContext());

      root.mAddNesting = 1;

      view.setLayoutParams(wparams);

      if (mViews == null) {

      index = 1;

      mViews = new View[1];

      mRoots = new ViewRoot[1];

      mParams = new WindowManager.LayoutParams[1];

      } else {

      }

      index--;

      mViews[index] = view;

      mRoots[index] = root;

      mParams[index] = wparams;

      }

      root.setView(view, wparams, panelParentView);

      }

     

      ViewRoot是整個顯示系統(tǒng)中最為關(guān)鍵的東西,看起來這個東西好像和View有那么點關(guān)系,其實它根本和View等UI關(guān)系不大,它不過是一個Handler罷了,唯一有關(guān)系的就是它其中有一個變量為Surface類型。我們看看它的定義。ViewRoot代碼在

      framework/base/core/java/android/view/ViewRoot.java中

      public final class ViewRoot extends Handler implements ViewParent,

      View.AttachInfo.Callbacks

      {

      private final Surface mSurface = new Surface();

      }

      它竟然從handler派生,而ViewParent不過定義了一些接口函數(shù)罷了。

      看到Surface直覺上感到它和SurfaceFlinger有點關(guān)系。要不先去看看?

      Surface代碼在framework/base/core/java/android/view/Surface.java中,我們調(diào)用的是無參構(gòu)造函數(shù)。

      public Surface() {

      mCanvas = new CompatibleCanvas(); //就是創(chuàng)建一個Canvas!

      }

      如果你有興趣的話,看看Surface其他構(gòu)造函數(shù),最終都會調(diào)用native的實現(xiàn),而這些native的實現(xiàn)將和SurfaceFlinger建立關(guān)系,但我們這里ViewRoot中的mSurface顯然還沒有到這一步。那它到底是怎么和SurfaceFlinger搞上的呢?這一切待會就會水落石出的。

      另外,為什么ViewRoot是主人公呢?因為ViewRoot建立了客戶端和SystemServer的關(guān)系。我們看看它的構(gòu)造函數(shù)。

      public ViewRoot(Context context) {

      super();

      。..。

      getWindowSession(context.getMainLooper());

      }

      getWindowsession將建立和WindowManagerService的關(guān)系。

      ublic static IWindowSession getWindowSession(Looper mainLooper) {

      synchronized (mStaticInit) {

      if (!mInitialized) {

      try {

      //sWindowSession是通過Binder機制創(chuàng)建的。終于讓我們看到點希望了

      InputMethodManager imm = InputMethodManager.getInstance(mainLooper);

      sWindowSession = IWindowManager.Stub.asInterface(

      ServiceManager.getService(“window”))

      .openSession(imm.getClient(), imm.getInputContext());

      mInitialized = true;

      } catch (RemoteException e) {

      }

      }

      return sWindowSession;

      }

      }

      上面跨Binder的進程調(diào)用另一端是WindowManagerService,代碼在

      framework/base/services/java/com/android/server/WindowManagerService.java中。我們先不說這個。

      回過頭來看看ViewRoot接下來的調(diào)用。

     ?。?-》ViewRoot::setView()],這個函數(shù)很復雜,我們看其中關(guān)鍵幾句。

      public void setView(View view, WindowManager.LayoutParams attrs,

      View panelParentView) {

      synchronized (this) {

      requestLayout();

      try {

      res = sWindowSession.add(mWindow, mWindowAttributes,

      getHostVisibility(), mAttachInfo.mContentInsets);

      }

      }

      requestLayout實現(xiàn)很簡單,就是往handler中發(fā)送了一個消息。

      public void requestLayout() {

      checkThread();

      mLayoutRequested = true;

      scheduleTraversals(); //發(fā)送DO_TRAVERSAL消息

      }

      public void scheduleTraversals() {

      if (!mTraversalScheduled) {

      mTraversalScheduled = true;

      sendEmptyMessage(DO_TRAVERSAL);

      }

      }

     

      我們看看跨進程的那個調(diào)用。sWindowSession.add。它的最終實現(xiàn)在WindowManagerService中。

     ?。?--》WindowSession::add()]

      public int add(IWindow window, WindowManager.LayoutParams attrs,

      int viewVisibility, Rect outContentInsets) {

      return addWindow(this, window, attrs, viewVisibility, outContentInsets);

      }

      WindowSession是個內(nèi)部類,會調(diào)用外部類的addWindow

      這個函數(shù)巨復雜無比,但是我們的核心目標是找到創(chuàng)建顯示相關(guān)的部分。所以,最后精簡的話就簡單了。

      [---》WindowManagerService:: addWindow]

      public int addWindow(Session session, IWindow client,

      WindowManager.LayoutParams attrs, int viewVisibility,

      Rect outContentInsets) {

      //創(chuàng)建一個WindowState,這個又是什么玩意兒呢?

      win = new WindowState(session, client, token,

      attachedWindow, attrs, viewVisibility);

      win.attach();

      return res;

      }

      WindowState類中有一個和Surface相關(guān)的成員變量,叫SurfaceSession。它會在

      attach函數(shù)中被創(chuàng)建。SurfaceSession嘛,就和SurfaceFlinger有關(guān)系了。我們待會看。

      好,我們知道ViewRoot創(chuàng)建及調(diào)用add后,我們客戶端的View系統(tǒng)就和WindowManagerService建立了牢不可破的關(guān)系。

      另外,我們知道ViewRoot是一個handler,而且剛才我們調(diào)用了requestLayout,所以接下來消息循環(huán)下一個將調(diào)用的就是ViewRoot的handleMessage。

      public void handleMessage(Message msg) {

      switch (msg.what) {

      case DO_TRAVERSAL:

      performTraversals();

      performTraversals更加復雜無比,經(jīng)過我仔細挑選,目標鎖定為下面幾個函數(shù)。當然,后面我們還會回到performTraversals,不過我們現(xiàn)在更感興趣的是Surface是如何創(chuàng)建的。

      private void performTraversals() {

      // cache mView since it is used so much below.。.

      final View host = mView;

      boolean initialized = false;

      boolean contentInsetsChanged = false;

      boolean visibleInsetsChanged;

      try {

      //ViewRoot也有一個Surface成員變量,叫mSurface,這個就是代表SurfaceFlinger的客戶端

      //ViewRoot在這個Surface上作畫,最后將由SurfaceFlinger來合成顯示。剛才說了mSurface還沒有什么內(nèi)容。

      relayoutResult = relayoutWindow(params, viewVisibility, insetsPending);

      [----》ViewRoot:: relayoutWindow()]

      private int relayoutWindow(WindowManager.LayoutParams params, int viewVisibility,

      boolean insetsPending) throws RemoteException {

      //relayOut是跨進程調(diào)用,mSurface做為參數(shù)傳進去了,看來離真相越來越近了呀!

      int relayoutResult = sWindowSession.relayout(

      mWindow, params,

     ?。╥nt) (mView.mMeasuredWidth * appScale + 0.5f),

      (int) (mView.mMeasuredHeight * appScale + 0.5f),

      viewVisibility, insetsPending, mWinFrame,

      mPendingContentInsets, mPendingVisibleInsets,

      mPendingConfiguration, mSurface); mSurface做為參數(shù)傳進去了。

      }

      我們趕緊轉(zhuǎn)到WindowManagerService去看看吧。、

      public int relayoutWindow(Session session, IWindow client,

      WindowManager.LayoutParams attrs, int requestedWidth,

      int requestedHeight, int viewVisibility, boolean insetsPending,

      Rect outFrame, Rect outContentInsets, Rect outVisibleInsets,

      Configuration outConfig, Surface outSurface){

      。..。.

      try {

      //看到這里,我內(nèi)心一陣狂喜,有戲,太有戲了!

      //其中win是我們最初創(chuàng)建的WindowState!

      Surface surface = win.createSurfaceLocked();

      if (surface != null) {

      //先創(chuàng)建一個本地surface,然后把傳入的參數(shù)outSurface copyFrom一下

      outSurface.copyFrom(surface);

      win.mReportDestroySurface = false;

      win.mSurfacePendingDestroy = false;

      } else {

      outSurface.release();

      }

      }

      }

      [---》WindowState::createSurfaceLocked]

      Surface createSurfaceLocked() {

      try {

      mSurface = new Surface(

      mSession.mSurfaceSession, mSession.mPid,

      mAttrs.getTitle().toString(),

      0, w, h, mAttrs.format, flags);

      }

      Surface.openTransaction();

      這里使用了Surface的另外一個構(gòu)造函數(shù)。

      public Surface(SurfaceSession s,

      int pid, String name, int display, int w, int h, int format, int flags)

      throws OutOfResourcesException {

      mCanvas = new CompatibleCanvas();

      init(s,pid,name,display,w,h,format,flags); ----》調(diào)用了native的init函數(shù)。

      mName = name;

      }

      到這里,不進入JNI是不可能說清楚了。不過我們要先回顧下之前的關(guān)鍵步驟。

     

      l add中,new了一個SurfaceSession

      l 創(chuàng)建new了一個Surface

      l 調(diào)用copyFrom,把本地Surface信息傳到outSurface中

      JNI層

      上面兩個類的JNI實現(xiàn)都在framework/base/core/jni/android_view_Surface.cpp中。

     ?。?---》SurfaceSession:: SurfaceSession()]

      public class SurfaceSession {

      /** Create a new connection with the surface flinger. */

      public SurfaceSession() {

      init();

      }

      它的init函數(shù)對應為:

     ?。?--》SurfaceSession_init]

      static void SurfaceSession_init(JNIEnv* env, jobject clazz)

      {

      //SurfaceSession對應為SurfaceComposerClient

      sp《SurfaceComposerClient》 client = new SurfaceComposerClient;

      client-》incStrong(clazz);

      //Google常用做法,在JAVA對象中保存C++對象的指針。

      env-》SetIntField(clazz, sso.client, (int)client.get());

      }

      Surface的init對應為:

      [---》Surface_init]

      static void Surface_init(

      JNIEnv* env, jobject clazz,

      jobject session,

      jint pid, jstring jname, jint dpy, jint w, jint h, jint format, jint flags)

      {

      SurfaceComposerClient* client =

     ?。⊿urfaceComposerClient*)env-》GetIntField(session, sso.client);

      sp《SurfaceControl》 surface;

      if (jname == NULL) {

      //client是SurfaceComposerClient,返回的surface是一個SurfaceControl

      //真得很復雜!

      surface = client-》createSurface(pid, dpy, w, h, format, flags);

      } else {

      const jchar* str = env-》GetStringCritical(jname, 0);

      const String8 name(str, env-》GetStringLength(jname));

      env-》ReleaseStringCritical(jname, str);

      surface = client-》createSurface(pid, name, dpy, w, h, format, flags);

      }

      //把surfaceControl信息設(shè)置到Surface對象中

      setSurfaceControl(env, clazz, surface);

      }

      static void setSurfaceControl(JNIEnv* env, jobject clazz,

      const sp《SurfaceControl》& surface)

      {

      SurfaceControl* const p =

     ?。⊿urfaceControl*)env-》GetIntField(clazz, so.surfaceControl);

      if (surface.get()) {

      surface-》incStrong(clazz);

      }

      if (p) {

      p-》decStrong(clazz);

      }

      env-》SetIntField(clazz, so.surfaceControl, (int)surface.get());

      }

     ?。?--》Surface_copyFrom]

      static void Surface_copyFrom(

      JNIEnv* env, jobject clazz, jobject other)

      {

      const sp《SurfaceControl》& surface = getSurfaceControl(env, clazz);

      const sp《SurfaceControl》& rhs = getSurfaceControl(env, other);

      if (!SurfaceControl::isSameSurface(surface, rhs)) {

      setSurfaceControl(env, clazz, rhs);

      //把本地那個surface的surfaceControl對象轉(zhuǎn)移到outSurface上

      }

      }

      這里僅僅是surfaceControl的轉(zhuǎn)移,但是并沒有看到Surface相關(guān)的信息。

      那么Surface在哪里創(chuàng)建的呢?為了解釋這個問題,我使用了終極武器,aidl。

      1 終極武器AIDL

      aidl可以把XXX.aidl文件轉(zhuǎn)換成對應的java文件。我們剛才調(diào)用的是WindowSession的

      relayOut函數(shù)。如下:

      sWindowSession.relayout(

      mWindow, params,

     ?。╥nt) (mView.mMeasuredWidth * appScale + 0.5f),

      (int) (mView.mMeasuredHeight * appScale + 0.5f),

      viewVisibility, insetsPending, mWinFrame,

      mPendingContentInsets, mPendingVisibleInsets,

      mPendingConfiguration, mSurface);

      它的aidl文件在framework/base/core/java/android/view/IWindowSession.aidl中

      interface IWindowSession {

      int add(IWindow window, in WindowManager.LayoutParams attrs,

      in int viewVisibility, out Rect outContentInsets);

      void remove(IWindow window);

      //注意喔,這個outSurface前面的是out,表示輸出參數(shù),這個類似于C++的引用。

      int relayout(IWindow window, in WindowManager.LayoutParams attrs,

      int requestedWidth, int requestedHeight, int viewVisibility,

      boolean insetsPending, out Rect outFrame, out Rect outContentInsets,

      out Rect outVisibleInsets, out Configuration outConfig,

      out Surface outSurface);

      剛才說了,JNI及其JAVA調(diào)用只是copyFrom了SurfaceControl對象到outSurface中,但是沒看到哪里創(chuàng)建Surface。這其中的奧秘就在aidl文件編譯后生成的java文件中。

     

      你在命令行下可以輸入:

      aidl -Id:\android-2.2-froyo-20100625-source\source\frameworks\base\core\java\ -Id:\android-2.2-froyo-20100625-source\source\frameworks\base\Graphics\java d:\android-2.2-froyo-20100625-source\source\frameworks\base\core\java\android\view\IWindowSession.aidl test.java

      以生成test.java文件。-I參數(shù)指定include目錄,例如aidl有些參數(shù)是在別的java文件中指定的,那么這個-I就需要把這些目錄包含進來。

      先看看ViewRoot這個客戶端生成的代碼是什么。

      public int relayout(

      android.view.IWindow window,

      android.view.WindowManager.LayoutParams attrs,

      int requestedWidth, int requestedHeight,

      int viewVisibility, boolean insetsPending,

      android.graphics.Rect outFrame,

      android.graphics.Rect outContentInsets,

      android.graphics.Rect outVisibleInsets,

      android.content.res.Configuration outConfig,

      android.view.Surface outSurface) ----》outSurface是第11個參數(shù)

      throws android.os.RemoteException

      {

      android.os.Parcel _data = android.os.Parcel.obtain();

      android.os.Parcel _reply = android.os.Parcel.obtain();

      int _result;

      try {

      _data.writeInterfaceToken(DESCRIPTOR);

      _data.writeStrongBinder((((window!=null))?(window.asBinder()):(null)));

      if ((attrs!=null)) {

      _data.writeInt(1);

      attrs.writeToParcel(_data, 0);

      }

      else {

      _data.writeInt(0);

      }

      _data.writeInt(requestedWidth);

      _data.writeInt(requestedHeight);

      _data.writeInt(viewVisibility);

      _data.writeInt(((insetsPending)?(1):(0)));

      //奇怪,outSurface的信息沒有寫到_data中。那。..。.

      mRemote.transact(Stub.TRANSACTION_relayout, _data, _reply, 0);

      _reply.readException();

      _result = _reply.readInt();

      if ((0!=_reply.readInt())) {

      outFrame.readFromParcel(_reply);

      }

      。..。

      if ((0!=_reply.readInt())) {

      outSurface.readFromParcel(_reply); //從Parcel中讀取信息來填充outSurface

      }

      }

      finally {

      _reply.recycle();

      _data.recycle();

      }

      return _result;

      }

      真奇怪啊,Binder客戶端這頭竟然沒有把outSurface的信息發(fā)過去。我們趕緊看看服務(wù)端。

      服務(wù)端這邊處理是在onTranscat函數(shù)中。

      @Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException

      {

      switch (code)

      {

      case TRANSACTION_relayout:

      {

      data.enforceInterface(DESCRIPTOR);

      android.view.IWindow _arg0;

      android.view.Surface _arg10;

      //剛才說了,Surface信息并沒有傳過來,那么我們在relayOut中看到的outSurface是怎么

      //出來的呢?看下面這句,原來在服務(wù)端這邊竟然new了一個新的Surface?。?!

     

      _arg10 = new android.view.Surface();

      int _result = this.relayout(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10);

      reply.writeNoException();

      reply.writeInt(_result);

      //_arg10是copyFrom了,那怎么傳到客戶端呢?

      if ((_arg10!=null)) {

      reply.writeInt(1);//調(diào)用Surface的writeToParcel,把信息加入reply

      _arg10.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE);

      }

      return true;

      }

      太詭異了!竟然有這么多花花腸子。我相信如果沒有aidl的幫助,我無論如何也不會知道這其中的奧妙。

      那好,我們的流程明白了。

      l 客戶端雖然傳了一個surface,但其實沒傳遞給服務(wù)端

      l 服務(wù)端調(diào)用writeToParcel,把信息寫到Parcel中,然后數(shù)據(jù)傳回客戶端

      l 客戶端調(diào)用Surface的readFromParcel,獲得surface信息。

      那就去看看writeToParcel吧。

      [----》Surface_writeToParcel]

      static void Surface_writeToParcel(

      JNIEnv* env, jobject clazz, jobject argParcel, jint flags)

      {

      Parcel* parcel = (Parcel*)env-》GetIntField(

      argParcel, no.native_parcel);

      const sp《SurfaceControl》& control(getSurfaceControl(env, clazz));

      //還好,只是把數(shù)據(jù)序列化到Parcel中

      SurfaceControl::writeSurfaceToParcel(control, parcel);

      if (flags & PARCELABLE_WRITE_RETURN_VALUE) {

      setSurfaceControl(env, clazz, 0);

      }

      }

      那看看客戶端的Surface_readFromParcel吧。

     ?。?----》Surface_readFromParcel]

      static void Surface_readFromParcel(

      JNIEnv* env, jobject clazz, jobject argParcel)

      {

      Parcel* parcel = (Parcel*)env-》GetIntField( argParcel, no.native_parcel);

      //客戶端這邊還沒有surface呢

      const sp《Surface》& control(getSurface(env, clazz));

      //不過我們看到希望了,根據(jù)服務(wù)端那邊Parcel信息來構(gòu)造一個新的surface

      sp《Surface》 rhs = new Surface(*parcel);

      if (!Surface::isSameSurface(control, rhs)) {

      setSurface(env, clazz, rhs); //把這個新surface賦給客戶端。終于我們有了surface!

      }

      }

      到此,我們終于七拐八繞的得到了surface,這其中經(jīng)歷太多曲折了。下一節(jié),我們將精簡這其中復雜的操作,統(tǒng)一歸到Native層,以這樣為切入點來了解Surface的工作流程和原理。

      好,反正你知道ViewRoot調(diào)用了relayout后,Surface就真正從WindowManagerService那得到了。繼續(xù)回到ViewRoot,其中還有一個重要地方是我們知道卻不了解的。

      private void performTraversals() {

      // cache mView since it is used so much below.。.

      final View host = mView;

      boolean initialized = false;

      boolean contentInsetsChanged = false;

      boolean visibleInsetsChanged;

      try {

      relayoutResult = relayoutWindow(params, viewVisibility, insetsPending);

      // relayoutWindow完后,我們得到了一個無比寶貴的Surface

      //那我們畫界面的地方在哪里?就在這個函數(shù)中,離relayoutWindow不遠處。

      。..。

      boolean cancelDraw = attachInfo.mTreeObserver.dispatchOnPreDraw();

      if (!cancelDraw && !newSurface) {

      mFullRedrawNeeded = false;

      draw(fullRedrawNeeded); //draw?draw什么呀?

      }

     ?。?--》ViewRoot::draw()]

      private void draw(boolean fullRedrawNeeded) {

      Surface surface = mSurface; //嘿嘿,不擔心了,surface資源都齊全了

      if (surface == null || !surface.isValid()) {

      return;

      }

      if (mAttachInfo.mViewScrollChanged) {

      mAttachInfo.mViewScrollChanged = false;

      mAttachInfo.mTreeObserver.dispatchOnScrollChanged();

      }

      int yoff;

      final boolean scrolling = mScroller != null && mScroller.computeScrollOffset();

      if (scrolling) {

      yoff = mScroller.getCurrY();

      } else {

      yoff = mScrollY;

      }

      if (mCurScrollY != yoff) {

      mCurScrollY = yoff;

      fullRedrawNeeded = true;

      }

      float appScale = mAttachInfo.mApplicationScale;

      boolean scalingRequired = mAttachInfo.mScalingRequired;

      Rect dirty = mDirty;

      if (mUseGL) { //我們不用OPENGL

      。..

      }

      Canvas canvas;

      try {

      int left = dirty.left;

      int top = dirty.top;

      int right = dirty.right;

      int bottom = dirty.bottom;

      //從Surface中鎖定一塊區(qū)域,這塊區(qū)域是我們認為的需要重繪的區(qū)域

      canvas = surface.lockCanvas(dirty);

      // TODO: Do this in native

      canvas.setDensity(mDensity);

      }

      try {

      if (!dirty.isEmpty() || mIsAnimating) {

      long startTime = 0L;

      try {

      canvas.translate(0, -yoff);

      if (mTranslator != null) {

      mTranslator.translateCanvas(canvas);

      }

      canvas.setScreenDensity(scalingRequired

     ??? DisplayMetrics.DENSITY_DEVICE : 0);

      //mView就是之前的decoreView,

      mView.draw(canvas);

      }

      } finally {

      //我們的圖畫完了,告訴surface釋放這塊區(qū)域

     

      surface.unlockCanvasAndPost(canvas);

      }

      if (scrolling) {

      mFullRedrawNeeded = true;

      scheduleTraversals();

      }

      }

      看起來,這個surface的用法很簡單嘛:

      l lockSurface,得到一個畫布Canvas

      l 調(diào)用View的draw,讓他們在這個Canvas上盡情繪圖才。另外,這個View會調(diào)用所有它的子View來畫圖,最終會進入到View的onDraw函數(shù)中,在這里我們可以做定制化的界面美化工作。當然,如果你想定制化整個系統(tǒng)畫圖的話,完全可以把performTranvsal看懂,然后再修改。

      l unlockCanvasAndPost,告訴Surface釋放這塊畫布

      當然,這幾個重要函數(shù)調(diào)用干了具體的活。這些重要函數(shù),我們最終會精簡到Native層的。

      2 總結(jié)

      到這里,你應該知道了一個Activity中,調(diào)用setContentView后它如何從系統(tǒng)中獲取一塊Surface,以及它是如何使用這個Surface的了。不得不說,關(guān)于UI這塊,Android絕對是夠復雜的。

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認為內(nèi)容侵權(quán),請聯(lián)系我們刪除。

    午夜dj在线观看完整版| 欧美一级特黄大片做受日本| 精品亚洲国产亚洲国产| 国产一区二区精品调教| 天天射天天舔天天看| 亚洲熟妇少妇一区二区| 大胸美女黄网站色片大全亚洲| 东京热tokyo黑人系列| 91精选国产九色porny| 亚洲精品午夜福利久久| 91av在线网址观看| 国产精品va在线观看老妇女| 国产中文字幕88av| 97视频免费观看一区| 精品久久久中文字幕熟女| 国产交换乱淫99视频| 大胸美女黄网站色片大全亚洲| 啪啪啪1000国产精品| 日本精品一区二区三区不卡| 韩国美女主播福利在线| 都市激情亚洲春色男人皇宫 | 成年免费毛片视频不卡| 五月婷婷六月久久久| 天天摸天天舔天天透| 久9热精品视频在线播放| 日本一区二区亚洲综合| 青青国产的视频在线播放| 日韩欧美亚洲第五页| 毛片中文aaa五月天| 人妻熟女中文字幕电影| 17c日韩在线观看| 国产黄色片在线观看网站| 蜜桃精品www视频在线观看| 国产精品一级片免费看| 亚洲第一中文视频 | 欧洲av网址在线观看| 亚洲熟女资源一区二区| 国产老头视频在线观看| 17夜人妻人人澡人妻| 久久热免费在线观看视频| 自拍偷拍亚洲色图经典三级| 卡通动漫中文字幕在线观看| 男女视频一区在线观看| 国产成年人性生活视频| 最新黄色天堂av在线资源| 男女啪啪自拍露脸视频| 69久久夜色精品国产69| 天天干人人干天天操| 91精品一区二区三区蜜桃| 视频一区 欧美情色| 中文字幕乱码视频日本一区二区| 色视频在线观看在线| 国产精成人品一区久图片| 一本久道久久综合狠狠躁| 免费观看黄色视频啊小穴啊| 青青色在线视频精品观看| 天天搡天天狠天干天| 免费可以看黄页的视频| 精品99久久久久久久久| 女同性ⅹxx女同hd偷拍| 中文字幕一区二区三区人妻| 制服诱惑,日韩情色| 免费高清视频亚洲熟女| 大香蕉av电影在线| 国产主播精品在线一区| 欧美一级特黄大片做受日本| 免费在线观看不卡高清av| 日韩一区=区三区四区| 久久永久免费专区人妻| 久久久com久久久com| 日韩欧美亚洲第五页| 亚洲免费不卡一区二区三区| 忘忧草精品久久久久久久高清| 久久精品aⅴ无码中文字字幕蜜桃| 中文字幕在线观看一二三四| 99久久国产综合精品五月天| 日本va欧美va国产综合va| 亚洲制服丝袜日韩欧美制服| 亚洲欧美三级在线观看视频| 狼人 成人 综合 亚洲| 日韩一级高清免费播放| 国产在线成人精选视频| 男男小视频在线观看| 亚洲一区二区婷婷久久| 亚洲黄色片免费在线| 色尼玛图片亚洲综合| 91久久人澡人妻天天做天天爽| 久久久久久久久91精品视频| 成人自拍在线观看视频| 插美女阴道流水视频| 国产福利一区二区三区久久久| av在线视频观看免费| 日韩视频在线观看四区| 91九色popny人妻| 狂野欧美激情性xxxx| 日韩免费一卡二卡三卡四卡五卡| 亚洲插美女综合av| 国产又粗又猛又大爽又黄香借| 亚洲一级精品久久久蜜桃| 老鸭窝最新在线视频| 国产精品亚洲av国产| 亚洲熟女国产午夜精品| 国产av电影网站一区| 亚洲国产综合精品中文字幕| 大香蕉在线欧美观看| 日韩欧美激情啪啪啪| 欧美的一区二区三区| 亚洲的国产中文字幕的av| 91精品丝袜久久久| 欧美18vide0sex性极品| 国产天美传媒剧免费观看| 在线观看免费a级电影| 裸体一区二区三区av| 9999国产精品免费| 午夜美女操逼高潮免费视频| 九一欧洲国产无码在线| 特黄把女人弄爽又大又粗| 国产一区二区三区在线资源| 黑人中出日本人妻系列| 国产精品亚洲精品久| 韩国女主播一区二区福利视频| 三级黄色在线播放网站| 影音先锋婷婷五月青青草视频在线| 国产精品永久免费在线网站观看| 成人自拍在线观看视频| 三级视频欧美视频亚洲视频| 亚洲国产自拍偷拍精品| 91久久久久久久蜜桃| 伊人网av在线观看| 欧美亚洲污视频网站| 亚洲第二页欧美视频| 可以在线观看的视频你懂的| 一区二区三区高清在线| 中文字幕亚洲情色在线观看| av中文字幕巨乳人妻| 瑟瑟视频在线网站免费观看| 国产大屁股影音在线播放| 成年女女子免费视频播放| 91精选国产九色porny| 熟女人妻av完整一区二区三区| 中文字幕一区二区720p| 狠狠操视频在线免费观看| 五十六十日本老熟妇牲| 91九色成人原创视频| 激情综合亚洲欧美日韩一区| 天天干天天干天天操天天日| 日本成人av在线免费看| 精品国产伦理片1区2区| 99久久无色码中文字幕免费| 久久久久久久国产黄色片| 大香蕉在线福利导航| 精品国产专区91精品| 人妻少妇精品视中文字幕国语| 国产精品国三级国产av无密码| 啪啪啪1000国产精品| 亚洲av高清一区二区三区色| 国产精品免费观看91| 最近的中文字幕第二页| 老熟妇乱一区二区三区| 91极品尤物国产在线播放| 尹人香蕉综合网在线观看| 国产呻吟揉丰满一区三六区| 久久精品aⅴ无码中文字字幕蜜桃| 亚洲天堂中文字幕手机在线 | 丰满熟妇人妻一区二区三区| 在线观看中文字幕91| 日本性生活视频观看免费| 日本一区二区三区高清在线| 男人和女人哪个更色| 中文字幕不卡在线视频极品| 91精品久久一区二区| 国产中文字幕88av| 亚洲精品视频在线蜜桃| 亚洲男人天堂2025| 亚洲av综合在线观看免费| caoporn中文字幕视频| 深夜福利成人在线观看| 91麻豆精品国产综合久久久主演| 欧美视频一区二区三区三州| 日韩一级片黄色av| 天天日天天爱天天玩| 天天干天天干天天操天天日| 亚洲mv在线免费观看| 中年美熟妇与少年的激情| 国产福利一区二区三区久久久| 桃子av在线免费观看| 国产av电影网站一区| 51成人看片免费软件| 欲色天天网综合久久| 国产 精品 日韩 人妻| 中文字幕av一区二区三区不卡| 熟妇人妻一区二区三区| 欧美口爆吞精一区二区三区| 大伊香蕉精品一区视频在线| 日韩免费一卡二卡三卡四卡五卡| 四季av在线一区二区三区| 国产高清欧美日韩精品| 在线播放三级黄色日韩av| 欧洲码亚洲码一区二区三区四区 | 久久久精品国产亚洲av水| JK白丝喷白嫩嫩久久久| 男人的天堂av成人网| 国产97精品在线免费看| 99久久久久久久久96久久| 日本精品一区二区三区不卡| 国产午夜在线观看不卡| 999久久久91一区二区| 中文字幕中文字幕一区三区| 老司机福利在线免费观看视频| 无码丝袜人妻高跟鞋| 一区二区性视频在线观看 | 日本xxxxx久久| 日韩中文字幕一级乱码在线亚洲| 最新97在线视频资源| 少妇张开腿让我爽了一夜视频 | 五月开心六月伊人色婷婷| 亚洲影视精品一区二区| 鲁久久无码五月天有码| 91精品一区二区三区蜜桃| 亚洲精品一区二区三区av| 国产亚洲精品视频久久久| 又大又黄又粗又爽少妇毛片| 五月婷婷六月久久久| 人妻斩43r熟女人妻| 国产亚洲精品免费观看| 日韩黄色a影视在线免费观看网站| 一色桃子av人妻熟女完整版| 色屁屁一区二区三区视频国产| 男女啪啪自拍露脸视频| 2023天天色天天操| 北岛玲在线播放中文字幕| 亚洲一区二区婷婷久久| 国产av办公室丝袜在线| 国产成人18黄网站免费观看| 国产一区二区三区黄片欧美| 在线播放__91色| 精品少妇在线观看视频| 亚洲国产伦理久久精品| 亚洲国产自拍偷拍精品| 超级碰免费人妻97| 91麻豆精品国产综合久久久主演| 被大鸡吧操骚B真爽视频| 淫色网亚洲av日韩av| 最新日韩成人av电影| 国内老熟妇精品露脸视频| 忘忧草精品久久久久久久高清| 欧美日韩激情图片视频另类| 无套内射黑丝美女91| 欧美在线中文字幕第一页| 东京不太热在线观看视频| 好吊一区二区三区视频| 国产美女精品久久久有奶水| 日韩欧美亚洲第五页| 日本最新区免费中文字幕 | 久9热精品视频在线播放| 亚洲国产成人精品久久久久久久久| 色尼玛图片亚洲综合| 午夜福利伦理片在线观看| 夜夜躁爽日日躁狠狠躁一区| 中文字幕人妻不卡久久| 制服诱惑,日韩情色| 精品黑丝袜一区二区三区| 17c日韩在线观看| 国产99热这里有精品| 国产一级免费观看av网站| 91最新资源在线观看| 日本在线观看公司入口视频| 日韩在线视频观看你懂的| 亚洲国产长腿丝袜av天堂| 朴妮唛无删减福利在线观看| 老鸭窝最新在线视频| 亚洲熟女毛茸茸上厕所尿尿| 老鸭窝大视频网站a一级| 韩国美女主播福利在线| av亚洲天堂中文字幕| 在线视频成人青青草久热| 亚洲天堂av在线免费看| 欧美日韩黄色aaa| 蜜桃系列一区二区观看| 天天看天天舔天天摸| 91免费在线播放视频| 啊!用力操我!好爽| 天堂av中文官网在线| 国产成人自拍在线播放| 97超碰在线资源总站| ntr人妻セックス在线| 欧美亚洲自拍偷拍xxx| 乱色熟女综合一区二区三区四| 一级毛片试看三分钟| 黄片激情视频国产免费| 老外插美女在线视频| 五十六十日本老熟妇牲| 综合日韩人妻一区二区三区| 亚洲人妻无吗中文字幕| 婷婷国产一区二区三区| 91麻豆天美精东蜜桃专区| 瑟瑟视频在线网站免费观看| 欧洲码亚洲码一区二区三区四区| 国产精品自产拍在线观| 人妻少妇精品视中文字幕国语 | 激情91久久婷婷综合| 亚洲国产成人一区二区久久久| 亚国产亚洲亚洲精品视频| 精品国产成人在线免费| 久久永久免费专区人妻| 亚洲三级色片视频在线观看| 最新黄色天堂av在线资源| 爱毛片在线成人免费看| 青青色国产在线视频网站| 欧美欧美欧美欧美欧美欧美| 国产青青自拍视频在线观看看| 狠狠躁夜夜躁人人爽天天BL| 国产视频播放一区二区三区| 国产一区二区三区在线资源| 97人妻少妇熟女av| 亚洲欧洲日韩av专区| 在线精品视频这里只有精品| 九九re热这里只有精品视频| 大香蕉久久久久久久久| 亚洲国产精品成人综合色| 国产男女激情视频一区| 男女边摸边吃奶边做视频免费看| 蜜桃亚洲av优女av综合久久久| 国产大全视频在线观看| 99国产精品视频播放| 日韩精品在线观看直播| 欧美 亚洲 国产 日韩一| 50岁熟女乱综合一区二区| 熟女成人国产精品视频| 亚洲校园~春色综合| 黄色小网站在线免费观看| 亚洲av狠狠的爱一区二区| 亚洲国产精品久久久久秋霞1| 男插女下面真人视频| 91黄色大全免费观看| 人视频一区二区三区| 一级毛片试看三分钟| 50岁熟女乱综合一区二区| 午夜一分钟视频免费在线观看| 亚洲短视频自拍偷拍| 日本成年人大片免费观看| 亚洲熟女国产午夜精品| 国产视频在线观看一区二区极品| 大香蕉红杏在线观看| 在线 国产区 视频| 亚洲校园~春色综合| 六十六节医疗保健操全套| 2021久久国自产拍精品| 护士色视频亚洲婷婷| 九九热线这里只有精品| 成年人在线观看福利视频 | 国产精选黄片免费观看| 欧美日韩高清无毒不卡| 日本aaaaa特黄| 中文字幕av影片免费在线观看| 五十六十日本老熟妇牲| 男人插女人动漫视频| 宝贝腿开大点我添添公漫画| av在线视频观看免费| 欧美成人免费观看在线看| 人妻少妇精品视频专区专区| 可以在线观看的视频你懂的| 69久久夜色精品国产69| 自拍偷拍 欧美亚洲| 青青草国产免费在线观看| 亚洲 自拍 色综合图区av网站| 北岛玲精品一区二区三| 亚洲91色精品一区二区| 国产熟女福利资源导航| 97超碰在线资源总站 | 白丝高中生被靠操在观看| 操骚逼啊啊啊叫一区二区三区| 2021国产麻豆剧传媒精品入口| 国产 欧美 五月 激情| 久久久三级高清免费| 国产成人亚洲一区二区三区| 中文字幕人妻免费电影| 中文字幕乱码精品一区二区三区| 久久精品亚洲一区二区三 | 亚洲熟女资源一区二区| 自拍偷拍国产欧美精品| 午夜久久在线观看视频| 男人的天堂av 色噜噜| 男人插女人逼视频播放| 色yeye香蕉人妻凹凸一区二区| 亚洲综合精品天堂丁香芒果| 成人av在线国产精品| 国产av电影网站一区| 91成人在线观看免费| 中文乱码在线观看一区| 91精品国产在热久久| 亚洲成电影在线观看青青| 中文字幕在线aⅴ免费观看| 四季亚洲中文专区av| 亚洲图片 欧美专区 自拍| 国产在线观看av专区| 女人的小鸡鸡真人免费视频| 在线观看免费a级电影| 日日日日日日日夜夜夜夜夜| 秋霞一区二区三区小说| 天天射天天舔天天看| 亚洲欧美久久精品免费| 天天干天天日少妇网| 日本道高清免费在线视频| 国产午夜精品在线播放| 五月天丁香婷婷国产精品| 精品久久久免费av| 欧美猛少妇色xxxxxhd| 国产无套水多大学生性色AV| 少妇花园流浆嗯嗯张开视频| 日韩欧美在线综合网高清| av熟女40到50岁名字| 久久日99久久里面有精品| 男人和女人哪个更色| 午夜天堂网在线观看资源网站| 日韩一级黄色片免费在线观看| 日本熟艳妇A站黄色视频| www精品一区二区三区| 欧洲av网址在线观看| 国产中文字幕88av| 五十六十日本老熟妇牲| 秋霞网av一区二区三区中文字幕| 啊啊啊啊啊鸡巴进小穴了视频| 久久久国产亚洲精品黑人| av亚洲天堂中文字幕| 亚洲一级精品久久久蜜桃| 老头插进去好多水'视频| 把鸡鸡伸进去的视频| 都市激情中文字幕蜜桃| 日本激情在线看一区二区三区| 九色91蝌蚪porn| 老司机福利社免费视频| 青青青久免费在线视频| 少妇厨房激情做爰欧美| 视频一区二区在线播放| 欧美在线一区二区三区| 在线观看免费精品一区| 青青草原精品资源站| 人妻天天爽夜夜爽2区蜜a∨| 亚洲一区二二三区在线gk| 亚洲经典国产一区二区三区| 色婷亚洲五月在线观看| 小岳母在线观看完整版| 玩弄人妻少妇精品视频在线| 日韩人妻少妇av电影| av中文字幕 中文字幕第一页 | 无码丝袜人妻高跟鞋| 国产精品国产三级区别第一集| 美女少妇一区二区久久久| 亚洲免费不卡一区二区三区| 国产高清激情在线视频| 精品少妇人妻av免费麻豆| 日韩一区=区三区四区| 嗯啊好想要插我视频| 亚洲熟女国产午夜精品| 欧美一级特黄大片做受日本| 欧美精品视频一卡二卡| 亚洲狠狠婷婷久久综合| 少妇视频播放在线播放免费观看| 欧美成人性生活一级片| 欧美乱码卡1卡二卡3卡4| 熟女老骚91porn九色| 精品少妇人妻av免费麻豆| 男人天堂2017在线| 亚洲情色欧美日韩在线| 亚洲精品欧美日韩专区免费| 熟女国产一区二区三区| 人成免费视频一区二区三区| 日本一区二区亚洲综合| 亚洲无码免费一二三区视频 | 国产高清精品福利私拍国产写真 | 成人免费午夜精品一区二区| 国产亚洲高清在线观看| 婷婷国产一区二区三区| 精品国产专区91精品| 欧美亚洲 自拍偷拍| 人妻夜夜爽av网站| 国产精品免费观看av| 精品少妇人妻av免费麻豆| 日韩 欧美 在线 第一页| 国产97精品在线免费看| 久久久com久久久com| 久亚洲aⅴ一区二区三区写真| 成人教育av在线网站| 日本国产福利视频在线观看| 五月天久草亚洲香蕉| 99久热精品视频在线播放| 老熟妇乱一区二区三区| 日韩人妻熟妇精品xxx| 91在线观看青青超碰| 成人av黄片免费在线观看专区| 狠狠操视频在线免费观看| 老鸭窝最新在线视频| 91成人国产在线观看九色| 国产一区二区精品调教| 丰满人妻一区二区三区免费视频棣| 久久久精品欧美一区二| 极品美女少妇高潮喷水| 天天干人人干天天操| 91大神长腿美女视频在线观看| 大香蕉久久久久久久久| 亚洲校园~春色综合| 人鱼小姐在线观看国语版字幕| 日本超清有码在线观看| 亚洲精品中文字幕原千岁| 亚洲地址一区二区三区四区| 91九色黑丝长腿美女| 在线能看的网站你懂得| 77字幕网77中文字幕| 青青草手机免费在线视频| 日韩一二三在线视频播放| 日本最新区免费中文字幕| 11yyy国产成人综合在线观看| 国产手机av免费在线看片不卡| 色偷偷东京热男人的天堂| 亚洲精品久久中文字幕| 人人妻,人人干,在线| 99国产热精品在线观看| 97视频免费观看一区| 亚洲熟女乱色综合小说| 日韩美女av电影网| 免费精品国产人妻国语| 国产精品制服诱惑丝袜的| ass亚洲熟妇熟女pics| 91精品青草福利久久午夜| 夜夜躁爽日日躁狠狠躁一区| 精品黑丝袜一区二区三区| 午夜小视频 在线观看| 亚洲欧美激情人妻人妻综合| 最新久久久久久久久久久| 国内在线精品视频在线观看| 午夜美女操逼高潮免费视频| 无翼乌18禁本子全彩无遮| 熟妇人妻二区桃色av| 色五月婷婷综合国产在线 | 天天操日日干夜夜操| 特黄特黄的日韩爽大片| caoporn中文字幕视频| 啊啊啊啊啊鸡巴进小穴了视频| 色狠狠久久vs北条麻妃av| 强行进女小姪女小芳| 亚洲av蜜臀在线观看| 香蕉视频免费看国产精品| 综合日韩人妻一区二区三区| 成年人午夜网站在线播放| 少妇又色又紧又爽又刺激视频| caopron在线成人免费| 日本a v中文字幕网| 50岁熟女乱综合一区二区| 邪恶老湿精品一区二区| 人人妻人人澡人人爽dv| 日日夜夜操国产av| 偷怕自拍在线免费观看| 午夜激情片免费在线观看| 视频一区二区在线观看视频| 国产又黄又高潮又a的视频| 啊!用力操我!好爽| 国产精品视频自拍一区| 韩国的黄萝卜是怎么腌制的| 好紧好湿好爽好大A视频| 偷怕自拍在线免费观看| 91瑟瑟视频在线观看| 92大香蕉一区二区三区| 污污污的视频免费在线观看| 欧美的一区二区三区| 精品国产一区二区三区欧美精品| 最新69视频在线观看| 中文字幕a区一区三区| 加勒比久久综合久久678| 人妻欲求不满作品番号| 亚洲狠狠婷婷久久综合| 国产老女人av一区二区三区| 亚洲综合在线一区二区三区四区| 亚洲欧洲日韩av专区| 人妻少妇资源网av| 天天摸天天舔天天透| 男女上下差差发哈插插插| xxx一区二区三区在线观看| 在线视频成人青青草久热| av精品一区二区三区免费观看| 在线播放__91色| ass亚洲熟妇熟女pics| 91精品人妻丰满熟妇| 国产午夜在线观看不卡| 青青国产成人在线看| 中文乱码字幕人妻精品| 少妇被无套内谢免费观看| 色 小说 激情 图片| jizz成人在线视频| 日韩欧美在线综合网高清| 欧美区一区一区三区| 91大神长腿美女视频在线观看| 日本丰满人妻免费电影| 国产名人亚洲视频中文字幕| 91九色免费在线观看| av天堂中文版www在线| 熟女人妻视频观看一区二区三区| ww久久久久国产喷水18禁| 亚洲欧美久久精品免费| 中文字幕乱码人妻在线观看 | 在线看国产91av| 欧美一级特黄大片做受日本| 一级毛片试看三分钟| 忘忧草精品久久久久久久高清 | AV成人国产免费久久精品| 美女福利在线观看视频| 欧美老熟妇在线一区二区三区 | 青娱乐休闲在线观看视频| 日本一区二三区好的精华液| 亚洲在线视频一区二区| 91久久精品视频地址| 91国语对白精彩在线视频| 少妇张开腿让我爽了一夜视频| 啊啊啊啊啊鸡巴进小穴了视频| 亚洲mv在线免费观看| 欲色天天网综合久久| 亚洲日韩色欧另类欧美色吊丝| 亚洲天堂av在线免费看| 国产99热这里有精品| 国产美女精品久久久有奶水| 亚洲天堂男人天堂中文字幕| 午夜精品久久十八禁| 国产免费人妻人伦精品| 3p人妻一区二区三区| 精品国产不卡在线观看免费| 国产视频播放一区二区三区| 中文字幕在线aⅴ免费观看| 亚洲在线中文字幕av| 99久久国产综合精品五月天| 国产成年人性生活视频| 天天干天天日少妇网| 91综合久久久久久久久久久| 国产在线观看XXXXX| 国产免费人妻人伦精品| 欧美国产一级在线免费观看| 男人日女人鸡鸡天天视频官方| 各种玩小处雌女视频| 精品黄色一级久久久久久久久| 老头插进去好多水'视频| 在线观看免费的黄色片| av在线播放网址大全| 亚洲人妻一区二区三区久久精品| 白丝骚逼美女被操到逼水直流 | 午夜美女直播福利视频| 久久久久久久岛国免费播放| 鲁死你资源站亚洲av一级aⅴ| 男女边摸边吃奶边做视频免费看| 色综合人妻中文字幕| 放荡的丝袜美腿护士老师| 免费在线观看成人激情视频| 国产av国片精品jk制服| 99999精品视频在线观看| 蜜臀av在线地址一地址二| 免费可以看黄页的视频| 久久精品视频2015| 日产国产亚洲精品系列p| 啊啊啊啊啊鸡巴进小穴了视频| 中文字幕久久五月天| 亚洲av熟女av熟女| 丰满人妻一区二区三区免费视频棣| 亚洲影视精品一区二区| 青青日常在线免费观看| 久久精品日产第一区二区三区| 日韩欧美亚洲精品高清国产| 国产亚洲精品久久久久久电影 | 日韩激情又爽aaaaa级| 91九色成人原创视频| 精品一区二区三区最新| 国产美女视频网久久69| 99精品国产免费电影| gogo大尺度二区三区| 丰满熟妇xxxx性久久久| 中国精品视频在线观看一区二区| 亚洲91色精品一区二区| 欧洲老妇人一区二区三区| 日本超清有码在线观看| 大香蕉在线福利导航| 国产精品久久久久久无码不卡 | 50岁熟女乱综合一区二区| 熟女人妻伊人蜜桃视频| 亚洲av乱码一区二区三区四区| 把鸡鸡伸进去的视频| 大香蕉国产手机在线观看| 成人午夜福利视频镇东影视| 最近2019日本中文字幕| 国内偷拍视频在线观看| 国产一级二级三级在线看| 国产午夜精品一区二区不| 精品国产不卡在线观看免费| 欧美欧美欧美欧美欧美欧美| 野花日本高清在线观看| 在线播放__91色| 精品少妇人妻av免费麻豆| 在线成人中文字幕网站| 熟妇人妻二区桃色av| 麻豆免费成人小视频| 在线看国产91av| 自拍偷拍av一区二区三区| 婷婷国产一区二区三区| 国产精品免费观看av| 91九色p精品久久久| 日韩精品在线观看直播| 日韩中文av在线观看| 国产av办公室丝袜在线| 在线免费观看精品一区| 大香蕉av电影在线| 亚洲在线中文字幕av| 日韩亚洲欧美中文在线电影| 亚洲av天堂av在线| 男人的天堂av成人网| 久操高清在线免费视频| 亚洲午夜激情视频在线播放| 色综合天天综合高清网国产在线 | 日本高清一级二级三级| 国产精品国产三级区别第一集| 日韩精品性色一区二区在线观看| 在线免费观看亚洲v| 国产一区二区精品调教| 国产午夜精品人妻中文字一幂| 91综合久久久久久久久久久| 男男小视频在线观看| 男女视频一区在线观看| 广州最大的成人免费视频| 国产美女在线极品美女网站| 久久免费视频精品8| 人人爱精品人人艹人人干| 91九色porny蝌蚪主页| 免费观看男人操逼的操女人的 | 成年人在线观看福利视频| 亚洲一级精品久久久蜜桃| 六月丁香六月在线视频| 在线播放__91色| 青青色国产在线视频网站| 日韩激情又爽aaaaa级| 在线视频在线观看你懂的| av色综合久久天堂av…| 男人日女人鸡鸡天天视频官方| 欧美日韩精品免费看| 午夜美女直播福利视频| 中文字幕在线观看观看av?| 美女被插免费视频网站| 日本国产一区二区三区视频| 亚洲精品午夜福利久久| 男人的天堂在线免费av| 宝贝腿开大点我添添公漫画| 中国男人肏女人大屄的视频| 娇小型av优女大全| 丰满熟妇人妻一区二区三区| 成人av网站在线观看| 在线精品亚洲欧美日韩| 午夜dj在线观看完整版| 在线观看一区二精品视频| 精品国产污网址在线观看| 精品国产一区二区三区欧美精品| av自拍偷拍一区二区| 亚洲狠狠婷婷久久综合| 青青久在线观看免费视频| 亚洲国产长腿丝袜av天堂| 91精品丝袜久久久| 青青色国产在线视频网站| 欧美色高清vvvvvv| 放荡的丝袜美腿护士老师| 欧美在线一区二区三区| 精品少妇人妻av免费麻豆| 131美女午夜免费视频| 亚洲国产精品午夜福利久久| 国产午夜精品一区二区不| 日韩人妻无码一区2区3区| 日韩激情又爽aaaaa级| 日本乱理三级在线观影视频| 国产精品无码一区二| 视频一区 欧美情色| 国产美女视频网久久69| 日本mm一区二区三区高清| 欧美成人中文字幕在线视频| 露臀裙后入在线视频| 亚洲va欧美va人人爽2| 成人专区禁18处网站| 午夜福利伦理片在线观看| 人成免费视频一区二区三区| 中文字幕在线观看一二三四| 中年美熟妇与少年的激情| 免费在线观看不卡高清av| 男人午夜视频在线观看| 日韩一二三在线视频播放| 日本一卡不带卡的视频| 色婷亚洲五月在线观看| 中文字幕一二区二三区人妻专区| 偷怕自拍在线免费观看| 精华液一区二区区别| 亚洲天堂av在线免费看| 亚洲av永久无码精品尤物| 精品少妇在线观看视频| 91黄色大全免费观看| 韩国美女主播福利在线 | 亚洲一点不卡福利视频| 男插女下面真人视频| 免费在线观看不卡高清av| 中文乱码字幕人妻精品| 美女被插免费视频网站| 亚洲中文字幕综合av一区| av在线免费一区二区| 日本 高清 中文字幕| 天天射天天舔天天看| 我的嫂子伦理片在线观看| 日本丰满老熟妇bbw| 男人插女人逼视频播放| 欧美亚洲污视频网站| 欧美一区二区三区在线爱爱| 国产成年无码av片在线| 国产精品视频成人在线观看| 日韩精品免费人成视频| 精品国产不卡在线观看免费| 日本最新区免费中文字幕| 露臀裙后入在线视频| 男人的j插进女人的逼| 免费观看日本伦理片| 中文字幕av一区二区三区不卡| 久久久com久久久com| 在线观看免费视频网站色| 欧美在线中文字幕第一页| 好色av一区二区三区四区| 大香蕉在线福利导航| 亲爱的请你原谅我 中文字幕| 91精品丝袜人妻久久久久久| 天天干人人干天天操| 亚洲一区二区日韩欧美久久| 久久ri精品诱惑日韩| 超级碰免费人妻97| 日本国产福利视频在线观看| 日韩人妻无码一区2区3区| 蜜桃精品噜噜噜成人av小说| 99偷拍精品一区二区| 天天色天天操天天色综合| 日本一区二区亚洲综合| 91高清免费在线播放| 精品中文字幕高清久久久久三级| 狠狠躁夜夜躁人人爽天天BL| 黄片网址在线观看视频| 青青草毛片在线观看| 护士色视频亚洲婷婷| 少妇人妻肉欲短视频| 久久精品乱码中文字幕| 亚洲人妻无吗中文字幕| 懂色av蜜臀av绯色| 美女福利在线观看视频| 午夜国产精品福利一二| 人妻精品无码一区二区三区百花 | 娇小型av优女大全| 人人妻人人澡人人爽dv| 91午夜免费在线视频| 99精品国产中文字幕| 欧美日韩一区二区a∨视频| 精品少妇人妻大乳av| 97精品视频久久久久| 女友97年白嫩漂亮在线看| 人妻 日韩 欧美 综合 制服| 操的少妇嗷嗷叫视频| 中文热免费在线视频| 紫川动漫在线观看免费完整版| 裸体一区二区三区av| 九九热线这里只有精品| 色yeye香蕉人妻凹凸一区二区| 国产熟女福利资源导航| 少妇张开腿让我爽了一夜视频| 国产成人自拍在线播放| 日本超清有码在线观看| 国产亚洲精品a77777| 丰满熟妇人妻一区二区三区| 亚洲69视频在线观看| 丝袜美腿av一区二区| 熟女人妻视频观看一区二区三区| 日韩精品视频网站免费观看| 亚洲夫妻另类在线视频| 日韩精品视频啊啊啊| 久久久精品国产综合| 熟女人妻伊人蜜桃视频| 中文字幕99精品一区| 亚洲国产长腿丝袜av天堂| 亚洲国产av自拍网站| 男人的天堂在线免费av| 日韩人妻无码一区2区3区| 天天干狠狠插夜夜操| 可以在线观看的视频你懂的| 中文视频久久在线观看| 亚洲国产成人久久无码| 日本少妇人妻xxxxx16| 五月婷婷丁香中文字幕亚洲一区| 天天干天天干天天操天天日 | 成年人午夜网站在线播放| 日韩欧美免费看的惊悚片电影| 视频二区视频四区中文| 自拍偷拍在线福利视频| 日本阿v片中文字幕在线| 国产一区二区三区在线资源| 精品视频在线观看剧情| 裸体一区二区三区av| 麻豆精品传媒在线播放| 亚洲最大av无码国产网址| youjizz少妇日本| av男人天堂网在线观看| 91九色p精品久久久| 动漫卡通一区二区三区| 久产久91精国九品打| 蜜桃亚洲av优女av综合久久久| 国产精品大片在线观看网站资源 | 91瑟瑟视频在线观看| 中文字幕精品无码一区二区三区| 欧美 亚洲 国产 日韩一| 久久ri精品诱惑日韩| 日本伊人中文字幕在线| 免费观看男人操逼的操女人的| 国产av剧情网址大全| 公交车人妻免费视频| 国产视频污污污在线观看| 成人网视频欧美在线观看| a在线观看免费久不卡精品| 欧美午夜免费福利视频| 免费高清视频亚洲熟女| 国产成年无码av片在线| 在线视频在线观看你懂的| 日韩高清亚洲精品国产欧美| 男女裸交无套啪啪激情高潮| 欧美亚洲变态另类在线观看| 自拍偷拍在线福利视频| 手机在线一区二区三区| 看全黄大黄大色大片美女| 日本一区二区三区综合网| 人妻出轨av中文字幕| ntr人妻セックス在线| 亚洲成电影在线观看青青| 亚洲欧美日本高清在线观看| 最近最新高清欧美日韩中文字幕 | 亚洲av乱码国产精品观看麻豆| 男人把女人桶到爽午夜视频| 日韩一级高清免费播放| 国产福利小视频在线免费观看 | 一级视频在线观看高清国产免费| 久久日99久久里面有精品| 美女作污一区二区三区| 欧美色高清vvvvvv| 美女被鸡操黄片入口| 男人天堂中文字幕av| 五月天中文字幕亚洲| 男人天堂2017在线| 中文字幕在线aⅴ免费观看| 欧美激情免费观看一区二区| 中文字幕 亚洲轻轻av| 天天插天天干天天爽| 卡通动漫中文字幕在线观看| 欧美亚洲国产激情在线| 少妇18禁久久yy| 日韩人妻少妇av电影| 夜夜躁爽日日躁狠狠躁一区 | 国产午夜精品1区2区3区| 中文字幕久久五月天| 爱毛片在线成人免费看| 欧美vide0sde极品另类| av男人天堂网在线观看| 亚洲另类校园春色小说| 9久久久久久久久久久| 中文字幕熟女人妻丝袜电影| 中文字幕第一区高清av| 性色av不卡一区二区三区| 99在线只有精品视频| 日本熟妇三十熟女精品区| 青青国产成人在线看| 人成免费视频一区二区三区| 97国产精品人人爽人人做| 中文字幕在线观看一二三四| 亚洲 自拍 色综合图区av| 免费观看黄片视频91| 国产成人自拍精品在线| 中文字幕 av 在线| 免费观看黄片视频91| 亚洲av在线观看久久久| 国产成人自拍在线播放| 国产日日夜夜精品视频免费| 特黄特黄的日韩爽大片| 大香蕉太香蕉在线免费看| 中文字幕成熟丰满人妻| 欧美区一区一区三区| 久久久三级高清免费| youjizzcom精品少妇| 亚洲一级精品久久久蜜桃| 亚洲天堂国产精品乱伦一区| 欧美日韩黄色aaa| xxoo视频免费在线观看| 午夜dj在线观看免费完整视频| 国产亚洲精品a77777| 五月婷婷六月久久久| 青青草手机免费在线视频| 麻豆电影国产一区在线观看| 中文字幕不卡在线视频极品| 免费精品国产人妻国语| 久久日99久久里面有精品| 大鸡吧淫水四射视频| 91免费福利视频专区| 另类激情国产专区在线观看免费 | 成人两性色午夜视频免费88AV| 国产精品久久久免费99| 老鸭窝大视频网站a一级| AV成人国产免费久久精品| 亚洲欧洲久久av日日更新| 国产小视频在线播放| 国产亚洲av网址大全| 日本少妇人妻xxxxx16| 精品色欲久久久青青青人人爽| 日韩毛片免费视频观看| 国产精品网在线观看| 2021久久国自产拍精品| 日本成年人大片免费观看| 日本欧美在线免费观看视频| 成年人免费视频网站在线播放| 97超碰资源在线播放| 成人免费xxxx在线| 人妻人妻干干干干人妻网站| 五月天中文字幕亚洲| 91久久精品视频地址| 色视频在线观看在线| 亚洲区欧美区自拍偷拍区| a区精品视频在线观看| 搞黄色的网站在线观看| 中文字幕 亚洲轻轻av| 欧美猛少妇色xxxxxhd| 91社区男人都懂的网站| 日本欧美黄色网站免费| 亚洲91精选一区二区在线| 男插女下面真人视频| 99久久无色码中文字幕免费| 午夜高清在线观看免费| 日韩毛片免费视频观看| 午夜美女直播福利视频| 日韩在线网站一区二区三区| 国产精品免费观看av| 午夜dj在线观看免费完整视频| 日韩精品性色一区二区在线观看| 91精选一区二区三区四区| japanese国产在线播放| 亚洲综合网男人的天堂| 久久av四色米奇影视| 偷怕自拍在线免费观看| 天天干天天日少妇网| 我的嫂子伦理片在线观看| 免费看亚洲av的网站| 亚洲图片偷拍30pxxx| 亚洲女人毛毛多毛耸耸| 东京一区二区三区av在线| 美女扒开腿让男人桶网站| 影音先锋婷婷五月青青草视频在线| 亚洲三级色片视频在线观看| 97人人添人躁人人爽超碰| 最近最新高清欧美日韩中文字幕| 日本少妇人妻xxxxx16| 999人妻精品中出| 成人av泽村在线播放| 青青国产成人在线看| 人妻人妻干干干干人妻网站| 2021久久国自产拍精品| 亚洲最大第八色在线视频| 亚洲第二页欧美视频| 日韩视频在线观看四区| 白丝高中生被靠操在观看| 几把操女的逼喷水视频| 操的少妇嗷嗷叫视频| 自拍偷拍 欧美亚洲| 鲁死你资源站亚洲av一级aⅴ| 巨大屁股女教师极品白嫩少妇| 久久综合精品五月天| 特黄把女人弄爽又大又粗| 365日日夜夜精品视频| 亚洲另类校园春色小说| 91超碰在线免费播放| 伊人婷婷视频在线观看| 欧美 亚洲 国产 日韩一| 在线观看免费视频网站色| 久久av四色米奇影视| 亲爱的请你原谅我 中文字幕| 啪啪啪啪啪啪啪在线观看| 欧美人妖一区二区三区| 一区二区三区高清在线| 日本丰满人妻免费电影| 成人污视频在线免费观看网址| 欧美日韩一区二区a∨视频| v888av精品少妇| 国产熟女福利资源导航| 操女人逼逼好爽啊操| 久久久com久久久com| 日本一卡不带卡的视频| 蜜桃av在线观看网站| 欧美国产亚洲自拍偷拍| 欧美一级特黄大片做受日本| 青青国产成人在线看| 精品中文字幕高清久久久久三级| 成人av在线播放老熟妇| 91国语对白精彩在线视频| 97久久超碰成人精品网页91| 国产福利一区二区三区久久久| 亚洲第一视频在线视频| 中文av字幕在线观看| 亚洲欧美专区一区二区三区| 日本成人av在线免费看 | 激情黄色激情综合久久| 91麻豆天美精东蜜桃专区| 午夜激情片免费在线观看| 偷拍亚洲图片欧美另类| 都市激情中文字幕蜜桃| 蜜桃系列一区二区观看| 人妻蜜臀久久久av免费| www人妻一区二区| 一区二区三区水蜜桃视频| 色偷偷欧美男人的天堂| 天天干天天日少妇网| 久久久久久久久91精品视频| 色www亚洲国产张柏芝| 一区二区三区麻豆蜜桃视频| 人妻女教师的沦陷大明| 国产亚洲高清在线观看| 美女精品一区二区三区| 久久久久久久亚洲精品中文| 精品国产一区二区三区欧美精品| 精品久久久久久无码中文野结衣| 人妻视频在线免费观看| 日韩午夜小视频合集| youjizz少妇日本| 91午夜免费在线视频| 日本一区二三区好的精华液| 国产91色婷婷手机在线| 天天干天天日少妇网| 欧美猛少妇色xxxxxhd| 各种玩小处雌女视频| 欧美午夜理论片1000在线播放| 美女精品一区二区三区| 操死你 骚货 视色| 69久久夜色精品国产69| 青青草原精品资源站| 日本女人牲交的视频| 爱毛片在线成人免费看| 久久久亚洲av成人网人人| 91日本av在线观看| 日韩欧美在线综合网高清| 天堂av中文官网在线| 午夜dj在线观看免费完整视频| 美日韩黄色一级视频| 97人妻少妇熟女av| 欧美亚洲另类综合网| 亚洲一区二区嗯好爽快点| 日韩精品久久日日躁夜夜躁| 亚洲精品视频在线蜜桃| 日本熟妇三十熟女精品区| 免费观看亚洲欧洲在线视频| 大屁股熟女少妇一区二区| JK白丝喷白嫩嫩久久久| 最近的中文字幕第二页| 97视频免费观看一区| 日韩人妻无码一区2区3区| 97超碰在线资源总站| 国产亚洲av网址大全| 日本少妇一二三视频| 日韩人妻少妇av电影| 99热精品夜夜爽伊人| 国产99热这里有精品| 无套内谢少妇一二三四| 免费在线一区二区视频| 欧美黑人一级性视频| 少妇人妻肉欲短视频| 放荡的丝袜美腿护士老师| 99via精品福利影视| 91极品尤物国产在线播放| 欧美精品色呦呦首页| 日韩免费一卡二卡三卡四卡五卡| 91av在线网址观看| 麻豆传媒视频区一区二| JK白丝喷白嫩嫩久久久| 国产名人亚洲视频中文字幕| 小少妇久久久久久久| 亚洲综合在线一区二区三区四区| 亚洲图片 欧美专区 自拍| 国产婷婷色一区二区三区| 50岁熟女乱综合一区二区| 午夜少妇成人人妻av| 色综合人妻中文字幕| 深夜黄色福利网站在线观看| 51国精产品一区二区三| 久久久精品欧美一区二| 九色91蝌蚪porn| 蜜臀av在线观看一区| 日本一区二区亚洲综合| 亚洲的国产中文字幕的av| 亚洲国产av自拍网站| 弄爽新婚人妻第五部美妙人妻| 亚洲av蜜臀在线观看| 91新视频在线免费观看| 日韩视频在线观看四区| 国产97在线观看视频| 国产精品剧情在线视频| 几把操女的逼喷水视频| 色 小说 激情 图片| 97国产精品人人爽人人做| 国产加勒比高清无码在线视频| 亚洲图片偷拍30pxxx| 亚洲国产成人精品久久久久久久久| 韩国的黄萝卜是怎么腌制的 | 九九热在线视频观看最新| 99久久精品岛国免费黄色网| 亚洲天堂男人天堂中文字幕| 都市激情中文字幕蜜桃| 男人操女人逼视频免费| 国产主播精品在线一区| 在线能看的网站你懂得| 一区二区三区视频直播| 欧美午夜免费福利视频| 中年美熟妇与少年的激情| 放荡的丝袜美腿护士老师| 五十六十日本老熟妇牲| 特黄特黄的日韩爽大片| 五月天在线观看视频精品| 91久久美利坚合众国保护| 北条麻妃超碰av在线播放| 在线观看麻豆免费视频| 日本少妇一二三视频| 天天透天天插天天日| 欧美亚洲变态另类在线观看| 六十六节医疗保健操全套| 草莓视频精品在线观看| 伊人国产精品成人在线| 老外插美女在线视频| 婷婷国产一区二区三区| 青青草毛片在线观看| 亚洲熟女毛茸茸上厕所尿尿| 亚洲在线视频一区二区| a在线观看免费久不卡精品| 91人妻porny精品国产| 中文字幕 av 在线| 国产美女精品久久久有奶水 | 成人av在线播放老熟妇| 18禁止看免费120秒试看| 日韩一级片黄色av| 91黄色大全免费观看| 日韩毛片在线观看网站| 我的嫂子伦理片在线观看| 天天插天天干天天爽| 亚洲黄色小视频网址| 97超碰在线中文字幕精品| 亚洲专区 欧美日韩| 国产熟女福利资源导航| 小少妇久久久久久久| 色www亚洲国产张柏芝| 久久久com久久久com| 中文热免费在线视频| 天天干狠狠插夜夜操| 五十二老熟女高潮嗷嗷叫| 精品中文字幕高清久久久久三级| 国产精品久久乱码无人区| 欧美一卡二卡3卡4卡无卡十| 亚洲无码免费一二三区视频| 一区二区三区免费精品| 日韩亚洲欧美中文在线电影 | 国产 精品 日韩 人妻| 北条麻妃超碰av在线播放| 日韩精品久久日日躁夜夜躁| av在线免费观看一区| 中文字幕一二区二三区人妻专区| 激情91久久婷婷综合| 亚洲第二页欧美视频| 91成人在线观看免费| 免费午夜在线看福利片| 我的嫂子伦理片在线观看| 狠狠综合久久亚洲av蜜臀| 男人操女人逼视频免费| 忘忧草精品久久久久久久高清| 97超碰资源在线播放| 天天爱天天做天天舔| 九色91蝌蚪porn| 成年女女子免费视频播放| 亚洲国产精品久久久久秋霞1| 欧美另类视频第二页| av制服国产丝袜黑丝网站| 大香蕉伊人久久在线观看| 粗大挺进朋友人妻身体里国产| 狠狠添狠狠添狠狠添免费出高潮水 | 中文字幕在线精品的视频| 日本jizzjizz少妇| 自拍偷拍国产欧美精品| 免费观看男人操逼的操女人的 | 人妻出轨av中文字幕| 午夜两性操一操在线观看嗯嗯啊| 欧美国产亚洲自拍偷拍| 亚洲国产综合精品中文字幕| 中文字幕av一区二区三区不卡| 成人两性色午夜视频免费88AV| 亚洲一区二区婷婷久久| 免费在线一区二区视频| 国产av剧情网址大全| 亚洲天堂啪啪爱之巢穴| 影音先锋婷婷五月青青草视频在线| 国产婷婷色三区二区一区| 国产一二三区在线播放| 老司机福利在线免费观看视频| 欧美的一区二区三区| 91免费一区二区久久| 人妻熟女–第2页–无名网 | 91免费免费观看在线| 丝袜美腿av一区二区| 日本精品一区二区三区不卡| 亚洲va欧美va国产综合定档| 成人欧美久久久久美婷婷| 东京热tokyo黑人系列| 国产精品蜜臀在线观看| 99久久无色码中文字幕免费| 国产精选黄片免费观看| 最新欧美一级特黄大片| 中文字幕一区二区三区人妻| 国产在线精品免费视频| 这里只有精品99视频| 美女被鸡操黄片入口| av色伊人久久综合一区二区| 免费在线观看不卡高清av| 97超碰人人澡香蕉| 欧美亚洲日产国产综合| beeg欧美丰满人妻| 国产老妇女免费视频| 五月天久草亚洲香蕉| 丰满熟妇人妻一区二区三区| 玩弄饥渴放荡美熟妇岳| 少妇花园流浆嗯嗯张开视频| 偷拍亚洲图片欧美另类| av看片资源网手机版在线播放| 亚洲天堂中文字幕手机在线| 日本欧美在线免费观看视频| 亚洲午夜短视频在线| 亚洲激情四射在线观看视频| 少妇人妻肉欲短视频| 国语自产精品视频在线看一大j8| 欧美区一区一区三区| 在线观看免费精品一区| 在线观看欧美日一区二区 | 亚洲嘿嘿网站在线观看| 国产精品不卡在线播放| 久久久三级高清免费| 成人在线中文字幕日韩| 欧美亚洲综合另类清纯自拍| 床戏高潮呻吟声片段大全| 国产av电影网站一区| 91社区男人都懂的网站| 性色av不卡一区二区三区| 国产一级免费观看av网站| 三级视频欧美视频亚洲视频| 午夜福利92一区二区三区久久| 成年人免费视频网站在线播放| 精华液一区二区区别| 日韩精品视频啊啊啊| 国产精品免费手机在线观看| 在线 国产区 视频| 亚洲欧美另类离制服丝袜| 美女穿白丝被啪啪到高潮| 一色桃子av人妻熟女完整版| 50岁老熟女高潮喷水了| 中文字幕a区一区三区| 亚洲天堂国产精品乱伦一区| 精品黄色一级久久久久久久久| 啪啪啪在线免费视频| 我的嫂子伦理片在线观看| 国产精品一线二线三区| 最新欧美一级特黄大片| 狠狠色丁香久久综合频道日韩| 蜜臀久久99精品久久久久久久久| 亚洲专区 欧美日韩| 国产精品视频自拍一区| 嗯啊好想要插我视频| 中文字幕在线精品的视频| 国产自拍福利视频在线观看| 国产大屁股影音在线播放| 日日夜夜精品视频观看| 91超碰在线免费播放| 亚洲av日韩av在线综合av| 亚洲图片偷拍30pxxx| 亚洲国产成人一区二区久久久| 少妇厨房激情做爰欧美| 在线观看的a站视频| 日韩黄色a影视在线免费观看网站| 免费观看黄片视频91| 91瑟瑟视频在线观看| 日本丰满人妻免费电影| ww久久久久国产喷水18禁| 国产加勒比高清无码在线视频| 在线观看免费a级电影| 欧美黄色网黄色欧美网| 精品在线观看一区二区视频| 精品国产专区91精品| 亚洲中字幕日产AV片在线| 少妇性感美女一区二区三区四区| 动漫卡通一区二区三区| kendralust熟女少妇| 网友自拍+人妻丝袜+制服诱惑| 国产亚洲精品视频久久久| 午夜香蕉爽爽爽av| 8x8x国产在线观看一区二区| 最新日韩成人av电影| 最新中文字幕不卡av| kendralust熟女少妇| 粗大挺进朋友人妻身体里国产| 国产福利小视频在线免费观看| 最近的中文字幕一区二区| 熟妇高潮喷水在线120p| 欧美亚洲国产激情在线| 亚洲欧洲视频一二三区| 性美女毛片久久a区| 操女人逼逼好爽啊操| 国产午夜精品在线播放| 丝袜美腿av一区二区| 丝袜 制服 国产 欧美 日韩| 黄色片网站国产精品| 五月天中文字幕亚洲| 天天看天天舔天天摸| 欧美老熟妇在线一区二区三区| 国产一区二区精品调教| 狠狠干在线视频观看| 男女裸交无套啪啪激情高潮| 五月婷婷六月久久久| 97人人澡人人添人人爽| 嫩草伊人久久精品少妇av网站| 狠狠干在线视频观看| 91精品人妻丰满熟妇| 青青久在线观看免费视频| 日本aaaaa特黄| 不戴胸罩的人妻电影| 激情啪啪理论片中文字幕| 亚洲最快不卡av综合| 国产55夜色66夜色男人的天堂| 亲爱的请你原谅我 中文字幕| 97视频免费观看一区| 日本一区二区三区成人| 大香蕉红杏在线观看| 欧美老熟妇乱子伦视频在线观看| 男人把女人桶到爽午夜视频 | 性色av不卡一区二区三区| 国产精品国产三级区别第一集 | 人妻蜜臀久久久av免费| 国产剧情传媒av在线| 青青日常在线免费观看| 精品亚洲永久免费精品网站| 国产免费av天堂蘑菇视频| 亚洲视频资源在线播放| 日本黄色an久久一区| 精品少妇人妻大乳av| 欧美一级特黄大片做受日本| 操的少妇嗷嗷叫视频| youjizzcom精品少妇| 狠狠操视频在线免费观看| 沈惊觉白小小免费看全集| 男人日女人鸡鸡天天视频官方| 国产精品va在线观看老妇女| 青青草手机免费在线视频| 天堂久久精品无码一区二区| 午夜少妇成人人妻av| 无码大荫蒂视频在线| 三级视频欧美视频亚洲视频| 国产免费av天堂蘑菇视频| 国产亚洲精品久久久久久电影 | 中年美熟妇与少年的激情| 狠狠综合久久亚洲av蜜臀| 一区二区三区四区蜜桃在线| 国产熟女福利资源导航| 精品黑丝袜一区二区三区| 在线能看的网站你懂得| 日本黄站一区二区在线观看| 中文乱码在线观看一区| 久久精品乱码中文字幕| 亚洲夫妻另类在线视频| 三级日本美女少妇99| 自拍偷拍 欧美亚洲| 欧美视频一区二区三区三州| 沈惊觉白小小免费看全集 | 超碰青青草原免费在线观看97| 91大神长腿美女视频在线观看| 蜜桃视频app网站入口| 中年美熟妇与少年的激情| 色狠狠久久vs北条麻妃av| 狠狠添狠狠添狠狠添免费出高潮水 | 亚洲综合精品天堂丁香芒果| 国产av办公室丝袜在线| 欧美口爆吞精一区二区三区| 天天爱天天做天天舔| 欧美黑人一级性视频| 人妻少妇精品视频在线观看| 77777色婷婷av一区二区三| 国产综合欧美日韩在线观看| 欧美亚洲 自拍偷拍| 免费在线视频 中文字幕| 亚洲一级中文字黄色片| 国产亚洲精品免费观看| 好几个美女吃我大鸡吧射嘴里| 玩弄饥渴放荡美熟妇岳| 可以免费看黄色的网址| 超碰av在线一区二区三区| 日韩黄色a影视在线免费观看网站| 久久古典武侠第1页777| 日本一区二区三区综合网| 国产亚洲精品137片内射| 亚洲熟女毛茸茸上厕所尿尿| 日本最新区免费中文字幕| 亚洲熟女乱色综合小说| 亚洲国产丰满熟女一区二区三区 | 久久久亚洲av成人网人人| 六十六节医疗保健操全套| 日本欧美黄色网站免费| 极品扒开粉嫩小av一区二区| 人成免费视频一区二区三区| 亚洲一区在线观看完整版| a在线观看免费久不卡精品| 亚洲插美女综合av| 日本性生活视频观看免费| 蜜臀国产精品久久久久久| 国产高新无码在线观看| 男人把女人桶到爽午夜视频| 国产熟女福利资源导航| 一区二区三区麻豆蜜桃视频| 国产 福利 一区二区| 亚洲最大的中文字幕在线| 国产九色视频在线观看| 91免费在线播放视频| 美女爽爽午夜作爱视频1314| 蜜桃精品www视频在线观看| 欧洲老妇人一区二区三区| 精品少妇人妻av免费麻豆| 亚洲欧美日本高清在线观看| 人妻在线一区二区三区| 中文字幕丰满人妻fsdss| 又粗又硬又黄又色的| 人妻熟妇久久久久久xxx| 日本在线不卡视频播放| 精品国产伦理片1区2区| 天堂免费av在线播放| 少妇高潮一区二区三区在线| 91精品久久久久久久99蜜臀| 国产熟女福利资源导航| 操骚逼啊啊啊叫一区二区三区| 一本久道久久综合狠狠躁| 在线人妻中文av导航| 人人爱精品人人艹人人干| 白丝骚逼美女被操到逼水直流 | 涩爱av一区二区在线播放视频| 99成全re视频免费观看在线看| 日韩欧美亚洲第五页| 青娱乐休闲在线观看视频 | 大香蕉av电影在线| 特黄特黄的日韩爽大片| 日韩欧美激情啪啪啪| 日韩人妻少妇av电影| 91网在线视频中文字幕| 精品亚洲永久免费精品网站| av熟女乱一区二区三区| 亚洲一区二区日韩欧美久久| 欧美在线中文字幕第一页| 91青青青青艹视频在线观看| 亚洲美女啪啪邪恶视频| 免费精产国品一二三产区区大学生| 精品国产精品国产免费| 人人妻人人澡人人爽dv| 日韩人妻少妇av电影| 大香蕉红杏在线观看| 中文字幕一区二区三区人妻| 日韩一区=区三区四区| 99在线只有精品视频| 国产精品综合自拍第一页| a区精品视频在线观看| 成人av泽村在线播放| av色伊人久久综合一区二区| 中文字幕人妻不卡久久| 无码伊人久久大杳蕉中文无码| 亚洲av熟女av熟女| 天天操天天摸天天添| 日本在线观看公司入口视频| 亚洲va欧美va国产综合定档| 国产一级二级三级在线看| 韩国女主播一区二区福利视频| 亚洲美女啪啪邪恶视频| 精品久久久中文字幕熟女| 两人在沙发激情的视频| 大屁股熟女少妇一区二区| 国产91福利在线导航| 在线观看欧美日一区二区 | 7799精品视频免费观看| 成人国产av精品麻豆入口| 四房波波-五月天-四房波波| 天天草天天日天天舔| 午夜福利无码一区二区三区| 日日av拍夜夜添久久免费老牛| 久久久com久久久com| av制服国产丝袜黑丝网站| 日本国产一区二区精品| 老司机福利社免费视频| 超碰青青草原免费在线观看97| 少妇性感美女一区二区三区四区| 9999精品久久久久| 亚洲天堂av成人在线观看| 午夜天堂网在线观看资源网站| 蜜桃精品噜噜噜成人av小说| 久操高清在线免费视频| 国产+精品+在线观看| 中文字幕亚洲专区婷婷| 亚洲国产成人一区二区久久久| 中文字幕超碰18区| 国产精品久久乱码无人区| 久久99国产精品久久99蜜月| 国产精品一级片免费看| 麻豆免费成人小视频| 日韩欧美激情啪啪啪| 97久久超碰成人精品网页91| 国产91色婷婷手机在线| 亚洲另类校园春色小说| 日韩一二区内射电影| 在线观看欧美日一区二区 | 强行进女小姪女小芳| 国产九色视频在线观看| 欧美日韩黄色aaa| 久久久精品国产亚洲av水| 国产精品制服诱惑丝袜的| 国产一区二区精品调教| 在线观看免费视频网站色| 国产区精品一区二区不卡中文| 乱色熟女综合一区二区三区四| 蜜桃黄视频在线观看| 亚洲一区二区三区视频免费观看| 91福利在线观看免费| 亚洲欧美综合一区二区三区四区| 国产视频播放一区二区三区| 日本在线观看公司入口视频| 日本中文字幕第三区| 日本性生活视频观看免费| 好好的日com中文视频| 欧美美女色视频免费看| av亚洲欧美一区二区| 性美女毛片久久a区|