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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

红茶一杯话Binder

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 红茶一杯话Binder 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 什么是Binder?

?????? 簡單地說,Binder是Android平臺上的一種跨進程交互技術。該技術最早并不是由Google公司提出的,它的前身是Be Inc公司開發的OpenBinder,而且在Palm中也有應用。后來OpenBinder的作者Dianne Hackborn加入了Google公司,并負責Android平臺的開發工作,所以把這項技術也帶進了Android。

?????? 我們知道,在Android的應用層次上,基本上已經沒有過去的進程概念了。然而在實現層次,它畢竟還是要建構在一個個進程之上的。實際上,在Android內部,那些支撐應用的組件往往會身處于不同的進程,那么應用的底層必然會牽涉大量的跨進程通信。為了保證通信的高效性,Android提供了Binder機制。

?????? Binder機制具有兩層含義:?
1) 是一種跨進程通信手段(IPC,Inter-Process Communication)。?
2) 是一種遠程過程調用手段(RPC,Remote Procedure Call)。

?????? 從實現的角度來說,Binder核心被實現成一個Linux驅動程序,并運行于內核態。這樣它才能具有強大的跨進程訪問能力。

?

1.1 簡述Binder的跨進程機制

?????? 為了理解Binder,我們可以先畫一張最簡單的跨進程通信示意圖:

?

這個很容易理解,不需贅言。到了Android平臺上,IPC機制就變成了Binder機制,情況類似,只不過為了便于說明問題,我們需要稍微調整一下示意圖:

圖中A側的圓形塊,表示“Binder代理方”,主要用于向遠方發送語義,而B側的方形塊則表示“Binder響應方”,主要用于響應語義。需要說明的是,這種圖形表示方法是我自己杜撰的,并沒有正規的出處。我個人覺得這種圖形非常簡便,所以在分析Android架構時,會經常使用這種表示法。

??????? 在后文中,我們可以看到,Binder代理方大概對應于C++層次的BpBinder對象,而Binder響應方則對應于BBinder對象。這兩個對象在后文會詳細闡述,此處不必太細究。

??????? 然而,上圖的Binder代理方主要只負責了“傳遞信息”的工作,并沒有起到“遠程過程調用”的作用,如果要支持遠程過程調用,我們還必須提供“接口代理方”和“接口實現體”。這樣,我們的示意圖就需要再調整一下,如下:

??????? 從圖中可以看到,A進程并不直接和BpBinder(Binder代理)打交道,而是通過調用BpInterface(接口代理)的成員函數來完成遠程調用的。此時,BpBinder已經被聚合進BpInterface了,它在BpInterface內部完成了一切跨進程的機制。另一方面,與BpInterface相對的響應端實體就是BnInterface(接口實現)了。需要注意的是,BnInterface是繼承于BBinder的,它并沒有采用聚合的方式來包含一個BBinder對象,所以上圖中B側的BnInterface塊和BBinder塊的背景圖案是相同的。

??????? 這樣看來,對于遠程調用的客戶端而言,主要搞的就是兩個東西,一個是“Binder代理”,一個是“接口代理”。而服務端主要搞的則是“接口實現體”。因為binder是一種跨進程通信機制,所以還需要一個專門的管理器來為通信兩端牽線搭橋,這個管理器就是Service Manager Service。不過目前我們可以先放下Service Manager Service,以后再詳細研究。

?

2 Binder相關接口和類

????? Android的整個跨進程通信機制都是基于Binder的,這種機制不但會在底層使用,也會在上層使用,所以必須提供Java和C++兩個層次的支持。

?

2.1 Java層次的binder元素

????? Java層次里并沒有我們前文圖中所表示的BpBinder、BpInterface、BBinder等較低層次的概念,取而代之的是IBinder接口、IInterface等接口。Android要求所有的Binder實體都必須實現IBinder接口,該接口的定義截選如下:

【frameworks/base/core/java/android/os/IBinder.java】

public interface IBinder {. . . . . .public String getInterfaceDescriptor() throws RemoteException;public boolean pingBinder();public boolean isBinderAlive();public IInterface queryLocalInterface(String descriptor);public void dump(FileDescriptor fd, String[] args) throws RemoteException;public void dumpAsync(FileDescriptor fd, String[] args) throws RemoteException;public boolean transact(int code, Parcel data, Parcel reply, int flags) throws RemoteException;public interface DeathRecipient {public void binderDied();}public void linkToDeath(DeathRecipient recipient, int flags)throws RemoteException;public boolean unlinkToDeath(DeathRecipient recipient, int flags); }

另外,不管是代理方還是實體方,都必須實現IInterface接口:

public interface IInterface {public IBinder asBinder(); }

?

???????? Java層次中,與Binder相關的接口或類的繼承關系如下:

??????? 在實際使用中,我們并不需要編寫上圖的XXXXNative、XXXXProxy,它們會由ADT根據我們編寫的aidl腳本自動生成。用戶只需繼承XXXXNative編寫一個具體的XXXXService即可,這個XXXXService就是遠程通信的服務實體類,而XXXXProxy則是其對應的代理類。

??????? 關于Java層次的binder組件,我們就先說這么多,主要是先介紹一個大概。就研究跨進程通信而言,其實質內容基本上都在C++層次,Java層次只是一個殼而已。以后我會寫專文來打通Java層次和C++層次,看看它們是如何通過JNI技術關聯起來的。現在我們還是把注意力集中在C++層次吧。

?

2.2 C++層次的binder元素

??????? 在C++層次,就能看到我們前文所說的BpBinder類和BBinder類了。這兩個類都繼承于IBinder,IBinder的定義截選如下:

【frameworks/native/include/binder/IBinder.h】

class IBinder : public virtual RefBase { public:. . . . . .IBinder();virtual sp<IInterface> queryLocalInterface(const String16& descriptor);virtual const String16& getInterfaceDescriptor() const = 0;virtual bool isBinderAlive() const = 0;virtual status_t pingBinder() = 0;virtual status_t dump(int fd, const Vector<String16>& args) = 0;virtual status_t transact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0) = 0;class DeathRecipient : public virtual RefBase{public:virtual void binderDied(const wp<IBinder>& who) = 0;};virtual status_t linkToDeath(const sp<DeathRecipient>& recipient,void* cookie = NULL, uint32_t flags = 0) = 0;virtual status_t unlinkToDeath(const wp<DeathRecipient>& recipient,void* cookie = NULL, uint32_t flags = 0, wp<DeathRecipient>* outRecipient = NULL) = 0;virtual bool checkSubclass(const void* subclassID) const;typedef void (*object_cleanup_func)(const void* id, void* obj, void* cleanupCookie);virtual void attachObject(const void* objectID, void* object,void* cleanupCookie, object_cleanup_func func) = 0;virtual void* findObject(const void* objectID) const = 0;virtual void detachObject(const void* objectID) = 0;virtual BBinder* localBinder();virtual BpBinder* remoteBinder();protected:virtual ~IBinder(); private: };

