精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

微信Android熱補丁實踐演進之路

移動開發 Android
通過本文,我希望大家不僅能夠全面的了解各項熱補丁技術的優缺點,同時也能對它的應用場景有著更加全面的認識。在此基礎上,大家或許能更容易的決定是否在自己的項目中使用熱補丁技術,以及應當如何使用它。

繼插件化后,熱補丁技術在2015年開始爆發,目前已經是非常熱門的Android開發技術。其中比較著名的有淘寶的Dexposed、支付寶的AndFix以及Qzone的超級熱補丁方案。微信對熱補丁技術的研究并不算早,大約開始于2015年6月。經過研究與嘗試現有的各個方案,我們發現它們都有著自身的一些局限性。微信最終采用不同于它們的技術方案,走出了自己的實踐演進之路。

另外一方面,技術應當只是熱補丁方案中的一環。隨著對熱補丁的多次嘗試與應用,微信建立起自身的流程規范,同時也不斷的嘗試拓展它的應用場景。通過本文,我希望大家不僅能夠全面的了解各項熱補丁技術的優缺點,同時也能對它的應用場景有著更加全面的認識。在此基礎上,大家或許能更容易的決定是否在自己的項目中使用熱補丁技術,以及應當如何使用它。

一.為什么需要熱補丁

熱補?。?/strong>讓應用能夠在無需重新安裝的情況實現更新,幫助應用快速建立動態修復能力。

從上面的定義來看,熱補丁節省Android大量應用市場發布的時間。同時用戶也無需重新安裝,只要上線就能無感知的更新??雌饋砗苊篮茫@是否可以意味我們可以盡量使用補丁來代替發布呢?事實上,熱補丁技術當前依然存在它的局限性,主要表現在以下幾點:

  • 補丁只能針對單一客戶端版本,隨著版本差異變大補丁體積也會增大;
  • 補丁不能支持所有的修改,例如AndroidManifest;
  • 補丁無論對代碼還是資源的更新成功率都無法達到100%。

既然補丁技術無法完全代替升級,那它適合使用在哪些場景呢?

二. 輕量而快速的升級

熱補丁技術也可以理解為一個動態修改代碼與資源的通道,它適合于修改量較少的情況。以微信的多次發布為例,補丁大小均在300K以內,它相對于傳統的發布有著很大的優勢。

 

以Android用戶的升級習慣,即使是相對活躍的微信也需要10天以上的時間去覆蓋50%的用戶。使用補丁技術,我們能做到1天覆蓋70%以上。這也是基于補丁體積較小,可以直接使用移動網絡下載更新。

正因如此,補丁技術非常適合使用在灰度階段。在過去,我們需要在正式發布前保證所有嚴重的問題都已經得到修復,這通常需要我們經過三次以上的灰度過程,而且無法快速的驗證這些問題在同一批用戶的修復效果。利用熱補丁技術,我們可以快速對同一批用戶驗證修復效果,這大大縮短我們的發布流程。

 

若發布版本出現問題或緊急漏洞,傳統方式需要單獨灰度驗證修改,然后重新發布新的版本。利用補丁技術,我們只需要先上線小部分用戶驗證修改的效果,***再全量上線即可。但是此種發布對線上用戶影響較大, 我們需要謹慎而為。本著對用戶負責的態度,發布補丁等同于發布版本,它也應該嚴格執行完整的測試與上線流程。

 

總的來說,補丁技術可以降低開發成本,縮短開發周期,實現輕量而快速的升級。

三. 遠端調試

一入Android深似海,Android開發的另外一個痛是機型的碎片化。我們也許都會遇到"本地不復現","日志查不出","聯系用戶不鳥你"的煩惱。所以補丁機制非常適合使用在遠端調試上。即我們需要具備只特定用戶發送補丁的能力,這對我們查找問題非常有幫助。

 

利用補丁技術,我們避免了騷擾用戶而默默的為用戶解決問題。當然這也需要非常嚴格的權限管理,以防惡意或隨意使用。

四. 數據統計

