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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android N混合编译与对热补丁影响深度解析

發布時間:2025/3/15 Android 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android N混合编译与对热补丁影响深度解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大約在六月底,Tinker在微信全量上線了一個補丁版本,隨即華為反饋在Android N上微信無法啟動。冷汗冒一地,Android N又搞了什么東東?為什么與instant run保持一致的補丁方式也跪了?talk is cheap,show me the code。趁著臺風妮妲肆虐廣東,終于有時間總結一把。在此非常感謝華為工程師謝小靈與胡海亮的幫助,事實上微信與各大廠商都保持著非常緊密的聯系。

無法啟動的原因

我們遵循從問題出發的思路,針對華為提供的日志,我們看到微信在Android N上啟動時會報IllegalAccessError??梢詮?data/user/0/com.tencent.mm/tinker/patch-a002c56d/dex/classes2.dex看到,的確跟補丁是有關系的。

java.lang.IllegalAccessError: Illegal class access: 'com.tencent.mm.ui.conversation.ConversationOverscrollListView' attempting to access 'com.tencent.mm.ui.conversation.ConversationOverscrollListView$c' (declaration of 'com.tencent.mm.ui.conversation.ConversationOverscrollListView' appears in /data/user/0/com.tencent.mm/tinker/patch-a002c56d/dex/classes2.dex)

但是在我們手上Android N卻無法復現,同時跟華為的進一步溝通中,他們也明確只有一少部分N的用戶會出現問題。這就很難辦了,但是根據之前在art地址錯亂的經驗(似乎這里我還欠大家一篇分析文章),跟這里似乎有點相似。

但是Tinker已經做了全量替換,所以我懷疑由于Android N的某種機制這里只有部分用了補丁中的類,但是部分類導致使用了原來的dex中的。接下來就跟著我一起去研究Android N在編譯運行究竟做了什么改變吧?

Android N的混合編譯運行模式

