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

歡迎訪問 生活随笔!

生活随笔

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

Android

脱了马甲我也认识你: 聊聊 Android 中类的真实形态

發布時間:2023/12/15 Android 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 脱了马甲我也认识你: 聊聊 Android 中类的真实形态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是 ZY 第 19 篇原創技術文章

我們在平時開發過程中,一定定義過無數個千奇百怪的類,但是大家有想過,一個 Java 文件中的 Class,在虛擬機中的真實形態是什么么?

這篇文章就帶大家探討一下在 Android ART 里,類的真實形態,以及類加載的過程

本文基于 ART-8.0.0_r1 分支代碼進行分析

預備知識

  • 了解 Java 基本開發
  • 了解 ClassLoader 基本使用
  • 看完本文可以達到什么程度

  • 了解 Android ART 中類的存在形式
  • 了解 Android ART 中類加載的過程
  • 閱讀前準備工作

  • 下載 ART 源碼 作為參照
  • 文章概覽

    一、在 Java 中如何定義一個類

    對于如何在 Java 代碼中定義一個類,我們一定非常熟悉了,代碼如下:

    class MInterface {void imethod() {} }class Parent { }class Child extends Parent implements MInterface { } 復制代碼

    二、ART 中如何表示一個 Java 類

    那么對于一個 Java 類,在 ART 中是如何表示的呢?
    在 ART 中,也定義了一個 Class 類,用來表示 Java 世界中的類。
    當然,這個類是 c++ 定義的,畢竟 ART 就是 c++ 實現的。???

    下面這張圖展示了 ART 中類的重要部分。

    下面我們就看看這個 Class 的具體定義:

    2.1 類的定義

    // C++ mirror of java.lang.Class class MANAGED Class FINAL : public Object {private:// 指向定義 Class 的 ClassLoader,如果為 null,說明是 bootstrap system loaderHeapReference<ClassLoader> class_loader_;// 對于數組類型有用,保存了數組的原始類型,比如 對于 String[],這里指向的是 String// 對非數組類型,值為 nullHeapReference<Class> component_type_;// 指向 DexCache,如果是運行時生成的 Class,值為 nullHeapReference<DexCache> dex_cache_;HeapReference<ClassExt> ext_data_;// interface table,接口方法表,IfTable 中保存了接口類指針和方法表指針HeapReference<IfTable> iftable_;// Descriptor for the class such as "java.lang.Class" or "[C". Lazily initialized by ComputeName// 類描述符 eg: java.lang.Class 或者 [CHeapReference<String> name_;// 父類,如果是 java.lang.Object 值為 nullHeapReference<Class> super_class_;// 虛方法表,"invoke-virtual" 指令會用到,用來保存父類虛方法以及自身虛方法HeapReference<PointerArray> vtable_;// 保存類屬性,只保存自身屬性uint64_t ifields_;// 指向 ArtMethod 數組,保存了所有的方法,包括私有方法,靜態方法,final 方法,虛方法和繼承的方法uint64_t methods_;// 保存靜態屬性uint64_t sfields_;// 訪問修飾符uint32_t access_flags_;uint32_t class_flags_;// 類實例大小,GC 時使用uint32_t class_size_;// 線程 id,類加載時加鎖使用pid_t clinit_thread_id_;// ClassDex 在 DEX 文件中的 indexint32_t dex_class_def_idx_;// DEX 文件中的類型 idint32_t dex_type_idx_;// 實例屬性數量uint32_t num_reference_instance_fields_;// 靜態變量數量uint32_t num_reference_static_fields_;// 對象大小,GC 時使用uint32_t object_size_;uint32_t object_size_alloc_fast_path_;uint32_t primitive_type_;// ifields 的偏移量uint32_t reference_instance_offsets_;// 類初始化狀態Status status_;// methods_ 中第一個從接口中復制的虛方法的偏移uint16_t copied_methods_offset_;// methods_ 中第一個自身定義的虛方法的偏移uint16_t virtual_methods_offset_;// java.lang.Classstatic GcRoot<Class> java_lang_Class_; }; 復制代碼

    上面的類就是 Java 類在 ART 中的真實形態,各個屬性在上面做了注釋。
    這里對幾個比較重要的屬性再做一下解釋。

    和 Java 類方法有關的兩個屬性是 iftable_,vtable_ 和 methods_。
    其中 iftable_ 保存的是接口中的方法,vtable_ 保存的是虛方法,methods_ 保存的是所有方法。
    什么是虛方法呢?虛方法其實是 C++ 中的概念,在 C++ 中,被 virtual 關鍵字修飾的方法就是虛方法。
    而在 Java 中,我們可以理解為所有子類復寫的方法都是虛方法。

    和 Java 類屬性有關的兩個屬性是 ifields_ 和 sfields_。分別保存的是類的實例屬性和靜態屬性。

    從上面的我們可以看到,Java 類的屬性就都保存在 ART 中定義的 Class 里了。
    其中方法最終會指向 ArtMethod 實例上,屬性,最終會指向 ArtField 實例上。

    2.2 類方法的定義

    在 ART 中,一個 Java 的類方法是用 ArtMethod 實例來表示的。
    ArtMethod 結構如下:

    class ArtMethod FINAL {protected:// 定義此方法的類GcRoot<mirror::Class> declaring_class_;// 訪問修飾符std::atomic<std::uint32_t> access_flags_;// 方法 code 在 dex 中的偏移uint32_t dex_code_item_offset_;// 方法在 dex 中的 indexuint32_t dex_method_index_;// 方法 index,對于虛方法,指的是 vtable 中的 index,對于接口方法,指的是 ifTable 中的 indexuint16_t method_index_;// 方法的熱度計數,Jit 會根據此變量決定是否將方法進行編譯uint16_t hotness_count_;struct PtrSizedFields {ArtMethod** dex_cache_resolved_methods_;void* data_;// 方法的入口void* entry_point_from_quick_compiled_code_;} ptr_sized_fields_; } 復制代碼

    2.3 類屬性的定義

    在 ART 中,一個 Java 類屬性是用 ArtField 實例來表示的。
    ArtField 結構如下:

    class ArtField FINAL {private:// 定義此屬性的類GcRoot<mirror::Class> declaring_class_;// 訪問修飾符uint32_t access_flags_ = 0;// 變量在 dex 中的 iduint32_t field_dex_idx_ = 0;// 此變量在類或者類實例中的偏移uint32_t offset_ = 0; } 復制代碼

    三、ART 中加載類的過程

    3.1 類加載的本質

    在 Java 中定義好一個類之后,還需要通過 ClassLoader 進行加載。
    我們經常會說到類加載,但是類加載的本質是什么呢?
    在我們上面了解了一個 Java 類在 ART 中的真實形態以后,我們就比較容易理解類加載的本質了。
    我們都知道,Java 文件編譯完成的產物是 .class 文件,在 Android 中是 .dex 文件,類加載的本質就是解析 .class / .dex 文件,并根據對應的信息生成 ArtField,ArtMethod,最后生成 Class 實例。
    再簡單點來說,類加載的本質就是根據 .dex 文件內容創建 Class 實例。

    3.2 ART 中類加載的入口 -- ClassLinker#DefineClass

    在 Android 中,常見的兩個 ClassLoader 就是 PathClassLoader 和 DexClassLoader,都是繼承了 BaseDexClassLoader,我們就從 BaseDexClassLoader#findClass 開始看一下整個加載的流程。

    // BaseDexClassLoader#findClass protected Class<?> findClass(String name) throws ClassNotFoundException {List<Throwable> suppressedExceptions = new ArrayList<Throwable>();Class c = pathList.findClass(name, suppressedExceptions);// ...return c; } // DexPathList#findClass public Class<?> findClass(String name, List<Throwable> suppressed) {for (Element element : dexElements) {Class<?> clazz = element.findClass(name, definingContext, suppressed);if (clazz != null) {return clazz;}}// ...return null; } // Element#findCLass public Class<?> findClass(String name, ClassLoader definingContext,List<Throwable> suppressed) {return dexFile != null ? dexFile.loadClassBinaryName(name, definingContext, suppressed): null; } 復制代碼

    從上面的代碼來看,BaseDexClassLoader#findClass 一路調用,調用到 DexFile#loadClassBinaryName,我們再繼續往下看。

    // DexFile public Class loadClassBinaryName(String name, ClassLoader loader, List<Throwable> suppressed) {return defineClass(name, loader, mCookie, this, suppressed); }private static Class defineClass(String name, ClassLoader loader, Object cookie,DexFile dexFile, List<Throwable> suppressed) {Class result = null;try {result = defineClassNative(name, loader, cookie, dexFile);} catch (NoClassDefFoundError e) {if (suppressed != null) {suppressed.add(e);}} catch (ClassNotFoundException e) {if (suppressed != null) {suppressed.add(e);}}return result; } 復制代碼

    在 DexFile 里,最終調用到 defineClassNative 方法去加載 Class,對應到 JNI 中的方法是 DexFile_defineClassNative,位于 runtime/native/dalvik_system_DexFile.cc 文件中。

    static jclass DexFile_defineClassNative(JNIEnv* env,jclass,jstring javaName,jobject javaLoader,jobject cookie,jobject dexFile) {// 調用for (auto& dex_file : dex_files) {ObjPtr<mirror::Class> result = class_linker->DefineClass(soa.Self(),descriptor.c_str(),hash,class_loader,*dex_file,*dex_class_def);} } 復制代碼

    而在 defineClassNative 中,又是調用 ClassLinker#DefineClass 去加載類的。
    所以我們可以說,ClassLinker#DefineClass 就是 ART 中類加載的入口。
    入口已經出現,我們就進去探索一番,看看類加載的時候,是如何創建 Class 實例的~

    DefineClass 本身代碼比較多,我們這里把代碼簡化一下,看其主要流程。

    mirror::Class* ClassLinker::DefineClass(Thread* self,const char* descriptor,size_t hash,Handle<mirror::ClassLoader> class_loader,const DexFile& dex_file,const DexFile::ClassDef& dex_class_def) {auto klass = hs.NewHandle<mirror::Class>(nullptr);// 一些常用的,并且類大小可以確定的,會提前構造好對應的 Class,所以這里直接使用if (UNLIKELY(!init_done_)) {// finish up init of hand crafted class_roots_if (strcmp(descriptor, "Ljava/lang/Object;") == 0) {klass.Assign(GetClassRoot(kJavaLangObject));} else if (strcmp(descriptor, "Ljava/lang/Class;") == 0) {klass.Assign(GetClassRoot(kJavaLangClass));} else if (strcmp(descriptor, "Ljava/lang/String;") == 0) {klass.Assign(GetClassRoot(kJavaLangString));} else if (strcmp(descriptor, "Ljava/lang/ref/Reference;") == 0) {klass.Assign(GetClassRoot(kJavaLangRefReference));} else if (strcmp(descriptor, "Ljava/lang/DexCache;") == 0) {klass.Assign(GetClassRoot(kJavaLangDexCache));} else if (strcmp(descriptor, "Ldalvik/system/ClassExt;") == 0) {klass.Assign(GetClassRoot(kDalvikSystemClassExt));}}if (klass == nullptr) {// 創建其他類實例klass.Assign(AllocClass(self, SizeOfClassWithoutEmbeddedTables(dex_file, dex_class_def)));}// 設置對應的 DEX 緩存klass->SetDexCache(dex_cache);// 設置 Class 的一些屬性,包括 ClassLoader,訪問修飾符,Class 在 DEX 中對應的 index 等等SetupClass(*new_dex_file, *new_class_def, klass, class_loader.Get());// 把 Class 插入 ClassLoader 的 class_table 中做一個緩存ObjPtr<mirror::Class> existing = InsertClass(descriptor, klass.Get(), hash);// 加載類屬性LoadClass(self, *new_dex_file, *new_class_def, klass);// 加載父類if (!LoadSuperAndInterfaces(klass, *new_dex_file)) {// 加載失敗的處理}if (!LinkClass(self, descriptor, klass, interfaces, &h_new_class)) {// 連接失敗的處理}// ...return h_new_class.Get(); } 復制代碼

    從上面 DefineClass 的代碼里我們可以看到,加載分為幾個步驟:

  • 創建類實例
  • 設置 Class 訪問修飾符,ClassLoader 等一些屬性
  • 加載類成員 LoadClass
  • 加載父類和接口 LoadSuperAndInterfaces
  • 連接 LinkClass
  • 下面我們主要看下后面加載類成員,加載父類,連接這三個步驟。

    3.3 加載類成員 -- LoadClass

    加載類成員這一過程,主要有下面幾個步驟:

  • 加載靜態變量
  • 加載實例變量
  • 加載方法,分為虛方法和非虛方法 由于這里代碼比較長,我們分段來看。
  • 3.3.1 加載靜態變量
    // class_linker.cc void ClassLinker::LoadClassMembers(Thread* self,const DexFile& dex_file,const uint8_t* class_data,Handle<mirror::Class> klass) {{// Load static fields.// 獲取 DEX 文件中的變量迭代器ClassDataItemIterator it(dex_file, class_data);LengthPrefixedArray<ArtField>* sfields = AllocArtFieldArray(self,allocator,it.NumStaticFields());// ...// 遍歷靜態變量for (; it.HasNextStaticField(); it.Next()) {// ...LoadField(it, klass, &sfields->At(num_sfields));}// ...klass->SetSFieldsPtr(sfields);} }// 加載變量,設置變量 Class 以及訪問修飾符 void ClassLinker::LoadField(const ClassDataItemIterator& it,Handle<mirror::Class> klass,ArtField* dst) {const uint32_t field_idx = it.GetMemberIndex();dst->SetDexFieldIndex(field_idx);dst->SetDeclaringClass(klass.Get());dst->SetAccessFlags(it.GetFieldAccessFlags()); } 復制代碼

    加載靜態變量時,取出 DEX 文件中對應的 Class 數據,遍歷其中的靜態變量,設置給 Class#sfield_ 變量。

    3.3.2 加載實例變量

    加載實例變量和加載靜態變量是類似的,這里不做過多的解讀了。

    void ClassLinker::LoadClassMembers(Thread* self,const DexFile& dex_file,const uint8_t* class_data,Handle<mirror::Class> klass) {{// Load instance fields.LengthPrefixedArray<ArtField>* ifields = AllocArtFieldArray(self,allocator,it.NumInstanceFields());for (; it.HasNextInstanceField(); it.Next()) {LoadField(it, klass, &ifields->At(num_ifields));}// ...klass->SetIFieldsPtr(ifields);} } 復制代碼
    3.3.3 加載方法
    void ClassLinker::LoadClassMembers(Thread* self,const DexFile& dex_file,const uint8_t* class_data,Handle<mirror::Class> klass) {{for (size_t i = 0; it.HasNextDirectMethod(); i++, it.Next()) {ArtMethod* method = klass->GetDirectMethodUnchecked(i, image_pointer_size_);LoadMethod(dex_file, it, klass, method);LinkCode(this, method, oat_class_ptr, class_def_method_index);// ...}for (size_t i = 0; it.HasNextVirtualMethod(); i++, it.Next()) {ArtMethod* method = klass->GetVirtualMethodUnchecked(i, image_pointer_size_);LoadMethod(dex_file, it, klass, method);LinkCode(this, method, oat_class_ptr, class_def_method_index);// ...}} } 復制代碼

    加載方法時分為兩個步驟,LoadMethod 和 LinkCode。

    void ClassLinker::LoadMethod(const DexFile& dex_file,const ClassDataItemIterator& it,Handle<mirror::Class> klass,ArtMethod* dst) {// ...dst->SetDexMethodIndex(dex_method_idx);dst->SetDeclaringClass(klass.Get());dst->SetCodeItemOffset(it.GetMethodCodeItemOffset());dst->SetDexCacheResolvedMethods(klass->GetDexCache()->GetResolvedMethods(), image_pointer_size_);uint32_t access_flags = it.GetMethodAccessFlags();// ...dst->SetAccessFlags(access_flags); } 復制代碼

    LoadMethod 主要是給 ArtMethod 設置訪問修飾符等屬性。

    LinkCode 這一步驟,可以理解為是給 ArtMethod 設置方法入口,即從其他方法如何跳轉到此方法進行執行。這里也分為了幾種情況:

  • 如果此方法已經通過 OAT 編譯成了本地機器指令,那么這里會將入口設置為跳轉到本地機器指令執行
  • 如果是靜態方法,設置跳板方法,此時不會具體指定方法如何執行,后面會在 ClassLinker::InitializeClass 里被 ClassLinker::FixupStaticTrampolines 替換掉
  • 如果是 Native 方法,入口設置為跳轉到 JNI 動態連接的方法中
  • 如果是解釋模式,入口設置為跳轉到解釋器中
  • static void LinkCode(ClassLinker* class_linker,ArtMethod* method,const OatFile::OatClass* oat_class,uint32_t class_def_method_index) REQUIRES_SHARED(Locks::mutator_lock_) {if (oat_class != nullptr) {// 判斷方法是否已經被 OAT const OatFile::OatMethod oat_method = oat_class->GetOatMethod(class_def_method_index);oat_method.LinkMethod(method);}// Install entry point from interpreter.const void* quick_code = method->GetEntryPointFromQuickCompiledCode();bool enter_interpreter = class_linker->ShouldUseInterpreterEntrypoint(method, quick_code);if (method->IsStatic() && !method->IsConstructor()) {// 對于靜態方法,后面會在 ClassLinker::InitializeClass 里被 ClassLinker::FixupStaticTrampolines 替換掉method->SetEntryPointFromQuickCompiledCode(GetQuickResolutionStub());} else if (quick_code == nullptr && method->IsNative()) {// Native 方法跳轉到 JNImethod->SetEntryPointFromQuickCompiledCode(GetQuickGenericJniStub());} else if (enter_interpreter) {// 解釋模式,跳轉到解釋器method->SetEntryPointFromQuickCompiledCode(GetQuickToInterpreterBridge());}// ... } 復制代碼

    這就是解析方法的主要過程,關于方法的調用,其實還比較復雜,如果大家感興趣,后面可以再專門說說。

    3.4 加載父類和接口 -- LoadSuperAndInterfaces

    自身類成員加載完成后,就去加載父類。加載父類調用的是 LoadSuperAndInterfaces,主要代碼如下:

    bool ClassLinker::LoadSuperAndInterfaces(Handle<mirror::Class> klass, const DexFile& dex_file) {// 加載父類ObjPtr<mirror::Class> super_class = ResolveType(dex_file, super_class_idx, klass.Get());// 檢查父類可見性if (!klass->CanAccess(super_class)) {// ...}// 設置父類klass->SetSuperClass(super_class);// 加載接口const DexFile::TypeList* interfaces = dex_file.GetInterfacesList(class_def);for (size_t i = 0; i < interfaces->Size(); i++) {ObjPtr<mirror::Class> interface = ResolveType(dex_file, idx, klass.Get());// ...// 檢查接口可見性if (!klass->CanAccess(interface)) {}}// 此時說明類已經加載完畢了mirror::Class::SetStatus(klass, mirror::Class::kStatusLoaded, nullptr); } 復制代碼

    加載父類和接口都是通過 ResolveType 來的,ResolveType 中又是調用了 ClassLinker#FindClass -> ClassLinker#DefineClass 來的,于是加載父類的流程又回到了我們本小結開頭。
    就這樣遞歸加載下去,直到父類全部加載完成,也就標識著類自身也加載完成了。

    3.5 連接 -- LinkClass

    之后就是 LinkClass,這里步驟比較清晰,我們先看一下主要代碼:

    bool ClassLinker::LinkClass(Thread* self,const char* descriptor,Handle<mirror::Class> klass,Handle<mirror::ObjectArray<mirror::Class>> interfaces,MutableHandle<mirror::Class>* h_new_class_out) {if (!LinkSuperClass(klass)) {return false;}// ...if (!LinkMethods(self, klass, interfaces, &new_conflict, imt_data)) {return false;}if (!LinkInstanceFields(self, klass)) {return false;}size_t class_size;if (!LinkStaticFields(self, klass, &class_size)) {return false;}// ...return true; } 復制代碼

    從主要代碼中可以看到,主要有四個步驟:

  • LinkSuperClass
  • LinkMethods
  • LinkInstanceFields
  • LinkStaticFields
  • 3.5.1 LinkSuperClass

    這里主要是對父類權限做了一下檢查,包括是否是 final,是否對子類可見(父類為 public 或者同包名),以及繼承父類一些屬性(包括是否有 finalize?方法,ClassFlags 等等)。

    bool ClassLinker::LinkSuperClass(Handle<mirror::Class> klass) {ObjPtr<mirror::Class> super = klass->GetSuperClass();// // Verifyif (super->IsFinal() || super->IsInterface()) {}if (!klass->CanAccess(super)) {}if (super->IsFinalizable()) {klass->SetFinalizable();}if (super->IsClassLoaderClass()) {klass->SetClassLoaderClass();}uint32_t reference_flags = (super->GetClassFlags() & mirror::kClassFlagReference);klass->SetClassFlags(klass->GetClassFlags() | reference_flags);return true; } 復制代碼
    3.5.2 LinkMethods

    LinkMethods 主要做的事情是填充 vtable 和 itable。主要通過 SetupInterfaceLookupTable,LinkVirtualMethods,LinkInterfaceMethods 三個方法來進行的:

    bool ClassLinker::LinkMethods(Thread* self,Handle<mirror::Class> klass,Handle<mirror::ObjectArray<mirror::Class>> interfaces,bool* out_new_conflict,ArtMethod** out_imt) {// ...return SetupInterfaceLookupTable(self, klass, interfaces)&& LinkVirtualMethods(self, klass, /*out*/ &default_translations)&& LinkInterfaceMethods(self, klass, default_translations, out_new_conflict, out_imt); } 復制代碼

    SetupInterfaceLookupTable 用來填充 iftable_,就是上面說到保存接口的地方。iftable_ 對應的是 IfTable 類。IfTable 類結構如下:

    class MANAGED IfTable FINAL : public ObjectArray<Object> {enum {// Points to the interface class.kInterface = 0,// Method pointers into the vtable, allow fast map from interface method index to concrete// instance method.kMethodArray = 1,kMax = 2,}; } 復制代碼

    其中 kInterface 指向 Interface 的 Class 對象,kMethodArray 指向的是 vtable,通過此變量可以方便的找到接口方法的實現。

    LinkVirtualMethods 和 LinkInterfaceMethods 會填充 vtable_,這里具體的代碼很長,我們暫且不分析(這里具體流程對于理解本文主旨其實影響不大),有兩個重要的過程是:

  • 首先會拷貝父類的 vtable 到當前類的 vtable
  • 如果類中覆蓋了父類的抽象方法,就在 vtable 中替換掉父類的方法
  • 通過上面兩個過程,我們可以知道,vtable 中保存的就是真正方法的實現,也就是 Java 中多態的實現原理。

    3.5.3 LinkInstanceFields & LinkStaticFields

    這里的兩個方法最終都調用了 LinkFields?方法里做了兩件事情:

  • 為了對齊內存,對 fields 進行排序
  • 計算 Class 大小
  • 其中 fields 排序規則如下:
    引用類型 -> long (64-bit) -> double (64-bit) -> int (32-bit) -> float (32-bit) -> char (16-bit) -> short (16-bit) -> boolean (8-bit) -> byte (8-bit)

    總結

    通過上面的分析,我們知道了一個 Java 類在 Android ART 中的真實形態,也對 ART 中類加載的過程做了一些簡單的分析。
    其實在寫這篇文章的時候,里面有一些知識點也會有些疑問,如果大家有任何想法,歡迎討論~
    最后用文章開始的圖總結一下,回顧一下 ART 中類的全貌。

    參考資料

    www.zhihu.com/question/48…
    blog.csdn.net/guoguodaern…

    關于我

    ZYLAB 專注高質量原創,把代碼寫成詩

    歡迎關注下面賬號,獲取更新:
    微信搜索公眾號: ZYLAB
    Github
    知乎
    掘金

    總結

    以上是生活随笔為你收集整理的脱了马甲我也认识你: 聊聊 Android 中类的真实形态的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    五月婷婷深开心 | 四虎在线观看视频 | bbw av| av三级在线免费观看 | 欧美最猛性xxxx| 五月婷婷激情 | 美女免费视频观看网站 | 国产成人亚洲精品自产在线 | 免费视频区 | 国产精品麻豆99久久久久久 | 日韩精品一区二区三区水蜜桃 | 日韩中文字幕免费在线播放 | a√天堂资源 | 亚洲精品裸体 | 国产精品一区在线播放 | 999国内精品永久免费视频 | 国产中文字幕久久 | 亚洲最大av在线播放 | 久久国产电影院 | 精品福利国产 | 色在线最新| 国产一级黄色电影 | 毛片激情永久免费 | 99热手机在线 | 亚洲成av片人久久久 | 国产不卡毛片 | 精品国产三级 | 久久久国产精品一区二区三区 | 久久激情综合网 | 久久精品福利视频 | 国产成人精品av在线 | 日韩mv欧美mv国产精品 | 99久久精品免费看国产 | 黄色特级片 | 经典三级一区 | 亚洲精品国产精品国 | 日韩精品免费在线视频 | 激情五月婷婷综合网 | 国产69精品久久久久9999apgf | 91大神精品视频在线观看 | 91精品在线免费视频 | 午夜成人影视 | 精品一二三四五区 | 三级av小说| 性日韩欧美在线视频 | 免费a v视频 | 国产黄a三级三级 | www日韩精品 | 永久免费毛片 | 亚洲国产午夜 | 精品亚洲一区二区 | 亚洲黄色在线观看 | 国产永久免费高清在线观看视频 | 天天草天天干天天 | 国产区 在线| 国产字幕在线观看 | 网站在线观看日韩 | 午夜精品区 | 国内成人精品2018免费看 | 深夜视频久久 | 国产高清中文字幕 | 91精品国产91久久久久福利 | 国产又粗又硬又长又爽的视频 | 狠狠色婷婷丁香六月 | 久久综合九色综合欧美狠狠 | 国产高清小视频 | 欧美a级在线播放 | 国产字幕在线看 | 精品一区二区三区久久久 | www国产亚洲精品 | 日韩深夜在线观看 | 免费a一级 | 99re中文字幕 | 亚洲性xxxx | 99在线精品视频在线观看 | 在线观看av不卡 | 国产一区视频在线 | 久久久久久久久亚洲精品 | 国产精品免费av | 91在线播放综合 | 精品福利视频在线观看 | 久久久久久网站 | 丝袜制服综合网 | 国产免费一区二区三区网站免费 | 麻豆精品在线 | 国产九九九九九 | 国产在线91在线电影 | 国产在线a免费观看 | 精品国产精品国产偷麻豆 | 成人av免费在线观看 | 中文 一区二区 | 99视频久久 | 日韩在线观看免费 | 91精品久久久久久久99蜜桃 | 日韩视频免费看 | 国产玖玖在线 | 久草视频手机在线 | 久久中文精品视频 | 国产精品久久久久久久久久直播 | 伊人热| 国产精品18久久久久vr手机版特色 | 中文字幕在线观看视频一区二区三区 | 欧美性生活小视频 | 国产精品久久久久久电影 | 国产高清视频在线播放一区 | 超碰个人在线 | 成人一区二区三区在线 | 18av在线视频 | 91视频免费播放 | 久操综合| 欧美日韩视频在线观看免费 | japanese黑人亚洲人4k | 麻豆av电影 | 亚洲婷婷在线视频 | 亚洲精品在线视频播放 | 91精品国产成人 | 免费在线一区二区 | 精品国产一区二区三区四 | 国产 在线观看 | 91成人黄色 | 欧美analxxxx | 久久精品79国产精品 | 日批视频在线播放 | 日韩av在线网站 | 成人午夜精品 | 黄色av影院 | 不卡av电影在线观看 | 精品亚洲一区二区 | 亚洲老妇xxxxxx | 国产一区免费在线 | 国产一区网址 | 欧美另类重口 | 日夜夜精品视频 | 中文字幕日韩在线播放 | 超碰人人草| 五月婷婷六月综合 | 精品视频专区 | 国产一区在线视频观看 | 99久久精品久久久久久清纯 | 日日夜夜艹 | www久草| 免费看片日韩 | 狠狠综合久久av | 欧美黑人xxxx猛性大交 | 欧美激情在线网站 | 少妇性xxx| 亚洲免费av网站 | 黄色的视频 | 五月天九九 | 国产精品欧美久久久久三级 | 在线天堂日本 | 久久成人午夜视频 | 黄色午夜网站 | www.av免费观看 | 日日夜夜天天综合 | 香蕉视频免费在线播放 | 亚洲黄色免费在线 | 99视频在线免费看 | 久久久综合精品 | 91麻豆精品国产自产在线游戏 | 国产精品乱码一区二区视频 | 国产精品99久久久精品 | www最近高清中文国语在线观看 | 99久久99久久精品国产片 | 久草免费在线观看视频 | 天天色天天操综合 | 99re在线视频观看 | 国产日韩中文字幕在线 | www免费黄色| 九九视频在线播放 | 视频国产在线 | 草莓视频在线观看免费观看 | 日韩精品中文字幕在线播放 | 国产精久久久久久久 | 91在线精品播放 | 丁香六月天婷婷 | 天天色天 | 久久久免费高清视频 | 99免费在线视频 | 久久午夜精品视频 | 国产69精品久久久久99 | 日韩三级一区 | 丁香五月亚洲综合在线 | 亚洲免费专区 | 国产精品久久久久久久久久99 | 成人黄在线观看 | 激情欧美一区二区免费视频 | 中文在线字幕免 | 成人黄色在线看 | 伊人天天操 | 激情五月五月婷婷 | 亚洲免费av网站 | www.91国产 | 国产99久久精品一区二区300 | 一区二区视频在线观看免费 | 久99精品| 国产精品第一页在线观看 | 亚洲最大的av网站 | 91高清视频在线 | 日韩狠狠操 | av免费观看高清 | 久久免费视频这里只有精品 | 午夜色影院 | 日韩动态视频 | 九九av| 免费网站色 | 97免费在线观看视频 | 97精品国产一二三产区 | 国产高清 不卡 | 午夜视频在线观看一区二区三区 | 国产免费美女 | 久草视频中文 | 国产免费一区二区三区最新6 | 亚洲欧洲成人 | 国产女人免费看a级丨片 | 精品一区三区 | 亚洲色图av | 亚洲日本韩国一区二区 | 成人一级片视频 | 久久久久免费电影 | 九九免费观看视频 | 三级免费黄色 | 天天干天天干天天色 | 伊人天天操 | 91插插视频| 亚州av网站大全 | 国产精品系列在线观看 | 国产激情电影综合在线看 | 摸bbb搡bbb搡bbbb | 欧美巨大荫蒂茸毛毛人妖 | 黄色小网站免费看 | 天天躁日日 | 亚洲激情综合 | 99久热在线精品视频 | 一级黄色在线视频 | 国产亚洲va综合人人澡精品 | 日本大片免费观看在线 | 97自拍超碰 | 久久人人97超碰精品888 | 国产永久网站 | 96视频免费在线观看 | 国产成人在线网站 | 欧美资源在线观看 | 日韩欧美精品一区二区三区经典 | 亚洲乱亚洲乱妇 | 久久av影视| 色多视频在线观看 | 欧美日韩一级久久久久久免费看 | av成人亚洲 | 国模一区二区三区四区 | 国产精品久久久久国产精品日日 | 欧美在线观看视频一区二区三区 | 欧美日韩视频在线播放 | 激情综合狠狠 | 天天干婷婷 | 国产成人777777 | 成年人app网址 | 中日韩三级视频 | 亚洲精品麻豆 | 999国内精品永久免费视频 | 国产精品99久久久 | av成人动漫在线观看 | 日韩高清一二三区 | 欧女人精69xxxxxx | 亚洲影院国产 | 97超碰在线资源 | 中文字幕在线第一页 | 黄a网站| 激情小说久久 | 干av在线 | 国产一级视频在线观看 | 亚洲九九九在线观看 | 九色最新网址 | 91亚洲精品国偷拍 | 免费看成人a | 欧美精品久久久久久久久老牛影院 | 国产资源精品在线观看 | 精品一区二区综合 | 国内精品久久久久国产 | 国产精品女 | 狠狠色丁香婷综合久久 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 黄色福利网 | 欧美日韩一二三四区 | www.福利视频 | 九九色网| 麻豆视频大全 | 久久人人爽视频 | 欧美小视频在线观看 | 成人影音在线 | 国产高清在线看 | 中文字幕在线视频一区 | 国产日本在线观看 | 美女福利视频 | 欧美久草视频 | 激情网婷婷| 草在线 | 91秒拍国产福利一区 | 亚洲理论电影 | 亚洲成人午夜在线 | 三上悠亚一区二区在线观看 | 中文一区二区三区在线观看 | 国产精品美女久久久久久久久久久 | 人人射网站 | 成人午夜剧场在线观看 | 国产视频日韩 | 色网免费观看 | 免费在线观看午夜视频 | 黄色三级在线 | 黄色大全免费网站 | 99精品久久精品一区二区 | 日韩欧美在线播放 | av电影av在线 | 久久草在线免费 | 91在线视频网址 | 黄色小说视频在线 | av一区二区三区在线播放 | 国产高清不卡一区二区三区 | 国产系列精品av | 日韩在线观看电影 | 亚洲欧美日本国产 | 久久国产一区二区三区 | av日韩在线网站 | 99精品一区 | 最新的av网站 | 天天爽天天碰狠狠添 | 18国产精品白浆在线观看免费 | 精品日韩在线一区 | 久久激五月天综合精品 | 亚洲一级影院 | 久久亚洲精品国产亚洲老地址 | 日韩欧美电影网 | 黄p在线播放 | 精品综合久久 | 黄色精品久久 | 97超碰.com| 久久最新网址 | 91热视频在线观看 | 色噜噜在线观看视频 | 91在线精品观看 | 久久久私人影院 | 在线视频国产区 | 国产成本人视频在线观看 | 久久久久久久久久久久影院 | 国产手机在线观看视频 | 欧美一区二区精品在线 | 久久夜色网 | 久久最新网址 | 中文字幕美女免费在线 | caobi视频| 麻豆国产网站 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产精品第一页在线观看 | 亚洲国产午夜视频 | 91伊人久久大香线蕉蜜芽人口 | 国产综合激情 | 天天草天天干天天射 | 日韩精品2区| 亚洲四虎 | 日本一区二区三区免费观看 | 国产在线视频在线观看 | 综合色影院 | 4hu视频 | 国产精品九九视频 | 中文字幕日韩一区二区三区不卡 | 激情网第四色 | av一级免费| 久久久久伦理电影 | 五月婷丁香网 | 天堂av网在线 | 天天骚夜夜操 | 国产不卡视频在线 | av大全在线播放 | 久久精品第一页 | 亚洲一二区视频 | 婷婷综合成人 | 一区二区亚洲精品 | 欧美大片第1页 | 日韩精品在线看 | 久久免费成人精品视频 | 亚洲高清在线观看视频 | 亚洲韩国一区二区三区 | 亚洲 欧美 国产 va在线影院 | 三日本三级少妇三级99 | 国产日韩精品在线观看 | 日本99热| 韩国精品福利一区二区三区 | 久久精品中文字幕一区二区三区 | 在线三级播放 | 蜜桃av综合网 | 一级黄毛片 | 亚洲激情婷婷 | 成人动漫视频在线 | 亚洲片在线资源 | 欧美日韩亚洲精品在线 | 黄色精品在线看 | 欧美日韩中字 | 亚洲欧美日韩国产 | 婷婷5月色 | 久久这里有精品 | 一区二区三区四区精品 | 成年人在线免费视频观看 | 亚洲精品一区中文字幕乱码 | 91av在线精品| 9在线观看免费高清完整版 玖玖爱免费视频 | 中文乱码视频在线观看 | 麻豆视频在线免费看 | 性色视频在线 | 日韩在线视频播放 | 亚洲精品视频在线观看免费 | 国产精品爽爽久久久久久蜜臀 | 国产一区二区三区四区大秀 | av色一区 | 丁五月婷婷| 日本中文字幕网站 | 在线观看亚洲 | 天天天在线综合网 | 欧美一区二区三区在线看 | 国产精品自产拍在线观看网站 | 日本中文字幕在线观看 | 亚洲黄色成人网 | 国产成人久久精品亚洲 | 日本公妇色中文字幕 | 91色蜜桃 | 亚洲伦理一区二区 | 成人av网站在线播放 | 一区二区久久久久 | 中文字幕在线观看网址 | 久久亚洲婷婷 | 人人爽人人香蕉 | 亚洲不卡av一区二区三区 | 在线亚洲日本 | 国产精品一区二区62 | 亚洲国产高清在线 | 欧美日韩国产在线一区 | 天天操天天干天天操天天干 | 五月婷婷丁香 | 九九免费在线观看视频 | 亚洲经典视频 | 亚洲v欧美v国产v在线观看 | 97香蕉久久国产在线观看 | 国产综合91| 国产成人性色生活片 | 激情av网址| 国产在线一线 | 高清视频一区 | 国产精品18久久久久久不卡孕妇 | 久草在线免费资源站 | 国产美女免费视频 | av视屏在线播放 | 色婷婷在线观看视频 | 在线一级片 | 五月综合网 | www久久九 | 久草在线高清 | 99资源网 | 中文字幕高清在线播放 | 亚洲乱亚洲乱亚洲 | 日本三级香港三级人妇99 | 亚洲国产中文在线 | 久久亚洲国产精品 | 久久呀| 人人爽影院 | 97超级碰碰| 亚洲黄色精品 | 日韩字幕在线观看 | 四虎永久视频 | 最近最新中文字幕 | 免费在线激情电影 | 国内外成人免费在线视频 | 亚洲黄色一级视频 | 三级av在线播放 | 久久精品欧美视频 | 中文永久免费观看 | 日韩xxx视频 | 在线视频一区观看 | 成人免费视频视频在线观看 免费 | 久久九九网站 | 九九久久免费视频 | 精品国产片 | 欧美日韩三级在线观看 | 国产专区在线播放 | 黄色免费网站大全 | 国产精品va在线播放 | 国产精品久久久久久久久久久久午夜 | 麻豆久久一区二区 | av福利在线免费观看 | 久久99久久99精品中文字幕 | 一区二区三区电影 | 91九色精品 | 国产精品久久久久久久av电影 | 怡红院久久 | 成人久久视频 | 久久免费大片 | 中文字幕区 | 日韩在观看线 | 伊人影院得得 | 国产精品成人自产拍在线观看 | 午夜精品久久久久久99热明星 | 久久av在线 | 日韩电影一区二区在线观看 | 蜜臀aⅴ国产精品久久久国产 | 成人国产精品一区 | 久久国产精品影片 | 国产精品99久久久久 | 久久精品人人做人人综合老师 | 99精品视频在线看 | 久久久99精品免费观看app | 开心色婷婷 | 久久精品国产精品亚洲 | 91探花系列在线播放 | 国产免费视频在线 | 免费高清男女打扑克视频 | 久久天| 三级黄色网址 | 精品一区在线看 | 深夜免费小视频 | 美女国产网站 | 久久国产精品久久精品国产演员表 | 午夜精品视频一区二区三区在线看 | 最近日本韩国中文字幕 | 不卡电影一区二区三区 | 免费又黄又爽视频 | 欧美日韩不卡在线视频 | 色婷婷综合在线 | 国产精品美女久久久久久久网站 | 97成人在线观看 | 免费看特级毛片 | 欧美一区二区日韩一区二区 | 麻豆va一区二区三区久久浪 | 99精品国产一区二区三区不卡 | 亚洲精品久久久蜜臀下载官网 | 亚洲视频分类 | 欧美在线日韩在线 | 免费久久精品视频 | 中文字幕在线观看网站 | 久精品在线观看 | 国产成人久久av免费高清密臂 | 免费成人在线观看视频 | 狠狠亚洲 | 四虎影视成人永久免费观看亚洲欧美 | 久久你懂得 | 制服丝袜在线 | 韩国精品一区二区三区六区色诱 | 久久蜜桃av| 国产精品国内免费一区二区三区 | 国产精品久久99综合免费观看尤物 | 韩国av免费看 | avav片 | 免费美女久久99 | 韩国av免费看 | 国产一区二区高清不卡 | 久久久18| 成人黄色在线电影 | 国产欧美日韩精品一区二区免费 | 亚洲精品五月天 | 国产在线播放一区二区 | 亚洲综合在线五月 | 亚洲精品视频网 | 欧美日韩高清免费 | 婷婷在线五月 | 一本色道久久精品 | a级国产乱理伦片在线观看 亚洲3级 | 日本三级中文字幕在线观看 | 亚洲 成人 欧美 | 91香蕉亚洲精品 | 日本精品一区二区在线观看 | 日韩免费电影在线观看 | 丁香婷婷在线观看 | 成人免费视频网 | 日韩中文字幕视频在线 | 国产精品成人免费一区久久羞羞 | 国产 日韩 在线 亚洲 字幕 中文 | 久久蜜桃av| 探花视频在线观看免费 | 久久免费精彩视频 | 欧美一级黄大片 | 伊人影院得得 | 丁香电影小说免费视频观看 | 免费福利视频网站 | 9999国产精品 | 亚洲激情 在线 | 久久最新 | 久久午夜免费观看 | 国产精品www| 97超碰超碰久久福利超碰 | 日韩精品五月天 | 456成人精品影院 | 国产成人香蕉 | 国内精品久久久久影院优 | 日韩av中文在线观看 | 808电影 | 色五月色开心色婷婷色丁香 | 亚州中文av| 丁香五月亚洲综合在线 | 麻花豆传媒mv在线观看网站 | 91九色成人 | 亚洲毛片视频 | 婷婷九月激情 | 欧美在线观看小视频 | 免费a视频在线观看 | 欧美一级日韩三级 | 国产成人精品免费在线观看 | 日韩精品视频第一页 | 欧美天天综合 | 五月开心激情 | 午夜精品一区二区三区在线 | 啪啪av在线 | 日韩av片在线 | 九九视频网站 | 久久avav | 奇米影视在线99精品 | 精品免费一区 | aav在线| 亚洲一区免费在线 | 精品久久久网 | 99精品在线 | 国产久草在线观看 | 91精品一区二区三区蜜臀 | 亚洲精品网页 | 国际精品久久久久 | 一区二区三区四区五区在线 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲精品美女视频 | 成人中文字幕av | 欧洲在线免费视频 | 久久久蜜桃一区二区 | 成人黄色小说在线观看 | 一区二区三区av在线 | 久久精品79国产精品 | 久久视频网址 | 操操操日日 | 久久国产日韩 | 人人澡人人草 | 久久成人国产精品一区二区 | www.久久99 | 亚洲 精品在线视频 | 日韩高清在线看 | 国产中文字幕一区二区 | 国产精品一区一区三区 | 麻豆传媒电影在线观看 | 欧美激情精品久久 | www.亚洲黄色 | 成人久久网 | 又爽又黄又刺激的视频 | 9在线观看免费 | 精品毛片一区二区免费看 | 成人app在线播放 | 五月婷网 | 久久乐九色婷婷综合色狠狠182 | av片子在线观看 | 香蕉久草 | 中文字幕之中文字幕 | 久久精品国产免费看久久精品 | 欧美极品xxxxx | 国产成人精品一区二区三区网站观看 | 精品爱爱 | 中文字幕久久精品一区 | 狠狠久久| 国产精品久久久久久久午夜片 | 天天干天天操天天做 | 狠狠狠狠狠狠狠狠 | 久久精选| 日日摸日日添日日躁av | 亚洲成人精品在线观看 | 久久免费精品国产 | 日韩视频图片 | 久久午夜精品影院一区 | 丁香激情综合久久伊人久久 | 日本xxxx.com | 九色91av | 亚洲精品国产精品国自产在线 | 超级碰碰免费视频 | 亚洲国内精品视频 | 91精彩视频 | 五月婷婷综合激情 | 又紧又大又爽精品一区二区 | 九九色在线观看 | 天堂av中文字幕 | 亚洲欧美一区二区三区孕妇写真 | 三级av网站 | 精品视频区| 97人人模人人爽人人喊中文字 | 日韩av网页 | 久久久久久久电影 | 丁香激情综合久久伊人久久 | 国产成人精品免费在线观看 | 奇米影视在线99精品 | 在线午夜电影神马影院 | 国产精品乱码久久 | 久久三级毛片 | 久草久草在线观看 | 色天天久久 | 永久中文字幕 | 天天综合网入口 | 久久国产精品免费观看 | 在线亚洲播放 | a在线观看免费视频 | 国产99久久久国产精品免费二区 | 久久亚洲影院 | 五月婷婷一区二区三区 | 成人动漫一区二区 | 天天天天爽| 成人久久视频 | 国产一区二区三区免费视频 | 国产精成人品免费观看 | 国产精品亚州 | 国产中文字幕视频在线观看 | 亚洲精品在线电影 | 狠狠色噜噜狠狠狠狠2021天天 | 国产精品99久久久久 | 天天干天天插伊人网 | 国产午夜精品一区二区三区四区 | 日日草视频| 国产亚洲精品久久19p | 欧美精品久久久久久久免费 | 成人三级黄色 | 色就色,综合激情 | 在线观看成人网 | 午夜久久 | 婷婷六月网 | 91看片淫黄大片一级在线观看 | 91亚洲精品久久久蜜桃网站 | 午夜国产福利视频 | 少妇搡bbbb搡bbb搡69 | 亚洲在线不卡 | 日本资源中文字幕在线 | 免费av在线网 | 国产成人精品a | 国产精品1024| 四虎免费在线观看视频 | 久久精品美女 | 天堂av在线| 国产精品福利av | 亚洲免费a | 久久精品九色 | 在线看的av网站 | 午夜资源站 | 天天操天天操天天操天天 | 99久久毛片 | 91看片淫黄大片一级在线观看 | 日本99热| 国产黄色a| 91手机视频| 99自拍视频在线观看 | 久久伊人免费视频 | 久久爱资源网 | 免费a v观看 | 久久日韩精品 | 不卡视频一区二区三区 | 97在线观看免费 | 久色 网| 不卡电影免费在线播放一区 | 一级片免费在线 | 精品国产一区二区三区免费 | 国产成a人亚洲精v品在线观看 | 91精品国产麻豆 | 91香蕉视频720p | 精品国内自产拍在线观看视频 | 国产在线观看免费观看 | 日韩欧美视频免费观看 | 国产人成精品一区二区三 | 婷婷六月天在线 | 成人毛片在线观看 | 免费毛片aaaaaa| 国产日韩精品一区二区 | 成年人天堂com | 欧美久久久久久久 | 亚洲jizzjizz日本少妇 | 综合网久久 | 草久中文字幕 | 超碰人人在线观看 | 婷婷色中文网 | 婷婷丁香综合 | 日韩伦理一区二区三区av在线 | 欧美在线观看小视频 | 国产精品久久久久久久久久久久午夜片 | 久草视频看看 | 欧美另类高清 videos | 欧美日韩另类在线 | 日韩一级电影在线观看 | 国产精品一区二区av | 久久精品一| 中文字幕在线日亚洲9 | 天堂资源在线观看视频 | 免费色视频 | 中文字幕丝袜美腿 | 国产精品久久久久久久婷婷 | 亚洲一级特黄 | 日韩电影在线观看一区二区三区 | 国产麻豆果冻传媒在线观看 | 福利视频| 亚洲精品国产精品国自 | 欧美激情精品久久久久久 | 久久免费在线观看 | 国产精品久久久久久久久大全 | 最新国产在线视频 | 国产成人三级在线播放 | 99高清视频有精品视频 | 午夜精品视频一区二区三区在线看 | 欧美黄色成人 | 91麻豆精品国产 | 久久久久女教师免费一区 | 日韩不卡高清 | 国产麻豆精品久久一二三 | 午夜精品福利一区二区三区蜜桃 | 国产成人99av超碰超爽 | 丁香导航 | 久久在草 | 天天插天天干天天操 | 黄色高清视频在线观看 | 国产精品美女久久久久久2018 | 91天堂影院 | 久久a国产 | 狠狠色伊人亚洲综合网站色 | 国色天香永久免费 | 国产亚洲精品久久久久久无几年桃 | 成人av中文字幕在线观看 | 亚洲欧洲精品在线 | 久久不卡视频 | va视频在线观看 | 精品无人国产偷自产在线 | 久草在线视频首页 | 日韩中文字 | 香蕉视频久久 | 成人免费视频网 | 丁香九月激情综合 | 久久亚洲福利视频 | 日韩大片免费观看 | 免费大片黄在线 | 日韩免费b | 一区二区三区在线视频111 | 97理论电影 | 九九九九九精品 | 国产精品免费视频网站 | 91人人插 | 日韩av一区二区三区四区 | 99精品欧美一区二区三区黑人哦 | 久久成人免费电影 | 欧美久久久久久久久久 | 亚洲精品一区二区18漫画 | 国产高清在线观看 | 91福利视频久久久久 | 色综合天天综合网国产成人网 | 在线观看一二三区 | 久久99欧美 | 久久影视中文字幕 | 免费观看黄色av | 国产一区二区三区在线 | 国产精品6| 色永久免费视频 | 亚洲精选视频免费看 | 99九九视频 | 国产中文字幕一区二区 | 99精品色 | 精品国产亚洲一区二区麻豆 | 久久久久久国产精品美女 | 国产美女精品久久久 | 色99导航| 91热视频在线观看 | av短片在线| 中午字幕在线 | 福利一区在线视频 | 看毛片的网址 | 成人9ⅰ免费影视网站 | 久草在线视频资源 | 久久午夜电影网 | 婷婷综合亚洲 | 视频直播国产精品 | 五月婷婷激情综合 | 97视频播放| 国产色在线,com | 精品av在线播放 | 在线观看国产高清视频 | 中文字幕中文字幕在线中文字幕三区 | 久久精品视频在线播放 | 天天操操| 日韩精品最新在线观看 | av 在线观看 | 97av色| 国产精品普通话 | 97超碰人人澡人人爱学生 | 国产午夜一区 | 亚洲国产黄色片 | 51久久夜色精品国产麻豆 | 天天插天天 | 美女视频黄在线观看 | 国产精品丝袜久久久久久久不卡 | av在线专区 | 国产高清一| 狂野欧美激情性xxxx欧美 | 欧美久久久久久久久久久久久 | 美女久久网站 | 国产精品刺激对白麻豆99 | 国产精品99久久久久久久久 | av在线电影网站 | 亚洲国产精久久久久久久 | 亚洲欧美综合精品久久成人 | 精品久久美女 | 久久婷婷丁香 | 亚洲综合色视频在线观看 | 国产精品久久久久久久久久久久午夜 | 激情丁香5月| 婷婷激情小说网 | 国产精品视频永久免费播放 | 2019精品手机国产品在线 | 日韩免费一区二区在线观看 | 精品久久久久久亚洲综合网站 | 天天干com | 免费三级大片 | 欧美日韩精品影院 | 97在线免费视频观看 | 高清国产午夜精品久久久久久 | 日韩一区二区三区免费视频 | 激情av网址 | 精品国产激情 | 丁香六月激情婷婷 | 五月婷综合 | 91精品办公室少妇高潮对白 | 在线观看韩日电影免费 | 色综合久久久久综合体桃花网 | 97超碰精品| 精品国产乱码久久久久 | 去干成人网 | 中文字幕亚洲在线观看 | 天天色图| 黄色影院在线播放 | 91视频下载 | 在线观看成人小视频 | 欧美极品裸体 | 久久精品电影网 | 国产永久免费高清在线观看视频 | 国产中文a| 色天天综合久久久久综合片 | 波多野结衣在线中文字幕 | 伊人网av | 99久久久久久久久久 | 国产涩涩网站 | 91日韩在线专区 | 天堂中文在线视频 | 久久96国产精品久久99漫画 | 97人人模人人爽人人喊中文字 | 国产在线a免费观看 | 国产精品精品国产 | 在线日本看片免费人成视久网 | 日韩视频在线观看免费 | 天天干夜夜爱 | 天天操天天射天天爱 | 99国产精品免费网站 | 天天操天天操天天 | 欧美日韩在线精品 | 美女亚洲精品 | 狠狠撸电影 | 成人在线播放网站 | 国产精品一区二区62 | 伊人五月天.com | 欧美日韩精品网站 | 日韩狠狠操 | 友田真希av| 国产一区二区精品久久91 | 一区二区三区在线影院 | 97在线播放视频 | 九九免费在线观看 | 在线观看免费一级片 | 久久免费精彩视频 | 99精品久久久久 | 亚洲成人资源在线 | 欧美91精品 | 国产精品九九九九九九 | 天天爱天天射天天干天天 | 国产精品久久久久久久久久久久午 | 欧美国产日韩久久 | 精品日韩在线一区 | 成人av在线网 | 成人在线播放视频 | 国产精品久久9 | 成人av在线观 | 国产色秀视频 | 九九免费精品视频在线观看 | 69国产盗摄一区二区三区五区 | 久久人人看 | 精品一区二区在线免费观看 | 色视频一区| 久草网视频在线观看 | 国产精品剧情在线亚洲 | 蜜臀av性久久久久蜜臀av | 国产日韩在线观看一区 | 久久精品99国产精品日本 | 91大神免费在线观看 | 欧美午夜视频在线 | 一本—道久久a久久精品蜜桃 | 国产高清视频免费在线观看 | 青草草在线 | 欧美综合在线观看 | 国产精品18久久久久久首页狼 | av在线免费播放 | 久久久久久久久久久网站 | 人人爽人人爽人人片av免 |