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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Androidpn 消息推送总结

發布時間:2025/1/21 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Androidpn 消息推送总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上關于 Androidpn 的文章不少,但是大都是基于應用層面來介紹這個開源項目的,今天我帶大家從源碼層面深入的分析 Androidpn 的內部結構,也算是對最近工作的一個總結吧,不多說,跟我一起看代碼!

一、Androidpn 開源項目

Androidpn 開源項目托管地址:http://sourceforge.net/projects/androidpn/

Androidpn 開源項目自身描述:This is an open source project to provide push notification support for Android, a xmpp based notification server and a client tool kit.

?

二、源碼分析

在程序的入口?DemoAppActivity?中設置通知的?icon?并開啟消息接收服務,代碼如下:

Number:1-1?
ServiceManager serviceManager = new ServiceManager(this); serviceManager.setNotificationIcon(R.drawable.notification); serviceManager.startService();

在上面的代碼中可以看到程序對?ServiceManager?進行了初始化操作,在?ServiceManager?類的構造函數中我們可以看到程序對傳遞過來的?context?進行了判斷,如果這個?context?是一個?Activity?實例,緊接著會獲取對應的包名和類名。之后再去加載?res/raw/androidpn.properties?配置文件中的參數信息,并將讀取到的信息和之前從?context?中獲取的包名和類名一起存入首選項中。

Number:2-1?
public
ServiceManager(Context context) {this.context = context;if (context instanceof Activity) {Activity callbackActivity = (Activity) context;callbackActivityPackageName = callbackActivity.getPackageName();callbackActivityClassName = callbackActivity.getClass().getName();}props = loadProperties();apiKey = props.getProperty("apiKey", "");xmppHost = props.getProperty("xmppHost", "127.0.0.1");xmppPort = props.getProperty("xmppPort", "5222");sharedPrefs = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE);Editor editor = sharedPrefs.edit();editor.putString(Constants.API_KEY, apiKey);editor.putString(Constants.VERSION, version);editor.putString(Constants.XMPP_HOST, xmppHost);editor.putInt(Constants.XMPP_PORT, Integer.parseInt(xmppPort));editor.putString(Constants.CALLBACK_ACTIVITY_PACKAGE_NAME, callbackActivityPackageName);editor.putString(Constants.CALLBACK_ACTIVITY_CLASS_NAME, callbackActivityClassName);editor.commit(); }

完成上述操作之后,緊接著調用?ServiceManager.startService()?方法來開啟服務,實際上?ServiceManager?只是一個普通的類,方法?ServiceManager.startService()?只是開啟一個子線程來開啟真正的服務類?NotificationService?,許多人認為開一個線程不停的去開啟服務會不會消耗相當一部分資源?答案是不會的,因為服務的生命周期決定了onCreate()?方法在服務被創建時調用,該方法只會被調用一次,無論調用多少次?startService()?方法,服務也只被創建一次,細心的讀者會發現?Androidpn?的作者在?NotificationService?類的?onStart(Intent?intent,?int?startId)?方法中沒有做任何事,而是在onCreate()?方法中完成了諸多操作。

Number:3-1
public
void startService() {Thread serviceThread = new Thread(new Runnable() {public void run() {Intent intent = NotificationService.getIntent();context.startService(intent);}});serviceThread.start(); }

下面我們來看?NotificationService?類的onCreate()?方法中都完成什么操作?

Number:4-1
public
void onCreate() {telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);sharedPrefs = getSharedPreferences(Constants.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE);deviceId = telephonyManager.getDeviceId();Editor editor = sharedPrefs.edit();editor.putString(Constants.DEVICE_ID, deviceId);editor.commit();if (deviceId == null || deviceId.trim().length() == 0 || deviceId.matches("0+")) {if (sharedPrefs.contains("EMULATOR_DEVICE_ID")) {deviceId = sharedPrefs.getString(Constants.EMULATOR_DEVICE_ID, "");} else {deviceId = (new StringBuilder("EMU")).append((new Random(System.currentTimeMillis())).nextLong()).toString();editor.putString(Constants.EMULATOR_DEVICE_ID, deviceId);editor.commit();}}xmppManager = new XmppManager(this);taskSubmitter.submit(new Runnable() {public void run() {NotificationService.this.start();}}); }

在上面的方法中作者獲取了設備號并將設備號存入了首選項中,同時還對在模擬器下運行的情況做了處理,這些操作是次要的。真正的核心的操作是?taskSubmitter?里調用了NotificationService.this.start(),這里的?NotificationService.this?完成了?NotificationService?的實例化,我們可以看到?NotificationService?類的構造方法中完成了?NotificationReceiver、ConnectivityReceiver、PhoneStateChangeListener、ExecutorsTaskSubmitterTaskTracker?等類的實例化。

Number:5-1
public
NotificationService() {notificationReceiver = new NotificationReceiver();connectivityReceiver = new ConnectivityReceiver(this);phoneStateListener = new PhoneStateChangeListener(this);executorService = Executors.newSingleThreadExecutor();taskSubmitter = new TaskSubmitter(this);taskTracker = new TaskTracker(this); }

NotificationService?的實例化完成后調用的start()?方法中注冊了一個廣播接收者?NotificationReceiver?用來處理從服務器推送過來的消息;同時還注冊了一個廣播接收者來監聽網絡連接狀況,如果有網絡連接,則執行?xmppManager.connect(),如果沒有網絡連接,則執行?xmppManager.disconnect()。但是在start()?方法中最終還是會執行?xmppManager.connect()。

Number:6-1
private
void start() {registerNotificationReceiver();registerConnectivityReceiver();xmppManager.connect(); }

再來看看?xmppManager.connect()?方法中都做了些什么?程序在這個方法中提交了一個登錄任務:submitLoginTask(),在提交的登錄任務中又提交了一個注冊任務:submitRegisterTask(),同時將新建的登錄任務添加到任務集合中并交由?TaskTracker?來對添加的任務進行監視,此時 TaskTracker?的計數加一。

Number:7-1
public
void connect() {submitLoginTask(); } Number:7-2
private
void submitLoginTask() {submitRegisterTask();addTask(new LoginTask()); }

下面繼續來看新添加的登錄任務 new?LoginTask()?具體做了什么?看?Number:8-2?代碼,程序在登錄任務線程的?run()?方法中首先去判斷當前客戶端是否已經經過身份驗證,驗證身份的代碼請看?Number:8-1?。