網上關于Android N混合編譯的文章并不多,infoq上有一篇翻譯文章:Android N混合使用AOT編譯,解釋和JIT三種運行時?;旌暇幾g運行主要指AOT編譯,解釋執行與JIT編譯,它主要解決的問題有以下幾個:

  • 應用安裝時間過長;在N之前,應用在安裝時需要對所有ClassN.dex做AOT機器碼編譯,類似微信這種比較大型的APP可能會耗時數分鐘。但是往往我們只會使用一個應用20%的功能,剩下的80%我們付出了時間成本,卻沒帶來太大的收益。
  • 降低占ROM空間;同樣全量編譯AOT機器碼,12M的dex編譯結果往往可以達到50M之多。只編譯用戶用到或常用的20%功能,這對于存儲空間不足的設備尤其重要。
  • 提升系統與應用性能;減少了全量編譯,降低了系統的耗電。在boot.art的基礎上,每個應用增加了base.art(這塊后面會詳細解析), 通過預加載與緩存提升應用性能。
  • 快速的系統升級;以往廠商ota時,需要對安裝的所有應用做全量的AOT編譯,這耗時非常久。事實上,同樣只有20%的應用是我們經常使用的,給不常用的應用,不常用的功能付出的這些成本是不值得的。
  • Android N為了解決這些問題,通過管理解釋,AOT與JIT三種模式,以達到一種運行效率、內存與耗電的折中。簡單來說,在應用運行時分析運行過的代碼以及“熱代碼”,并將配置存儲下來。在設備空閑與充電時,ART僅僅編譯這份配置中的“熱代碼”。我們先來看看Android N上有哪些編譯方法:

    Android N的編譯模式

    在compiler_filter.h,我們可以看到dex2oat一共有12種編譯模式:

    enum Filter { VerifyNone, // Skip verification but mark all classes as verified anyway.kVerifyAtRuntime, // Delay verication to runtime, do not compile anything.kVerifyProfile, // Verify only the classes in the profile, compile only JNI stubs.kInterpretOnly, // Verify everything, compile only JNI stubs.kTime, // Compile methods, but minimize compilation time.kSpaceProfile, // Maximize space savings based on profile.kSpace, // Maximize space savings.kBalanced, // Good performance return on compilation investment.kSpeedProfile, // Maximize runtime performance based on profile.kSpeed, // Maximize runtime performance.kEverythingProfile, // Compile everything capable of being compiled based on profile.kEverything, // Compile everything capable of being compiled. };

    以上12種編譯模式按照排列次序逐漸增強,那系統默認采用了哪些編譯模式呢?我們可以在在手機上執行getprop | grep pm查看:

    pm.dexopt.ab-ota: [speed-profile] pm.dexopt.bg-dexopt: [speed-profile] pm.dexopt.boot: [verify-profile] pm.dexopt.core-app: [speed] pm.dexopt.first-boot: [interpret-only] pm.dexopt.forced-dexopt: [speed] pm.dexopt.install: [interpret-only] pm.dexopt.nsys-library: [speed] pm.dexopt.shared-apk: [speed]

    其中有幾個我們是特別關心的,

  • install(應用安裝)與first-boot(應用首次啟動)使用的是[interpret-only],即只verify,代碼解釋執行即不編譯任何的機器碼,它的性能與Dalvik時完全一致,先讓用戶愉快的玩耍起來。
  • ab-ota(系統升級)與bg-dexopt(后臺編譯)使用的是[speed-profile],即只根據“熱代碼”的profile配置來編譯。這也是N中混合編譯的核心模式。
  • 對于動態加載的代碼,即forced-dexopt,它采用的是[speed]模式,即最大限度的編譯機器碼,它的表現與之前的AOT編譯一致。
  • 總的來說,程序使用loaddex動態加載的代碼是無法享受混合編譯帶來的好處,我們應當盡量采用ClassN.dex方式來符合Google的規范。這不僅在ota還是混合編譯上,都會帶來很大的提升。

    Android N的Profile文件

    在講[speed-profile]是怎樣編譯之前,這里先簡單描述一下profile文件。profile相關的核心代碼都在art/runtime/jit中。簡單來說,profile_saver.cc會開啟線程去專門收集已經resolved的類與函數,達到一定條件即會持久化存儲在/data/misc/profiles文件夾中。具體的條件可以在profile\_saver\_options.h中查看,在收集過程會出現類似以下的日志:

    tinker.sample.android I/art: Collecting resolved classes tinker.sample.android I/art: Collecting class profile for dex file /data/app/tinker.sample.android-1/base.apk types=2406 class_defs=1719 tinker.sample.android I/art: Dex location /data/app/tinker.sample.android-1/base.apk has 232 / 1719 resolved classes

    profile的存儲格式在offline\_profiling\_info.h中定義,我們也可以通過profman命令查看profile文件中的數據,命令如下:

    profman --profile-file=/data/misc/profiles/cur/0/tinker.sample.android/primary.prof --dump-only

    具體輸出如下:

    === profile === ProfileInfo: base.apk methods: 297,302,303,424,427,665,668,669,700,756,757,759,760,761,765,766,768,772,774, classes: 52,124,456,

    其中base.apk代表dex的位置,這里代表的是ClassN中的第一個dex。其他dex會使用類似base.apk:classes2.dex方式命名。后面的methods與classes代表的是它們在dex格式中的index,只有這些類與方法是我們需要在[speed-profile]模式中需要編譯。

    Android N的dex2oat編譯

    在這里我們比較關心系統究竟是什么時候會去對應用做類似增量的編譯,還有具體的編譯流程是怎么樣的?

    dex2oat編譯的時機

    首先我們來看系統在什么時候會對各個應用做這種漸進式編譯呢?手機在充電+空閑+四個小時間隔等多個條件下,通過BackgroundDexOptService.java中的JobSchedule下觸發編譯優化。

    new JobInfo.Builder(BACKGROUND_DEXOPT_JOB, sDexoptServiceName).setRequiresDeviceIdle(true).setRequiresCharging(true).setMinimumLatency(minLatency).build();

    dex2oat編譯的流程

    對于[speed-profile]模式,dex2oat編譯命令的核心參數如下:

    dex2oat --dex-file=./base.apk --oat-file=./base.odex --compiler-filter=speed-profile --app-image-file=./base.art--profile-file=./primary.prof ...

    入口文件位于dex2oat.cc中,在這里并不想貼具體的調用函數,簡單的描述一下流程:若dex2oat參數中有輸入profile文件,會讀取profile中的數據。與以往不同的是,這里不僅會根據profile文件來生成base.odex文件,同時還會生成稱為app_image的base.art文件。與boot.art類似,base.art文件主要為了加快應用的對“熱代碼”的加載與緩存。

    我們可以通過oatdump命令來看到art文件的內容,具體命令如下:

    oatdump --app-image=base.art --app-oat=base.odex --image=/system/framework/boot.art --instruction-set=arm64

    我們可以dump到art文件中的所有信息,這里我只將它的頭部信息輸出如下:

    IMAGE LOCATION: base.art IMAGE BEGIN: 0x77ea1000 IMAGE SIZE: 1597200 IMAGE SECTION SectionObjects: size=2040 range=0-2040 IMAGE SECTION SectionArtFields: size=0 range=2040-2040 IMAGE SECTION SectionArtMethods: size=0 range=2040-2040 IMAGE SECTION SectionRuntimeMethods: size=0 range=2040-2040 IMAGE SECTION SectionIMTConflictTables: size=0 range=2040-2040 IMAGE SECTION SectionDexCacheArrays: size=1591080 range=2040-1593120 IMAGE SECTION SectionInternedStrings: size=4040 range=1593120-1597160 IMAGE SECTION SectionClassTable: size=40 range=1597160-1597200 IMAGE SECTION SectionImageBitmap: size=4096 range=1597440-1601536

    base.art文件主要記錄已經編譯好的類的具體信息以及函數在oat文件的位置,一個class的輸出格式如下:

    0x78c8f768: java.lang.Class "com.tencent.mm.ui.d.a" (StatusInitialized)shadow$_klass_: 0x6fc76488 Class: java.lang.Classshadow$_monitor_: 0 (0x0)accessFlags: 524305 (0x80011)annotationType: null sun.reflect.annotation.AnnotationTypeclassFlags: 0 (0x0)classLoader: 0x787b5140 java.lang.ClassLoaderclassSize: 460 (0x1cc)clinitThreadId: 0 (0x0)componentType: null java.lang.ClasscopiedMethodsOffset: 3 (0x3)dexCache: 0x782290c8 java.lang.DexCachedexCacheStrings: 2036372056 (0x79609258)dexClassDefIndex: 12138 (0x2f6a)dexTypeIndex: 11797 (0x2e15)iFields: 2031076964 (0x790fc664)ifTable: 0x78836500 java.lang.Object[]methods: 2032787876 (0x7929e1a4)name: null java.lang.StringnumReferenceInstanceFields: 4 (0x4)numReferenceStaticFields: 0 (0x0)objectSize: 36 (0x24)primitiveType: 131072 (0x20000)referenceInstanceOffsets: 63 (0x3f)sFields: 0 (0x0)status: 10 (0xa)superClass: 0x78bcc968 Class: com.tencent.mm.pluginsdk.ui.b.bverifyError: null java.lang.ObjectvirtualMethodsOffset: 1 (0x1)vtable: null java.lang.Object

    method的輸出格式如下:

    0x792b639c ArtMethod: void com.tencent.mm.e.a.je.<init>() OAT CODE: 0x471dae14-0x471daece SIZE: Dex Instructions=10 StackMaps=0 AccessFlags=0x90001 0x792b63c0 ArtMethod: void com.tencent.mm.e.a.je.<init>(byte) OAT CODE: 0x471daee4-0x471daf52 SIZE: Dex Instructions=48 StackMaps=0 AccessFlags=0x90002 0x792b63e8 ArtMethod: void com.tencent.mm.e.a.jo.<init>() OAT CODE: 0x463d5f44-0x463d5f50 SIZE: Dex Instructions=10 StackMaps=0 AccessFlags=0x90001

    那么我們就剩下最后一個問題,app image文件是什么時候被加載,并且為什么它會影響熱補丁的機制?

    App image文件的加載

    在apk啟動時我們需要加載應用的oat文件以及可能存在的app image文件,它的大致流程如下:

  • 通過OpenDexFilesFromOat加載oat時,若app image存在,則通過調用OpenImageSpace函數加載;
  • 在加載app image文件時,通過UpdateAppImageClassLoadersAndDexCaches函數,將art文件中的dex_cache中dex的所有class插入到ClassTable,同時將method更新到dex_cache;
  • 在類加載時,使用時ClassLinker::LookupClass會先從ClassTable中去查找,找不到時才會走到DefineClass中。
  • 非常簡單的說,app image的作用是記錄已經編譯好的“熱代碼”,并且在啟動時一次性把它們加載到緩存。預先加載代替用時查找以提升應用的性能,到這里我們終于明白為什么base.art會影響熱補丁的機制。

    無論是使用插入pathlist還是parent classloader的方式,若補丁修改的class已經存在與app image,它們都是無法通過熱補丁更新的。它們在啟動app時已經加入到PathClassLoader的ClassTable中,系統在查找類時會直接使用base.apk中的class。

    instant run為什么沒有影響

    對于instant run來說,它的目標是快速debug。從上面的編譯條件看來,它是不太可能可以觸發[speed-profile]編譯的。事實上,它在dex2oat上面傳入了--debugable參數, 不過dex2oat并沒有單獨處理這個參數。感興趣的同學,可以再詳細研究這一塊。

    最后我們再來總結一下Android N混合編譯運行的整個流程,它就像一個小型生態系統那樣和諧。

    Android N上熱補丁的出路

    假設base.art文件在補丁前已經存在,這里存在三種情況:

  • 補丁修改的類都不app image中;這種情況是最理想的,此時補丁機制依然有效;
  • 補丁修改的類部分在app image中;這種情況我們只能更新一部分的類,此時是最危險的。一部分類是新的,一部分類是舊的,app可能會出現地址錯亂而出現crash。
  • 補丁修改的類全部在app image中;這種情況只是造成補丁不生效,app并不會因此造成crash。
  • 如何解決這個問題呢?下面根據當時我的一些思路分別說明:

    插樁?

    當時第一反應想到是通過插樁是否能阻止類被編譯到app image中,從而規避了這個問題。事實上,在生成profile時,使用的是ClassLinker::GetResolvedClasses函數,插樁并沒有任何作用。

    我這邊也專門單獨看了插樁后編譯的機器碼,僅僅是通過Trampoline模式跳回虛擬機查找而已。

    DEX CODE:...0x0018: 0e00 | return-void0x45f0dda2: f8d9e29c ldr.w lr, [r9, #668] ; pInvokeStaticTrampolineWithAccessCheck...

    miniloader方案

    假設我們實現一個最小化的loader,這部分代碼我們補丁時是不會去改變。然后其他代碼都通過動態方式加載,這套方案的確是可行的,但是并不會被采用,因為它會帶來以下幾個代價:

  • 對Android N之前,由于不使用ClassN方式,帶來首次加載過慢甚至黑屏的問題;
  • 對于Android N,不僅存在第一點問題,同時將混合編譯的好處完全廢掉了(因為動態加載的代碼是相當于完全編譯的);
  • 在微信中,補丁方案的原則應該是不能影響運行時的性能,所以這套方案也是不可取的。

    運行時替換PathClassLoader方案

    事實上,App image中的class是插入到PathClassloader中的ClassTable中。假設我們完全廢棄掉PathClassloader,而采用一個新建Classloader來加載后續的所有類,即可達到將cache無用化的效果。

    需要注意的問題是我們的Application類是一定會通過PathClassloader加載的,所以我們需要將Application類與我們的邏輯解耦,這里方式有兩種:

  • 采用類似instant run的實現;在代理application中,反射替換真正的application。這種方式的優點在于接入容易,但是這種方式無法保證兼容性,特別在反射失敗的情況,是無法回退的。
  • 采用代理Application實現的方法;即Application的所有實現都會被代理到其他類,Application類不會再被使用到。這種方式沒有兼容性的問題,但是會帶來一定的接入成本。
  • 我想說明的是許多號稱毫無兼容性問題的反射框架,在微信Android 數億用戶面前往往都是經不起考驗的。這也是為什么我們盡管采用增加接入成本方式也不愿意再多的使用反射的原因??偟膩碚f,這種方式不會影響沒有補丁時的性能,但在加載補丁后,由于廢棄了App image帶來一定的性能損耗。具體數據如下:

    事實上,在Android N上我們不會出現完整編譯一個應用的base.odex與base.art的情況。base.art的作用是加快類與方法的第一次查找速度,所以在啟動時這個數據是影響最大的。在這種情況,廢棄base.art大約帶來15%左右的性能損耗。在其他情況下,這個數字應該是遠遠小于這個數字。

    Tinker的后續計劃

    在Android N上,Tinker全量合成方案帶來了一個較為嚴重的問題。即將Android N的混合編譯退化了,因為動態編譯的代碼采用的是[speed]方式完整編譯,它會占用比較多Rom空間。所以未來我們計劃根據平臺區分合成的方式,在Dalvik平臺我們合成一個完整的dex,但在Art平臺只合成需要的類,它的規則如下:

  • 修改跟新增的class;
  • 若class有field,method或interface數量變化,它們所有的子類;
  • 若class有field,method或interface數量變化d,它們以及它們所有子類的調用類。如果采用ClassN方式,即需要多個dex一起處理。
  • 規則看起來很復雜,同一個diff文件,根據不同平臺合成不同文件看起來也很復雜。更困難的是,dex格式是存在大量的互相引用,除了index區域,還有使用絕對地址引用的區域,大量的變長結構,4字節對齊......

    所以Tinker最終期望的結構圖應該如下,在art上面僅僅合成mini.dex即可:?

    結語

    建議大家通過"閱讀全文"查看,以獲得更好的閱讀體驗。盡管當前Tinker還沒有開啟內測,我們會盡力在開源前做的更好。讓Tinker無論在Dalvik還是Art上,都有著最好的表現,同時也懇請大家繼續耐心等候我們。


    原文地址: https://github.com/WeMobileDev/article/blob/master/Android_N%E6%B7%B7%E5%90%88%E7%BC%96%E8%AF%91%E4%B8%8E%E5%AF%B9%E7%83%AD%E8%A1%A5%E4%B8%81%E5%BD%B1%E5%93%8D%E8%A7%A3%E6%9E%90.md

    總結

    以上是生活随笔為你收集整理的Android N混合编译与对热补丁影响深度解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    精品久久久久久国产偷窥 | 亚洲理论片在线观看 | 成人久久国产 | 亚洲成人网在线 | 麻豆精品视频在线 | 色综合天天狠天天透天天伊人 | 国产剧情一区二区在线观看 | 去看片| 伊人欧美 | 自拍超碰在线 | 激情小说 五月 | 久久久久国产一区二区 | 亚洲精品久久视频 | 亚洲精品视频在线 | 91色综合| 欧美精品少妇xxxxx喷水 | 欧美激情视频久久 | 日韩一区二区免费视频 | 天天干夜夜爽 | 久久99精品国产 | 久久99精品热在线观看 | 国产涩涩在线观看 | 视频二区| 偷拍精品一区二区三区 | 日韩在线观看一区二区三区 | 伊人久久五月天 | 日韩欧三级 | www.色爱| 久久艹国产视频 | 日本在线观看一区二区 | 91麻豆产精品久久久久久 | 九九九免费视频 | 久草综合在线观看 | 美女久久久久久久 | 亚洲特级毛片 | 中文在线字幕免费观看 | 亚洲一区二区三区四区精品 | 91麻豆福利 | 精精国产xxxx视频在线播放 | 一区二区在线影院 | 亚洲极色| 爱色婷婷| 色综合天天狠狠 | 菠萝菠萝在线精品视频 | www激情久久 | 天天操综| 中文av在线播放 | 亚洲视频在线视频 | 成年人在线观看免费视频 | 天天色天天草天天射 | 久久国产午夜精品理论片最新版本 | 六月丁香社区 | 五月婷婷电影网 | 色偷偷网站视频 | 九九久| 五月婷婷激情 | 性日韩欧美在线视频 | 伊人久久五月天 | 免费瑟瑟网站 | 亚洲高清91 | av片在线观看免费 | 91精品视频一区 | 国产在线色视频 | 91成人网在线播放 | 久久人人爽人人爽人人片 | 99久久99热这里只有精品 | 亚洲免费av在线播放 | 久久黄色美女 | 美女视频黄频大全免费 | 久久久黄色免费网站 | 成人97视频一区二区 | 探花国产在线 | 欧美激情亚洲综合 | 日日夜夜操av | 日韩精品一区二区在线视频 | 日韩欧美99 | 字幕网av| 久久国产精品视频免费看 | 伊人中文网 | 久草在线中文888 | h网站免费在线观看 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 国内精品中文字幕 | 国产午夜不卡 | 在线看片视频 | 欧美 激情在线 | 欧美日韩中文字幕综合视频 | 国模精品在线 | 久久久国产精品成人免费 | 色综合久久久久综合 | 国产精品久久久久久久毛片 | 欧美天天综合网 | 国产女人40精品一区毛片视频 | 91大神在线观看视频 | 婷婷综合网 | 亚洲国产高清在线观看视频 | 9999精品 | 狠狠狠狠干| 99免费在线观看视频 | 精品国产免费一区二区三区五区 | 日韩中文免费视频 | 999视频精品 | 亚洲精品午夜国产va久久成人 | 99热在线观看免费 | 九色精品免费永久在线 | 国产成人精品一区二区三区网站观看 | 视频一区亚洲 | 在线午夜电影神马影院 | 韩国精品在线观看 | 韩国精品福利一区二区三区 | 免费观看xxxx9999片 | 夜夜干天天操 | www.xxx.性狂虐 | 永久免费视频国产 | 久久久久久蜜av免费网站 | 操操操操网 | 99超碰在线观看 | 亚洲资源在线观看 | 久久精品久久精品久久精品 | 午夜久久电影网 | 夜夜骑日日操 | 久久精品福利 | 久射网| av丝袜在线 | 国产在线观看地址 | 国产91精品欧美 | 婷婷 中文字幕 | 国产视频二区三区 | www.黄色小说.com | 美女网站色免费 | 天天做天天爽 | 一区二区不卡 | 国产日韩欧美视频 | av一区在线 | av大全在线免费观看 | 中文字幕亚洲欧美 | 久久久久久草 | 久久伊99综合婷婷久久伊 | 日韩精品一区二区三区免费观看视频 | 亚洲无吗视频在线 | 国产精品成人一区二区三区吃奶 | 久久久麻豆视频 | 精品uu | 日韩资源在线观看 | 久草视频手机在线 | 国产视频18 | 精品国产一区二区三区久久久久久 | 99r在线观看 | 992tv在线成人免费观看 | 特级毛片在线免费观看 | 免费一级日韩欧美性大片 | 欧美国产日韩在线观看 | 日韩国产欧美在线播放 | www久久| 97热在线观看 | 狠狠色伊人亚洲综合网站野外 | 六月丁香婷婷网 | 九九九免费视频 | 色婷婷亚洲婷婷 | 精品久久久久久国产91 | av电影中文字幕在线观看 | 国内久久精品视频 | 1区2区视频 | 国产激情免费 | 天天操综合 | 色综合久久88色综合天天 | 亚洲夜夜网 | 狠狠干干 | 免费在线一区二区三区 | 久久99久久99精品中文字幕 | 成人精品国产免费网站 | 成年人国产视频 | 久草在线免费看视频 | 久久99久久99免费视频 | 久久a级片 | 美女视频黄色免费 | 色com| 免费三级黄 | 欧美日韩在线观看一区 | 97福利视频| 国产91电影在线观看 | 精品a在线| 亚洲理论片在线观看 | 国产精品久久久久久久久蜜臀 | 一区二区三区四区久久 | 午夜av片 | 日韩av在线资源 | 免费在线观看一级片 | 激情欧美一区二区免费视频 | av网站在线免费观看 | 亚洲国产精品一区二区尤物区 | 国产精品色视频 | 麻豆久久| www.少妇 | 草久在线视频 | 国产精品ssss在线亚洲 | 国产亚洲资源 | 亚洲一区二区三区在线看 | 在线亚洲午夜片av大片 | 国产麻豆精品免费视频 | 国产成人免费在线 | 午夜电影中文字幕 | 视频一区二区国产 | 天天干天天操天天搞 | 激情欧美国产 | 精久久久久 | 日本在线观看中文字幕无线观看 | 国产免费亚洲高清 | 男女靠逼app | 91免费观看 | 欧美激情操 | 免费三级黄色 | 日韩欧美一区二区三区免费观看 | 日韩在线高清免费视频 | 欧美巨大荫蒂茸毛毛人妖 | 午夜久久福利 | 久久精品视频3 | av电影免费在线看 | 欧美日韩亚洲在线观看 | 亚洲国产精品小视频 | 九九九电影免费看 | 日韩欧美高清视频在线观看 | 色综合天天天天做夜夜夜夜做 | 日韩啪视频 | 日韩区在线观看 | 久久久国产高清 | 天天综合操 | 久久久国产在线视频 | 香蕉视频18| 亚洲狠狠婷婷综合久久久 | 怡春院av| 免费福利片 | 天天爽人人爽夜夜爽 | 免费成人av电影 | 91超碰免费在线 | 免费99精品国产自在在线 | 国产精品原创在线 | 91免费在线看片 | 在线黄网站 | 中文字幕最新精品 | 91精品久久久久久久91蜜桃 | 射久久 | 中文字幕91视频 | 又黄又刺激又爽的视频 | 久久福利综合 | 91精品啪在线观看国产线免费 | 久草在线免 | 亚洲美女精品区人人人人 | 欧美日韩久久久 | 免费观看国产精品视频 | 草久久久久 | 91热精品视频 | 最新中文字幕 | 国产精品美女久久久免费 | 国产99亚洲| 欧美激情精品久久久久久 | 91麻豆精品国产91久久久无需广告 | 国产在线观看xxx | 久久99国产精品免费 | 国产原创av在线 | 色婷婷六月 | 丁香九月婷婷综合 | 久久久免费看视频 | 精品免费视频123区 午夜久久成人 | 欧美福利精品 | 欧美一区二区在线 | 国产xx视频| 久久伦理影院 | 91福利免费 | 91污在线观看 | 99精品免费视频 | 伊人五月天.com| 久久久久美女 | 亚洲一区二区视频在线 | 蜜臀av在线一区二区三区 | 91视频3p | 国产97碰免费视频 | 亚洲一级片免费观看 | 国产成人免费在线观看 | 日韩精品免费一区二区 | 亚洲综合爱 | 丁香五月亚洲综合在线 | 精品在线99| free,性欧美| 国产麻豆精品久久一二三 | 久久精品成人热国产成 | av成人动漫 | 成人三级网站在线观看 | 伊人狠狠 | 麻豆视频在线免费观看 | 国产精品99久久久久的智能播放 | 91刺激视频 | 国产美女在线精品免费观看 | 国产日女人 | 日韩精品免费在线 | 香蕉91视频 | 另类五月激情 | 激情欧美在线观看 | 久久久国产精品成人免费 | 亚洲免费公开视频 | 亚洲精品小视频在线观看 | 日韩1级片| 人人草天天草 | 亚洲欧美综合精品久久成人 | 开心激情久久 | 国产一区二区三区在线 | 亚洲国产影院 | 999视频网站| 色婷婷久久久 | 又黄又爽又湿又无遮挡的在线视频 | 国产精品专区h在线观看 | 国产美女免费观看 | 日韩系列在线观看 | 中文字幕在线播放视频 | 伊人伊成久久人综合网站 | 欧美va天堂在线电影 | 亚洲第一中文网 | 麻豆小视频在线观看 | 激情中文在线 | 4hu视频| 最新av免费在线观看 | 欧美a免费 | 99热.com| 一级免费av | 久久av伊人 | 欧美日韩高清一区二区 国产亚洲免费看 | 午夜电影 电影 | 国产精品久久一区二区无卡 | 欧美激情亚洲综合 | 亚洲在线视频免费观看 | 久草com | 亚洲永久字幕 | 精品国产一区二区三区日日嗨 | 欧美一级特黄aaaaaa大片在线观看 | 黄色电影在线免费观看 | 国产一级黄色电影 | av色综合网| 四虎影视精品永久在线观看 | 国产精品专区h在线观看 | 欧美一级电影在线观看 | 久热只有精品 | 久久综合毛片 | 成年人免费看 | 蜜臀久久99精品久久久无需会员 | 久久国产片 | 成x99人av在线www | 亚洲综合成人av | 九九久久成人 | 久久高清国产视频 | 97人人模人人爽人人喊网 | 日本在线观看视频一区 | 国产婷婷色 | 亚洲人成免费网站 | 国产精品日韩精品 | 欧美a视频| 亚洲成av人片在线观看 | 久草视频国产 | 天天综合精品 | 91网页版在线观看 | 亚洲精品视频在线免费播放 | 午夜国产福利视频 | 精壮的侍卫呻吟h | 在线观看视频在线观看 | 不卡的av电影在线观看 | 久久综合久久综合九色 | 久久情侣偷拍 | 在线黄色毛片 | 国产日韩欧美在线影视 | 天天操天天操天天 | 免费一级日韩欧美性大片 | 午夜国产影院 | 国产精品12 | 久久久伊人网 | 青青草国产成人99久久 | 99精品国产视频 | av品善网 | 国产亚洲精品久久久久秋 | 久久最新网址 | 成人黄色在线视频 | 天天综合操| 亚洲久草网 | bbb搡bbb爽爽爽 | 欧美激情视频在线免费观看 | 国产亚洲精品综合一区91 | 国产日韩视频在线观看 | 免费看亚洲毛片 | 国产色网 | 99综合影院在线 | 黄色午夜 | 超碰在线cao | 国产一级片免费观看 | 精品久久免费看 | 精品美女在线视频 | 看片网站黄 | 中文av一区二区 | 少妇bbw搡bbbb搡bbbb| 狠狠干.com | 国产又粗又猛又黄又爽视频 | 四虎影视成人 | 久久免费视频一区 | 亚洲精品www久久久久久 | 天堂在线视频免费观看 | 十八岁以下禁止观看的1000个网站 | 波多野结衣一区三区 | 97人人澡人人爽人人模亚洲 | 国产精品一区二区免费在线观看 | 亚洲成人二区 | 国内精品美女在线观看 | 麻豆视频www | 国产午夜在线观看 | 青春草视频在线播放 | 亚洲高清视频在线播放 | 久草视频在线看 | 日免费视频 | 精品国产电影一区二区 | 一区二区视频免费在线观看 | 国产伦理精品一区二区 | 日韩一区二区三区不卡 | 超碰激情在线 | 黄色一级性片 | 91在线网址 | 成人av教育 | 一区二区中文字幕在线 | 黄色特一级片 | 激情喷水 | 久久免费国产电影 | 操高跟美女 | 日韩欧美一区二区不卡 | 亚洲美女精品区人人人人 | 99性视频| 成年人免费在线观看网站 | 黄色的视频 | 成年人免费观看在线视频 | 国产精品久久麻豆 | 久久视频二区 | av片中文| 久久五月天色综合 | 一色屋精品视频在线观看 | 国产手机视频在线 | 黄色小说视频在线 | 开心丁香婷婷深爱五月 | 黄色大片日本免费大片 | 久久精品一区二区 | 国产99中文字幕 | 国产日韩av在线 | 在线观看国产日韩欧美 | 日本婷婷色 | 国产精品黄色影片导航在线观看 | 久久国产剧场电影 | 久久久国产精品一区二区三区 | 中文字幕在线网址 | 亚洲国产婷婷 | 欧美日韩性生活 | 9999精品 | 久久调教视频 | a视频免费在线观看 | 日本久久久久久科技有限公司 | 久久久www | 99人久久精品视频最新地址 | 久久免费电影网 | 在线电影日韩 | 中文字幕在线观看视频网站 | 在线黄色国产电影 | 国产日产精品一区二区三区四区 | 国产一区二区三精品久久久无广告 | 久久狠狠婷婷 | 亚洲天堂香蕉 | 麻豆精品在线 | 日b黄色片 | 欧美久久久久久久久久 | 在线中文字幕电影 | 亚洲视屏一区 | av电影久久| 特级aaa毛片 | 91免费日韩| 久久久午夜影院 | 久久黄色片子 | 91看片淫黄大片一级在线观看 | 日日夜夜精品网站 | 999在线视频 | 亚洲最大在线视频 | 一区在线观看 | 黄色大全在线观看 | 一区二区三区四区精品视频 | 99精品免费久久久久久久久日本 | 久久99久久99精品中文字幕 | 最新国产在线视频 | 最近久乱中文字幕 | 欧美乱大交 | 免费在线精品视频 | 视频在线在亚洲 | 免费麻豆视频 | 国产精品久久久毛片 | 麻豆精品视频在线观看免费 | 成人a免费看 | 超碰97免费观看 | 免费黄色激情视频 | 亚洲一级免费电影 | 色噜噜在线观看视频 | 亚洲国产中文字幕在线观看 | 91免费视频黄 | 国内精品久久久久久久影视麻豆 | 九色免费视频 | 免费日韩| 婷婷五天天在线视频 | 91精品久久久久久综合乱菊 | 97在线观看视频 | 亚洲综合精品在线 | 国产精品久久久久久久99 | 91视频三区 | 亚洲精品成人网 | 丰满少妇高潮在线观看 | 久草在线视频免赞 | 国产91精品一区二区绿帽 | 欧美一二三视频 | 精品在线观看国产 | 欧美激情一区不卡 | 日韩av播放在线 | 91精品国产高清自在线观看 | 国产亚洲精品久久久久久久久久久久 | 国产盗摄精品一区二区 | 日本女人b | 午夜电影av | 日韩精品一区电影 | 亚洲伊人色 | 久久久精华网 | 精品久久亚洲 | 亚洲国产精久久久久久久 | 69国产成人综合久久精品欧美 | 不卡av免费在线观看 | 在线免费观看黄色 | 国产精品一区二区三区免费看 | 欧美大片aaa| 日韩免费在线视频观看 | 鲁一鲁影院 | 91桃色在线播放 | 久草久草视频 | 国产成人精品久久久久 | 久久不射网站 | 午夜精品一区二区三区在线播放 | 久久久久久国产精品999 | 国产91欧美 | 婷婷视频在线 | 国产v在线播放 | 亚洲免费精品一区二区 | 欧美片网站yy | 色综合亚洲精品激情狠狠 | 欧美一区二区三区四区夜夜大片 | 日韩免费小视频 | 日韩精品中文字幕在线播放 | 日韩三级中文字幕 | 毛片在线播放网址 | 久久久久久久久影视 | 欧美日本中文字幕 | 99久久精品免费看国产一区二区三区 | 精品在线视频一区二区三区 | 国产精品 中文在线 | 精品久久久久_ | 久久国产午夜精品理论片最新版本 | 亚洲精品视频在线观看免费视频 | 91成人在线网站 | 亚洲一级黄色 | 亚洲精品美女在线观看 | 久久久久久久久免费视频 | 国产不卡一 | 国产三级精品三级在线观看 | 亚洲a免费| 丝袜美腿在线视频 | 国产成人精品国内自产拍免费看 | 国产字幕在线观看 | 91亚色视频 | 久久综合欧美精品亚洲一区 | 午夜日b视频 | 日韩手机视频 | 午夜视频福利 | 91av国产视频 | 色婷婷激情五月 | 水蜜桃亚洲一二三四在线 | 91一区啪爱嗯打偷拍欧美 | 日日夜操| 人人舔人人爱 | 成人免费大片黄在线播放 | 亚洲国产中文在线观看 | 五月天av在线| 中文在线字幕免费观看 | 久久精品一区二区三区四区 | 91福利社区在线观看 | 国产美女免费看 | 丁香综合 | 国产自产高清不卡 | 免费精品久久久 | 成人a视频 | 国产一卡二卡四卡国 | 一区二区三区韩国免费中文网站 | 国产精品a成v人在线播放 | 久久99国产精品久久99 | 91插插视频| 久久久久久久免费观看 | 国产亚洲成人精品 | 香蕉久草 | 成人在线免费视频观看 | www.大网伊人 | 一二三精品视频 | 韩日av一区二区 | 亚洲国产片色 | 日韩免费三区 | 亚洲.www | 久久精品久久精品久久精品 | 91黄色在线看 | 亚洲黄色高清 | 国产九九九视频 | 国产黄在线 | 亚洲精品乱码久久久久久蜜桃91 | 日韩在线中文字幕 | 最新日韩电影 | 91在线播放国产 | www激情网 | 在线91av | www.少妇| 日韩视频免费在线观看 | 一区二区三区四区久久 | 国产亚洲aⅴaaaaaa毛片 | 国产黄色片一级 | 国产精品免费在线观看视频 | 国产成人精品午夜在线播放 | 中文字幕在线观看你懂的 | 欧美另类重口 | 亚洲一区精品二人人爽久久 | 69国产在线观看 | 在线韩国电影免费观影完整版 | 久久99亚洲精品久久久久 | 国产美女在线精品免费观看 | 久草精品视频在线看网站免费 | 国产五月天婷婷 | 免费在线成人av电影 | 在线a视频 | 国产成人精品一区二区三区福利 | 日b黄色片 | 国产黄色片免费观看 | 免费av一级电影 | 91高清完整版在线观看 | 精品国产亚洲日本 | 久久精品视频在线看 | 免费观看全黄做爰大片国产 | 在线a亚洲视频播放在线观看 | 久久久福利影院 | 欧美a视频在线观看 | 中国成人一区 | 国产精品青青 | 国产精品久久久久久久久久尿 | 日韩理论片中文字幕 | 天天操天天操天天操天天操 | 久久久精品电影 | 亚洲 精品在线视频 | 99久久精品免费看国产 | 亚洲一区二区黄色 | 一区二区三区四区在线免费观看 | 日本成人中文字幕在线观看 | 久久综合桃花 | 天天曰天天曰 | 国产精品美乳一区二区免费 | av无限看| 激情久久综合 | 五月天堂网| 欧美色图88 | 久久免费99 | 欧美男女爱爱视频 | 天天干夜夜 | www.夜夜爱 | 国产剧情在线一区 | 免费看黄网站在线 | 五月天婷亚洲天综合网精品偷 | 五月婷婷av在线 | 最近中文字幕高清字幕在线视频 | 精品视频不卡 | 婷婷视频在线 | 97国产情侣爱久久免费观看 | 欧美a视频在线观看 | 黄色大片网 | 99色视频在线 | 一区二区三区动漫 | 国产成人综合精品 | 婷婷色在线资源 | 成人在线一区二区 | 激情综合啪 | 国产在线视频导航 | 99精品在线看 | 国产三级视频在线 | 美女网站视频久久 | 久久久精品综合 | 久久成年人网站 | 国产日韩在线看 | 久久三级毛片 | 91精品免费在线观看 | 精品一二三区视频 | 波多野结衣在线中文字幕 | 精品久久久久一区二区国产 | 在线一区二区三区 | 天天干天天做 | 亚洲精品国产综合久久 | 国产91免费观看 | 蜜臀91丨九色丨蝌蚪老版 | 国产精品一区专区欧美日韩 | 又黄又爽又刺激 | 国产裸体视频网站 | 亚洲一片黄 | 日韩视频中文字幕 | 99久久婷婷国产一区二区三区 | www.五月婷婷 | 久热只有精品 | 国产你懂的在线 | 最近中文字幕国语免费av | 国产精品久久久久久久午夜 | 超碰大片 | 国产最顶级的黄色片在线免费观看 | 亚洲天堂网视频 | 一级免费观看 | 久久精精品 | 综合网天天 | 日韩乱码中文字幕 | 久久精品欧美一区 | 天天透天天插 | 亚洲免费公开视频 | 午夜国产在线 | 男女激情网址 | 国产精品1区2区 | 999久久久久久久久6666 | 大荫蒂欧美视频另类xxxx | 久久丝袜视频 | 911香蕉视频 | 深爱婷婷网 | 精品国产aⅴ麻豆 | 色婷婷福利| 欧美日韩91| 国产日韩高清在线 | 日日噜噜噜噜夜夜爽亚洲精品 | 精品一二| 成人黄色在线观看视频 | 99re久久资源最新地址 | 欧美成人猛片 | 日韩一区二区免费视频 | 欧美日韩高清一区 | 特级大胆西西4444www | 99r国产精品| 午夜 免费 | 日日天天av| 96久久| 天堂av在线中文在线 | 91久久国产综合精品女同国语 | 国产精久久久久久久 | 国产在线精品一区二区 | 免费毛片一区二区三区久久久 | 激情丁香 | 高清色免费 | 九九九电影免费看 | 久久99精品国产91久久来源 | av在线网站免费观看 | 亚洲视频在线观看免费 | 免费看搞黄视频网站 | 在线观看免费色 | 国产视频在线播放 | 日韩在线网 | 韩国av一区| 色窝资源 | 亚洲一级二级三级 | 国产视频手机在线 | 精品国产aⅴ一区二区三区 在线直播av | 亚洲精品免费观看视频 | 成人中文字幕av | 免费av在线网站 | 99色在线视频 | 亚洲综合在线播放 | 国产在线免费av | 91探花国产综合在线精品 | 久久久久久久久影院 | 在线观看av中文字幕 | 婷婷久久一区二区三区 | 国产精品久久久久久999 | 在线免费av播放 | 色干干| 午夜精品久久久久久99热明星 | 国产麻豆精品传媒av国产下载 | 精品国产片 | 色多多污污在线观看 | 精品国产一区二区三区男人吃奶 | 久久久久免费网 | 婷婷激情站 | 日韩在线一区二区免费 | 中文字幕在线观看视频一区二区三区 | 国产第一福利网 | 美女网站免费福利视频 | 超碰在线公开 | 国际精品网 | 久久人人97超碰com | 欧美日韩一区二区在线观看 | 午夜久久久久久久久久影院 | 午夜久久网站 | 亚洲人视频在线 | 成人黄色小说在线观看 | 久久久国产精品亚洲一区 | 在线亚洲小视频 | 国产精品麻豆三级一区视频 | 欧美午夜性| 欧美精品久久 | 国产中文| 99免费精品视频 | 超碰97人人射妻 | 久久99热精品这里久久精品 | 成人国产精品久久久 | 丁香av | 一区二区三区免费在线观看 | 亚洲国产三级在线 | 国产午夜三级一二三区 | 三级在线视频观看 | 色视频在线免费观看 | 久久97久久97精品免视看 | 五月天婷婷在线观看视频 | 国产在线一卡 | 日韩av视屏在线观看 | 国内精品久久久久影院男同志 | 精品视频免费观看 | 国产一级视频在线免费观看 | 欧美久草网 | 欧美另类成人 | 99re国产视频 | 黄污视频网站 | 国产精品一区免费在线观看 | 日韩精品中文字幕在线播放 | 日本护士三级少妇三级999 | 日本不卡一区二区三区在线观看 | 中文字幕一区二区三区四区视频 | 亚洲国产精品传媒在线观看 | 狠狠干成人综合网 | 午夜神马福利 | 六月激情网 | 国产91aaa | 奇米影视999 | 最新av在线免费观看 | 欧美精选一区二区三区 | 日韩av一区二区在线播放 | 亚洲午夜精品久久久久久久久久久久 | 国产精品国产毛片 | 九九精品无码 | 久久这里只有精品视频99 | 色视频在线看 | 亚洲国产小视频在线观看 | 顶级欧美色妇4khd | 精品久久一二三区 | 国产精品第一页在线 | 国内精品二区 | 又湿又紧又大又爽a视频国产 | 国产亚洲成av人片在线观看桃 | 亚洲欧美国产视频 | 日韩在线观看视频一区二区三区 | 欧美人体xx | 婷婷电影在线观看 | 波多野结衣综合网 | 91亚洲精品国偷拍自产在线观看 | 手机av在线不卡 | 日韩电影中文字幕在线 | 国产成人精品福利 | 91av视频在线免费观看 | 亚洲一级片免费观看 | 天天干天天天天 | 天堂网一区二区 | 激情中文字幕 | 麻豆一区二区三区视频 | 人人爽久久久噜噜噜电影 | 一二区av | 久久九九精品 | 在线亚洲成人 | 狠狠成人 | 中文字幕在线观看完整版电影 | 成人免费观看av | 久久9精品 | 久久黄色免费视频 | 亚洲欧美日韩在线看 | 亚洲经典视频在线观看 | 亚洲人成精品久久久久 | 婷婷久久久 | 欧美日韩三级 | 免费观看性生交大片3 | 国产成人a v电影 | 精品国产人成亚洲区 | 国产色婷婷精品综合在线手机播放 | 欧美一级特黄高清视频 | 97在线观看免费高清 | 日日夜夜精品 | 日韩高清三区 | 午夜精品久久久久久久久久久久 | 亚洲综合在线播放 | av网址在线播放 | 高清精品在线 | 色的网站在线观看 | 日韩精品一区二区三区水蜜桃 | 精品在线一区二区三区 | 免费毛片aaaaaa| 中文av影院 | 色五月成人 | 人成在线免费视频 | 在线视频中文字幕一区 | 国产 字幕 制服 中文 在线 | 国产福利免费在线观看 | 激情五月亚洲 | 久草在线视频网站 | 丁香九月激情 | 91最新视频| 精品国产一区二区三区在线 | 国产无吗一区二区三区在线欢 | 国产精品av在线免费观看 | 欧美少妇bbwhd | 视频在线91| 亚洲国产精品va在线看黑人 | 国产午夜精品理论片在线 | 亚洲欧美精品一区二区 | 国产精品18久久久久久vr | 亚洲网站在线 | 亚洲h色精品| 亚洲综合在线播放 | 在线中文视频 | 国产欧美日韩精品一区二区免费 | 久草在线视频网 | 成人免费视频免费观看 | 又黄又爽又湿又无遮挡的在线视频 | av电影一区二区三区 | 国产午夜精品福利视频 | 久久成电影 | 亚洲一区二区高潮无套美女 | 国产美女免费观看 | 亚洲精品国偷拍自产在线观看 | 亚洲美女免费精品视频在线观看 | 日韩免费一区二区在线观看 | 亚洲精品在线看 | 国产成人91 | 超碰在线亚洲 | 国产一区二区高清视频 | 亚洲高清av | 永久免费精品视频网站 | 亚洲1区在线 | 精品亚洲欧美无人区乱码 | 日韩av在线免费看 | 人人草在线视频 | 日韩成人精品一区二区三区 | 就要色综合 | 在线有码中文字幕 | 国产不卡精品 | 亚洲视频免费在线 | 欧美精品日韩 | 97精品国产一二三产区 | 西西大胆免费视频 | 青青草在久久免费久久免费 | 国产精品永久免费 | 懂色av一区二区在线播放 | 国产成人久久精品77777 | 国产小视频你懂的 | 在线观看视频国产一区 | 麻豆果冻剧传媒在线播放 | 婷婷开心久久网 | 麻豆传媒视频在线免费观看 | 一区二区三区三区在线 | 99久久精品国产一区 | 欧美在线一二区 | 中文字幕在线影院 | 国内精品久久久久影院男同志 | 久久99精品国产99久久 | 久久大视频 | 国产精品区二区三区日本 | 一 级 黄 色 片免费看的 | 狠狠狠色丁香婷婷综合激情 | 免费在线看成人av | 91精品1区2区 | 成人av动漫在线观看 | 中文字幕网站视频在线 | 久草在线观看视频免费 | 亚洲日日射 | 久草在线视频新 | 日本久久91 | 国产午夜精品免费一区二区三区视频 | 亚洲久草网 | 久久99久久99久久 | 一区二区三区在线视频观看58 | 日韩欧美一区二区在线播放 | 国产123区在线观看 国产精品麻豆91 | 亚洲电影久久久 | av午夜电影 | av网站地址 | 在线91色 | 国产精品中文字幕在线 | 日产乱码一二三区别在线 | 丁香六月天婷婷 | 久久久久久高潮国产精品视 | 成年人网站免费在线观看 | 国产黄色免费看 | 久久国色夜色精品国产 | 在线观看亚洲a | 国产91aaa| 免费视频一区二区 | 九九热精品视频在线播放 |