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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android 进程间通信

發(fā)布時間:2025/3/15 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 进程间通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要講 Android 進程通信的話,就不得不先講講 Service. Service 是 Android 的四大組件之一,它主要的作用是后臺執(zhí)行操作,Activity 屬于帶有 UI 界面跟用戶進行交互,而 Service 則沒有 UI 界面,所有的操作都是基于后臺運行完成。并且 Service 跟 Activity 一樣也是可以由其它的應用程序調用啟動的,而且就算用戶切換了應用程序,Service 依舊保持運行。一個組件如果與 Service 進行了綁定( bind ), 就可以跟 Service 進行數據的交互,并且也可以跟不同的進程之間進行交互 (IPC)。通常會使用到 Service 的情況有進行網絡請求,音樂的操控,文件的 I/O 操作等。

Service

聲明

在 Manifest 里聲明 Service, 類似于 Activity,所有的 Service 都要在 Manifest 里面進行聲明,如下:

<manifest ... >...<application ... ><service android:name=".ExampleService" />...</application> </manifest>復制代碼

查看 service 標簽 的官方文檔來獲取更多信息

啟動

Service 通常是通過以下兩種方式進行啟動

  • startService
  • bindService

Start Service

當組件(例如 activity)通過調用 startService() 來啟動 Service 的時候。一旦啟動后,Service 就會獨立的在后臺運行,即使調用的組件已經銷毀了,Service 還是可以繼續(xù)在后臺運行。一般情況下,只需要進行一次單獨的操作,不需要將操作后的結果返回給調用者的時候,會使用該方式啟動 Service。例如,進行上傳或者下載操作的時候,當操作完成后,Service 應該自行調用 stopService() 或 stopSelf() 來結束運行。

Bind Service

當組件(例如 activity)通過調用 bindService() 來啟動 Service 的時候。這種方式提供了 client - service 的接口,可以讓調用組件跟 Service 進行發(fā)送請求及返回結果的操作,設置可以進行進程間的通信 (IPC)。只要有一個組件對該 Service 進行了綁定,那該 Service 就不會銷毀。并且多個組件可以同時對一個 Service 進行綁定,只有在所有進行了綁定的組件都解綁的時候,Service 才會銷毀。

盡管兩種方式是分開討論的,但是并不是互斥的關系,使用 startService 啟動了 Service 后,也是可以通過 bindService綁定的。

注意: 雖然 Service 是在后臺運行,但是其實還是在主線程里進行所有的操作的。Service 在啟動時除非單獨進行了定義否則并沒有在單獨的線程或者進程了而都是在主線程里。所以這表示任何能堵塞主線程的操作(例如音樂的播放或者網絡請求)都應該單獨開辟新的線程來進行操作,否則很容易出現 ANR 。

如果某個組件是通過調用 startService() 的方式來啟動了 Service,那這個 Service 就會一直在后臺運行直到 Service 內部調用 stopSelf() 或某個組件調用 stopService() 來結束該 Service。

如果某個組件是通過調用 bindService() 的方式來啟動了 Service,那這個 Service 就會一直在后臺運行直到該組件與其解綁。Service 在沒有任何組件綁定的時候,系統(tǒng)會將其銷毀

關于 Service 更多詳細的介紹可以查看這里

Service 生命周期

service 生命周期圖

AIDL (Android Interface Definition Language )

Android IPC 是通過 Binder 實現的,但是 Binder 相關的概念非常復雜,為了方便開發(fā)者 Google 就推出了 AIDL (安卓接口定義語言)。通過編寫 AIDL 文件,Android Studio 就可以幫我們生成 Binder 通信的相關代碼。開發(fā)者即使不了解 Binder 機制也可以實現 IPC 了。

關鍵字

oneway

正常情況下 Client 調用 AIDL 接口方法時會阻塞,直到 Server 進程中該方法被執(zhí)行完。oneway 可以修飾 AIDL 文件里的方法,oneway 修飾的方法在用戶請求相應功能時不需要等待響應可直接調用返回,非阻塞效果,該關鍵字可以用來聲明接口或者聲明方法,如果接口聲明中用到了 oneway 關鍵字,則該接口聲明的所有方法都采用 oneway 方式。(注意,如果 Client 和 Server 在同一進程中, oneway 修飾的方法還是會阻塞)

in

非基本數據類型和 String 的參數類型必須加參數修飾符, in 的意思是只輸入,既最終 Server 端執(zhí)行完后不會影響到參數對象

out

與 in 相反, out 修飾的參數只能由 Server 寫入并傳遞到 Client,而 Client 傳入的值并不會傳遞到 Server

inout

被 inout 修飾的參數,既可以從 Client 傳遞到 Server,也可以 Server 傳遞到 Client

AIDL 自動生成文件講解

Talk is cheap, show you the code.

interface ISocketService {int getState();oneway void registerCallback(in ISocketServiceCallback callback);oneway void unregisterCallback(in ISocketServiceCallback callback);oneway void runShadowSocks(in Config config); }復制代碼

IDE 自動生成的代碼如下