數據統計在微信中也占據著非常重要的位置,我們也非常希望將熱補丁與數據統計結合的更好。事實上,熱補丁無論在普通的數據統計還是ABTest都有著非常大的優勢。例如若我想對同一批用戶做兩種test, 傳統方式無法讓這批用戶去安裝兩個版本。使用補丁技術,我們可以方便的對同一批用戶更換補丁版本。

在數據統計之路,如何與補丁技術結合的更好,更加精準的控制樣本人數與比例,這也是微信當前努力發展的一個方向。

 

五. 其他

事實上,Android官方也使用熱補丁技術實現Instant Run。它分為Hot Swap、Warm Swap與Cold Swap三種方式,大家可以參考英文介紹,也可以看參考文章中的翻譯稿。***的Instant App應該也是采用類似的原理,但是Google Play是不允許下發代碼的,這個海外App需要注意一下。

六.微信熱補丁技術的演進之路

在了解補丁技術可以與適合做什么之后,我們回到技術本身。由于Dexposed無法支持全平臺,并不適合應用到商業產品中。所以這里我們只簡單介紹Andfix、Qzone、微信幾套方案的實現,以及它們方案面臨著的問題,大家也可以參考資料中的各大熱補丁方案分析和比較一文。

1. AndFix

AndFix采用native hook的方式,這套方案直接使用dalvik_replaceMethod替換class中方法的實現。由于它并沒有整體替換class, 而field在class中的相對地址在class加載時已確定,所以AndFix無法支持新增或者刪除filed的情況(通過替換init與clinit只可以修改field的數值)。

 

也正因如此,Andfix可以支持的補丁場景相對有限,僅僅可以使用它來修復特定問題。結合之前的發布流程,我們更希望補丁對開發者是不感知的,即他不需要清楚這個修改是對補丁版本還是正式發布版本(事實上我們也是使用git分支管理+cherry-pick方式)。另一方面,使用native替換將會面臨比較復雜的兼容性問題。

 

相比其他方案,AndFix的***優點在于立即生效。事實上,AndFix的實現與Instant Run的熱插拔有點類似,但是由于使用場景的限制,微信在最初期已排除使用這一方案。

2. Qzone

Qzone方案并沒有開源,但在github上的Nuwa采用了相同的方式。這個方案使用classloader的方式,能實現更加友好的類替換。而且這與我們加載Multidex的做法相似,能基本保證穩定性與兼容性。具體原理在這里不再細說,大家可以參考"安卓App熱補丁動態修復技術介紹"這篇文章。

本方案為了解決unexpected DEX problem異常而采用插樁的方式,從而規避問題的出現。事實上,Android系統的這些檢查規則是非常有意義的,這會導致Qzone方案在Dalvik與Art都會產生一些問題。

Dalvik; 在dexopt過程,若class verify通過會寫入pre-verify標志,在經過optimize之后再寫入odex文件。這里的optimize主要包括inline以及quick指令優化等。

 

若采用插樁導致所有類都非preverify,這導致verify與optimize操作會在加載類時觸發。這會有一定的性能損耗,微信分別采用插樁與不插樁兩種方式做過兩種測試,一是連續加載700個50行左右的類,一是統計微信整個啟動完成的耗時。

 

平均每個類verify+optimize(跟類的大小有關系)的耗時并不長,而且這個耗時每個類只有一次。但由于啟動時會加載大量的類,在這個情況影響還是比較大。

Art; Art采用了新的方式,插樁對代碼的執行效率并沒有什么影響。但是若補丁中的類出現修改類變量或者方法,可能會導致出現內存地址錯亂的問題。為了解決這個問題我們需要將修改了變量、方法以及接口的類的父類以及調用這個類的所有類都加入到補丁包中。這可能會帶來補丁包大小的急劇增加。

 

這里是因為在dex2oat時fast*已經將類能確定的各個地址寫死。如果運行時補丁包的地址出現改變,原始類去調用時就會出現地址錯亂。這里說的可能不夠詳細,事實上微信當時為了查清這兩個問題,也花費了一定的時間將Dalvik跟Art的流程基本搞透。若大家對這里感興趣,后續在單獨的文章詳細論述。