如果沒有通過身份驗證:xmppManager?會獲取當前連并接攜帶著從首選項中讀取的?username?password?執行登錄操作,登錄成功后 xmppManager?會在登錄成功的連接上添加連接監聽器PersistentConnectionListener,這個監聽器可以監聽連接關閉和和連接錯誤,并在連接錯誤的情況下執行重連操作。接下來會在當前連接上添加包過濾器?PacketFilter?packetFilter?和包監聽器?NotificationPacketListener?packetListener,包過濾器用來校驗從服務器發送過來的數據包是否符合?NotificationIQ?格式,打開 NotificationIQ?類我們可以看到這個類中定義了數據包中需要封裝的信息:id、apiKeytitlemessage、uri。包監聽器則是用來真正處理從服務器發過來的數據。請看?Number:8-3?代碼,在 NotificationPacketListener?類的 processPacket(Packet?packet)?方法中程序首先會判斷獲得的數據包是否是 NotificationIQ?的一個實例,如果是程序會調用 NotificationIQ?的getChildElementXML()?方法將數據包中攜帶的信息拼裝為一個字符串進行判斷動作是否為發送廣播,如果動作為發送廣播,程序會將數據包的信息填充到 Intent?中并發送廣播,注意這個廣播中填充到 Intent?的動作名稱 Constants.ACTION_SHOW_NOTIFICATION?為顯示廣播,這個動作被另一個廣播接收者?NotificationReceiver?(該廣播接收者在之前的?NotificationService?的start()?方法中已經注冊)所監聽。

另外需要注意的是,如果客戶端在登錄過程中出現INVALID_CREDENTIALS_ERROR_CODE?=?"401"?錯誤,在?Number:8-2?的代碼中我們可以看到程序執行了 xmppManager.reregisterAccount()?操作和?xmppManager.startReconnectionThread()?操作。在 xmppManager.reregisterAccount()?操作中程序會刪除保存在首選項中的?username?password?并重新提交登錄任務?submitLoginTask(),在這個登錄任務中依次再嵌套執行注冊、連接任務。這些任務執行完畢之后程序繼續調用 xmppManager.startReconnectionThread()?執行重連操作。如果客戶端在登錄過程中出現不可預知的錯誤,在?Number:8-2?的代碼中我們可以看到程序執直接調用 xmppManager.startReconnectionThread()?來執行重連操作。

如果已經通過身份驗證:意味著客戶端已經登錄成功,程序直接調用 xmppManager.runTask()?方法來執行之前添加到任務集合中的任務 new?LoginTask(),同時 TaskTracker?的計數減一。

Number:8-1
private
boolean isAuthenticated() {return connection != null && connection.isConnected() && connection.isAuthenticated(); } Number:8-2
private
class LoginTask implements Runnable {final XmppManager xmppManager;private LoginTask() {this.xmppManager = XmppManager.this;}public void run() {if (!xmppManager.isAuthenticated()) {Log.d(LOGTAG, "username=" + username);Log.d(LOGTAG, "password=" + password);try {xmppManager.getConnection().login(xmppManager.getUsername(), xmppManager.getPassword(), XMPP_RESOURCE_NAME);Log.d(LOGTAG, "Loggedn in successfully");if (xmppManager.getConnectionListener() != null) {xmppManager.getConnection().addConnectionListener(xmppManager.getConnectionListener());}PacketFilter packetFilter = new PacketTypeFilter(NotificationIQ.class);PacketListener packetListener = xmppManager.getNotificationPacketListener();connection.addPacketListener(packetListener, packetFilter);xmppManager.runTask();} catch (XMPPException e) {Log.e(LOGTAG, "LoginTask.run()... xmpp error");Log.e(LOGTAG, "Failed to login to xmpp server. Caused by: " + e.getMessage());String INVALID_CREDENTIALS_ERROR_CODE = "401";String errorMessage = e.getMessage();if (errorMessage != null && errorMessage.contains(INVALID_CREDENTIALS_ERROR_CODE)) {xmppManager.reregisterAccount();return;}xmppManager.startReconnectionThread();} catch (Exception e) {Log.e(LOGTAG, "LoginTask.run()... other error");Log.e(LOGTAG, "Failed to login to xmpp server. Caused by: " + e.getMessage());xmppManager.startReconnectionThread();}} else {Log.i(LOGTAG, "Logged in already");xmppManager.runTask();}} } Number:8-3
public
class NotificationPacketListener implements PacketListener {private static final String LOGTAG = LogUtil.makeLogTag(NotificationPacketListener.class);private final XmppManager xmppManager;public NotificationPacketListener(XmppManager xmppManager) {this.xmppManager = xmppManager;}public void processPacket(Packet packet) {Log.d(LOGTAG, "NotificationPacketListener.processPacket()...");Log.d(LOGTAG, "packet.toXML()=" + packet.toXML());if (packet instanceof NotificationIQ) {NotificationIQ notification = (NotificationIQ) packet;if (notification.getChildElementXML().contains("androidpn:iq:notification")) {String notificationId = notification.getId();String notificationApiKey = notification.getApiKey();String notificationTitle = notification.getTitle();String notificationMessage = notification.getMessage();String notificationUri = notification.getUri();Intent intent = new Intent(Constants.ACTION_SHOW_NOTIFICATION);intent.putExtra(Constants.NOTIFICATION_ID, notificationId);intent.putExtra(Constants.NOTIFICATION_API_KEY, notificationApiKey);intent.putExtra(Constants.NOTIFICATION_TITLE, notificationTitle);intent.putExtra(Constants.NOTIFICATION_MESSAGE, notificationMessage);intent.putExtra(Constants.NOTIFICATION_URI, notificationUri);xmppManager.getContext().sendBroadcast(intent);}}} } Number:8-4
public
void reregisterAccount() {removeAccount();submitLoginTask();runTask(); }

NotificationReceiver?在接收到NotificationPacketListener?中發出的廣播后,先判斷Intent?中攜帶的動作和自己所收聽的動作是否一致,如果一致,則繼續從Intent?中取出Intent?所攜帶的信息并調用?Notifier?的notify(String?notificationId,?String?apiKey,?String?title,?String?message,?String?uri)?來發送通知。

Number:9-1
public
final class NotificationReceiver extends BroadcastReceiver {private static final String LOGTAG = LogUtil.makeLogTag(NotificationReceiver.class);public NotificationReceiver() {}public void onReceive(Context context, Intent intent) {Log.d(LOGTAG, "NotificationReceiver.onReceive()...");String action = intent.getAction();Log.d(LOGTAG, "action=" + action);if (Constants.ACTION_SHOW_NOTIFICATION.equals(action)) {String notificationId = intent.getStringExtra(Constants.NOTIFICATION_ID);String notificationApiKey = intent.getStringExtra(Constants.NOTIFICATION_API_KEY);String notificationTitle = intent.getStringExtra(Constants.NOTIFICATION_TITLE);String notificationMessage = intent.getStringExtra(Constants.NOTIFICATION_MESSAGE);String notificationUri = intent.getStringExtra(Constants.NOTIFICATION_URI);Notifier notifier = new Notifier(context);notifier.notify(notificationId, notificationApiKey, notificationTitle, notificationMessage, notificationUri);}} }