?

???????? C++層次的繼承關系圖如下:

其中有以下幾個很關鍵的類:

  • BpBinder
  • BpInterface
  • BBinder
  • BnInterface

它們扮演著很重要的角色。

?

2.2.1 BpBinder

??????? BpBinder的定義截選如下:

class BpBinder : public IBinder { public: BpBinder(int32_t handle);inline int32_t handle() const { return mHandle; }virtual const String16& getInterfaceDescriptor() const;virtual bool isBinderAlive() const;virtual status_t pingBinder();virtual status_t dump(int fd, const Vector<String16>& args);virtual status_t transact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0);virtual status_t linkToDeath(const sp<DeathRecipient>& recipient,void* cookie = NULL, uint32_t flags = 0);virtual status_t unlinkToDeath(const wp<DeathRecipient>& recipient,void* cookie = NULL, uint32_t flags = 0, wp<DeathRecipient>* outRecipient = NULL); . . . . . . . . . . . .

?

??????? 作為代理端的核心,BpBinder最重要的職責就是實現跨進程傳輸的傳輸機制,至于具體傳輸的是什么語義,它并不關心。我們觀察它的transact()函數的參數,可以看到所有的語義都被打包成Parcel了。其他的成員函數,我們先不深究,待我們儲備了足夠的基礎知識后,再回過頭研究它們不遲。

?

2.2.2 BpInterface

??????? 另一個重要的類是BpInterface,它的定義如下:

template<typename INTERFACE> class BpInterface : public INTERFACE, public BpRefBase { public: BpInterface(const sp<IBinder>& remote);protected:virtual IBinder* onAsBinder(); };

其基類BpRefBase的定義如下:

class BpRefBase : public virtual RefBase { protected:BpRefBase(const sp<IBinder>& o);virtual ~BpRefBase();virtual void onFirstRef();virtual void onLastStrongRef(const void* id);virtual bool onIncStrongAttempted(uint32_t flags, const void* id);inline IBinder* remote() { return mRemote; }inline IBinder* remote() const { return mRemote; }private: BpRefBase(const BpRefBase& o);BpRefBase& operator=(const BpRefBase& o);IBinder* const mRemote;RefBase::weakref_type* mRefs;volatile int32_t mState; };

BpInterface使用了模板技術,而且因為它繼承了BpRefBase,所以先天上就聚合了一個mRemote成員,這個成員記錄的就是前面所說的BpBinder對象啦。以后,我們還需要繼承BpInterface<>實現我們自己的代理類。

?

??????? 在實際的代碼中,我們完全可以創建多個聚合同一BpBinder對象的代理對象,這些代理對象就本質而言,對應著同一個遠端binder實體。在Android框架中,常常把指向同一binder實體的多個代理稱為token,這樣即便這些代理分別處于不同的進程中,它們也具有了某種內在聯系。這個知識點需要大家關注。

?

2.2.3 BBinder

??????? Binder遠程通信的目標端實體必須繼承于BBinder類,該類和BpBinder相對,主要關心的只是傳輸方面的東西,不太關心所傳輸的語義。

class BBinder : public IBinder { public: BBinder();virtual const String16& getInterfaceDescriptor() const;virtual bool isBinderAlive() const;virtual status_t pingBinder();virtual status_t dump(int fd, const Vector<String16>& args);virtual status_t transact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0);virtual status_t linkToDeath(const sp<DeathRecipient>& recipient,void* cookie = NULL, uint32_t flags = 0);virtual status_t unlinkToDeath(const wp<DeathRecipient>& recipient,void* cookie = NULL, uint32_t flags = 0, wp<DeathRecipient>* outRecipient = NULL);virtual void attachObject(const void* objectID, void* object,void* cleanupCookie, object_cleanup_func func);virtual void* findObject(const void* objectID) const;virtual void detachObject(const void* objectID);virtual BBinder* localBinder();protected:virtual ~BBinder();virtual status_t onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0); private:BBinder(const BBinder& o);BBinder& operator=(const BBinder& o);class Extras;Extras* mExtras; void* mReserved0; };

?

??????? 我們目前只需關心上面的transact()成員函數,其他函數留待以后再分析。transact函數的代碼如下:

【frameworks/native/libs/binder/Binder.cpp】

status_t BBinder::transact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) {data.setDataPosition(0);status_t err = NO_ERROR;switch (code) {case PING_TRANSACTION:reply->writeInt32(pingBinder());break;default:err = onTransact(code, data, reply, flags);break;}if (reply != NULL) {reply->setDataPosition(0);}return err; }

看到了嗎,transact()內部會調用onTransact(),從而走到用戶所定義的子類的onTransact()里。這個onTransact()的一大作用就是解析經由Binder機制傳過來的語義了。

?

2.2.4 BnInterface

??????? 遠程通信目標端的另一個重要類是BnInterface<>,它是與BpInterface<>相對應的模板類,比較關心傳輸的語義。一般情況下,服務端并不直接使用BnInterface<>,而是使用它的某個子類。為此,我們需要編寫一個新的BnXXX子類,并重載它的onTransact()成員函數。

???????? BnInterface<>的定義如下:

template<typename INTERFACE> class BnInterface : public INTERFACE, public BBinder { public:virtual sp<IInterface> queryLocalInterface(const String16& _descriptor);virtual const String16& getInterfaceDescriptor() const;protected:virtual IBinder* onAsBinder(); };

如上所示,BnInterface<>繼承于BBinder,但它并沒有實現一個默認的onTransact()成員函數,所以在遠程通信時,前文所說的BBinder::transact()調用的onTransact()應該就是BnInterface<>的某個子類的onTransact()成員函數。

?

2.3 幾個重要的C++宏或模板

??????? 為了便于編寫新的接口和類,Android在C++層次提供了幾個重要的宏和模板,比如我們在IInterface.h文件中,可以看到DECLARE_META_INTERFACE、IMPLEMENT_META_INTERFACE的定義。

?

2.3.1 DECLARE_META_INTERFACE()

??????? DECLARE_META_INTERFACE()的定義如下:

#define DECLARE_META_INTERFACE(INTERFACE) \static const android::String16 descriptor; \static android::sp<I##INTERFACE> asInterface( \const android::sp<android::IBinder>& obj); \virtual const android::String16& getInterfaceDescriptor() const; \I##INTERFACE(); \virtual ~I##INTERFACE(); \