public interface ISocketService extends android.os.IInterface {/*** Local-side IPC implementation stub class.*/public static abstract class Stub extends android.os.Binder implements com.shadark.app.aidl.ISocketService {private static final java.lang.String DESCRIPTOR = "com.shadark.app.aidl.ISocketService";/*** Construct the stub at attach it to the interface.*/public Stub() {this.attachInterface(this, DESCRIPTOR);}/*** Cast an IBinder object into an com.shadark.app.aidl.ISocketService interface,* generating a proxy if needed.*/public static com.shadark.app.aidl.ISocketService asInterface(android.os.IBinder obj) {if ((obj == null)) {return null;}android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);if (((iin != null) && (iin instanceof com.shadark.app.aidl.ISocketService))) {return ((com.shadark.app.aidl.ISocketService) iin);}return new com.shadark.app.aidl.ISocketService.Stub.Proxy(obj);}@Overridepublic android.os.IBinder asBinder() {return this;}@Overridepublic boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException {switch (code) {case INTERFACE_TRANSACTION: {reply.writeString(DESCRIPTOR);return true;}case TRANSACTION_getState: {data.enforceInterface(DESCRIPTOR);int _result = this.getState();reply.writeNoException();reply.writeInt(_result);return true;}case TRANSACTION_registerCallback: {data.enforceInterface(DESCRIPTOR);com.shadark.app.aidl.ISocketServiceCallback _arg0;_arg0 = com.shadark.app.aidl.ISocketServiceCallback.Stub.asInterface(data.readStrongBinder());this.registerCallback(_arg0);return true;}case TRANSACTION_unregisterCallback: {data.enforceInterface(DESCRIPTOR);com.shadark.app.aidl.ISocketServiceCallback _arg0;_arg0 = com.shadark.app.aidl.ISocketServiceCallback.Stub.asInterface(data.readStrongBinder());this.unregisterCallback(_arg0);return true;}case TRANSACTION_runShadowSocks: {data.enforceInterface(DESCRIPTOR);com.shadark.app.aidl.Config _arg0;if ((0 != data.readInt())) {_arg0 = com.shadark.app.aidl.Config.CREATOR.createFromParcel(data);} else {_arg0 = null;}this.runShadowSocks(_arg0);return true;}}return super.onTransact(code, data, reply, flags);}private static class Proxy implements com.shadark.app.aidl.ISocketService {private android.os.IBinder mRemote;Proxy(android.os.IBinder remote) {mRemote = remote;}@Overridepublic android.os.IBinder asBinder() {return mRemote;}public java.lang.String getInterfaceDescriptor() {return DESCRIPTOR;}@Overridepublic int getState() 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);mRemote.transact(Stub.TRANSACTION_getState, _data, _reply, 0);_reply.readException();_result = _reply.readInt();} finally {_reply.recycle();_data.recycle();}return _result;}@Overridepublic void registerCallback(com.shadark.app.aidl.ISocketServiceCallback callback) throws android.os.RemoteException {android.os.Parcel _data = android.os.Parcel.obtain();try {_data.writeInterfaceToken(DESCRIPTOR);_data.writeStrongBinder((((callback != null)) ? (callback.asBinder()) : (null)));mRemote.transact(Stub.TRANSACTION_registerCallback, _data, null, android.os.IBinder.FLAG_ONEWAY);} finally {_data.recycle();}}@Overridepublic void unregisterCallback(com.shadark.app.aidl.ISocketServiceCallback callback) throws android.os.RemoteException {android.os.Parcel _data = android.os.Parcel.obtain();try {_data.writeInterfaceToken(DESCRIPTOR);_data.writeStrongBinder((((callback != null)) ? (callback.asBinder()) : (null)));mRemote.transact(Stub.TRANSACTION_unregisterCallback, _data, null, android.os.IBinder.FLAG_ONEWAY);} finally {_data.recycle();}}@Overridepublic void runShadowSocks(com.shadark.app.aidl.Config config) throws android.os.RemoteException {android.os.Parcel _data = android.os.Parcel.obtain();try {_data.writeInterfaceToken(DESCRIPTOR);if ((config != null)) {_data.writeInt(1);config.writeToParcel(_data, 0);} else {_data.writeInt(0);}mRemote.transact(Stub.TRANSACTION_runShadowSocks, _data, null, android.os.IBinder.FLAG_ONEWAY);} finally {_data.recycle();}}}static final int TRANSACTION_getState = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);static final int TRANSACTION_registerCallback = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);static final int TRANSACTION_unregisterCallback = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);static final int TRANSACTION_runShadowSocks = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3);}public int getState() throws android.os.RemoteException;public void registerCallback(com.shadark.app.aidl.ISocketServiceCallback callback) throws android.os.RemoteException;public void unregisterCallback(com.shadark.app.aidl.ISocketServiceCallback callback) throws android.os.RemoteException;public void runShadowSocks(com.shadark.app.aidl.Config config) throws android.os.RemoteException; }復制代碼

IDE 用我們編寫的 AIDL 文件,幫我們做了如下這些事情:
1.創(chuàng)建了 ISocketService 的實現類 Stub 和 Stub 的子類 Proxy
2.Stub 類中實現了有 IBinder 對象轉換為 ISocketService 類型的 asInterface, asInterface 中通過 queryLocalInterface(DESCRIPTOR) 方法查看本進程是否有 ISocketService 在 Server 端的實現類(既判斷 Server 與 Client 是否在同一進程),如果是同一進程就直接返回 Server 端的 ISocketService 實現者,如果不在同一進程就返回代理對象
3.Proxy 類中實現了 AIDL 中定義的方法,根據 oneway、in、out、inout 修飾符來生成不同的代碼,決定是否向 binder 驅動寫入數據或者執(zhí)行完后向方法參數回寫數據。注意:oneway 修飾一個方法后,該方法不阻塞 client 調用線程,但是方法沒有返回值,方法參數在執(zhí)行方法執(zhí)行完后也不會回寫。
4.Proxy 類中實現的方法最終通過 transact() 方法向 Binder 驅動寫入數據(運行在 Client 進程),最終 Stub 類中的 onTransact() 方法會被調用到(運行在 Server 進程),就這樣完成一次跨進程方法調用。

Binder 死亡處理

在進程間通信過程中,很可能出現一個進程死亡的情況。如果這時活著的一方不知道另一方已經死了就會出現問題。那我們如何在 A 進程中獲取 B 進程的存活狀態(tài)呢?
Android 肯定給我們提供了解決方式,那就是 Binder 的 linkToDeath 和 unlinkToDeath 方法, linkToDeath 方法需要傳入一個 DeathRecipient 對象, DeathRecipient 類里面有個 binderDied 方法,當 binder 對象的所在進程死亡, binderDied 方法就會被執(zhí)行,我們就可以在 binderDied 方法里面做一些異常處理,釋放資源等操作了。

示例如下:

...@Overridepublic void onServiceConnected(ComponentName name, IBinder binder) {try {mBinder = binder;binder.linkToDeath(SocketServiceManager.this, 0);mSocketService = ISocketService.Stub.asInterface(binder);registerCallback();mCallback.onServiceConnected();} catch (RemoteException e) {LogUtils.e(TAG, "onServiceConnected: " + e.getMessage());}}@Overridepublic void onServiceDisconnected(ComponentName name) {unregisterCallback();mCallback.onServiceDisconnected();if (null != mBinder) {mBinder.unlinkToDeath(this, 0);mBinder = null;}} ...復制代碼private class SocketServiceManager implements IBinder.DeathRecipient {...@Overridepublic void binderDied() {mCallbackList.unregister(mClientCallBack);mClientCallBack = null;Logger.d(TAG,"client is died");}... }復制代碼

上面是在 Server 端對 Client 的回調接口的 Binder 對象設置的 DeathRecipient。在 Client 死亡時,解注冊 Client 的回調,并且置空。

Client 注冊回調接口