總的來說,Qzone方案好處在于開發透明,簡單,這一套方案目前的應用成功率也是***的,但在補丁包大小與性能損耗上有一定的局限性。特別是無論我們是否真正應用補丁,都會因為插樁導致對程序運行時的性能產生影響。微信對于性能要求較高,所以我們也沒有采用這套方案。

3. 微信熱補丁方案

有沒有那么一種方案,能做到開發透明,但是卻沒有Qzone方案的缺陷呢?Instant Run的冷插拔與buck的exopackage或許能給我們靈感,它們的思想都是全量替換新的Dex。即我們完全使用了新的Dex,那樣既不出現Art地址錯亂的問題,在Dalvik也無須插樁。當然考慮到補丁包的體積,我們不能直接將新的Dex放在里面。但我們可以將新舊兩個Dex的差異放到補丁包中,最簡單我們可以采用BsDiff算法。

 

簡單來說,在編譯時通過新舊兩個Dex生成差異patch.dex。在運行時,將差異patch.dex重新跟原始安裝包的舊Dex還原為新的Dex。這個過程可能比較耗費時間與內存,所以我們是單獨放在一個后臺進程:patch中。為了補丁包盡量的小,微信自研了DexDiff算法,它深度利用Dex的格式來減少差異的大小。它的粒度是Dex格式的每一項,可以充分利用原本Dex的信息,而BsDiff的粒度是文件,AndFix/Qzone的粒度為class。

 

這塊后面我希望后面用單獨的文章來講述,這里先做一個鋪墊,大致的效果如下圖。在最極端的情況,由于利用了原本dex的信息完全替換一個13M的Dex,我們的補丁大小也僅僅只有6.6M。

 

但是這套方案并非沒有缺點,它帶來的問題有兩個:

  • 占用Rom體積;這邊大約是你所修改Dex大小的1.5倍(Dex壓縮成jar的大小加上生成的dexopt文件大小)。
  • 一個額外的合成過程;雖然我們單獨放在一個進程上處理,但是合成時間的長短與內存消耗也會影響最終的成功率(與修改Dex大小、補丁大小相關)。

微信的熱補丁方案叫做Tinker,也算緬懷一下Dota中的地精修補匠,希望能做到***刷新。

 

限于篇幅,這里對Dex、library以及資源的更多技術細節并沒有詳細的論述,這里希望放在后面的單獨文章中。我們***從整體比較一下這幾種方案:

 

若不care性能損耗與補丁包大小,Qzone方案是最簡單且成功率***的方案(沒有單獨的合成過程)。相對Tinker來說,它的占用Rom體積也更小。另一方面,Qzone與Tinker的成功率當前大約相差3%左右。

事實上,一個完整的框架應該也是一個容易使用的框架。Tinker對補丁版本管理、進程管理、安全校驗等都有著很好的支持。同時我們也支持gradle與命名行兩種接入方式。希望在不久的將來,它可以很快的跟大家見面。

七.微信的熱補丁應用現狀

上一章節我們簡單比較了各個熱補丁的技術方案,它們解決了如何生成與加載補丁包的問題。但一個完善的熱補丁系統不應該僅限于此,它還需要包括以下幾個方面:

網絡通道;這里要解決的問題是決定補丁以何種方式推送給哪部分的用戶。

上線與后臺管理平臺;這里主要包括熱補丁的上線管理,歷史管理以及上報分析,報警監控等;

1. 網絡通道現狀

網絡通道負責的將補丁包交付給用戶,這個包括特定用戶與全量用戶兩種情況。事實上,微信當前針對熱補丁有以下三種通道更新:

  • pull通道; 在登陸/24小時等時機,通過pull方式查詢后臺是否有對應的補丁包更新,這也是我們最常用的方式;
  • 指定版本的push通道; 針對版本的通道,在緊急情況下,我們可以在一個小時內向所有用戶下發補丁包更新。
  • 指定特定用戶的push通道;對特定用戶或用戶組做遠程調試。