?

我們舉個實際的例子,來說明如何使用這個宏:

上例中ICamera內部使用了DECLARE_META_INTERFACE(Camera),我們把宏展開后,可以看到ICamera類的定義相當于:

class ICamera: public IInterface { public:static const android::String16 descriptor; static android::sp<ICamera> asInterface( const android::sp<android::IBinder>& obj); virtual const android::String16& getInterfaceDescriptor() const; ICamera(); virtual ~ICamera();virtual void disconnect() = 0; . . . . . .

宏展開的部分就是中間那5行代碼,其中最關鍵的就是asInterface()函數了,這個函數將承擔把BpBinder打包成BpInterface的職責。

?

2.3.2 IMPLEMENT_META_INTERFACE()

??????? 與DECLARE_META_INTERFACE相對的就是IMPLEMENT_META_INTERFACE宏。它的定義如下:

#define IMPLEMENT_META_INTERFACE(INTERFACE, NAME) \const android::String16 I##INTERFACE::descriptor(NAME); \const android::String16& \I##INTERFACE::getInterfaceDescriptor() const { \return I##INTERFACE::descriptor; \} \android::sp<I##INTERFACE> I##INTERFACE::asInterface( \const android::sp<android::IBinder>& obj) \{ \android::sp<I##INTERFACE> intr; \if (obj != NULL) { \intr = static_cast<I##INTERFACE*>( \obj->queryLocalInterface( \I##INTERFACE::descriptor).get()); \if (intr == NULL) { \intr = new Bp##INTERFACE(obj); \} \} \return intr; \} \I##INTERFACE::I##INTERFACE() { } \I##INTERFACE::~I##INTERFACE() { } \

其中,實現了關鍵的asInterface()函數。

?

??????? 實際使用IMPLEMENT_META_INTERFACE時,我們只需把它簡單地寫在binder實體所處的cpp文件中即可,舉例如下:

其中的IMPLEMENT_META_INTERFACE(Camera, “android.hardware.ICamera”);一句相當于以下這段代碼:

const android::String16 ICamera::descriptor(“android.hardware.ICamera”); const android::String16& ICamera::getInterfaceDescriptor() const { return ICamera::descriptor; }android::sp<ICamera> ICamera::asInterface(const android::sp<android::IBinder>& obj) { android::sp<ICamera > intr; if (obj != NULL) { intr = static_cast<ICamera*>(obj->queryLocalInterface( ICamera::descriptor).get());if (intr == NULL) {intr = new BpCamera(obj);} }return intr; }ICamera::ICamera() { } ICamera::~ICamera () { }

看來,其中重點實現了asInterface()成員函數。請注意,asInterface()函數中會先嘗試調用queryLocalInterface()來獲取intr。此時,如果asInterface()的obj參數是個代理對象(BpBinder),那么intr = static_cast<ICamera*>(obj->queryLocalInterface(...)一句得到的intr基本上就是NULL啦。這是因為除非用戶編寫的代理類重載queryLocalInterface()函數,否則只會以默認函數為準。而IBinder類中的默認queryLocalInterface()函數如下:

【frameworks/native/libs/binder/Binder.cpp】

sp<IInterface> IBinder::queryLocalInterface(const String16& descriptor) {return NULL; }

另一方面,如果obj參數是個實現體對象(BnInterface對象)的話,那么queryLocalInterface()函數的默認返回值就是實體對象的this指針了,代碼如下:

【frameworks/native/include/binder/IInterface.h】

template<typename INTERFACE> inline sp<IInterface> BnInterface<INTERFACE>::queryLocalInterface(const String16& _descriptor) {if (_descriptor == INTERFACE::descriptor) return this;return NULL; }

?

??????? 在我們所舉的Camera例子中,我們要研究的是如何將BpBinder轉成BpInterface,所以現在我們只闡述obj參數為BpBinder的情況。此時asInterface()函數中obj->queryLocalInterface()的返回值為NULL,于是asInterface()會走到new BpCamera(obj)一句,這一句是最關鍵的一句。我們知道,BpCamera繼承于BpInterface<ICamera>,所以此時所創建的BpCamera對象正是可被App使用的BpInterface代理對象。

?

??????? BpCamera的定義如下:

class BpCamera: public BpInterface<ICamera> { public:BpCamera(const sp<IBinder>& impl): BpInterface<ICamera>(impl){}// disconnect from camera servicevoid disconnect(){LOGV("disconnect");Parcel data, reply;data.writeInterfaceToken(ICamera::getInterfaceDescriptor());remote()->transact(DISCONNECT, data, &reply);} . . . . . .

至此,IMPLEMENT_META_INTERFACE宏和asInterface()函數的關系就分析完畢了。

?

2.3.3 interface_cast

??????? 不過,我們經常使用的其實并不是asInterface()函數,而是interface_cast(),它簡單包裝了asInterface():

template<typename INTERFACE> inline sp<INTERFACE> interface_cast(const sp<IBinder>& obj) {return INTERFACE::asInterface(obj); }

?

??????? 以上就是關于C++層次中一些binder元素的介紹,下面我們再進一步分析其他細節。

?

3 ProcessState

??????? 前文我們已經提到過,在Android的上層架構中,已經大幅度地弱化了進程的概念。應用程序員能看到的主要是activity、service、content provider等概念,再也找不到以前熟悉的main()函數了。然而,底層程序(C++層次)畢竟還是得跑在一個個進程之上,現在我們就來看底層進程是如何運用Binder機制來完成跨進程通信的。

??????? 在每個進程中,會有一個全局的ProcessState對象。這個很容易理解,ProcessState的字面意思不就是“進程狀態”嗎,當然應該是每個進程一個ProcessState。ProcessState的定義位于frameworks/native/include/binder/ProcessState.h中,我們只截選其中的一部分:

class ProcessState : public virtual RefBase { public:static sp<ProcessState> self();. . . . . .void startThreadPool();. . . . . .void spawnPooledThread(bool isMain);status_t setThreadPoolMaxThreadCount(size_t maxThreads);private:friend class IPCThreadState;. . . . . .struct handle_entry {IBinder* binder;RefBase::weakref_type* refs;};handle_entry* lookupHandleLocked(int32_t handle);int mDriverFD;void* mVMStart;mutable Mutex mLock; // protects everything below.Vector<handle_entry> mHandleToObject;. . . . . .KeyedVector<String16, sp<IBinder> > mContexts;. . . . . . };

我們知道,Binder內核被設計成一個驅動程序,所以ProcessState里專門搞了個mDriverFD域,來記錄binder驅動對應的句柄值,以便隨時和binder驅動通信。ProcessState對象采用了典型的單例模式,在一個應用進程中,只會有唯一的一個ProcessState對象,它將被進程中的多個線程共用,因此每個進程里的線程其實是共用所打開的那個驅動句柄(mDriverFD)的,示意圖如下:

每個進程基本上都是這樣的結構,組合起來的示意圖就是:

我們常見的使用ProcessState的代碼如下:

int main(int argc, char** argv) {sp<ProcessState> proc(ProcessState::self());. . . . . .. . . . . .ProcessState::self()->startThreadPool();IPCThreadState::self()->joinThreadPool(); }

因為ProcessState采用的是單例模式,所以它的構造函數是private的,我們只能通過調用ProcessState::self()來獲取進程中唯一的一個ProcessState對象。self()函數的代碼如下:

sp<ProcessState> ProcessState::self() {Mutex::Autolock _l(gProcessMutex);if (gProcess != NULL) {return gProcess;}gProcess = new ProcessState;return gProcess; }

?

??????? ProcessState對象構造之時,就會打開binder驅動:

ProcessState::ProcessState(): mDriverFD(open_driver()) // 打開binder驅動。, mVMStart(MAP_FAILED), mManagesContexts(false), mBinderContextCheckFunc(NULL), mBinderContextUserData(NULL), mThreadPoolStarted(false), mThreadPoolSeq(1) {. . . . . .mVMStart = mmap(0, BINDER_VM_SIZE, PROT_READ, MAP_PRIVATE | MAP_NORESERVE, mDriverFD, 0);. . . . . . }

注意上面那句mDriverFD(open_driver()),其中的open_driver()就負責打開“/dev/binder”驅動:

static int open_driver() {int fd = open("/dev/binder", O_RDWR);. . . . . .status_t result = ioctl(fd, BINDER_VERSION, &vers);. . . . . .size_t maxThreads = 15;result = ioctl(fd, BINDER_SET_MAX_THREADS, &maxThreads);. . . . . .return fd; }

?

???????? ProcessState中另一個比較有意思的域是mHandleToObject:

Vector<handle_entry> mHandleToObject;

它是本進程中記錄所有BpBinder的向量表噢,非常重要。我們前文已經說過,BpBinder是代理端的核心,現在終于看到它的藏身之處了。在Binder架構中,應用進程是通過“binder句柄”來找到對應的BpBinder的。從這張向量表中我們可以看到,那個句柄值其實對應著這個向量表的下標。這張表的子項類型為handle_entry,定義如下:

struct handle_entry {IBinder* binder;RefBase::weakref_type* refs; };

其中的binder域,記錄的就是BpBinder對象。

???????? Ok,有關Binder的初步知識,我們就先說這么多。我也不想一下子把所有的信息都塞到一篇文章中,所以打算把更多技術細節安排到其他文章中闡述,呵呵,這需要一點兒時間。

原文地址:https://my.oschina.net/youranhongcha/blog/149575

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的红茶一杯话Binder的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产香蕉97碰碰久久人人 | 欧美色888 | wwwwww国产| 欧美孕妇视频 | 日韩动态视频 | 亚洲视频免费在线观看 | 91精品久久久久久久久久入口 | av亚洲产国偷v产偷v自拍小说 | 天堂视频中文在线 | 亚洲精品电影在线 | 最近中文字幕在线中文高清版 | 久草免费新视频 | 久久综合五月婷婷 | 精品国产一区二区三区四区在线观看 | 国产精品永久久久久久久www | 国产中文在线视频 | 免费福利视频网 | 欧美一区二区三区在线看 | 久久欧洲视频 | 激情综合亚洲 | 久久精彩 | 国产最新视频在线观看 | 欧美黑人性猛交 | 不卡国产在线 | 日本二区三区在线 | 曰本三级在线 | 日韩av在线小说 | 在线观看免费视频 | 99热在线国产精品 | 欧美日韩破处 | 日韩美女久久 | 日日日日 | 开心激情五月网 | a在线播放 | a在线v| 日日夜夜精品视频天天综合网 | 亚洲婷婷网 | 狠狠天天 | 三三级黄色片之日韩 | 精品黄色片 | 亚洲黄电影 | 嫩草伊人久久精品少妇av | 日韩免费久久 | 韩国av永久免费 | 日韩欧美电影 | 国产精品美女久久久久久久久久久 | 久久午夜免费视频 | 日韩精品免费一区 | 天天干夜夜爱 | 久久精品免费电影 | 99久久日韩精品免费热麻豆美女 | 久久av不卡 | 97免费视频在线 | 麻花豆传媒一二三产区 | 国产精品男女啪啪 | 国产福利91精品一区二区三区 | 在线观看www视频 | 97精品国产97久久久久久久久久久久 | 免费看麻豆 | 国产 日韩 在线 亚洲 字幕 中文 | 国产一区91 | 蜜桃麻豆www久久囤产精品 | 国产视频 亚洲精品 | 成片视频免费观看 | 色久av| 久久久久www| 亚洲日本韩国一区二区 | 欧美一级看片 | 国产一级二级三级视频 | 在线观看一区 | 成人亚洲免费 | 欧美一区二区三区不卡 | 欧美另类xxx | 在线日韩一区 | 亚洲婷婷在线视频 | 九九热精品视频在线播放 | 国产a国产a国产a | 免费视频一区二区 | 国产精品久久网站 | 狠狠艹夜夜干 | 欧洲精品视频一区 | 99精品99| 三级在线国产 | 88av网站 | 欧美伦理一区二区三区 | 午夜av色 | 97色在线| 超碰在线人人爱 | 久久69精品 | 五月天伊人网 | 在线观看你懂的网站 | 99热最新网址| 成人精品影视 | 99色资源 | 国产精品高潮在线观看 | 综合铜03| 久久精品视频国产 | 国产精品久久久久久久久大全 | 亚洲国产精品电影在线观看 | 成 人 黄 色 视频 免费观看 | 久久撸在线视频 | 久久久久久网址 | 久久精品三 | 天天干夜夜爱 | 日韩久久精品一区二区三区下载 | 日韩精品中文字幕在线观看 | 亚洲精品久久久久久久不卡四虎 | 亚洲一二三在线 | 国产精品中文在线 | 色综合天天综合 | 亚洲在线视频免费观看 | 色鬼综合网| 在线看成人 | 五月天婷婷免费视频 | 中日韩欧美精彩视频 | 丁香婷婷综合色啪 | 精品国内自产拍在线观看视频 | 中文字幕视频 | 国内视频一区二区 | 中文字幕国产在线 | 国产一区欧美一区 | 香蕉视频国产在线观看 | 国产99久久九九精品 | av成人免费在线观看 | 久久久人人爽 | 亚洲91中文字幕无线码三区 | 97操碰| 国产一级片免费观看 | 成片人卡1卡2卡3手机免费看 | 在线观看av免费 | 中文字幕你懂的 | 精品国产欧美一区二区 | 丁香电影小说免费视频观看 | 九九九九免费视频 | 国产免费一区二区三区最新 | 精品夜夜嗨av一区二区三区 | 免费的国产精品 | 国产区高清在线 | 91av在线精品 | 91一区一区三区 | 麻豆精品视频在线 | 国产一区二区三区免费在线 | 欧美日韩在线视频一区二区 | 久草视频观看 | 欧美视屏一区二区 | 在线视频一二区 | 91精品国产成人www | 久久久国产一区二区三区四区小说 | 99精品国产兔费观看久久99 | 免费视频 你懂的 | 日韩电影一区二区三区 | 六月丁香色婷婷 | 国产午夜精品av一区二区 | 91精品小视频 | 中文区中文字幕免费看 | 日韩视频一区二区三区在线播放免费观看 | 最新日韩精品 | 国产在线看一区 | 国产精品一区二区免费在线观看 | 成 人 黄 色 片 在线播放 | av电影免费 | 亚洲婷久久 | 久久久久一区二区三区 | www.狠狠操.com| 中文字幕av全部资源www中文字幕在线观看 | 天天爽天天爽天天爽 | 少妇bbbb搡bbbb桶| 黄色在线免费观看网站 | 五月婷婷色综合 | 久久精品香蕉 | 在线播放精品一区二区三区 | 久久久久国产精品一区二区 | 香蕉视频91 | 超级碰视频 | 九九在线精品视频 | 久草剧场 | 成年人看片网站 | 精品国产精品久久一区免费式 | 国产网红在线观看 | 国产成人精品综合久久久 | 久久成年人视频 | 99精品观看 | 日韩欧美在线观看一区二区 | 亚洲理论在线观看电影 | 久草网视频在线观看 | 亚洲精品视频免费观看 | 91少妇精拍在线播放 | 成人啪啪18免费游戏链接 | 日韩免费福利 | 在线视频99 | 五月婷婷综合在线视频 | 色亚洲网 | 国产精品99久久久久久武松影视 | 亚洲有 在线 | 国产淫片 | 久久激情日本aⅴ | 国产精品毛片一区二区 | 色就是色综合 | 1000部18岁以下禁看视频 | 丁香婷婷激情网 | 免费在线看v | 久久免费视频6 | 久久精品亚洲一区二区三区观看模式 | 免费又黄又爽的视频 | 日本精品久久久一区二区三区 | 国产精品视频观看 | 精品国产一区二区三区久久久久久 | 97精品一区二区三区 | 成人h电影| 96久久 | 国产精品久久一区二区无卡 | 久久久国产一区二区三区四区小说 | 国产成人一区二区三区久久精品 | 久久综合九色 | 日本性高潮视频 | 国产精品成人国产乱 | 久久一区二区三区国产精品 | 国产精品区二区三区日本 | 亚洲精品在线国产 | 免费福利影院 | 91亚洲精品久久久中文字幕 | 国产高清免费在线观看 | 91喷水 | 久久综合色一综合色88 | 蜜桃视频在线视频 | 91九色精品女同系列 | 久久久久高清毛片一级 | 久久免费试看 | 在线亚洲观看 | 91亚色在线观看 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 日韩欧美一区二区三区在线 | 日韩久久午夜一级啪啪 | 黄色a大片 | 亚洲精品在线国产 | 欧美一级xxxx | 亚洲电影成人 | 国产精品入口66mio女同 | 国产亚洲精品精品精品 | 香蕉久久久久久av成人 | 亚洲视频免费在线观看 | 亚洲资源视频 | 久久免费视频这里只有精品 | 亚洲精品美女久久久久网站 | 看av免费| 日韩高清免费在线观看 | 日韩精品中文字幕久久臀 | 国产高清免费在线观看 | 久久在草 | 不卡av在线免费观看 | 91中文字幕在线观看 | 日韩字幕在线观看 | 国产精品永久免费在线 | 性色视频在线 | 久久精品在线视频 | 欧美精品v国产精品 | 久久综合五月天婷婷伊人 | 久久免费av | 97免费视频在线 | 国产精品久久久久久久久久了 | 99免费在线 | 国产高清第一页 | 欧美日韩一级久久久久久免费看 | 96av在线| 欧美成人影音 | 亚洲午夜久久久久久久久电影网 | 亚洲成人xxx | 五月天中文字幕 | 最新日韩视频在线观看 | 国产一二区精品 | 久久大香线蕉app | 欧美日韩三级在线观看 | 亚洲成人精品在线观看 | 日p在线观看 | 九九九热精品免费视频观看网站 | 91视频大全 | 国产亚洲高清视频 | 中文资源在线官网 | 天天射天天操天天 | 在线免费黄网站 | 天堂av在线免费 | 97视频在线免费 | www.狠狠插.com | 亚洲精品久久在线 | 久久av网| 久久久久久久久久电影 | 国产免费亚洲 | 狠狠色综合欧美激情 | 国产美女精品人人做人人爽 | 国产免费不卡 | 91最新中文字幕 | 色www免费视频 | 亚洲第一av在线播放 | 国产一区 在线播放 | 免费美女av | 久热电影 | www.天天射 | 国产男女免费完整视频 | 久久66热这里只有精品 | 日韩精品专区 | 偷拍精品一区二区三区 | 一区二区三区www | www天天操 | 五月婷婷另类国产 | 国产精品免费久久 | 天天插狠狠干 | 日韩电影精品一区 | 日韩美在线观看 | 91精品在线麻豆 | av一级在线观看 | 九九久久国产 | av超碰在线观看 | 亚洲免费精品一区二区 | 日韩在线观看高清 | 久久久久久久久久久福利 | 激情xxxx | 日韩高清黄色 | 久久韩国免费视频 | 在线观看视频免费大全 | 草草草影院 | 五月天婷亚洲天综合网精品偷 | 亚洲春色成人 | 国内精品久久久精品电影院 | 91欧美视频网站 | 日韩欧美大片免费观看 | 日本视频高清 | 99久热| 国产三级精品三级在线观看 | 日韩理论在线视频 | 亚洲精品午夜一区人人爽 | 久久免费国产精品1 | 国产精品久久久久久久久久免费 | 九热在线 | 久久精品看 | 久久久亚洲电影 | 国产在线欧美日韩 | 97热在线观看 | 亚洲aaa级 | av在线免费播放网站 | 网址你懂的在线观看 | 成人久久久久 | 欧美性色综合网 | 国产精品精品国产色婷婷 | 麻豆传媒视频在线播放 | 日韩高清一区二区 | 久久天天躁 | www夜夜操| 久久精精品视频 | 欧美日韩中| 久久69av| 99精品免费久久久久久久久日本 | 国产精品 久久 | 国产精品女主播一区二区三区 | 午夜精品久久久久久久99婷婷 | 亚洲国产美女久久久久 | 成人福利在线观看 | 国产免费专区 | 91女子私密保健养生少妇 | 激情中文字幕 | 午夜私人影院 | 久久久人人人 | 美女黄久久 | 91精品免费在线视频 | 久久久久久高潮国产精品视 | 日本黄色免费电影网站 | 久久免费精品视频 | 国产中文 | 91九色蝌蚪| 天天插日日插 | 久久激情五月婷婷 | 成人在线视 | 国产群p视频 | 欧美一级日韩三级 | 久久婷婷一区二区三区 | 国产一级精品视频 | 天天干夜夜爱 | 正在播放日韩 | 日韩av成人 | 日韩欧美在线中文字幕 | 精品自拍网| 久久国内精品99久久6app | 黄色成品视频 | 国产香蕉97碰碰碰视频在线观看 | 国产群p视频 | 亚洲精品美女久久久久 | 97视频免费播放 | 日韩在线视频精品 | 高清不卡一区二区在线 | 国产精品国产自产拍高清av | 韩国av一区二区三区在线观看 | 91丨九色丨勾搭 | 欧美综合国产 | 日日操日日插 | 国产a视频免费观看 | 中文字幕亚洲精品在线观看 | 人人爱爱人人 | 成在线播放 | 国产精品av免费在线观看 | 免费看国产黄色 | 天天草综合网 | 国产一二三四在线观看视频 | 国产一区在线精品 | 亚洲精品tv久久久久久久久久 | 日韩二区三区在线 | 亚洲一区美女视频在线观看免费 | 国产伦理久久精品久久久久_ | 久久综合狠狠综合久久狠狠色综合 | 丁香五月缴情综合网 | 在线91av| 成人av影视观看 | 99re国产 | 天天操天天射天天插 | 三级黄在线| 激情综合五月婷婷 | 午夜精品一区二区三区可下载 | 久久99精品国产一区二区三区 | 日韩激情片在线观看 | 在线电影a | 久久久午夜精品理论片中文字幕 | 国产精品免费在线播放 | 国产日韩视频在线播放 | 国产高清在线免费观看 | 欧美日韩三级在线观看 | 在线国产99| 99r在线视频 | 8x8x在线观看视频 | 91在线公开视频 | 久草精品在线播放 | 久久精品1区 | 中文字幕av专区 | 欧美一区二区精品在线 | 日本黄色免费看 | 婷婷亚洲五月 | 九九九九精品 | 国产裸体永久免费视频网站 | 涩涩网站在线 | 日韩av电影免费观看 | 91av蜜桃| 亚洲日本国产 | 亚洲一区动漫 | 久久激情视频网 | 国产 日韩 欧美 自拍 | 亚洲va欧美 | 欧美一级片免费播放 | 97香蕉久久超级碰碰高清版 | aaa免费毛片 | 日日操天天射 | 亚洲国产精彩中文乱码av | 国产特级毛片aaaaaaa高清 | 黄色片网站免费 | 麻豆 free xxxx movies hd | 国产精品系列在线观看 | 免费精品久久久 | 黄色av免费在线 | 国产男女无遮挡猛进猛出在线观看 | 欧美成人aa | 成人性生活大片 | 免费在线h | 久久国内精品视频 | 日韩在线观看视频在线 | 国产高清在线永久 | 中文字幕丝袜制服 | 蜜臀av在线一区二区三区 | 一区二区三区观看 | 天天干天天射天天操 | 亚洲高清在线 | 国产91勾搭技师精品 | av片子在线观看 | 国产精品午夜免费福利视频 | 国产精品久久久久久久午夜 | 日韩一区视频在线 | 国产成人精品日本亚洲999 | 九九视频免费在线观看 | 国产精品久久久久久久久久免费 | 欧美另类美少妇69xxxx | 91视频在线网址 | 国产婷婷精品av在线 | 色噜噜色噜噜 | 久久午夜免费观看 | 日韩av手机在线看 | 在线播放91 | 91av美女| 中文字幕在线观看网站 | 超碰在线色 | 一区二区三区精品久久久 | 亚洲婷婷综合色高清在线 | 麻豆一区在线观看 | 久久精品亚洲国产 | 91最新在线 | 五月婷婷综合色拍 | 久久久久久久久亚洲精品 | 久在线观看视频 | av高清网站在线观看 | 黄色小说18 | 久久久免费看视频 | 综合精品在线 | 亚洲精品国产精品99久久 | 精品久久久久免费极品大片 | 欧美一区二区精品在线 | 蜜臀久久99精品久久久久久网站 | 天海翼一区二区三区免费 | 久久综合久久综合这里只有精品 | 91伊人久久大香线蕉蜜芽人口 | 黄色毛片电影 | 六月色婷婷 | 五月婷婷伊人网 | 国产精品99久久久久久小说 | 91精品区 | 国产精品久99 | 黄色1级大片| 久久在线精品视频 | 精品久久久久久综合日本 | 日韩欧美在线综合网 | 欧美日本三级 | www.99久久.com | 看av免费 | 国产精品av免费在线观看 | 国产精品久久久久三级 | 精品理论片 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 麻豆久久 | 亚洲国产av精品毛片鲁大师 | 国产精品久久久久久久久久ktv | 五月婷社区 | 国产一二三四在线视频 | 国产精品一区二区中文字幕 | 久久香蕉国产精品麻豆粉嫩av | 免费在线观看不卡av | 超薄丝袜一二三区 | 国产精品去看片 | 国产福利91精品张津瑜 | www.五月天 | 精品爱爱 | 久久久久久久久久久久久久av | 国产 日韩 在线 亚洲 字幕 中文 | 麻豆视频成人 | 亚洲国产成人久久 | 国内久久久 | 国产精品嫩草69影院 | 午夜av电影院 | 国产精品欧美久久久久无广告 | 久久国产精品免费一区二区三区 | 91在线播 | 在线观看中文字幕2021 | 国产午夜精品理论片在线 | 国产乱码精品一区二区三区介绍 | 爱干视频 | 天堂在线一区二区三区 | 91网页版免费观看 | 久久久久久久久久久久久久av | 国产成人久久av977小说 | 国产欧美三级 | 黄色天堂在线观看 | 国产精品自拍av | 国产在线p | 色成人亚洲网 | 91看片麻豆| 欧美成年黄网站色视频 | 欧美一区二区三区激情视频 | 伊人成人久久 | 欧美激情另类文学 | 国产精品不卡 | www.eeuss影院av撸 | 四虎www| 国产资源av | 国语久久 | 日韩亚洲在线 | 四虎影视精品永久在线观看 | 顶级欧美色妇4khd | 五月婷在线播放 | 人人干人人超 | 免费日韩 精品中文字幕视频在线 | 国产亚洲精品久久19p | 久青草影院| 天天色中文 | 西西www444 | 久久免费观看视频 | 国产精品久免费的黄网站 | 夜色.com| 国产精品99精品 | 天天干天天草天天爽 | 久草网视频在线观看 | 亚洲经典中文字幕 | 欧洲精品二区 | 成人免费观看a | 香蕉视频网站在线观看 | 99精品黄色片免费大全 | 黄色aaa毛片 | 免费久久久久久 | 三级性生活视频 | 人操人| 久久艹久久 | www·22com天天操| www在线观看视频 | 久久综合影音 | 久久国语露脸国产精品电影 | 久久久久久影视 | 99久久99久久精品国产片 | 国产精品第二十页 | 亚洲一区日韩精品 | 成人a免费视频 | 日韩大片在线观看 | 久草在线久草在线2 | 久久精品视频中文字幕 | 欧美日韩p片 | 精品影院| 国产美女久久 | 福利电影一区二区 | 精品国产午夜 | 亚洲黄色在线免费观看 | 91夜夜夜| 91丨精品丨蝌蚪丨白丝jk | 麻豆小视频在线观看 | 天天干人人 | 色av男人的天堂免费在线 | 国产精品久久嫩一区二区免费 | 欧美a级在线播放 | 91九色精品女同系列 | 97超碰精品 | 正在播放一区二区 | 国产一区二区免费看 | av黄色av| 日韩在线电影一区二区 | 五月天中文字幕 | 人人干97| 综合久久2023 | 国产在线观看91 | 久久免费黄色大片 | 中文字幕在线观看一区 | 青草视频网 | 99国内精品 | 一级片视频在线 | japanese黑人亚洲人4k | 中文永久免费观看 | 日本aa在线 | 久久久久99999 | 成人国产亚洲 | 日韩极品在线 | 99色网站| 国产美女免费看 | 黄色一区二区在线观看 | 人人干人人模 | 特黄免费av | 中文字幕在线观看免费高清电影 | 亚洲精品一区中文字幕乱码 | 免费人人干 | 婷婷色伊人 | 国产精品1区| 久草视频在线播放 | 色综合色综合久久综合频道88 | 欧美一区二区三区四区夜夜大片 | 久久久久久久久久久影视 | 91视频最新网址 | 超碰97在线看 | 成人黄色小说网 | 最近中文字幕大全 | 一区二区三区 中文字幕 | 在线观看久草 | 精品欧美乱码久久久久久 | 探花视频在线版播放免费观看 | 午夜视频导航 | 国产在线观看a | 最近字幕在线观看第一季 | 日韩一级网站 | 日本性生活一级片 | 成人一区二区三区在线观看 | 亚洲精品视频免费在线观看 | 国产日韩欧美自拍 | 欧美最爽乱淫视频播放 | 激情网色 | 亚洲丝袜一区 | 欧美精品乱码久久久久久 | 国产青草视频在线观看 | 国产资源网 | 国产看片 色 | 国产九色在线播放九色 | av黄网站 | 97国产情侣爱久久免费观看 | 九九九热精品免费视频观看网站 | 97精品伊人 | 国产精品久久久久久久妇 | 国产精品一区二区美女视频免费看 | 中文字幕91 | 久久久久久久久久久久久9999 | 欧美日韩另类在线 | 最新av在线播放 | 久草久热 | av成人免费观看 | 久久精品视 | 天天干人人干 | 8x成人在线| 在线99视频 | 国产一级视频在线 | 成人影片在线播放 | 在线三级av| 精精国产xxxx视频在线播放 | 在线播放你懂 | 免费国产黄线在线观看视频 | 日韩av在线网站 | 99久久精品免费看国产一区二区三区 | 91精品国自产拍天天拍 | 欧美日韩一区二区免费在线观看 | 在线国产片| 久久视频在线观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 欧美日产一区 | 日韩欧美在线一区二区 | 欧美激情综合五月色丁香 | 亚洲午夜精品在线观看 | av色综合网| 国产爽视频 | 久久久久久看片 | 综合久久久久久久久 | www.久草视频 | 中文字幕在线观看亚洲 | 六月丁香婷婷久久 | 亚洲一级黄色av | 亚洲国产欧美一区二区三区丁香婷 | 国产精品一区二区三区免费看 | 色多多视频在线观看 | 超碰在线日本 | 国产视频久久久 | 国产在线1区 | 国产精品对白一区二区三区 | 国产xvideos免费视频播放 | 91传媒91久久久 | 黄色在线观看网站 | 久久久国产一区 | 欧美一级黄色片 | 亚洲在线视频播放 | 一本大道久久精品懂色aⅴ 五月婷社区 | 99精品在线 | 精品在线观看一区二区三区 | 在线黄色国产 | 91亚洲精 | 日日碰狠狠躁久久躁综合网 | 亚洲国产综合在线 | 日韩中文字幕在线观看 | 亚洲精品美女久久久 | 国产成人亚洲在线观看 | 亚洲视频www | 国产资源av | 九九久 | 97福利在线观看 | 嫩嫩影院理论片 | 亚洲高清在线视频 | 91桃色视频 | 九色视频自拍 | 成年人app网址 | 99热都是精品 | 在线国产一区二区 | 国产精品黄色影片导航在线观看 | 日本视频高清 | 久久久精品国产免费观看一区二区 | 2019中文在线观看 | 五月天六月色 | 国产成人综合在线观看 | 久久久久日本精品一区二区三区 | 日本少妇高清做爰视频 | 黄色视屏在线免费观看 | 综合婷婷丁香 | 精品一区二区在线播放 | 视频成人永久免费视频 | 在线观看视频一区二区三区 | 韩国视频一区二区三区 | 久久影院午夜论 | 国产专区在线看 | 欧美日韩精品在线视频 | 亚洲黄色影院 | www.99热精品 | 少妇bbbb搡bbbb搡bbbb | 久久久久久久久久久久电影 | 高清色免费 | 中文字幕丝袜美腿 | 国产最新精品视频 | 国产一区二区三区免费在线观看 | 中文字幕日韩伦理 | 伊人婷婷激情 | 国产一级免费视频 | 久草国产视频 | 国产精品久久久久久麻豆一区 | 99视频免费 | 婷婷激情5月天 | 国产亚洲婷婷免费 | 91爱爱电影 | 在线观看国产永久免费视频 | 国产在线精品观看 | 久久精品99久久 | 日韩电影中文字幕 | 日本xxxxav | 丁香花中文字幕 | 色999精品 | 特片网久久 | 丁香电影小说免费视频观看 | 97在线免费观看视频 | 免费看污片 | 性日韩欧美在线视频 | 人人澡人人草 | 欧美一区中文字幕 | 福利视频网址 | 久久久精品 一区二区三区 国产99视频在线观看 | 色婷婷激情五月 | 97在线观看免费高清完整版在线观看 | 欧美色图狠狠干 | 五月综合网站 | 久久久电影网站 | 麻豆视频91 | 在线黄色毛片 | 91精品国自产在线观看 | 久久精品网址 | 日韩高清在线看 | 成人a级网站 | 国产精品久久 | 欧美午夜寂寞影院 | 五月天综合婷婷 | 人人干免费 | 久久久久久久久免费视频 | 九九热中文字幕 | 狠狠操天天射 | av免费网| 视频国产精品 | 色综合人人 | 亚洲香蕉视频 | 国产精品黑丝在线观看 | 日韩一区二区三区在线观看 | 婷婷深爱五月 | 97国产视频 | 天天色天天操天天爽 | 97精品国产97久久久久久春色 | 久久99亚洲精品久久 | 在线视频国产区 | 久久99热这里只有精品 | 国产色视频网站 | 久久福利影视 | 国产精品欧美一区二区 | 99热手机在线 | 精品国产一区二区三区不卡 | 五月婷网站| 色婷婷狠狠五月综合天色拍 | 国内精品久久久久久久久久久 | 婷婷六月丁| 在线观看亚洲专区 | 日韩欧美电影在线观看 | 成人理论电影 | 在线一二三四区 | 黄色大全免费网站 | 日韩在线激情 | 日韩精品中文字幕在线不卡尤物 | 国产无套视频 | 国产在线欧美日韩 | 91视频中文字幕 | 狠狠狠色丁香婷婷综合久久五月 | 久久久精品日本 | 337p欧美| 在线观看日韩精品视频 | 国产精品久久久久国产精品日日 | 久久久精品国产免费观看同学 | 国产精品免费视频一区二区 | 一区二区三区国产欧美 | 国产一卡二卡四卡国 | 在线免费观看黄色av | 久久精品1区2区 | 奇米影视777四色米奇影院 | 国产一区在线看 | av三区在线 | 国产一区二区中文字幕 | 国产精品欧美久久久久天天影视 | 在线免费观看黄色小说 | 免费色视频网站 | 在线播放一区二区三区 | 五月的婷婷 | 国产在线免费 | 不卡的av在线播放 | 欧美日韩视频在线一区 | 久久久精品99 | 天天干夜夜爱 | 91精品久久久久久久久久久久久 | 在线观看色视频 | 激情视频在线观看网址 | 97精品久久人人爽人人爽 | 久久6精品 | 国产欧美三级 | 在线观看视频你懂的 | 午夜av日韩 | 成人教育av | 国产精品剧情在线亚洲 | 亚洲日本黄色 | 国产精品综合av一区二区国产馆 | 亚洲va欧美va国产va黑人 | 亚洲精品免费在线观看视频 | 成人av片在线观看 | 久久久久久久免费看 | 高清一区二区三区 | 国产在线永久 | 人人插人人舔 | 亚洲国产日韩av | 国产精品18久久久久久久久久久久 | 亚洲国产精品资源 | 国产一区二区三区 在线 | www久草| 婷婷五天天在线视频 | 天天做天天爱天天综合网 | 免费手机黄色网址 | 欧美成人性网 | av色网站 | 丰满少妇对白在线偷拍 | 日韩欧美视频在线播放 | 黄色网免费| 国产一区国产精品 | 国产在线观看xxx | 中文字幕在线字幕中文 | 激情五月播播久久久精品 | 国产精品日韩在线 | 国产精品99久久久久 | 青草视频网 | 色99久久 | 麻豆视频在线免费看 | 午夜久久久精品 | 狠狠色噜噜狠狠 | 婷婷九月激情 | 亚洲资源| 在线观看视频中文字幕 | 天天插狠狠干 | 国产精品成人一区二区 | 97精品国产97久久久久久春色 | 天天干夜夜想 | 97看片吧 | 精品欧美一区二区精品久久 | av电影 一区二区 | 五月婷久久 | 四虎成人精品在永久免费 | 亚洲精品美女在线观看播放 | 狠狠色伊人亚洲综合网站野外 | 成人av片免费看 | 91精品国产成人www | 国产高清在线一区 | 天天曰天天曰 | 国产精品高潮呻吟久久av无 | 国产香蕉97碰碰碰视频在线观看 | 色婷婷亚洲精品 | 久久免费看a级毛毛片 | 日韩精品字幕 | 四虎国产精品成人免费4hu | 国产视频一区二区在线播放 | 六月天综合网 | av观看免费在线 | 91成人久久 | 91.dizhi永久地址最新 | 成人av电影免费在线播放 | 国产区 在线 | 亚洲经典视频在线观看 | 欧美激情第28页 | av888av.com | 日日操网| 免费看黄在线网站 | 国产免费黄视频在线观看 | 99久久久免费视频 | av在线免费在线观看 | 日日干天天 | 欧美视频在线二区 | 91在线看黄 | 夜夜操天天 | 国产玖玖精品视频 | 成人免费共享视频 | 91福利区一区二区三区 | 亚洲伦理一区 | 国产一级视频在线观看 | 天天草天天干天天 | 国产精品欧美久久久久久 | 国产精品美女毛片真酒店 | 亚洲伦理中文字幕 | 亚洲欧美日韩精品久久久 | 国产精品第一页在线 | 爱av在线网 | 国产一级91 | 亚洲精品免费在线 | 四虎在线观看精品视频 | 婷婷色亚洲 | 天天色天天干天天色 | 国产不卡视频在线 | 久久99久久99精品免视看婷婷 | 激情久久伊人 | 人人爽人人爽人人爽学生一级 | 成人免费视频a | 激情五月在线 | 香蕉网在线 | 日韩中文字幕91 | 91成版人在线观看入口 | 国产热re99久久6国产精品 | 91九色蝌蚪在线 | 亚洲精品黄网站 | 91在线免费播放 | 99精品在这里 | 在线看片视频 | 在线视频99 | 免费看精品久久片 | 青青色影院 | 日韩精品免费在线观看 |