之前一直說的都是 Client 向 Server 的通信,那如果 Server 要調用 Client 呢?
一個比較容易想到的辦法就是通過 AIDL 在 Server 端設置一個 Client 的回調。這樣的話就相當于 Client 端是 Server 端的 Server 了。
有注冊回調就肯定有解注冊,但是 Client 端與 Server 不在一個進程,Server 是無法得知 Client 解注冊時傳入的回調接口是哪一個( Client 調用解注冊時,是通過 Binder 傳輸到 Server 端,所以解注冊時的回調接口是新創(chuàng)建的,而不是注冊時的回調接口)。為了解決這個問題,Android 提供了 RemoteCallbackList 這個類來專門管理 remote 回調的注冊與解注冊。

AIDL 類

interface ITaskCallback { void actionPerformed(int actionId); }復制代碼interface ITaskBinder { boolean isTaskRunning(); void stopRunningTask(); void registerCallback(ITaskCallback cb); void unregisterCallback(ITaskCallback cb); }復制代碼

Service 類

public class MyService extends Service { private static final String TAG = "aidltest"; final RemoteCallbackList <ITaskCallback>mCallbacks = new RemoteCallbackList <ITaskCallback>(); ...@Override public IBinder onBind(Intent t) { printf("service on bind"); return mBinder; } @Override public boolean onUnbind(Intent intent) { printf("service on unbind"); return super.onUnbind(intent); } void callback(int val) { final int N = mCallbacks.beginBroadcast(); for (int i=0; i<N; i++) { try { mCallbacks.getBroadcastItem(i).actionPerformed(val); } catch (RemoteException e) { // The RemoteCallbackList will take care of removing // the dead object for us. } } mCallbacks.finishBroadcast(); } private final ITaskBinder.Stub mBinder = new ITaskBinder.Stub() { public void stopRunningTask() { } public boolean isTaskRunning() { return false; } public void registerCallback(ITaskCallback cb) { if (cb != null) { mCallbacks.register(cb); } } public void unregisterCallback(ITaskCallback cb) { if(cb != null) { mCallbacks.unregister(cb); } } }; }復制代碼

Client 類

public class MyActivity extends Activity { private static final String TAG = "aidltest"; private Button btnOk; private Button btnCancel; ...ITaskBinder mService; private ServiceConnection mConnection = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder service) { mService = ITaskBinder.Stub.asInterface(service); try { mService.registerCallback(mCallback); } catch (RemoteException e) { } } public void onServiceDisconnected(ComponentName className) { mService = null; } }; private ITaskCallback mCallback = new ITaskCallback.Stub() { public void actionPerformed(int id) { printf("callback id=" + id); } }; }復制代碼

RemoteCallbackList 可以實現正常注冊于解注冊的原因在于注冊與解注冊時雖然對應的回調接口不是同一個,但是其對應的 Binder 對象卻是同一個。

Messenger 通信

以下概括了Messenger的使用方法:

  • 服務實現一個 Handler ,用于客戶端每次調用時接收回調
  • 此 Handler 用于創(chuàng)建一個 Messenger 對象(它是一個對 Handler 的引用)
  • 此 Messenger 對象創(chuàng)建一個 IBinder ,服務在 onBind() 中把它返回給客戶端
  • 客戶端用 IBinder 將 Messenger(引用服務的 Handler)實例化,客戶端用它向服務發(fā)送消息對象 Message
  • 服務接收 Handler 中的每個消息 Message ——確切的說,是在 handleMessage() 方法中接收
  • Service 類

    public class MessengerService extends Service {/*** Target we publish for clients to send messages to IncomingHandler.*/final Messenger mMessenger = new Messenger(new IncomingHandler());/*** When binding to the service, we return an interface to our messenger* for sending messages to the service.*/@Overridepublic IBinder onBind(Intent intent) {return mMessenger.getBinder();}class IncomingHandler extends Handler {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case MSG_REGISTER_CLIENT:mClients.add(msg.replyTo);break;case MSG_UNREGISTER_CLIENT:mClients.remove(msg.replyTo);break;case MSG_SET_VALUE:mValue = msg.arg1;for (int i=mClients.size()-1; i>=0; i--) {try {mClients.get(i).send(Message.obtain(null,MSG_SET_VALUE, mValue, 0));} catch (RemoteException e) {// The client is dead. Remove it from the list;// we are going through the list from back to front// so this is safe to do inside the loop.mClients.remove(i);}}break;default:super.handleMessage(msg);}}}... }復制代碼

    Client 類

    public static class Binding extends Activity {/*** Messenger for communicating with service.*/Messenger mService = null;/*** Handler of incoming messages from service.*/class IncomingHandler extends Handler {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case MessengerService.MSG_SET_VALUE:mCallbackText.setText("Received from service: " + msg.arg1);break;default:super.handleMessage(msg);}}}/*** Target we publish for clients to send messages to IncomingHandler.*/final Messenger mMessenger = new Messenger(new IncomingHandler());/*** Class for interacting with the main interface of the service.*/private ServiceConnection mConnection = new ServiceConnection() {public void onServiceConnected(ComponentName className,IBinder service) {// This is called when the connection with the service has been// established, giving us the service object we can use to// interact with the service. We are communicating with our// service through an IDL interface, so get a client-side// representation of that from the raw service object.mService = new Messenger(service);mCallbackText.setText("Attached.");// We want to monitor the service for as long as we are// connected to it.try {Message msg = Message.obtain(null,MessengerService.MSG_REGISTER_CLIENT);msg.replyTo = mMessenger;mService.send(msg);// Give it some value as an example.msg = Message.obtain(null,MessengerService.MSG_SET_VALUE, this.hashCode(), 0);mService.send(msg);} catch (RemoteException e) {// In this case the service has crashed before we could even// do anything with it; we can count on soon being// disconnected (and then reconnected if it can be restarted)// so there is no need to do anything here.}// As part of the sample, tell the user what happened.Toast.makeText(Binding.this, R.string.remote_service_connected,Toast.LENGTH_SHORT).show();}public void onServiceDisconnected(ComponentName className) {// This is called when the connection with the service has been// unexpectedly disconnected -- that is, its process crashed.mService = null;mCallbackText.setText("Disconnected.");// As part of the sample, tell the user what happened.Toast.makeText(Binding.this, R.string.remote_service_disconnected,Toast.LENGTH_SHORT).show();}};... }復制代碼

    在 MessengerService.java(服務)和 MessengerServiceActivities.java(客戶端)例程中,可以看到如何關于 Messenger 的實用例子。

    Messenger 和 AIDL 的異同