事實上,對于大部分的應用來說,假設不實現push通道,CDN+pull通道實現起來還是較為容易。

2. 上線與管理平臺現狀

上線與管理平臺主要為了快速上線,管理歷史記錄,以及監控補丁的運行情況等(界面比較丑陋,因為我們木有美工啊)。

 

事實上,微信發布熱補丁是非常慎重的。它整個發布流程與升級版本是保持一致的,也必須修改版本號、經過嚴格的完整測試流程等。我們也會通過灰度的方式上線,同時監控補丁版本的各個指標。這里的為了完整的監控補丁的情況,我們做的工作有:

  • 1分鐘粒度的每小時/每天的各版本累積用戶,及時監控補丁版本的人數與活躍;
  • 3分鐘粒度的Crash統計,基準版本與補丁版本的Crash每小時/每天的兩個維度對照;
  • 10分鐘粒度的補丁監控信息上報。

3. 補丁成功率現狀

應用成功率= 補丁版本人數/補丁發布前該版本人數

由于可能存在基準或補丁版本用戶安裝了其他版本,所以本統計結果應略為偏低,但它能現實的反應補丁的線上覆蓋情況。

使用Qzone方案,微信補丁在10天后的應用成功率大約在98.5%左右。使用Tinker大約只有95.5%左右,主要原因在于空間不足以及后臺進程被殺。在這里我們也在嘗試使用重試的方式以及降低合成的耗時與內存,從而提升成功率。

熱補丁技術發展的很快,Android推出的Instant App也令人期待。但是在國內,似乎我們還是指望自己更靠譜一點。每一個的應用的需求都不太一致,這里大致講了一些微信的實踐經驗,希望對大家有幫助。

八.未來工作

隨著微信部門內從“單APP”向“多APP”演進,微信也正在邁入開源化的開發實踐。我們希望將各個功能組件化,從而做可以到快速復制與應用。微信的熱補丁框架“Tinker”當前也在經歷從微信分離,又合入到微信的過程。希望在不久的將來,我們也可以將“Tinker”以及微信中一些其他的組件開源出去。

我們也希望可以找一些App作為內測,給我們提供寶貴的意見。若對微信的Tinker方案感興趣的用戶,可以單獨發消息或在文章末留言注明姓名、所在公司以及負責的App,我們希望挑選部分產品作為內測。

責任編輯:未麗燕 來源: 騰訊云棲社區
相關推薦

2019-01-16 10:33:41

Linux

2010-01-18 17:32:03

2019-02-19 21:18:15

微信物聯網互聯網

2016-03-04 10:29:51

微信支付源碼

2019-02-18 15:23:21

馬蜂窩MESLambda

2023-07-02 11:14:21

工具TypeScript框架

2017-06-07 23:33:01

應用程序熱補丁代碼

2017-06-07 23:15:30

應用程序熱補丁代碼

2017-08-11 16:10:36

微信Android實踐

2017-08-08 16:07:57

Android 模塊化架構

2013-02-26 09:41:31

微信Line

2023-01-03 17:43:39

網易郵箱數倉

2024-10-28 22:37:36

下載中心設計系統

2024-07-17 11:40:58

2009-08-05 16:14:32

CDMA網絡的演進無線網絡發展

2018-03-27 10:06:26

對象存儲演進

2024-03-29 13:25:12

互動玩法直播

2013-04-08 15:33:28

微信微信公眾平臺公眾賬號

2018-03-28 09:53:50

Android架構演進

2023-11-14 20:51:08

點贊
收藏

51CTO技術棧公眾號