Notifier?在發送通知之前會先去首選項中讀取用戶的配置信息,如果配置信息中?Constants.SETTINGS_NOTIFICATION_ENABLED?的值為?true,然后開始組裝通知并為通知進行參數配置,這些操作完成后再調用?NotificationManager?將組裝好的通知發送出去。至此,在客戶端已經注冊的前提下,執行的登錄、接收服務器數據包、發送廣播、發送通知的流程就結束了,添加在當前連接上的NotificationPacketListener?會一直監聽從服務器發送過來的數據包并重復執行數據包解析、發送廣播、發送通知的操作。

但是需要注意的是從代碼?Number:7-1?至代碼?Number:9-1?的流程是以客戶端已經完成注冊為前提的;如果客戶端是第一次執行消息推送的服務,顯然不會直接進入到登錄的邏輯中來,讓我們繼續跳到?Number:7-2?中的岔路口,程序在提交登錄任務的內部嵌套著提交了一個注冊任務?submitRegisterTask(),繼續來看這個注冊任務做了什么操作。在這個注冊任務中繼續將新建的注冊任務添加到任務集合中并交由?TaskTracker?來對添加的任務進行監視,此時 TaskTracker?的計數加一;與此同時內嵌提交了一個連接任務submitConnectTask()。

Number:10-1
private
void submitRegisterTask() {submitConnectTask();addTask(new RegisterTask()); }

先來看登錄任務中做了什么操作?參看代碼?Number:11-1。

如果沒有注冊:則使用UUID生成2個隨機數作為 usernamepassword,同時實例化?Registration,將創建的包過濾器和包監聽器添加到當前連接上,然后使用 Registration?實例將生成的 username?password?作為屬性添加到 Registration?實例上,再由當前連接調用 connection.sendPacket(registration)?向服務器發送數據包執行注冊操作。創建的包監聽器會監聽并處理服務器會送的數據包,PacketListener?在接收到服務器會送的數據包后,同樣會判斷數據包的格式是否符合包過濾器中定義的格式,只有格式匹配的情況下進行后續處理。在格式匹配的情況下,程序繼續進行判斷:如果服務器返回信息的類型是 IQ.Type.ERROR?則進行報錯處理;如果服務器返回信息的類型是 IQ.Type.RESULT?證明在服務器注冊成功,這時程序會將 username?和?password?存儲到首選項中,之后程序直接調用 xmppManager.runTask()?方法來執行之前添加到任務集合中的任務 new?LoginTask(),同時 TaskTracker?的計數減一。

如果已經注冊:意味著首選項中已經有了配置信息,程序直接調用 xmppManager.runTask()?方法來執行之前添加到任務集合中的任務 new?LoginTask(),同時 TaskTracker?的計數減一。

Number:11-1
private
class RegisterTask implements Runnable {final XmppManager xmppManager;private RegisterTask() {xmppManager = XmppManager.this;}public void run() {if (!xmppManager.isRegistered()) {final String newUsername = newRandomUUID();final String newPassword = newRandomUUID();Registration registration = new Registration();PacketFilter packetFilter = new AndFilter(new PacketIDFilter(registration.getPacketID()), new PacketTypeFilter(IQ.class));PacketListener packetListener = new PacketListener() {public void processPacket(Packet packet) {Log.d("RegisterTask.PacketListener", "processPacket().....");Log.d("RegisterTask.PacketListener", "packet=" + packet.toXML());if (packet instanceof IQ) {IQ response = (IQ) packet;if (response.getType() == IQ.Type.ERROR) {if (!response.getError().toString().contains("409")) {Log.e(LOGTAG, "Unknown error while registering XMPP account! " + response.getError().getCondition());}} else if (response.getType() == IQ.Type.RESULT) {xmppManager.setUsername(newUsername);xmppManager.setPassword(newPassword);Log.d(LOGTAG, "username=" + newUsername);Log.d(LOGTAG, "password=" + newPassword);Editor editor = sharedPrefs.edit();editor.putString(Constants.XMPP_USERNAME, newUsername);editor.putString(Constants.XMPP_PASSWORD, newPassword);editor.commit();Log.i(LOGTAG, "Account registered successfully");xmppManager.runTask();}}}};connection.addPacketListener(packetListener, packetFilter);registration.setType(IQ.Type.SET);registration.addAttribute("username", newUsername);registration.addAttribute("password", newPassword);connection.sendPacket(registration);} else {Log.i(LOGTAG, "Account registered already");xmppManager.runTask();}} }

至此,在客戶端已經連接到服務器的前提下,執行的注冊、登錄、接收服務器數據包、發送廣播、發送通知的流程就結束了,添加在當前連接上的 NotificationPacketListener?會一直監聽從服務器發送過來的數據包并重復執行數據包解析、發送廣播、發送通知的操作。

同樣需要注意的是從代碼?Number:10-1?至代碼?Number:11-1?的流程是以客戶端已經連接到服務器為前提的;如果客戶端是第一次執行消息推送的服務,顯然也不會直接進入到注冊的邏輯中來,讓我們繼續跳到?Number:10-1?中的岔路口,程序在提交注冊任務的內部嵌套著提交了一個連接任務?submitConnectTask(),繼續來看這個連接任務做了什么操作。在這個連接任務中程序直接將新建的連接任務添加到任務集合中并交由?TaskTracker?來對添加的任務進行監視,此時 TaskTracker?的計數加一。

Number:12-1
private
void submitConnectTask() {addTask(new ConnectTask()); }

繼續來看連接任務中做了什么操作?參看代碼?Number:13-1。

如果沒有連接到服務器:程序會從首選項中讀取 xmppHost?和?xmppPort?并使用 XMPPConnection?通過配置信息實例化一個連接,然后再由該連接執行連接操作。連接成功后,程序調用xmppManager.runTask()?方法來執行之前添加到任務集合中的任務 new?RegisterTask(),同時 TaskTracker?的計數減一。

如果已經連接到服務器:程序直接調用 xmppManager.runTask()?方法來執行之前添加到任務集合中的任務 new?RegisterTask(),同時 TaskTracker?的計數減一。