    其實 Messenger 的底層也是用 AIDL 實現的,但用起來還是有些不同的,這里總結了幾點區(qū)別:

  • Messenger 本質也是 AIDL,只是進行了封裝,開發(fā)的時候不用再寫 .aidl 文件

    結合自身的使用,因為不用去寫 .aidl 文件,相比起來,Messenger 使用起來十分簡單。但前面也說了,Messenger 本質上也是 AIDL,故在底層進程間通信這一塊,兩者的效率應該是一樣的。

  • 在 Service 端,Messenger 處理 Client 端的請求是單線程的,而 AIDL 是多線程的

    使用 AIDL 的時候,service 端每收到一個 client 端的請求時,就在 Binder 線程池中取一個線程去執(zhí)行相應的操作。而 Messenger ,service 收到的請求是放在 Handler 的 MessageQueue 里面,Handler 大家都用過,它需要綁定一個 Thread,然后不斷 poll message 執(zhí)行相關操作,這個過程是同步執(zhí)行的。

  • Client 的方法,使用 AIDL 獲取返回值是同步的,而 Messenger 是異步的

    Messenger 只提供了一個方法進行進程間通信,就是 send(Message msg) 方法,發(fā)送的是一個 Message,沒有返回值,要拿到返回值,需要把 Client 的 Messenger 作為 msg.replyTo 參數傳遞過去,Service 端處理完之后,在調用客戶端的 Messenger 的 send(Message msg) 方法把返回值傳遞回 Client,這個過程是異步的,而 AIDL 你可以自己指定方法,指定返回值,它獲取返回值是同步的(如果沒有用 oneway 修飾方法的話)。

  • P.S. 該文章還配有對應的 PPT, 請點擊這里

    總結