91国内免费在线视频| 亚洲国产精品专区久久| 黄色高清视频网站| www.天堂在线| 免费在线亚洲欧美| 在线播放日韩av| 久久发布国产伦子伦精品| 涩涩涩在线视频| 国产精品久久久久久久久久免费看| 91九色蝌蚪成人| 日本特级黄色片| 亚洲国产精品久久久天堂| 日韩av在线电影网| 久久6免费视频| 日韩性xxx| 亚洲成人自拍偷拍| 影音先锋欧美资源| 男人天堂亚洲二区| 国产xxx精品视频大全| 国产精品jizz在线观看麻豆| 国产一级一片免费播放放a| 国际精品欧美精品| 亚洲国产精品一区二区三区| 亚洲综合在线一区二区| 免费污视频在线一区| 性欧美大战久久久久久久久| 国产日产欧美一区二区| 粉嫩一区二区三区国产精品| av亚洲精华国产精华精华| 国产日韩中文字幕| 波多野结衣日韩| 亚洲综合精品| 久久久久久网站| 国产精品99久久久久久成人| 国产尤物久久久| 亚洲欧美精品在线| 亚洲图片综合网| 中文字幕亚洲在线观看| 欧美精品xxxxbbbb| 五月婷婷深爱五月| 欧美电影网站| 欧美天天综合色影久久精品| 久久99中文字幕| 污污的网站在线免费观看| 中文字幕一区不卡| 一本一道久久久a久久久精品91| 美女欧美视频在线观看免费| 97se亚洲国产综合自在线观| 精品一区日韩成人| 欧美 日韩 国产 在线| 高清久久久久久| 鬼打鬼之黄金道士1992林正英| 夜夜狠狠擅视频| 久久精品久久精品| 国产精品午夜一区二区欲梦| 这里只有久久精品视频| 日本不卡视频在线观看| 国产精品极品在线| 在线观看日韩一区二区| 久久99精品久久久久久动态图| 国产日韩视频在线观看| 中文字幕丰满人伦在线| 久久99精品国产麻豆不卡| 国产一区玩具在线观看| 国产欧美日韩成人| 国产不卡在线播放| 激情视频一区二区| 欧美日韩伦理片| 欧美国产综合色视频| 亚洲国产激情一区二区三区| 激情影院在线观看| 亚洲免费在线观看| 国产成人在线小视频| а√天堂8资源中文在线| 婷婷中文字幕一区三区| 久久久免费视频网站| 羞羞影院欧美| 欧美精品丝袜久久久中文字幕| 日日夜夜精品视频免费观看| 中文字幕视频精品一区二区三区| 日韩经典一区二区三区| av永久免费观看| 一区二区三区在线| 欧美亚洲免费电影| 又污又黄的网站| 国产白丝精品91爽爽久久| 六月婷婷久久| 嫩草香蕉在线91一二三区| 亚洲综合一区二区三区| 农村妇女精品一二区| 亚洲精品一区av| 亚洲第一网站男人都懂| 免费一级特黄3大片视频| 亚洲精品久久久| 2020欧美日韩在线视频| 亚洲天堂网视频| 不卡av在线网| 一本一本a久久| 国产精品13p| 欧美精品久久久久久久久老牛影院| 久久久久亚洲无码| 色喇叭免费久久综合网| 97免费在线视频| 亚洲视频在线免费播放| 成人黄色在线看| 一区精品视频| 波多野结衣亚洲| 欧美变态口味重另类| www.涩涩爱| 亚洲欧美日韩专区| 99视频免费观看| 在线免费观看黄色av| 午夜a成v人精品| 成人三级做爰av| 久久资源中文字幕| 欧美在线性爱视频 | 国产精品vip| 国产精品美女www| 日韩精品视频无播放器在线看| 亚洲私人黄色宅男| 手机看片福利盒子久久| 老司机精品在线| 欧美大尺度在线观看| 一区二区三区精| 欧美韩国日本不卡| 久久久噜噜噜www成人网| 大奶在线精品| 久久99久久99精品中文字幕| 91丨porny丨在线中文 | 中文欧美字幕免费| 各处沟厕大尺度偷拍女厕嘘嘘| 亚洲一区二区免费在线观看| 精品国产视频在线| 在线亚洲欧美日韩| 中文字幕乱码久久午夜不卡| 成人免费毛片播放| 亚洲美女15p| 欧美又大又粗又长| 天天干天天草天天射| 亚洲国产aⅴ成人精品无吗| 手机在线观看日韩av| 欧美xxav| 亚洲精品欧美日韩| 在线看三级电影| 欧美一区二区三区四区视频| 亚洲怡红院在线观看| 蜜臀a∨国产成人精品| 亚洲欧美国产精品桃花| 国精品产品一区| 久久久国产视频| 国产三级三级在线观看| 怡红院av一区二区三区| 久久久久亚洲av成人网人人软件| 欧美三区在线| 国产在线视频欧美一区二区三区| 538在线视频| 亚洲精品视频在线播放| 日本久久综合网| 中文字幕精品在线不卡| 亚洲精品中文字幕乱码无线| 91精品国产成人观看| 成人免费视频观看视频| 国产无遮挡裸体视频在线观看| 精品国产乱码久久久久久1区2区| 国产成人在线观看网站| 91片在线免费观看| 亚洲五月天综合| 小小影院久久| 国产免费一区二区| 高清不卡亚洲| 久久久国产精品免费| 亚洲精品久久久久久久久久久久久久 | 精品视频一区二区三区四区| 老司机成人影院| 俺也去精品视频在线观看| www夜片内射视频日韩精品成人| 亚洲国产精品影院| 亚洲熟妇一区二区三区| 美洲天堂一区二卡三卡四卡视频| 日本一级淫片演员| 色吊丝一区二区| 国产精品视频公开费视频| av片在线观看免费| 日韩激情视频在线| 国产又粗又黄又爽| 精品久久久精品| 精品伦精品一区二区三区视频密桃 | 人妻一区二区三区| 欧美亚洲国产怡红院影院| 亚洲 欧美 变态 另类 综合| 99国产精品一区| 自拍偷拍一区二区三区四区| 亚洲国产1区| 日韩高清三级| 国产成人精品福利| 国产精品三级久久久久久电影| 黄色小说在线播放| 一区二区三区视频观看| 国产小视频一区| 欧美美女喷水视频| 中文字幕在线观看视频网站| 中文字幕人成不卡一区| 可以直接看的无码av| 国产一区二区电影| 欧美日韩亚洲自拍| 99精品国产99久久久久久福利| 亚洲一区二区三区免费看| 欧美亚洲国产日韩| 99电影在线观看| 福利精品在线| 欧亚精品中文字幕| 丰满大乳少妇在线观看网站| 日韩专区在线观看| 韩国中文字幕2020精品| 亚洲国产精品国自产拍av秋霞| 91成人在线免费| 婷婷亚洲久悠悠色悠在线播放| 国产精品成人69xxx免费视频| 久久久久久久久久久黄色| 特黄特色免费视频| 精品亚洲成a人| 午夜免费福利在线| 日韩高清电影一区| 免费日韩视频在线观看| 亚洲日本激情| 六月婷婷激情综合| 一区二区免费不卡在线| 亚洲一区三区在线观看| 日韩激情图片| 小说区图片区图片区另类灬| 欧美热在线视频精品999| 久久精品国产精品青草色艺| 高清精品视频| 成人区精品一区二区| 香蕉大人久久国产成人av| 国产这里只有精品| 亚洲最大的免费视频网站| 国产精品爽爽ⅴa在线观看| 毛片免费看不卡网站| 国产91精品久久久久久| 擼擼色在线看观看免费| 91黄色8090| 国产直播在线| 欧美一区二区.| 成人免费看黄| 国产成人拍精品视频午夜网站| 中文在线免费二区三区| 日韩美女主播视频| 国产成人精品一区二三区在线观看| 日本三级久久久| 亚洲精品粉嫩美女一区| 国产精品亚发布| 成人久久精品| 成人高清在线观看| 久9re热视频这里只有精品| 国产在线欧美日韩| 免费观看久久av| 亚洲视频在线二区| 一区二区在线| 久久综合久久网| 香蕉成人久久| 中文字幕 日韩 欧美| 国产在线国偷精品产拍免费yy| 美女被艹视频网站| 波波电影院一区二区三区| 蜜桃av免费看| 亚洲欧美在线视频观看| 国产一级特黄视频| 一本一道综合狠狠老| 中文字幕有码视频| 欧美伦理视频网站| 欧美一级做性受免费大片免费| 亚洲久久久久久久久久| a√资源在线| 欧美国产精品日韩| 三上悠亚国产精品一区二区三区| 国产精品丝袜白浆摸在线 | 国产成人免费在线观看视频| 亚洲欧美视频在线观看视频| 日韩成人高清视频| 欧美丝袜丝nylons| 亚洲黄色片视频| 国产丝袜一区二区三区免费视频| h视频在线观看免费| 按摩亚洲人久久| 擼擼色在线看观看免费| 国产女精品视频网站免费| 我要色综合中文字幕| 欧美性xxxx69| 欧美黄色aaaa| 欧美精品成人网| 国产在线麻豆精品观看| 91玉足脚交白嫩脚丫| 国产精品久久久久久久久果冻传媒 | 国产精品永久免费在线| 国产在线播放精品| 国产又黄又爽免费视频| 国产农村妇女精品一二区| 日韩精品视频一二三| av男人天堂一区| 国产精品成人69xxx免费视频| 色综合久久88色综合天天6| 国产成人a人亚洲精品无码| 亚洲天堂男人天堂女人天堂| 精灵使的剑舞无删减版在线观看| 国产啪精品视频网站| 日韩美女精品| www.激情网| 麻豆国产精品777777在线| 国产精品无码在线| 亚洲精品美国一| 夜夜嗨aⅴ一区二区三区| 亚洲天堂精品在线| bl视频在线免费观看| 91在线视频成人| 日韩在线看片| 无码日韩人妻精品久久蜜桃| 91免费看`日韩一区二区| 欧美精品乱码视频一二专区| 在线电影一区二区三区| 成年人在线观看网站| 国产成人精品免费视频| 婷婷国产精品| 青青青免费在线| 国产99久久久久久免费看农村| 三级在线观看免费大全| 欧美精品在线观看一区二区| 欧美被日视频| 成人av.网址在线网站| 日韩久久电影| 亚洲综合欧美激情| 国产色产综合色产在线视频| 亚洲AV无码成人精品区东京热| 亚洲国产精品久久91精品| 国产丝袜视频在线播放| 99国产在线观看| 欧美日韩国产综合网| 精品人妻一区二区三| 亚洲另类在线一区| 精品久久久久中文慕人妻| 久久在线免费视频| 亚洲综合资源| 欧美 国产 精品| 国产精品77777| 久久国产在线视频| 精品国产乱码久久| 黄色软件视频在线观看| 久久综合九色综合网站| 久久精品首页| 正在播放国产对白害羞| 欧美女孩性生活视频| 成人国产免费电影| 999在线免费观看视频| 亚洲免费成人| 美女爆乳18禁www久久久久久| 在线看国产一区| 免费av不卡| 官网99热精品| 美女精品在线观看| 91激情视频在线观看| 欧美日本在线播放| 在线视频观看国产| 久久精品美女| 日本aⅴ免费视频一区二区三区| 国产精品麻豆一区| 欧美一区二区在线播放| 久操av在线| 日韩欧美视频第二区| 精品一区二区在线免费观看| 久久久久久久九九九九| 日韩精品一区二区三区第95| 成人精品三级| 91免费国产精品| 国产亚洲综合在线| 国产精品国产av| 性欧美亚洲xxxx乳在线观看| 国产精品一区高清| 老女人性生活视频| 色婷婷久久一区二区三区麻豆| 欧美激情午夜| 国产欧美一区二区三区另类精品 | 国产精品视频免费观看www| 欧美国产三区| 91成人破解版| 欧美一个色资源| 亚洲优女在线| 成人免费看片视频在线观看| 91蜜桃传媒精品久久久一区二区| 亚洲手机在线观看| 91国产一区在线| 天天av综合| 日本黄色特级片| 日韩美女主播在线视频一区二区三区| 亚洲电影观看| 久久www视频| 国产精品你懂的在线| 天堂中文在线8| 91蜜桃网站免费观看| 日本女优在线视频一区二区| 日韩特黄一级片|