Number:13-1
private
class ConnectTask implements Runnable {final XmppManager xmppManager;private ConnectTask() {this.xmppManager = XmppManager.this;}public void run() {if (!xmppManager.isConnected()) {// Create the configuration for this new connectionConnectionConfiguration connConfig = new ConnectionConfiguration(xmppHost, xmppPort);connConfig.setSecurityMode(SecurityMode.required);connConfig.setSASLAuthenticationEnabled(false);connConfig.setCompressionEnabled(false);XMPPConnection connection = new XMPPConnection(connConfig);xmppManager.setConnection(connection);try {// Connect to the server connection.connect();Log.i(LOGTAG, "XMPP connected successfully");// packet providerProviderManager.getInstance().addIQProvider("notification", "androidpn:iq:notification", new NotificationIQProvider());} catch (XMPPException e) {Log.e(LOGTAG, "XMPP connection failed", e);}xmppManager.runTask();} else {Log.i(LOGTAG, "XMPP connected already");xmppManager.runTask();}} }

至此,在客戶端執行的連接、注冊、登錄、接收服務器數據包、發送廣播、發送通知的流程就結束了,添加在當前連接上的 NotificationPacketListener?會一直監聽從服務器發送過來的數據包并重復執行數據包解析、發送廣播、發送通知的操作。

?

二、后續問題

? 關于服務器重啟客戶端自動重連服務器的問題?

? XmppManager addTask(Runnable runnable) 方法中添加 runTask() 方法即可解決。

private void addTask(Runnable runnable) {taskTracker.increase();synchronized (taskList) {if (taskList.isEmpty() && !running) {running = true;futureTask = taskSubmitter.submit(runnable);if (futureTask == null) {taskTracker.decrease();}} else {/*** runTask(); 解決服務器端重啟后,客戶端不能成功連接 Androidpn 服務器*/runTask();taskList.add(runnable);}} }

? 關于使用設備ID或?MAC替換源碼中的 UUID作為 usernamepassword?帶來的問題?

如果把客戶端隨機生成的UUID代碼,替換為設備的ID或者MAC作為用戶名,服務器端會出現重復插入的錯誤。

把客戶端的數據清除(或卸載后重新安裝),那么 SharedPreferences?里的數據也會被清除,然而服務器端又有我們手機的設備 ID,這時客戶端啟動程序從首選項中讀取不到 usernamepassword?會重新拿著相同的設備 ID?提交給服務器進行注冊,這時服務器端就會出現重復插入的問題。

? 在服務器端保存用戶信息的時候,檢查數據庫中是否存在該用戶。

??Android?消息推送的其他途徑

? 極光推送

網站參考地址?:?http://www.jpush.cn/

? Google?Cloud?Messaging?for?Android

網站參考地址?:?http://developer.android.com/google/gcm/index.html

? MQTT?協議推送

客戶端下載地址?:?https://github.com/tokudu/AndroidPushNotificationsDemo

服務器下載地址?:?https://github.com/tokudu/PhpMQTTClient

?

三、相關閱讀

? ?XMPP 協議分析-原理篇.PDF

?? Smack 類庫詳細介紹.PDF

總結

以上是生活随笔為你收集整理的Androidpn 消息推送总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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

亚洲精品美女免费 | 久久精品这里精品 | 综合色在线观看 | 久草视频免费观 | 永久免费精品视频 | 深夜免费福利 | 午夜久久精品 | 日韩精品久久久 | 黄色片视频在线观看 | 九九爱免费视频在线观看 | 91av资源网| 国产精品观看在线亚洲人成网 | 久久99久国产精品黄毛片入口 | 国产很黄很色的视频 | 国产福利91精品一区二区三区 | 国产精品第一 | 久久久久国产一区二区三区 | 一级性视频 | 国产精品免费久久久久久久久久中文 | 日韩精品一区二区三区电影 | 中文字幕国内精品 | 日韩高清免费无专码区 | 久久9999久久免费精品国产 | 综合影视 | 久久国产免 | 不卡av电影在线观看 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 在线观看亚洲电影 | 国产精品手机看片 | 在线观看的av网站 | 婷婷在线色 | 久久综合久久久 | 亚洲黄色精品 | 日韩影视精品 | 人人要人人澡人人爽人人dvd | 欧美极品少妇xxxx | 日韩大片在线看 | 久久一区国产 | 免费看搞黄视频网站 | 久久综合狠狠综合久久狠狠色综合 | 国产高清中文字幕 | 视频 天天草 | 婷婷激情综合五月天 | 午夜在线看片 | 免费网站在线观看成人 | 99热这里只有精品8 久久综合毛片 | 免费av小说 | 免费看片黄色 | 娇妻呻吟一区二区三区 | 2019天天干夜夜操 | 免费看一级黄色大全 | 二区三区精品 | 国产成人av一区二区三区在线观看 | 91人人澡人人爽 | 国产精品久久99综合免费观看尤物 | 97夜夜澡人人双人人人喊 | 免费观看完整版无人区 | 伊人资源站 | 97久久久免费福利网址 | 97成人超碰 | 欧美美女激情18p | 蜜桃av人人夜夜澡人人爽 | 人人爱爱人人 | 丁香花中文在线免费观看 | 综合在线观看色 | 中文字幕人成人 | 亚洲日b视频 | 中文字幕一二 | 九九免费精品视频在线观看 | 91成人免费看 | 国产色在线,com | 黄色av网站在线免费观看 | 国产免费视频一区二区裸体 | 日韩av进入 | 欧美亚洲一级片 | 特级西西www44高清大胆图片 | 欧美va日韩va | 亚洲精品中文在线资源 | 国产精品日韩久久久久 | 干干操操 | 亚洲一区日韩 | 黄色a一级片 | 一区二区不卡 | 91精品国产99久久久久久久 | 亚洲精品在线视频网站 | 91丨porny丨九色 | 国产精品99精品久久免费 | 丁香一区二区 | 91视频在线免费观看 | 亚洲国产视频网站 | 玖玖色在线观看 | 婷婷午夜激情 | 日日夜夜精品免费观看 | 在线 你懂 | 五月婷在线播放 | 白丝av在线 | 香蕉97视频观看在线观看 | 国产成人在线免费观看 | 日韩免费一区二区在线观看 | 五月婷婷另类国产 | 亚洲六月丁香色婷婷综合久久 | 中文字幕国产一区 | 国产成人亚洲精品自产在线 | 国产美女久久久 | 97国产视频| 亚洲天堂激情 | 黄色大片中国 | 国产激情电影综合在线看 | 人人视频网站 | 91精品视频在线 | av免费电影在线观看 | 久久精品艹 | 国产精品免费av | 国产免费亚洲高清 | 欧美一区二视频在线免费观看 | 日本少妇久久久 | 曰本免费av | 日韩在线国产精品 | 中文字幕在线网 | 色是在线视频 | 麻豆av一区二区三区在线观看 | 黄色大全视频 | 999久久久欧美日韩黑人 | 久久国产精品99久久人人澡 | 国产精品永久久久久久久www | 四虎成人精品 | av电影 一区二区 | 国产一区二区综合 | 麻豆精品视频在线 | 九九国产视频 | 精品欧美小视频在线观看 | 五月激情综合婷婷 | 麻豆传媒一区二区 | 国产超碰在线观看 | 色就是色综合 | 中文字幕久久精品一区 | 亚洲国产精品va在线 | 久久精品99国产精品 | 国产高清不卡在线 | 人人草在线视频 | 玖玖在线资源 | 福利一区二区 | 92精品国产成人观看免费 | 黄色亚洲免费 | 国产精品系列在线 | 成年人在线免费看视频 | 狠狠干天天操 | 久久精品国产免费看久久精品 | 久久久久免费精品视频 | 久久成年人 | 日韩字幕在线观看 | 韩国在线一区二区 | 日韩欧美黄色网址 | 亚洲欧美成人 | 久久久国产精品电影 | 久久一区国产 | 久久久穴 | 亚洲视频免费在线观看 | 欧美大香线蕉线伊人久久 | 免费看一级特黄a大片 | 久久精品欧美日韩精品 | 高清久久久| 国产主播99 | 久草精品视频在线观看 | 国产亚洲精品久久久久久无几年桃 | 91女子私密保健养生少妇 | 日韩av一区二区三区 | 97视频入口免费观看 | 久久人人添人人爽添人人88v | 久久久夜色 | 日韩高清国产精品 | 在线成人性视频 | 狠狠综合| 91资源在线 | 成人在线视频网 | av电影中文字幕在线观看 | 免费看精品久久片 | 国产美女视频免费观看的网站 | 天天爱天天草 | 四虎影视精品永久在线观看 | 国产一区二区在线影院 | 日韩无在线 | 热久久免费视频 | 四虎影视成人永久免费观看亚洲欧美 | 一区二区av | 国产精品99免视看9 国产精品毛片一区视频 | 国产精品成人自产拍在线观看 | 国产精品正在播放 | 日韩精品一区二区在线 | 成人蜜桃网| 一区二区三区在线影院 | 狠狠久久伊人 | 国产又粗又硬又爽的视频 | 精品一二区 | 天天操天天操天天操天天 | 色婷婷免费 | 亚洲无在线 | 99精品视频一区 | 二区三区在线 | 6080yy午夜一二三区久久 | 亚洲综合激情 | 人人爽人人澡 | 手机在线黄色网址 | 日韩在线观看一区二区 | 黄色免费网战 | 在线视频免费观看 | 国产999| 国产视频在线播放 | 一级黄色在线免费观看 | 夜夜躁狠狠躁日日躁视频黑人 | 综合黄色网 | 久久国产欧美日韩精品 | 欧美在线91| 日韩黄色网络 | 最近中文字幕完整高清 | 免费亚洲视频在线观看 | 黄色一级大片在线观看 | 黄色a视频免费 | 国产精品久久久久婷婷 | 国产又粗又长的视频 | 欧美性大胆 | 日韩av一区二区三区 | 激情五月伊人 | 亚洲成人高清在线 | 麻豆免费在线视频 | 久久伊99综合婷婷久久伊 | 不卡av电影在线 | 日韩午夜电影院 | www五月 | 国产色爽| 玖玖精品在线 | 欧美日韩免费在线视频 | 午夜a区 | 91在线最新| www.玖玖玖 | 国产专区精品 | www亚洲视频 | 久久精品日产第一区二区三区乱码 | 日韩精品2区 | 日韩欧美亚州 | 日韩在线首页 | 国产小视频免费在线网址 | 夜夜骑日日操 | 久久99久久99久久 | 久久久久亚洲精品中文字幕 | 中文字幕色婷婷在线视频 | 日韩欧美网站 | 国产系列在线观看 | 精品一二三四在线 | 日韩高清在线看 | 五月天色中色 | 狠狠操夜夜操 | 麻豆免费视频观看 | 日韩 在线a| 国产精品欧美日韩在线观看 | 午夜精品一区二区三区在线观看 | 久久精品一级片 | 久久久久蜜桃 | 欧美美女一级片 | 欧美日韩高清一区二区 | 看片的网址 | 色偷偷88888欧美精品久久久 | 久久久久久免费毛片精品 | 免费日韩 精品中文字幕视频在线 | 天天视频色版 | 欧美精品在线一区 | 国产一区二区在线影院 | 成人黄色在线 | 中文字幕中文 | 久久精品牌麻豆国产大山 | www.久久免费 | 最近字幕在线观看第一季 | 国产 字幕 制服 中文 在线 | 欧美一区二区三区四区夜夜大片 | 国产精品免费在线播放 | 黄色在线观看污 | 在线激情影院一区 | 日韩经典一区二区三区 | 99riav1国产精品视频 | 深夜国产福利 | av超碰在线| 在线亚洲小视频 | 91九色蝌蚪国产 | 婷婷久久网| 久久久久久久福利 | 特级毛片在线免费观看 | 中文字幕色婷婷在线视频 | 日韩网| 字幕网在线观看 | 日韩欧美中文 | 久久福利综合 | 九九亚洲视频 | 国产精品免费久久久久 | 91麻豆免费看 | 亚洲黄色av网址 | 免费色网站 | 天海翼一区二区三区免费 | 中文字幕在线观看视频一区 | 91在线欧美 | 91精品久久久久久粉嫩 | 五月激情亚洲 | 夜夜摸夜夜爽 | 精品国偷自产国产一区 | 国产精品区在线观看 | 丝袜少妇在线 | 国产高清中文字幕 | 亚洲狠狠丁香婷婷综合久久久 | 欧美日韩在线网站 | 日韩免费一二三区 | 精品久久久久久久久中文字幕 | 在线观看日韩专区 | 亚洲精品乱码久久久久久久久久 | 国产亚洲综合精品 | 在线观看一区二区精品 | 亚洲精品在线免费 | 久久看毛片 | 91视频 - 114av| 亚洲精品永久免费视频 | 四虎天堂| 久久免费看 | 九九免费精品 | 国产精品18久久久久久vr | 国产在线观看你懂得 | 91豆花在线观看 | 日本三级香港三级人妇99 | 97国产在线观看 | 中文字幕av专区 | 特黄特色特刺激视频免费播放 | 91麻豆高清视频 | 美女网色 | 日韩黄色大片在线观看 | 免费在线国产精品 | 国内精品在线观看视频 | 一区二区三区手机在线观看 | 四虎永久免费网站 | 国内视频在线 | 国产精品一区久久久久 | 97影视| 91成人在线视频 | 欧美日本不卡视频 | 一级欧美日韩 | 国产精品国产三级国产aⅴ入口 | 日韩色在线观看 | 91x色 | 丁香婷婷在线 | 免费瑟瑟网站 | 中文字幕日韩电影 | 色婷婷88av视频一二三区 | 五月天高清欧美mv | 又黄又刺激的网站 | 国产高清网站 | 九九爱免费视频在线观看 | 丁香午夜婷婷 | 97在线免费 | 久久久色 | 一区二区日韩av | 久久久精华网 | 在线视频 一区二区 | 在线成人一区 | 丁香婷婷色月天 | 久久一区国产 | 国内精品视频在线 | 久久乐九色婷婷综合色狠狠182 | 精品人人爽| 欧美亚洲成人免费 | 欧洲精品在线视频 | 91av大全| 黄色软件视频大全免费下载 | 国产精品久久久久久久久久免费看 | 久久精品视频播放 | a级国产乱理论片在线观看 特级毛片在线观看 | 久久精品一级片 | 久草久热 | 黄色av一区| 国产在线美女 | 国产精品成人一区二区三区 | 99久久精品国产一区二区三区 | 人人澡av| 亚洲性xxxx| 亚洲 欧洲 国产 精品 | 国产麻豆精品一区二区 | 波多野结衣理论片 | 国产视频网站在线观看 | 久久综合影院 | 日日操夜夜操狠狠操 | 久草在线观看视频免费 | 毛片视频电影 | 在线观看一级 | 中文字幕电影高清在线观看 | 亚洲理论在线观看 | 中文字幕在线观看视频一区二区三区 | 久久久久久久免费 | 国产免费激情久久 | 国产精彩视频 | 国产精品久久久区三区天天噜 | 免费黄色特级片 | 精品在线观看一区二区三区 | 日韩高清在线不卡 | 成人资源在线观看 | 深爱五月激情网 | 国产精品中文字幕在线播放 | 欧美成人日韩 | 激情网色 | 久久久久网址 | 免费国产ww | 亚洲精品在线观看免费 | 中文字幕电影网 | 亚洲国内精品在线 | 中文字幕免费在线 | 久久线视频 | 亚洲全部视频 | 久久久久久高潮国产精品视 | 日本久草电影 | 91视视频在线直接观看在线看网页在线看 | 最近高清中文在线字幕在线观看 | 女人高潮特级毛片 | 综合婷婷| 一区二区三区高清在线观看 | 日韩va欧美va亚洲va久久 | 激情欧美一区二区三区 | 91久久国产露脸精品国产闺蜜 | 综合网伊人 | 激情久久久 | 天天干天天干天天操 | 国产丝袜在线 | 色天堂在线视频 | 国产精品毛片一区二区 | 亚洲视频axxx| 午夜精品一二三区 | 天天操天天综合网 | 欧美日韩xx | 精品国产一区二区三区日日嗨 | 日韩欧美在线观看一区二区三区 | 国产中文字幕视频在线观看 | 亚洲码国产日韩欧美高潮在线播放 | 久久影视一区 | 91麻豆高清视频 | 国产精品情侣视频 | 欧美a在线看 | www.色com | 天天曰夜夜操 | 午夜精品视频免费在线观看 | 中文字幕免费在线 | www中文在线 | 精品一区二区免费 | 日韩色一区二区三区 | 一级理论片在线观看 | www.日本色| 久久久久国产精品视频 | 高清av网站 | 精品日韩中文字幕 | 亚洲综合在线一区二区三区 | 蜜桃视频成人在线观看 | 久久99精品国产麻豆婷婷 | 日本中文字幕高清 | 久久99亚洲精品久久 | 丁香婷婷色| 黄网站www | av中文字幕日韩 | 四虎影视久久久 | 成人综合婷婷国产精品久久免费 | 久久综合婷婷 | 国产成人精品免费在线观看 | 亚洲第一区精品 | 天天射天天干天天插 | 91桃色免费视频 | 国产精品免费人成网站 | 日av免费 | 亚洲欧美日韩不卡 | 97成人在线免费视频 | 97在线成人 | 久久久久久久久影视 | avav片| 日日夜夜国产 | 国产高清久久 | 国产最顶级的黄色片在线免费观看 | 日韩一二三 | 天天操天天干天天爱 | 国产精品久久久毛片 | 97精品国产aⅴ | 国产清纯在线 | 免费看黄色毛片 | 日本中文字幕视频 | 人人爽人人爽人人片av | 在线成人看片 | 国产3p视频 | 一区二区三区四区在线免费观看 | 日本天天色 | 在线观看日韩一区 | 色综合久久综合中文综合网 | 99久久夜色精品国产亚洲 | 国产精品99久久久久久小说 | 久久综合久久八八 | 国产精品久久久久久久久婷婷 | 日韩美av在线 | 日本久久影视 | 玖玖视频 | 久久成年人视频 | 国产一级在线 | 九九视频在线播放 | 免费国产在线视频 | 日韩高清免费在线观看 | 午夜影视一区 | 国产在线观看地址 | 玖玖玖国产精品 | 久草在线视频在线 | 96久久久 | 欧美成人亚洲 | www.五月天婷婷.com | 国产精品久久久久久吹潮天美传媒 | 狠狠色丁香久久婷婷综合丁香 | av3级在线| 亚洲天天 | 最近中文字幕久久 | 久久免费黄色 | 又黄又刺激的视频 | jizzjizzjizz亚洲 | 久草亚洲视频 | 亚洲理论在线观看电影 | 在线观看国产www | 久久视频在线观看免费 | 亚洲综合欧美日韩狠狠色 | 国产精品9区 | av中文字幕在线免费观看 | 久久久久看片 | 久久中文字幕导航 | 精品主播网红福利资源观看 | 日批在线看 | 亚洲九九九在线观看 | 久久久精品午夜 | 丁香婷婷久久久综合精品国产 | 欧美一区日韩精品 | 久久精品视频3 | 国产午夜精品福利视频 | 深夜免费福利在线 | 伊人伊成久久人综合网小说 | 国产精品一区二区久久 | 国产成人久久av977小说 | 成年美女黄网站色大片免费看 | av大全在线观看 | 天天干天天射天天插 | 免费国产黄线在线观看视频 | 国产视频在线看 | 在线观看黄色av | 久久国产精品偷 | 500部大龄熟乱视频 欧美日本三级 | 日韩免费看片 | 人人爽人人爱 | 久久深爱网 | 天天干天天摸 | 国产系列 在线观看 | 欧美日韩视频 | 黄色av一级 | av千婊在线免费观看 | 91色偷偷 | 国产精品女教师 | 不卡日韩av | 色香蕉在线 | 久久视频在线观看中文字幕 | 久久久久久久久久久高潮一区二区 | 日韩在线观看你懂得 | 在线导航av| 在线亚洲成人 | 日韩成人高清在线 | 亚洲精品成人在线 | 亚洲视频在线观看网站 | 日韩理论电影在线 | 99久久精品久久久久久清纯 | 色婷婷在线视频 | 91精品国产高清 | 久热免费在线观看 | 黄网站大全 | 国产精品一区二区三区久久 | 99热 精品在线| 免费在线观看日韩欧美 | 久久精品1区 | 国产精品成人免费 | 精品久久福利 | 亚洲电影在线看 | 成人 亚洲 欧美 | 欧美一级久久久 | 狠狠躁夜夜躁人人爽超碰91 | 中文字幕在线免费播放 | 最新日韩精品 | 91麻豆免费版 | 国产在线p | 六月激情网 | 精品视频在线看 | 国产一区二区视频在线 | 亚洲国产精品成人va在线观看 | 亚洲在线高清 | 中文字幕亚洲综合久久五月天色无吗'' | 人人玩人人爽 | 在线观看免费一级片 | 成人9ⅰ免费影视网站 | 天天操天 | 婷婷丁香六月 | 久久97久久| 啪嗒啪嗒免费观看完整版 | 亚洲精品一区中文字幕乱码 | 国产精品久久久久一区二区国产 | 亚洲精品美女 | 亚洲狠狠操 | 在线视频福利 | 亚洲国产精品久久 | 中文字幕 成人 | 亚洲免费不卡 | 99热免费在线 | 色婷婷av一区 | 91成人短视频在线观看 | 欧美va在线观看 | 国产精品爽爽爽 | 亚洲午夜av电影 | 97精品国产91久久久久久 | 成人黄色小说视频 | 中文视频在线播放 | 成人影视免费看 | 国产麻豆电影在线观看 | 日韩欧美一区二区不卡 | 天天舔夜夜操 | 久久综合狠狠综合久久激情 | 免费在线视频一区二区 | 亚洲精品综合一区二区 | 日韩二区三区 | 亚洲国产精品小视频 | 免费色网 | 日本精品视频免费 | 精品无人国产偷自产在线 | 91精品人成在线观看 | 天天干国产 | 在线中文字幕电影 | 国产一区二区三区午夜 | 激情婷婷在线观看 | 午夜久久久久久久久久影院 | av网站地址 | 9999毛片| 国产视频在线观看一区二区 | 国内精品久久久久久久久久 | 亚洲国内精品视频 | 特黄色大片 | 97超级碰碰碰视频在线观看 | 五月婷婷六月丁香激情 | 99久久久国产精品免费99 | 中文字幕久久精品亚洲乱码 | 精品嫩模福利一区二区蜜臀 | 一区二区三区四区精品 | 国产精品99久久久久人中文网介绍 | 免费观看的黄色片 | ,午夜性刺激免费看视频 | 狠狠色伊人亚洲综合网站色 | 国产69精品久久久久久久久久 | 波多野结衣在线观看一区二区三区 | 中文字幕在线免费97 | 日日骑 | 国产专区精品 | av福利在线播放 | 日本在线观看一区 | 欧亚日韩精品一区二区在线 | 一区 在线 影院 | 久久久久久国产精品亚洲78 | 免费看日韩片 | 欧美一级特黄aaaaaa大片在线观看 | 精品久久中文 | 五月天com| 国产精品毛片一区二区在线 | 麻豆国产在线播放 | 国产91精品欧美 | 国产欧美最新羞羞视频在线观看 | 日韩成人不卡 | 免费日韩 精品中文字幕视频在线 | 欧美日韩高清在线 | 久久歪歪| 特级xxxxx欧美 | 九九热在线观看视频 | 国产性xxxx| 美女黄网站视频免费 | 精品国产精品一区二区夜夜嗨 | 久久五月婷婷丁香 | 麻豆国产精品永久免费视频 | 久草在线最新 | 国产一级免费av | 亚洲欧洲精品一区二区精品久久久 | 欧美亚洲成人xxx | 日韩在线影视 | 国产精品免费观看视频 | 91亚洲视频在线观看 | 免费电影一区二区三区 | 特级大胆西西4444www | 韩国av在线播放 | 波多野结衣电影一区二区三区 | 国产成人在线一区 | 成人午夜性影院 | 国产成人精品午夜在线播放 | 国产区精品在线观看 | 亚洲精品福利在线 | 极品中文字幕 | 亚洲精品av在线 | 在线视频99 | 91激情| 久久精品这里精品 | 日韩欧美在线观看一区二区 | 在线观看播放av | 亚洲人xxx | 综合伊人av| 久久综合婷婷综合 | 在线影院 国内精品 | 久久影视中文字幕 | 亚洲国产精品成人女人久久 | 久久99在线视频 | 亚洲精品在线观看网站 | 天堂在线免费视频 | 久久精品这里都是精品 | 91精品国产欧美一区二区 | 国产小视频精品 | 精品成人国产 | 国产亚洲人成网站在线观看 | 欧美a级片网站 | 黄a网站 | 精品在线观看一区二区 | 国产又粗又猛又黄 | 精品在线一区二区三区 | 国产精品99久久久久人中文网介绍 | 一区二区三区动漫 | 亚洲人成影院在线 | 蜜臀av一区二区 | 麻豆精品传媒视频 | 黄色av一区二区 | 91看片一区二区三区 | 草樱av | 精品中文字幕在线播放 | 中文字幕视频免费观看 | 成年人视频在线免费观看 | 九九国产精品视频 | 91看片在线| 日韩一区二区三区在线看 | 免费三级大片 | 久草干| 国产精品原创在线 | 天堂在线视频中文网 | 天堂入口网站 | 五月婷婷伊人网 | 亚洲四虎 | 色婷婷一| 日韩专区在线 | 国产精品1024 | 激情开心站 | 日韩欧美69| 欧美va天堂va视频va在线 | 五月天伊人网 | 日韩av影片在线观看 | www.在线观看av | 色综合久久88色综合天天 | 亚洲久草网| 五月天中文在线 | 国产手机视频在线观看 | 国产精品21区 | 香蕉视频导航 | 国产男女爽爽爽免费视频 | 天天干天天摸天天操 | 国产午夜剧场 | 国产精品嫩草69影院 | 夜夜骑天天操 | 国产欧美综合在线观看 | 五月婷婷久久综合 | 久久伊人国产精品 | 99r精品视频在线观看 | 中文网丁香综合网 | 亚洲少妇天堂 | 果冻av在线| 亚洲色综合 | 一区在线免费观看 | 国产精品久久久久aaaa | 中文视频在线 | 国产一区欧美一区 | av在线影片 | 成人黄大片视频在线观看 | 一区二区视| 91.麻豆视频 | 欧美日韩国产在线一区 | 高清不卡一区二区在线 | 一本—道久久a久久精品蜜桃 | 亚洲午夜不卡 | 欧美日韩国产伦理 | 日韩激情第一页 | 91精品国产成人 | 亚洲欧洲在线视频 | 中文字幕av电影下载 | 亚洲黄色高清 | 久久国产精品久久国产精品 | 日韩天堂在线观看 | av在线播放不卡 | 亚洲高清激情 | 成人免费 在线播放 | 天天操夜夜操天天射 | 色婷婷狠狠18 | 青青河边草免费观看 | 久久精视频 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 韩国一区二区三区在线观看 | 国产99久 | 96视频在线| 国产精品久久久久久久妇 | 中文字幕国语官网在线视频 | 国产99久久九九精品 | 日韩精品视频在线免费观看 | 韩国三级av在线 | 最近在线中文字幕 | 久久国产乱 | 久久免费在线观看视频 | av导航福利 | 有没有在线观看av | 91社区国产高清 | 毛片黄色一级 | 操久在线| av亚洲产国偷v产偷v自拍小说 | 免费日韩av电影 | 日本中文字幕网站 | 国内精品久久久 | 美腿丝袜一区二区三区 | 久久在线免费视频 | 国产一区二区三区高清播放 | 亚洲国产成人精品在线 | www.五月天激情 | 91高清在线 | 免费看污污视频的网站 | 婷婷激情av | 日韩美女久久 | 日韩高清国产精品 | 日韩在线第一区 | 日本精品一区二区三区在线观看 | 久久五月天色综合 | 丁香九月婷婷 | 探花视频在线版播放免费观看 | 欧美三级免费 | 国产高清 不卡 | 成人午夜电影免费在线观看 | 久久久99精品免费观看乱色 | 亚洲欧美在线观看视频 | 国产精品一区久久久久 | 永久中文字幕 | 黄色com | 天天爱天天射天天干天天 | 亚洲精品高清一区二区三区四区 | 久久96国产精品久久99软件 | 深爱五月激情网 | 免费男女网站 | 免费a v网站 | 国产日韩欧美在线观看 | 国产破处在线播放 | 亚洲精品午夜久久久久久久久久久 | 成人啪啪18免费游戏链接 | 波多野结衣一区二区 | 婷婷六月丁香激情 | 亚洲 欧洲 国产 日本 综合 | 欧美一级电影 | 三级a视频 | 久久久久国 | 成人影视免费 | 国产成人免费高清 | 天天色天天操天天爽 | 久久精品视频国产 | 国产中文字幕一区二区 | 99精品久久久久久久 | 成人精品一区二区三区电影免费 | 亚洲一级二级三级 | av在线电影免费观看 | 国产成人三级在线播放 | 国产精品毛片久久 | 成人app在线免费观看 | 黄色一区二区在线观看 | japanesefreesex中国少妇 | 免费中午字幕无吗 | 91视频在线国产 | 欧美日韩久久久 | 日韩免费在线观看网站 | 日韩激情视频 | 91色九色 | 国产精品久久久久久久久久久免费看 | 成年人黄色免费视频 | 五月婷婷爱 | 不卡中文字幕在线 | 国产一及片| 日日干日日操 | 永久av免费在线观看 | 成人午夜电影网 | 992tv在线成人免费观看 | 亚洲精品高清在线观看 | 亚洲激情视频在线 | 男女视频91 | 亚洲综合欧美精品电影 | 狠狠躁夜夜躁人人爽超碰91 | 久久国产一区二区 | 久久99精品国产麻豆宅宅 | 中文字幕免费在线看 | 在线观看免费 | 91日韩精品一区 | 久久综合九色综合久久久精品综合 | 亚洲精品国产精品久久99 | 国产99久久精品一区二区300 | 成人av网站在线 | 亚洲资源 | 日韩电影中文字幕在线 | 精品国产一区二区三区久久久久久 | 日韩视频免费观看高清 | 天天摸天天操天天爽 | 九九涩涩av台湾日本热热 | 在线欧美最极品的av | 美女黄频网站 | 亚洲精品女 | av丝袜在线 | 亚洲激情中文 | 蜜桃麻豆www久久囤产精品 | 免费大片av| 碰天天操天天 | 国产1区2区3区精品美女 | 久久久久久久综合色一本 | 四虎在线视频免费观看 | 久久字幕精品一区 | 2019精品手机国产品在线 | 国产高清精品在线观看 | 日韩欧美在线第一页 | 草久草久| 97超碰在线免费观看 | 日韩av在线影视 | 夜夜躁日日躁狠狠久久88av | 天天干天天做天天爱 | 91手机视频在线 | 麻豆国产精品一区二区三区 | 国产午夜三级一区二区三桃花影视 | 涩涩爱夜夜爱 | 免费看色网站 | 欧美极品一区二区三区 | 中文字幕在线观看免费高清电影 | 国产精品久久久久久久免费观看 | 一级欧美一级日韩 | 国产一区免费在线 | 一区二区三区精品在线视频 | 久久久这里有精品 | 国产精品 日本 | 国产黄免费在线观看 | 黄色成人小视频 | 国产r级在线观看 | 精品视频在线免费观看 | 在线观看精品视频 | 婷婷六月网 | 亚洲视频网站在线观看 | 国内偷拍精品视频 | 九草在线观看 | 午夜视频在线观看一区 | 日本3级在线观看 | 午夜国产一区二区 | 亚洲欧美怡红院 | 在线看日韩 | 国内精品在线一区 | 一区在线观看 | 999ZYZ玖玖资源站永久 | 成人动态视频 | 天天天天综合 | 免费精品国产va自在自线 | 99久久99视频只有精品 | 久久人人爽av | 久久精品看片 | 草久视频在线观看 | 狠狠干.com | 天天爽夜夜爽精品视频婷婷 | 日本巨乳在线 | 麻豆果冻剧传媒在线播放 | 欧洲视频一区 | 久久超碰免费 | 亚洲视频一 | 亚洲精品av中文字幕在线在线 | 91成人网页版 | 亚洲成a人片77777kkkk1在线观看 | 精品9999 | 国产一区视频免费在线观看 | 国内精品久久久久国产 | 在线免费看黄网站 | av免费观看高清 | 欧美aa在线 | 婷婷色站 | 久在线观看 | 美女视频a美女大全免费下载蜜臀 | 婷婷中文字幕在线观看 | 丁香婷婷久久 | 97日日 | 狠狠亚洲 | 久久福利在线 | 色噜噜狠狠狠狠色综合久不 | 午夜.dj高清免费观看视频 | 人人射人人爱 | 一级α片免费看 | 日日夜夜精品免费视频 | 日本一区二区三区免费看 | 国产亚洲精品成人 | 午夜av日韩 | 99理论片 | 久草在线国产 | 国产精品久久久久久久久岛 |