    以上是生活随笔為你收集整理的Android 进程间通信的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    4438全国亚洲精品在线观看视频 | 91亚洲夫妻 | 欧洲成人av | 日韩av一区在线观看 | 国产美女网站在线观看 | 91在线资源 | 成年人视频在线免费播放 | 18网站在线观看 | 免费色视频在线 | 天天操天天射天天爱 | 亚洲国产高清在线观看视频 | 精品高清视频 | 国产午夜精品久久久久久久久久 | 久久免费精品国产 | 丝袜网站在线观看 | 在线免费高清一区二区三区 | 精品免费观看 | 国产免费美女 | 国产精品免费高清 | 超级av在线| 亚洲综合五月天 | 日韩美女黄色片 | 国产韩国日本高清视频 | 亚洲欧美日韩一级 | 日本午夜在线观看 | 91精品国产99久久久久久久 | 色91在线视频 | 免费精品视频在线观看 | 五月天久久婷婷 | 在线免费性生活片 | 精品视频在线播放 | 成人在线中文字幕 | www.777奇米 | 五月婷婷在线综合 | 亚洲免费一级 | av中文资源在线 | 在线电影av | 91亚洲精品久久久蜜桃 | 安徽妇搡bbbb搡bbbb | 夜夜夜夜夜夜操 | 天天爱天天 | 久久精品之 | 久久免费视频一区 | 婷婷网在线| 人人干人人干人人干 | 精品国产欧美一区二区三区不卡 | 久草9视频 | 久久久久久99精品 | 黄色视屏在线免费观看 | 天天躁日日躁狠狠躁 | 精品女同一区二区三区在线观看 | 国产成人精品999 | 天天玩夜夜操 | 99爱在线| 国产精品电影一区二区 | 国产精品一区二区三区99 | 在线天堂中文www视软件 | 免费在线国产 | 国产精品福利在线 | 国产精品久久一卡二卡 | 日本黄区免费视频观看 | 国产亚州av| 国产九九热视频 | 波多野结衣在线观看一区二区三区 | 中文字幕久久精品一区 | 久久免费a | 免费在线观看国产黄 | 国产精品一区二区免费看 | 国产91全国探花系列在线播放 | 探花视频在线观看+在线播放 | 五月激情六月丁香 | 超碰在线人人97 | 五月婷婷开心中文字幕 | 久久综合久久久久88 | av中文字幕在线看 | 激情丁香婷婷 | 亚洲 欧洲av | 久久精品男人的天堂 | 亚a在线 | 超碰97中文 | 九九综合九九综合 | 中文字幕91在线 | 久久国产精品偷 | 日韩精品一区二区三区丰满 | av日韩在线网站 | 日本91在线 | 久久久久久久久国产 | 高清精品久久 | 婷婷九月丁香 | 国产成人精品日本亚洲999 | 天天干夜夜爱 | 7777精品伊人久久久大香线蕉 | 日日干天天插 | 91精品国产麻豆 | 91视频免费 | 黄色在线观看免费网站 | 久久夜色精品国产欧美乱极品 | 国产在线a不卡 | 国产精品久久 | 91视频啪| 久久国产剧场电影 | 91视频啊啊啊 | 国模精品在线 | 青青啪| 国产精品国产自产拍高清av | 久久大香线蕉app | 日本电影久久 | 久草精品视频在线看网站免费 | 欧美成人91| 欧美做受69 | 久久久久久久免费 | 四虎影视成人精品国库在线观看 | 黄色动态图xx | 国产亚洲精品v | 射九九 | 日本成人免费在线观看 | 91精品国产91 | 色综合久久中文综合久久牛 | 日韩视频中文字幕在线观看 | 久久99精品国产麻豆婷婷 | 亚洲2019精品 | 亚洲免费精品一区二区 | 国产伦理久久精品久久久久_ | 黄色的网站在线 | 色视频网址 | 2021国产视频| 国产一区二区三区免费观看视频 | 97成人资源 | 91入口在线观看 | 99r在线观看 | 欧美亚洲国产一卡 | 久久人人97超碰精品888 | 久久久视频在线 | 成人免费观看完整版电影 | 日韩免费观看一区二区 | 香蕉蜜桃视频 | 在线成人性视频 | 精品国产一区二区三区av性色 | 久久久国产99久久国产一 | 黄色av一级| 日韩资源在线播放 | 欧美日韩国产一区二区三区在线观看 | 99国产精品久久久久老师 | 国产精品va最新国产精品视频 | 最近中文字幕在线中文高清版 | 国产又粗又长又硬免费视频 | 国产91影视| 免费一级片观看 | 人成午夜视频 | 亚洲精品乱码久久久久久 | 亚洲男男gaygay无套同网址 | 日韩欧在线 | 国产成人精品女人久久久 | 激情综合网在线观看 | 国产丝袜一区二区三区 | 永久免费视频国产 | 亚洲精品视频大全 | 色激情在线 | 久草在线观看视频免费 | 中文字幕在线一二 | 91亚洲视频在线观看 | 国产日韩欧美在线影视 | 精品国产乱码久久久久久天美 | 五月天色中色 | 中文字幕在线观看视频一区 | 午夜av大片 | 精品视频999 | 1000部国产精品成人观看 | 人人澡人人澡人人 | 最近中文字幕大全中文字幕免费 | 五月激情亚洲 | av中文电影 | 日本99精品 | 国产亚洲一区二区在线观看 | 色在线免费观看 | 国产精品激情偷乱一区二区∴ | 波多野结衣网址 | 日韩黄色免费电影 | 婷婷色中文字幕 | 中文字幕在线观看的网站 | 亚洲精品日韩在线观看 | 丁香在线观看完整电影视频 | 国产亚洲精品成人 | 国产中文字幕视频在线 | 日b视频国产 | 国产人成在线视频 | www欧美色 | 久久久精品 一区二区三区 国产99视频在线观看 | 国产精品成人免费 | 国产精品精品国产婷婷这里av | 91污污 | 麻豆91精品91久久久 | 日本精品午夜 | 国产亚洲精品久久19p | 国产99久久99热这里精品5 | 久久成人一区二区 | a爱爱视频| 四虎成人免费观看 | 欧美日韩二区在线 | 午夜精品av | 中文字幕高清在线 | 天天干天天干天天 | www.日本色| 国产小视频在线免费观看视频 | 日韩激情av在线 | 亚洲欧洲国产精品 | 天天色图 | 超碰97人人射妻 | 日韩av免费在线看 | 一区中文字幕在线观看 | 婷婷激情久久 | 成人免费观看视频网站 | 国产在线精品区 | 免费国产黄线在线观看视频 | 欧美精品国产综合久久 | 久草在线视频在线观看 | 黄污网站在线观看 | www视频在线免费观看 | 天天综合狠狠精品 | 国产精品视频线看 | 国产高清成人 | 日本三级不卡视频 | 亚洲在线免费视频 | 色资源网在线观看 | 欧美成人va| 福利精品在线 | 国产视频中文字幕 | 日本aaaa级毛片在线看 | 一区在线观看 | 久久电影日韩 | 在线91av | 91麻豆精品国产自产在线游戏 | 久久久久久久久精 | 二区视频在线 | 亚洲精品乱码久久久久久蜜桃不爽 | 中文字幕电影一区 | 色婷婷免费视频 | 激情电影影院 | 久久综合九色综合久久久精品综合 | 日本中文字幕一二区观 | 久亚洲| 亚洲精品88欧美一区二区 | 久久国产网站 | 欧美日韩国产二区三区 | 日本丶国产丶欧美色综合 | 午夜影视一区 | 久久精品视频网 | avwww在线观看 | 久久女同性恋中文字幕 | 亚洲欧美乱综合图片区小说区 | 精品美女在线视频 | 亚洲爱视频| 中文字幕在线观看网站 | 国产精品乱码久久久久 | 国产亚洲综合性久久久影院 | 黄色大片视频网站 | 欧美日韩国产免费视频 | 久久精品香蕉视频 | 国产视频精选在线 | 国产资源在线视频 | 日韩在线免费高清视频 | 国产美女黄网站免费 | 日韩在线免费播放 | 五月综合| 国产精品久久久久久999 | freejavvideo日本免费 | 国产精品麻豆欧美日韩ww | 黄色免费视频在线观看 | 国产性天天综合网 | 岛国大片免费视频 | 免费亚洲视频在线观看 | 日韩视频在线观看视频 | av丝袜美腿 | 中文字幕一区在线观看视频 | 99中文字幕视频 | 精品三级av| 精品一区二区三区电影 | 欧美日韩p片 | 美女视频黄是免费的 | 91在线精品一区二区 | 在线观看一级视频 | 日本高清免费中文字幕 | 天天鲁天天干天天射 | 日韩av进入 | av高清一区二区三区 | 最近免费观看的电影完整版 | 国产精品一区二区免费在线观看 | 久久99精品视频 | 亚洲一区二区黄色 | a在线观看视频 | 国产精品一区二区电影 | 99精品国产高清在线观看 | av看片在线| 干 操 插 | 久久精品男人的天堂 | 日韩视频一 | 中文字幕a∨在线乱码免费看 | 久久字幕 | 97在线观看免费高清完整版在线观看 | 91精品国产成人 | 天堂av在线网址 | 日本mv大片欧洲mv大片 | 亚洲视频在线观看免费 | 天天色影院 | 亚洲精品合集 | 婷婷国产在线 | 日韩国产精品久久 | free. 性欧美.com| 国产伦理一区二区 | 国产另类xxxxhd高清 | 亚洲精品在线电影 | 狠狠色丁香久久综合网 | 十八岁免进欧美 | 日av免费 | 国产免费资源 | 2019精品手机国产品在线 | 国际精品久久 | 免费国产在线精品 | 久草综合在线 | 青春草免费在线视频 | 久久观看最新视频 | 欧美日韩国产三级 | 亚洲黄色免费电影 | 精品美女久久久久 | 色婷婷久久一区二区 | 久久久影片| 黄色一级大片免费看 | 激情久久综合网 | 国产免费激情久久 | 久久久一本精品99久久精品66 | 天天干天天草天天爽 | 免费试看一区 | 99精品国自产在线 | 国产欧美精品在线观看 | 99久久精品免费看国产免费软件 | 亚洲国产精品日韩 | 色婷婷久久一区二区 | 在线精品国产 | 国产在线一区观看 | 亚洲欧美日韩精品久久奇米一区 | 精品96久久久久久中文字幕无 | www.黄色在线 | 亚洲精品午夜久久久 | 国产99久久久久久免费看 | 亚洲欧洲日韩 | 在线观看中文字幕一区 | 特级xxxxx欧美| 免费婷婷 | 日本黄色一级电影 | 日韩在线免费高清视频 | 日韩网站在线看片你懂的 | 免费观看一级一片 | 久久99中文字幕 | 免费看一级特黄a大片 | 久久久久成 | 在线免费av播放 | 狠狠色综合网站久久久久久久 | 久久国内精品视频 | 91av在线免费看 | 狠狠操.com | 欧美日韩在线视频一区二区 | 91免费视频黄 | 国产美女被啪进深处喷白浆视频 | 久久综合给合久久狠狠色 | 毛片久久久 | 国产精品自产拍在线观看网站 | 深爱五月激情网 | 久久成| 国产精品国产三级国产aⅴ无密码 | 91看片淫黄大片在线播放 | 在线视频欧美日韩 | 99久久er热在这里只有精品15 | 久热久草在线 | 69亚洲乱 | 久久午夜影视 | 18久久久久久 | 久久中文精品视频 | 久久精品国产免费看久久精品 | 欧洲视频一区 | 韩国一区二区av | 激情久久综合网 | 91经典在线 | 三级在线国产 | 国产精品18p | 久久福利小视频 | 玖草在线观看 | 公开超碰在线 | 亚洲精品在线国产 | 最近中文字幕免费av | 精久久久久 | 久久久久区| 亚洲高清免费在线 | 亚洲人成免费网站 | 久久精品超碰 | 成人在线观看你懂的 | 国产精品一区二区三区四区在线观看 | 婷婷五月情 | 日韩视频在线不卡 | 99热超碰在线 | 91亚洲精品在线观看 | 99精品视频在线观看免费 | 黄色com| 天天曰视频 | 国产精品中文字幕在线播放 | 在线看一级片 | 一级特黄av | 九九九视频精品 | 久久在线一区 | 国产精品 久久 | 日韩欧美视频一区二区 | 久久精品香蕉视频 | 欧美在线aaa| 国产精品久久久久久久久久免费 | 中文字幕你懂的 | 日韩午夜在线播放 | 亚洲黄色软件 | 久久久午夜精品理论片中文字幕 | 欧美一区,二区 | 色综久久 | 91完整版在线观看 | 精品国产一区二区三区久久久蜜臀 | 特级西西444www大精品视频免费看 | 97成人免费视频 | 成人免费观看电影 | 国产成人精品av久久 | 91av网站在线观看 | 美女在线观看网站 | 亚洲国产精品资源 | 国产精品mv| 国产九色91 | 日韩一二三区不卡 | 丁香六月天 | 国产精品久久久久aaaa九色 | 毛片3 | 久久精品9 | 国产精品久久久久久久久久久免费 | 黄色三级免费 | 欧美性粗大hdvideo | 91麻豆文化传媒在线观看 | 91精品国产乱码 | 欧美一级片免费 | 国产精品无av码在线观看 | 久久女同性恋中文字幕 | 婷婷色网视频在线播放 | 中文字幕色婷婷在线视频 | 草久视频在线观看 | 深爱五月网 | 五月婷婷在线视频 | 国产精品色婷婷视频 | 米奇四色影视 | 人人插人人草 | 青草视频免费观看 | 超黄视频网站 | 韩日三级av| 欧美坐爱视频 | 日日操夜夜操狠狠操 | 最近中文字幕免费视频 | 在线一二三区 | 六月丁香六月婷婷 | 91在线中字| 九九欧美视频 | www亚洲精品| 毛片视频电影 | 中文字幕你懂的 | 欧美在线视频一区二区 | 久久一区二区三区四区 | 少妇性色午夜淫片aaaze | 国产专区在线播放 | 久久香蕉影视 | 国产91精品看黄网站在线观看动漫 | 波多野结衣动态图 | 免费国产一区二区 | 国内精品久久久久久 | 中文字幕第一页av | 色之综合网 | 国产精品久久久久影院日本 | 国产免费亚洲 | 久在线观看 | 国产精品6999成人免费视频 | 亚洲精品99久久久久久 | wwwwww国产| 亚洲码国产日韩欧美高潮在线播放 | 91中文在线观看 | 久久精品aaa | 色婷婷播放 | 国产精品成人免费一区久久羞羞 | www夜夜操com | 欧美一区二区三区在线播放 | 色先锋资源网 | 国产伦精品一区二区三区免费 | 久久久私人影院 | 精品美女久久久久久免费 | 国产精品美女久久久 | 色综合人人 | 国产精品久久久久一区 | 久草在线观 | 日韩一区二区三区免费视频 | 97超碰伊人 | 美女网站视频色 | 特级毛片aaa | 欧美激情精品久久 | 粉嫩一二三区 | 日韩精品欧美视频 | 成人在线观看免费视频 | 精品中文字幕在线播放 | a级片韩国 | 久久av观看 | 国产高清成人 | 日日草天天干 | 国产精品第 | 亚洲精品国产高清 | 国产破处精品 | 黄色成人影院 | 波多野结衣视频在线 | 亚洲精品色婷婷 | 国产精品日韩在线观看 | 亚洲高清在线观看视频 | www.婷婷com| 亚洲一级片 | 又大又硬又黄又爽视频在线观看 | 一本色道久久综合亚洲二区三区 | 亚洲 欧美 变态 国产 另类 | 又黄又爽又无遮挡的视频 | 久久综合九色综合久久久精品综合 | 激情婷婷在线观看 | 最新日韩在线观看 | 久久久久久麻豆 | 91毛片在线| 国产亚洲人成网站在线观看 | 中文字幕在线播放日韩 | 久久视影 | 久久成人亚洲欧美电影 | 四虎国产免费 | 精品一二三四视频 | 极品久久久久久久 | 狠狠干狠狠插 | 国产黄色大片 | 精品国产乱码一区二区三区在线 | 亚洲资源网| 天天色天天射天天干 | 久草免费在线视频观看 | 免费视频你懂得 | 午夜在线观看 | 天天插天天狠 | 99草在线视频 | 久久久久久久久电影 | av免费看网站| 日韩欧美在线观看一区二区 | 黄色的视频 | 91精品秘密在线观看 | 国产码电影 | 国产精品一区二区免费视频 | 天天草天天干天天射 | 在线观看久久久久久 | 欧美不卡视频在线 | 最近更新的中文字幕 | 99精品视频在线观看 | 婷婷丁香花 | 久久中文字幕导航 | 国产亚洲精品美女久久 | av在线com | 在线观看网站黄 | 欧美在线视频二区 | 射射射综合网 | 色干综合 | 成人毛片网 | 久久免费视频1 | 久久99精品国产一区二区三区 | 欧日韩在线视频 | 精品影院一区二区久久久 | 日韩免费中文 | 欧美一区二区三区免费观看 | 成人h在线播放 | 黄色影院在线免费观看 | 国产精品1区2区3区在线观看 | 四虎8848免费高清在线观看 | 亚洲精品午夜一区人人爽 | 免费又黄又爽的视频 | 久久人人爽爽人人爽人人片av | 成人黄色小视频 | 久久99精品国产99久久6尤 | 香蕉视频在线免费 | 久草视频视频在线播放 | 在线观看成人国产 | 免费看片成年人 | 欧美日韩国产二区三区 | 伊人黄色网 | 韩国精品一区二区三区六区色诱 | 欧美aa在线观看 | 97成人在线 | 在线免费色 | 91精品视频播放 | 一级黄视频 | 天天搞天天 | 一区二区精品在线视频 | 黄a网| 国产在线中文 | 婷婷五月情 | 国产成人99av超碰超爽 | 久久伦理 | 国产精品24小时在线观看 | 亚洲国产成人av网 | www.婷婷色 | 亚洲精选99 | 欧美日韩在线观看视频 | 92国产精品久久久久首页 | 超碰在线成人 | 午夜精品久久久久久久99水蜜桃 | 国产黄网在线 | 麻豆视频在线观看 | 日本乱码在线 | 日韩综合视频在线观看 | 久二影院 | 日韩激情视频在线观看 | 在线亚洲高清视频 | 欧美性大战 | 天天插天天射 | 97超碰在线免费观看 | 久久一线 | 精品久久久久一区二区国产 | 玖玖玖在线观看 | 国产成人精品一区二区在线观看 | 99久久久久成人国产免费 | 国产美女精品人人做人人爽 | 亚洲天堂香蕉 | 亚洲一区视频免费观看 | 91完整版观看 | 奇米影视8888在线观看大全免费 | 天天操人| 欧美日韩在线观看一区二区 | 亚洲国产成人久久综合 | 天天色天天操综合 | 久久激情五月丁香伊人 | 国产精品99久久久久久小说 | 欧美美女一级片 | 青草视频免费观看 | 亚洲国产午夜精品 | 亚洲精品免费在线播放 | 久草电影免费在线观看 | 国产精品一区在线 | 日本 在线 视频 中文 有码 | 国产精品伦一区二区三区视频 | 永久中文字幕 | 精品伊人久久久 | 久久免费视频7 | 在线日本看片免费人成视久网 | 日韩乱色精品一区二区 | 视频在线观看亚洲 | 日韩av在线不卡 | 最新中文字幕在线播放 | 国产最顶级的黄色片在线免费观看 | 天天操天天操天天操 | 久久精品79国产精品 | 午夜精品久久久久久久久久 | 狠狠狠色丁香综合久久天下网 | 色婷婷免费视频 | www.色的| 69国产精品成人在线播放 | 亚洲精品高清在线 | 中文字幕免费观看视频 | 在线观看视频免费大全 | 丁香九月婷婷综合 | 91麻豆精品国产自产在线 | 91人人揉日日捏人人看 | 久久97久久 | 中文在线√天堂 | 日韩成人在线免费观看 | 日韩在线观看一区二区三区 | 贫乳av女优大全 | 操高跟美女 | 亚洲精品一区二区三区在线观看 | 高清av网站| 国产精品久久久久久久久毛片 | 国产精品久久99综合免费观看尤物 | 毛片随便看| 玖玖在线播放 | 国产小视频在线观看免费 | 91精品毛片 | 亚洲欧美日韩国产一区二区三区 | 国产精品久久久久久久久久久久久 | www.91国产| 一区二区三区四区久久 | 麻豆91小视频 | 欧美伊人网 | 99久久婷婷国产精品综合 | 成人免费视频网 | 国产精品乱码久久久久 | 久久爱www. | 91成人网在线播放 | 欧美专区日韩专区 | 夜夜骑天天操 | 亚洲码国产日韩欧美高潮在线播放 | 天天综合人人 | 日韩欧美在线视频一区二区 | 国产一区二区久久久久 | 友田真希av | 你操综合 | 午夜视频色| 午夜电影中文字幕 | 成人av日韩 | 午夜精品久久久久久99热明星 | 亚洲va欧美va人人爽 | 99视频偷窥在线精品国自产拍 | 亚洲精品乱码久久久久v最新版 | 国产成人一区二区啪在线观看 | 国产视频一区二区在线播放 | av免费电影在线观看 | 天天干天天插 | 国产免费观看久久 | 精品国产一区二区三区久久影院 | 国产精品嫩草69影院 | 精品一区二区三区香蕉蜜桃 | 成人9ⅰ免费影视网站 | www.一区二区三区 | 粉嫩av一区二区三区四区在线观看 | 久草久热 | 国产精品高清免费在线观看 | 中文字幕国产视频 | 国产伦精品一区二区三区免费 | 亚洲伦理中文字幕 | 久久久久久久久综合 | 91精品国产乱码在线观看 | 99综合影院在线 | 182午夜在线观看 | 亚洲五月激情 | 日韩精品免费一线在线观看 | 正在播放亚洲精品 | 久草精品视频在线播放 | 欧洲av不卡 | 午夜婷婷在线播放 | 在线免费黄色 | 超碰在线免费97 | 国产精品麻豆欧美日韩ww | 99热99re6国产在线播放 | 久久99精品热在线观看 | 99久久影院 | 在线免费观看视频一区二区三区 | 超碰在线97观看 | 欧美日韩精品影院 | 日韩二三区 | 天天操夜夜操国产精品 | 香蕉视频在线看 | a级国产毛片 | 中文av字幕在线观看 | 国产无套精品久久久久久 | 欧美日韩亚洲在线观看 | 免费黄色在线播放 | 久久国际影院 | 青青河边草免费观看完整版高清 | 亚洲精品合集 | 国产精品久久99综合免费观看尤物 | 婷婷丁香六月天 | 国产精品免费成人 | 国产成人一区二区三区影院在线 | 播五月综合 | 国产成人亚洲精品自产在线 | 亚洲精品国偷拍自产在线观看 | 黄色小说视频网站 | www.五月天婷婷.com | av中文资源在线 | 成人a v视频 | 免费黄色在线网站 | 五月天丁香综合 | www国产亚洲精品久久网站 | 精品伦理一区二区三区 | 久久日韩精品 | 三上悠亚在线免费 | 久久精品系列 | 在线视频日韩欧美 | 在线免费黄色av | 国产欧美精品一区二区三区四区 | 天天鲁一鲁摸一摸爽一爽 | 91成人免费| 五月婷婷,六月丁香 | 日韩在线观看中文字幕 | 日韩欧美一区二区在线 | 丁香婷婷激情五月 | 主播av在线 | 久久国产精品视频免费看 | 国产九九九九九 | 成人福利av | 草久在线观看视频 | 国产精品久久视频 | 国产一线天在线观看 | 久久久美女 | 国产中文字幕精品 | 日本天天操 | 日日插日日干 | 色噜噜在线观看 | 日本中文一区二区 | 国产91精品高清一区二区三区 | 一级免费黄色 | 久久99精品国产一区二区三区 | 久久精品99国产国产精 | 人人爽人人爽av | 91精品国自产在线观看欧美 | 欧美日韩精品综合 | 四虎影视成人精品 | 亚洲一区二区三区在线看 | 成人黄在线观看 | 国产视频亚洲 | 91免费的视频在线播放 | 欧美性大战久久久久 | 国产精品麻豆免费版 | 国产高清在线观看av | 色wwwww| 婷婷中文在线 | 香蕉视频日本 | 欧美国产日韩久久 | 久久亚洲综合国产精品99麻豆的功能介绍 | 免费看成人 | 久久高清免费观看 | 黄色一级在线观看 | 欧美天堂视频在线 | 国产日韩中文字幕在线 | 午夜美女网站 | www久| a黄色一级 | 欧美日韩免费在线观看视频 | aaa日本高清在线播放免费观看 | 日日日爽爽爽 | 国产精品久久99综合免费观看尤物 | 午夜精品一区二区三区免费视频 | 狠狠干成人综合网 | 午夜电影 电影 | 99精品视频免费全部在线 | 人人舔人人插 | 欧美精品亚洲精品日韩精品 | 91成人在线观看喷潮 | 天天插视频 | 国产精品一区二区三区四 | 激情综合啪 | 特级西西444www大胆高清无视频 | 夜夜躁日日躁 | 在线观看爱爱视频 | 在线免费成人 | 国产亚洲成av人片在线观看桃 | 天天爽人人爽 | 国产人成精品一区二区三 | 国产成人精品女人久久久 | 菠萝菠萝在线精品视频 | 日韩精品一区二区三区免费观看 | 日韩av片无码一区二区不卡电影 | 狠狠干美女 | 97狠狠操 | 99精品在线免费观看 | 久久综合中文色婷婷 | 91麻豆文化传媒在线观看 | 久草精品国产 | 国产精品乱码久久 | 免费三级在线 | 久久99亚洲精品 | 亚洲伊人天堂 | 最新av免费 | 亚洲欧美观看 | 射久久| 国产区精品区 | 国产成人一区二区啪在线观看 | 91看片在线观看 | 日韩免费在线播放 | 国产精品专区在线 | 国产麻豆果冻传媒在线观看 | 69精品视频在线观看 | 成年人黄色在线观看 | 丁香电影小说免费视频观看 | www免费黄色 | 成人av网站在线观看 | 欧美一二区视频 | 亚洲国产wwwccc36天堂 | 国内精品久久天天躁人人爽 | 99re亚洲国产精品 | 一区二区三区日韩视频在线观看 | 亚洲区色 | 久久久2o19精品 | av免费成人 | 欧美性色xo影院 | 一区二区视频网站 | 韩国av免费观看 | 成人免费 在线播放 | 9幺看片 | 精品国产人成亚洲区 | 亚洲激情六月 | 色婷婷一| 中文字幕在线观看视频免费 | 7777精品伊人久久久大香线蕉 | 国产人在线成免费视频 | 日本在线中文在线 | 久久夜夜爽 | 天堂成人在线 | 丁香婷婷射 | 99久久精品久久亚洲精品 | 亚洲成人黄色网址 | 日韩av免费一区 | 91久久精品一区二区三区 | 最近更新好看的中文字幕 | 国产综合小视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 日韩高清一二区 | 91精品免费 | 天堂资源在线观看视频 | 九九九九九精品 | 日韩欧美在线视频一区二区三区 | 黄色国产区 | 黄污网站在线观看 | 中文字幕乱视频 | 国产96精品 | 久久爱资源网 | 久久久精品久久日韩一区综合 | 国产精品久久久久久久久久东京 | 精品久久久久久久久中文字幕 | 日本久久成人 | 99视频 | 在线观看视频99 | 婷婷成人在线 | 在线观看91视频 | 欧美精品一区在线发布 | 在线 国产 日韩 | 99色亚洲 | 成人在线视频在线观看 | www.在线观看av | 国产黄色片一级三级 | 91网在线| 97国产一区 | 日韩av中文字幕在线免费观看 | 国产专区在线播放 | 91网页版免费观看 | 亚洲国产福利视频 | 国产黄免费看 | 日韩成人av在线 | 中文字幕视频一区二区 | 最近中文字幕在线播放 | 狠狠躁夜夜a产精品视频 | 黄色一级性片 | 成年人黄色在线观看 | 亚洲狠狠婷婷综合久久久 | 午夜视频不卡 | 欧美aa一级 | 在线观看日韩免费视频 | 国产一二区视频 | 97超碰人人模人人人爽人人爱 | 婷婷激情久久 | 99中文字幕在线观看 | 亚洲精品xxx | 国产69久久精品成人看 | 日韩av午夜在线观看 | 国产亚洲午夜高清国产拍精品 | 日韩一二区在线观看 | 亚洲综合五月天 | 在线国产视频一区 | 99热9| 超碰人人舔 | 日韩激情久久 | 久久曰视频 | 在线精品观看 | 天天干中文字幕 | 在线黄色国产电影 | 黄色特级毛片 | 欧美亚洲另类在线视频 | 99视频在线精品免费观看2 | 视频一区在线播放 | 亚洲九九爱 | 国产尤物在线视频 | 美女视频久久 | 国产精品一区二区三区在线播放 | 欧美91精品久久久久国产性生爱 | 国产小视频在线观看 | 日日摸日日 | 蜜桃麻豆www久久囤产精品 | 日韩一区二区三区在线观看 | 99这里只有精品视频 | 久久精品免视看 | 伊人五月天综合 | 日韩视 | 亚洲国产中文字幕在线视频综合 | 999久久久免费精品国产 | 久久国产高清视频 | 天天射射天天 | 国产一区二区三区四区大秀 | 伊人丁香| 国产超碰在线观看 | 国产精品九九久久久久久久 | 久久免费成人精品视频 | 色噜噜狠狠狠狠色综合久不 | 国产精品6999成人免费视频 | 亚洲成色777777在线观看影院 | 91视频高清免费 | 最新动作电影 | 久久精美视频 | 最新日韩在线观看视频 | 在线观看日韩av | 在线网站黄 | 国产中文字幕国产 | 久久久国产精品亚洲一区 | www.天天射| 精品亚洲免a | 91漂亮少妇露脸在线播放 | 日本在线观看一区二区三区 | 国产在线999 |