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

轉轉Flutter實踐之路

開發 項目管理
目前轉轉在Flutter方向上的實踐和探索只是一個起點,我們意識到仍然有很多工作需要去做。我們堅信Flutter作為一項領先的跨端技術,將為轉轉業務的發展帶來巨大的潛力和機會。我們將持續努力,加強技術建設,不斷完善實踐經驗,推動Flutter在轉轉的應用和發展,為用戶提供更好的產品和體驗。

前言

跨端技術一直是移動端開發領域的熱門話題,Flutter 作為一種領先的移動跨端技術之一,憑借其快速的渲染引擎、豐富的UI組件庫和強大的開發工具,成為了開發人員的首選之一。

從 Flutter 誕生之初,我們就一直關注著它的發展,Flutter 早期版本變更較為頻繁,并且經常伴隨著 Breaking Change,另外可用的三方插件較少且不穩定。直到2019年,Flutter 的熱度暴漲,國內不少團隊陸續把 Flutter 引入到了生產環境使用,社區也涌現出不少優秀的開源項目,我們也決定在這個時候做一些技術上的嘗試。

經過這幾年在 Flutter 技術上的不斷學習、探索和積累,Flutter 已經成為了客戶端技術體系中的重要組成部分。

回顧整個過程,我們大致經歷了這么幾個階段:可行性驗證、基建一期建設、小范圍試驗、基建二期建設、大范圍推廣、前端生態的探索,下文將分別對每個階段展開進行介紹。

可行性驗證

其實在這之前我們已經做過了一些調研,但許多結論都是來源于網上的一些文章或者其它團隊的實踐,這些結論是否靠譜是否真實還有待商榷,另外,網上的文章大都千篇一律,要么使勁吹捧,要么使勁貶低,要得出相對客觀的結論還是得需要我們自己通過實踐才能得出。

目標

我們確定了以下幾個維度,用來評估 Flutter 是否值得我們進一步投入:

  • 開發效率
  • UI一致性
  • 性能體驗
  • 學習成本
  • 發展趨勢

由于前期對 Flutter 的熟練度不高,基礎設施也還沒有搭建起來,所以在開發效率上,我們期望的 Flutter 的開發耗時能保持在原生開發耗時的 1.5 倍以內,不然雖然實現了跨端,但是需求的開發周期反而被拉長了,這樣得不償失。在UI一致性上,我們期望同一份代碼在兩端的表現要基本達到一致,不需要額外的適配成本。在性能方面,盡量保證崩潰、卡頓、內存、幀率這些指標在可控范圍內。

方案

我們希望用較小的代價完成上述維度的評估,所以在試驗期間的架構及基礎設施方面我們做的比較簡單。

測試目標

當時我們正在做一個叫切克的 App,用戶量級比較小,工程架構也相對簡單一些,正好可以用來做一些技術方面的探索和驗證。

我們選擇的是切克的商品詳情頁,用 Flutter 技術實現了一個一模一樣的商詳,按1:1的流量分配給 Native 和 Flutter。

項目架構

由于我們的工程不是一個全新的項目,所以采用的是 Native 與 Flutter 混合開發的方式,Native 主工程只依賴 Flutter 產物即可,同時也盡量避免對原有工程的影響。

關于混合頁面棧的問題,我們沒有額外處理,因為暫時只測試一個頁面,不會涉及到多頁面混合棧的問題,所以暫時先忽略。

構建流程

為了降低驗證成本,我們沒有對接現有的 Native 的持續集成流程,而是直接在本地構建 Flutter 產物,然后上傳到遠程倉庫。

結論

經過一段時間的線上驗證,我對 Flutter 技術基本有了一個比較全面的了解:

在開發效率上由于基礎庫和基建的缺失,在處理 Flutter 業務跟 Native 業務的交互時需要更多的適配成本,包括像頁面跳轉、埋點上報、接口請求、圖片加載等也需要額外的處理,但我們評估隨著后續基建的不斷完善,這部分的效率是可以逐步得到改善的;而在涉及UI開發方面,得益于熱重載等技術,Flutter 的開發效率是要優于原生開發的。整體評估下來,在開發效率方面 Flutter 是符合我們的預期的。

在UI一致性上,除了在狀態欄控制和文本在某些情況下需要特殊適配下外,其它控件在兩端的表現基本一致。

在性能表現上,Flutter 會額外引入一些崩潰,內存占用也有所上漲,但還在可接受范圍內。

Flutter 的學習成本相對還是比較高,畢竟需要單獨學習一門語言,另外 Flutter 的渲染原理也跟原生有很多差異,需要轉變思維才能更快的適應,此外 Flutter 還提供了眾多的 Widget 組件,也需要較長時間學習。

在發展趨勢上,Flutter 無疑是當時增長最快的跨端技術之一,社區的活躍程度以及官方的投入都非常高,國內不少團隊也都在積極推進 Flutter 技術的發展,Flutter 正處在一個快速的上升期。

整體來說,Flutter 是滿足我們團隊對跨平臺技術的需求的,我們計劃在接下來的一段時間投入更多資源,把 Flutter 的基礎設施逐漸建立起來。

基建一期建設

基建一期內容主要包括以下幾個方面:

  • 工程架構
  • 開發框架
  • 腳本工具
  • 自動化構建

在基建一期完成后,我們的目標是要達到:

  • 基礎能力足夠支撐普通業務開發
  • 開發效率接近原生開發
  • 開發過程要基本順暢

工程架構

工程架構指的是原生工程與 Flutter 工程之間的關系,以及 Flutter 工程與 Flutter 工程之間的關系。

原生工程與Flutter工程的關系

我們知道,使用 Flutter 開發通常有兩種情況,一種是直接使用 Flutter 開發一個新的App,屬于純 Flutter 開發;一種是在已有的 Native 工程中引入,屬于混合開發。我們當然屬于后者。

而混合開發又可分為兩種:源碼集成和產物集成。源碼集成需要改變原工程的項目結構,并且需要 Flutter 開發環境才能編譯,而產物集成則不需要改動原工程的項目結構,只需把 Flutter 的構建產物當作普通的依賴庫引入即可,原有 Native 工程和 Flutter 工程從物理上完全獨立。顯而易見的我們選擇產物集成的方式,引入 Flutter對于原工程以及非 Flutter 開發人員來說,基本上是毫無感知的。

所以原生工程與 Flutter 工程之間的關系如下圖所示:

原生工程與Flutter工程之間的關系原生工程與Flutter工程之間的關系

Flutter工程之間的關系

根據已有的客戶端基建的開發經驗,我們將所有 Flutter 工程分為了四層:

  • 殼工程
  • 業務層
  • 公共層
  • 容器層

容器層負責提供 Flutter 的基礎運行環境,包括 Flutter 引擎管理、頁面棧管理、網絡框架、KV存儲、數據庫訪問、埋點框架、Native 與 Flutter 通信通道和其它基礎功能。

公共層包含一些通用的開源庫、自定義UI組件、部分通用業務等。

業務層包含用戶信息、商品、發布等業務組件

殼工程負責集成各業務組件,最終構建出產物集成到 Native 主工程。

其中業務層、公共層、容器層都是由若干個獨立的工程所組成,整體結構如下:

Flutter分層架構Flutter分層架構

開發框架

開發框架是為了提高開發效率、規范代碼結構、減少維護成本等考慮而設計的一套軟件框架,包括:基礎能力、狀態管理、頁面棧管理等。

基礎能力

開發框架需要提供各種必要的能力,比如:頁面跳轉、埋點、網絡請求、圖片加載、數據存儲等,為了最大化減少研發成本,我們在底層定義了一套通用的數據交互協議,直接復用了現有的 Native 的各項能力,也使得 Native 的各種狀態與 Flutter 側能夠保持統一。

狀態管理

相信了解 Flutter 的同學一定知道狀態管理,這也是跟 Native 開發區別較大的地方。在開發較為復雜的頁面時,狀態維護是非常繁瑣的,在不引入狀態管理框架的情況下,開發效率會受很大影響,后期的維護成本以及業務交接都是很大的問題。

另外,在開發框架設計之初,我們就期望從框架上能夠在一定程度上限定代碼結構、模塊之間的交互方式、狀態更新方式等,我們期望的是不同的人寫出來的代碼在邏輯、結構和風格上都能保持比較統一,即在提高開發效率的同時,也能保證項目后續的可維護性和擴展性,減少不同業務間的交接成本。

基于上述這些需求,在我們對比了多個開源項目后,FishRedux 的整體使用感受正好符合我們的要求。

如下圖,兩個頁面的代碼結構基本一致:

收藏詳情和個人主頁收藏詳情和個人主頁

頁面棧管理

在早期版本,Flutter 引擎的實例占用內存較高,為了減少內存消耗,大家普遍采用單實例的模式,而在 Native 和 Flutter 混合開發的場景下就會存在一個問題,就是 Native 有自己的頁面棧,而 Flutter 也維護著一套自己的頁面棧,如果 Native 頁面與 Flutter 頁面穿插著打開,在沒有特殊處理的情況下,頁面棧會發生錯亂。在調研了業內的各種開源方案后,我們選擇引入 FlutterBoost 用來管理頁面混合棧。

腳本工具

為了方便開發同學搭建 Flutter 的開發環境,同時能夠管理使用的 Flutter 版本,我們開發了 zflutter 命令行工具,包含以下主要功能:

  • Flutter開發環境安裝
  • Flutter版本管理
  • 創建模版工程(主工程、組件工程)
  • 創建模版頁面(常規頁面、列表頁、瀑布流頁面)
  • 創建頁面模塊
  • 組件工程發布
  • 構建Flutter產物
  • 腳本自更新

如圖:

zflutterzflutter

自動化構建

客戶端使用的是自研的 Beetle 平臺(集工程管理、分支管理、編譯、發布于一體),短時間內要支持上 Flutter 不太現實,基于此,我們先臨時自己搭臺服務器,通過 gitlab 的 webhook 功能結合 zflutter 工具簡單實現了一套自動化構建的服務,待 Beetle 支持 Flutter 組件化開發功能后,再將工作流切回到 Beetle 平臺。

小范圍試驗

在完成基建一期的開發工作后,我們決定通過開發幾個實際業務來試驗目前的基礎設施是否達到既定目標。

我們以不影響主流程、能覆蓋常見UI功能、并且能跟 Native 頁面做AB測試(主要是方便在出問題時能夠切換到 Native 版本)為條件挑選了個人資料頁和留言列表頁進行了 Flutter 化改造,如下圖所示:

個人資料頁/留言列表頁個人資料頁/留言列表頁

這兩個頁面涵蓋了網絡請求、圖片加載、彈窗、列表、下拉刷新、上拉加載更多、左滑刪除、埋點上報、頁面跳轉等常見功能,足以覆蓋日常開發所需的基礎能力。

經過完整的開發流程以及一段時間的線上觀察,我們得出如下結論:

基礎能力

目前已具備的基礎能力已經足夠支撐普通業務開發(開發過程中補足了一些缺失的能力)。

工作流

整個開發過程在工程依賴管理和分支管理方面的支持還比較缺失,比較依賴人工處理。

開發效率

我們在開發前根據頁面功能同時做了純 Native 開發排期和 Flutter 開發排期,按單人日的成本來對比的話,Flutter 實際開發耗時跟 Native 排期耗時比為 1.25:2,Native 是按照 Android+iOS 兩端各一人算的,也就是1.25人/日比2人/日,如果后續對 Flutter 技術熟悉度提升后相信效率還可以進一步提升。

性能體驗

線上兩個 Flutter 頁面的體驗效果跟 Native 對比基本感覺不到差別,但是首次進入 Flutter 頁面時會有短暫的白屏等待時間,這個是由于 Flutter 環境初始化導致的延遲,后續可以想辦法優化。

包體積

在引入 Flutter 之后,轉轉的安裝包體積在兩端都分別有所增加:

  • Android增加6.1M
  • iOS增加14M

試驗結果基本符合預期,包體積的增量也在我們的可接受范圍內,接下來將進行基建二期的建設,補足目前缺失的能力。

基建二期建設

基建二期的內容主要包含以下工作:

  • 配合工程效率組完成 Beetle 對 Flutter 項目的支持
  • 組織客戶端內部進行 Flutter 技術培訓

Beetle支持Flutter

為了能讓大家更清晰的了解 Beetle 的工程管理機制,這里先簡單介紹下客戶端的工程類型:

  • Native主工程(又分為 Android 和 iOS)
  • Native組件工程(又分為 Android 和 iOS)
  • Flutter主工程
  • Flutter組件工程(即 Flutter 插件工程)

舉個例子,當有一個新版本需要開發時,先從 Native 主工程創建一個版本同時創建一個 Release 分支,即版本分支,然后從版本分支根據具體需求創建對應 Native 組件的版本分支,Flutter 主工程此時可看作是一個 Native 組件,比如此時創建了一個 Flutter 主工程的版本分支后,可以進入 Flutter 主工程再根據需要創建對應的 Flutter 組件工程的版本分支。

Beetle 目前已支持 Flutter 工程管理、分支管理、組件依賴管理以及組件的發布、Flutter 產物的構建等,Beetle 的作用貫穿從開發到上線的整個工作流。

Flutter技術培訓

為了讓大家更快的熟悉 Flutter 開發,我們在客戶端內部組織了5次 Flutter 快速入門的系列分享:

Flutter快速入門系列Flutter快速入門系列

同時也逐步完善內部文檔的建設,包括:FlutterSdk 源碼維護策略、Flutter 入門指南、Flutter 混合開發方案、Flutter 與 Native 通信方案、Flutter 開發環境配置、Flutter 組件化工程結構、Flutter 開發與調試、Flutter 開發工作流、ZFlutter 工具使用介紹、Flutter 開發之 Beetle 使用指南等,涵蓋了從環境搭建、開發調試到構建發布的整個過程。

大范圍推廣

在完成基建二期的建設后,整體基礎設施已經能夠支撐我們常見的業務,開發工作流也基本順暢,于是我們開始了在內部大范圍推廣計劃。

我們先后改造和新開發了個人主頁、我發布的頁面、微商詳、奇趣數碼頁等業務,基本涵蓋了常見的各種類型的頁面和功能,整體開發效率與原生單端開發效率持平,但是在特別復雜的頁面的性能表現上,Flutter 的表現相對要差一些。

部分頁面如下圖所示:

個人主頁個人主頁

微詳情頁/我發布的/奇趣數碼

探索前端生態

在跨端技術領域我們知道 Web 技術是天然支持的,如果能把前端生態引入到 Flutter 中,那么對客戶端來說,在業務的支持度上會更上一個臺階,Web 的體驗得到提升的同時客戶端也具備了動態化,基于此背景我們開始探索 Flutter 在 Web 上的可能性。

技術調研

當時可選的開源方案有:Kraken、MXFlutter、Flutter For Web。

Kraken

Kraken 是一款基于 W3C 標準的高性能渲染引擎。Kraken 底層基于 Flutter 進行渲染,通過其自繪渲染的特性,保證多端一致性。上層基于 W3C 標準實現,擁有非常龐大的前端開發者生態。

Kraken 的最上層是一個基于 W3C 標準而構建的 DOM API,在下層是所依賴的 JS 引擎,通過 C++ 構建一個 Bridge 與 Dart 通信。然后這個 C++ Bridge 把 JS 所調用的一些信息,轉發到 Dart 層。Dart 層通過接收這些信息,會去調用 Flutter 所提供的一些渲染能力來進行渲染。

Kraken 是不依賴 Flutter Widget,而是依賴 Flutter Widget 的底層渲染數據結構 —— RenderObject。Kraken 實現了很多 CSS 相關的能力和一些自定義的 RenderObject,直接將生成的 RenderObject 掛載在 Flutter RenderView 上來進行渲染,通過這樣的方式能夠做到非常高效的渲染性能。

MXFlutter

MXFlutter 是一套使用 TypeScript/JavaScript 來開發 Flutter 應用的框架。

MXFlutter 把 Flutter 的渲染邏輯中的三棵樹(即:WidgetTree、Element、RenderObject )中的第一棵(即:WidgetTree),放到 JavaScript 中生成。用 JavaScript 完整實現了 Flutter 控件層封裝,實現了輕量的響應式 UI 框架,支撐JS WidgetTree 的 build邏輯,build 過程生成的UI描述, 通過Flutter 層的 UI 引擎轉換成真正的 Flutter 控件顯示出來。

Flutter For Web

Flutter 在 Web 平臺上以瀏覽器的標準 API 重新實現了引擎。目前有兩種在 Web 上呈現內容的選項:HTML 和 WebGL。

  • 在 HTML 模式下,Flutter 使用 HTML、CSS、Canvas 和 SVG 進行渲染。
  • 在 WebGL 模式下,Flutter 使用了一個編譯為 WebAssembly 的 Skia 版本,名為 CanvasKit。

HTML 模式提供了最佳的代碼大小,CanvasKit 則提供了瀏覽器圖形堆棧渲染的最快途徑,并為原生平臺的內容提供了更高的圖形保真度。

結論

我們對以上方案從接入成本、渲染性能、包體積、開發生態、學習成本等多維度進行了對比:

  • 接入成本:Kraken ≈ MXFlutter ≈ Flutter For Web
  • 渲染性能:Kraken > MXFlutter > Flutter For Web
  • 包體積增量:Flutter For Web < Kraken < MXFlutter
  • 開發生態:Kraken ≈ MXFlutter > Flutter For Web
  • 學習成本:Flutter For Web < Kraken ≈ MXFlutter

最終選擇了 Kraken 作為我們的首選方案。

上線驗證

為了使 Kraken 順利接入轉轉App,我們做了以下幾個方面的工作:

  • 升級 FlutterSdk 到最新版,滿足接入 Kraken 的基礎條件
  • 統一客戶端容器接口,使得 Kraken 容器能夠完美繼承 Web 容器的能力
  • 自己維護 Kraken 源碼,及時修復官方來不及修復的問題,方便增加轉轉特有的擴展能力
  • 制定 Kraken 容器與 Web 容器的降級機制
  • 兼容 HTML 加載,保持跟 Web 容器一致的加載方式
  • 添加監控埋點,量化指標,指導后續優化方向
  • 選擇一個簡單 Web 頁并協助前端同學適配

上線后,我們對頁面的各項指標進行了對比,使用 Kraken 容器加載比使用 WebView 加載,在首屏加載耗時的指標上平均增加了281毫秒,原因為:當前版本的 Kraken 容器不支持直接加載 HTML,且只能加載單個 JsBundle,導致加載效率比 WebView 差。

通過跟前端同學溝通,從開發效率上來看,Kraken 工程的開發周期會比實現同樣需求的普通 Web 工程增加1.5到2倍的時間,主要原因是受到 CSS 樣式、Api 差異,無法使用現有UI組件,另外 Kraken 的調試工具目前還不夠完善,使用瀏覽器調試后還須在客戶端容器中調試,整體下來導致開發 Kraken 工程會比開發普通Web工程耗費更多時間。

再次驗證

由于之前選擇的 Web 頁面太過簡單,不具備代表性,所以我們重新選定了“附近的人”頁面做為改造目標,再次驗證 Kraken 在實際開發過程中的效率及性能體驗。頁面如圖所示:

圖片附近的人

最終因為部分問題得不到解決,并且整體性能較差,導致頁面沒能成功上線。

存在的問題包括但不限于下面列舉的一些:

  • 表現不一致問題

CSS 定位、布局表現與瀏覽器表現不一致

部分 API 表現與瀏覽器不一致(getBoundingClientRect等)

iOS,Android系統表現不一致

  • 重大 Bug

頁面初始化渲染完成,動態修改元素樣式,DOM不重新渲染

滑動監聽計算導致 APP 崩潰

  • 調試成本高

不支持 vue-router,單項目單路由

不支持熱更新,npm run build 預覽

不支持 sourceMap,無法定位源代碼

真機調試只支持 element 和 network;dom 和 element 無法互相選中;無法動態修改 dom 結構,無法直接修改樣式.......

頁面白屏,假死

  • 安全性問題

無瀏覽器中的“同源策略”限制

  • 兼容性

npm 包不兼容等

通過這一系列的探索和嘗試,我們了解到了 Kraken 目前還存在許多不足,如果繼續應用會帶來高額的開發調試以及維護成本,所以暫時停止了在 Kraken 方向上的投入,但我們仍然在這個方向上保持著關注。

結尾

目前轉轉在Flutter方向上的實踐和探索只是一個起點,我們意識到仍然有很多工作需要去做。我們堅信Flutter作為一項領先的跨端技術,將為轉轉業務的發展帶來巨大的潛力和機會。我們將持續努力,加強技術建設,不斷完善實踐經驗,推動Flutter在轉轉的應用和發展,為用戶提供更好的產品和體驗。圖片

責任編輯:武曉燕 來源: 大轉轉FE
相關推薦

2022-11-07 14:45:26

轉轉價格DDD

2023-12-27 19:12:42

OLAP自助分析

2023-02-01 10:11:06

轉轉容器日志

2022-12-15 08:35:01

用戶畫像平臺

2023-02-08 09:42:30

策略方式容量

2022-11-06 20:47:20

OCPC項目

2023-03-22 08:32:35

2023-03-02 08:54:32

2022-10-28 09:15:02

2023-03-02 08:32:41

2022-10-28 08:31:43

2023-03-29 08:33:03

倉儲自動化系統

2023-08-24 08:11:39

斷路器監控報警

2023-08-16 19:24:36

重構

2024-08-29 14:44:01

質檢埋點

2024-06-06 08:18:42

回收業務

2023-06-07 08:32:32

引擎技術while

2023-04-21 10:05:00

B端項目頁面

2023-04-19 13:18:41

動態線程池平臺

2025-08-14 02:55:00

點贊
收藏

51CTO技術棧公眾號

亚洲免费婷婷| 自拍视频一区| 婷婷成人激情在线网| 欧美日韩一区二区视频在线观看 | 亚洲大片免费看| 亚洲片国产一区一级在线观看| 免费观看黄色的网站| 国产毛片aaa| 亚洲日本一区二区三区在线| 大伊人狠狠躁夜夜躁av一区| 小说区视频区图片区| 五月婷婷六月丁香| 久久66热偷产精品| 奇米4444一区二区三区| 老女人性淫交视频| 日韩电影免费网站| 日韩精品视频在线观看免费| 成人黄色一级大片| 成人日韩精品| 久久先锋影音av鲁色资源| 国产一区在线播放| 久久久久久久久黄色| 亚洲成a人片77777在线播放| 这里只有精品99re| 黄色一级免费大片| 国产福利电影在线播放| 亚洲免费在线观看| 99国产超薄肉色丝袜交足的后果| 婷婷综合在线视频| 亚洲精品中文字幕99999| 精品卡一卡二卡三卡四在线| 午夜免费看毛片| 97成人资源| 国产欧美日韩在线| 国产精品日韩专区| 波多野结衣国产| 亚洲天堂男人| 欧美国产极速在线| 亚洲天堂一级片| 日韩.com| 中文字幕无线精品亚洲乱码一区| 好吊一区二区三区视频| 91精品论坛| 福利视频导航一区| 18禁免费观看网站| 嗯啊主人调教在线播放视频 | 色老头一区二区| 亚洲永久免费精品| 欧美亚洲视频在线看网址| 久久狠狠高潮亚洲精品| 亚洲免费成人| 欧美影院在线播放| 日韩美一区二区| 性欧美长视频| 国产精品久久久久久久久久免费 | 717成人午夜免费福利电影| 色播五月综合网| 福利一区和二区| 欧美日韩不卡一区| 日韩av影视大全| 国产精品91久久久久久| 中文字幕欧美色图| 国内精品免费**视频| 97在线中文字幕| 日韩欧美一区二区一幕| 99视频精品免费观看| 高清在线视频日韩欧美| 精品国产免费观看| 久久黄色网页| 国产精品亚洲激情| 国产美女主播在线观看| 成人av在线资源| 免费亚洲一区二区| 高清在线观看av| 亚洲欧美另类小说视频| 国产va亚洲va在线va| 理论不卡电影大全神| 欧美午夜一区二区三区免费大片| 天堂视频免费看| 8x国产一区二区三区精品推荐| 亚洲精品福利在线观看| 亚洲精品视频三区| 一区二区网站| 亚洲欧美在线x视频| 四季av中文字幕| 欧美黄免费看| 国产91色在线|| 久久久精品视频免费| 性欧美暴力猛交另类hd| 亚洲tv在线观看| 无码国产伦一区二区三区视频 | 欧美大胆一级视频| www.av欧美| 一区二区不卡| 日本伊人精品一区二区三区介绍| 国产一区二区三区三州| a美女胸又www黄视频久久| 亚洲成人a**址| 美洲精品一卡2卡三卡4卡四卡| 色视频成人在线观看免| 亚洲国产日韩在线一区| 精品国产美女a久久9999| 欧美特黄级在线| 波多野结衣乳巨码无在线| 福利一区在线| 亚洲精品一区二区在线| 久久爱一区二区| 久久精品中文| 国产精品免费在线播放| 欧美zozo| 午夜精品福利在线| 亚洲精品国产一区二区三区| 在线日本制服中文欧美| 国产69精品久久久久99| 国产理论片在线观看| 国产亚洲视频系列| 9久久9毛片又大又硬又粗| 精品一区二区三区四区五区| 怡红院精品视频| 国产18无套直看片| 国产精品腿扒开做爽爽爽挤奶网站| 成人h猎奇视频网站| 黄色av网站在线| 精品magnet| 国产一卡二卡三卡四卡| 欧美在线亚洲综合一区| 91精品国产综合久久久久久久久| 久久久久久青草| 天天影视网天天综合色在线播放| 三上悠亚 电影| 亚洲欧美偷拍自拍| 91免费视频网站| 久久99精品久久久久久野外| 欧美日韩国产精品自在自线| 日本爱爱爱视频| 三级不卡在线观看| 日本不卡一区二区三区视频| 成人av三级| 日韩精品一区二区三区第95| 天天操天天摸天天干| 成人av网址在线| 欧洲精品一区二区三区久久| 国产 日韩 欧美 综合 一区| 欧美人交a欧美精品| 99在线精品视频免费观看软件| 国产成人高清在线| 特级西西人体www高清大胆| 韩国三级大全久久网站| 久久这里只有精品99| 国产又黄又大又爽| 亚洲欧美偷拍卡通变态| 中文字幕在线视频一区二区| 女同性一区二区三区人了人一| 亚洲一区二区三区777| 色www永久免费视频首页在线 | 国产精品久久久久蜜臀 | 高清一区二区三区日本久| 色窝窝无码一区二区三区| 偷拍日韩校园综合在线| 亚洲一级中文字幕| 蜜臀av性久久久久蜜臀av麻豆| 日韩午夜视频在线观看| 青青在线精品| 萌白酱国产一区二区| 日韩一卡二卡在线| 精品露脸国产偷人在视频| 午夜在线观看一区| 久久草av在线| 免费不卡av在线| 国产不卡av一区二区| 国产欧美亚洲视频| 美女精品导航| 亚洲精品永久免费| 一级黄色a毛片| 亚洲伊人伊色伊影伊综合网| 欧美bbbbb性bbbbb视频| 麻豆精品一区二区综合av| 超薄肉色丝袜足j调教99| 青青一区二区| 国产美女久久久| av在线不卡免费| 国产亚洲精品综合一区91| 国产乱码精品一区二区三区精东| 亚洲高清免费观看高清完整版在线观看| 中文在线一区二区三区| 麻豆精品久久精品色综合| 日韩亚洲欧美视频| 日产午夜精品一线二线三线| 国产伦精品一区二区三区四区免费 | 日本久久久久久久久久久久| 欧美日本不卡| 日韩精品在在线一区二区中文| 欧美日韩黄色| 国产精品91一区| √8天堂资源地址中文在线| 综合国产在线观看| 人人妻人人澡人人爽精品日本 | 一区二区三区四区在线| 亚洲a v网站| 成人美女在线观看| 五月天av在线播放| 国产精品一页| 欧美大片免费播放| 成人羞羞视频播放网站| 精品综合在线| 蜜桃精品一区二区三区| 国产精品日韩av| 厕沟全景美女厕沟精品| 久久久久久网址| 黄色成人在线| 在线免费看av不卡| 欧美日本韩国一区二区| 精品日韩在线观看| 91 中文字幕| 在线看日韩精品电影| 中文字幕在线播放一区| 国产一区二区精品在线观看| 中文字幕国产传媒| 蜜桃av综合| 国产精品秘入口18禁麻豆免会员| 欧美国产专区| 糖心vlog在线免费观看| 欧美aaaaaaaaaaaa| 视频三区二区一区| 免费看av成人| 欧美精品v日韩精品v国产精品| 91综合精品国产丝袜长腿久久| 成人天堂噜噜噜| 日韩欧国产精品一区综合无码| 国产成人avxxxxx在线看| 午夜影院一区| 97精品国产97久久久久久免费| 在线观看午夜av| 亚洲精品www久久久| 性一交一乱一伧老太| 日韩一区二区在线看| 国产精品欧美综合亚洲| 欧美乱妇一区二区三区不卡视频| 成人黄色免费网| 欧美日韩高清影院| 一级特黄aaa大片| 欧美日韩另类国产亚洲欧美一级| 羞羞色院91蜜桃| 欧美三级蜜桃2在线观看| 国产精品成人久久久| 精品视频在线免费| 亚洲怡红院av| 日韩一区二区免费高清| 国产wwwwwww| 亚洲成人黄色网| 性xxxx视频| 亚洲欧美一区二区三区情侣bbw| 国产午夜在线观看| 中文字幕日韩有码| 成人看片免费| 欧美激情视频一区二区| 国产激情视频在线看| 日本韩国欧美精品大片卡二| 国产精品久久亚洲不卡| 国产欧美一区二区三区久久人妖| 欧美日韩卡一| 91日韩久久| 色天下一区二区三区| 日韩欧美亚洲日产国| 91精品国产视频| 日本电影一区二区三区| 成人影院在线| 免费cad大片在线观看| 日韩视频二区| av网站在线不卡| 国产精品自产自拍| 成人免费av片| 国产成人精品亚洲午夜麻豆| 91国产精品视频在线观看| 国内精品久久久久影院色| youjizz.com日本| 国产视频视频一区| 91插插插插插插| 狠狠操狠狠色综合网| 97成人免费视频| 日韩精品丝袜在线| 米奇精品一区二区三区| 91av在线看| 国产乱码精品一区二区三区亚洲人| 不卡一卡2卡3卡4卡精品在| 米奇777超碰欧美日韩亚洲| 9999在线观看| 亚洲欧美日韩视频二区| 亚洲av无日韩毛片久久| 久久综合九色综合97_久久久| 天堂а√在线中文在线鲁大师| 亚洲成人综合视频| 欧美 亚洲 另类 激情 另类 | 精产国品一区二区三区| 久久综合九色综合97_久久久| avove在线播放| 在线观看亚洲精品| 欧美一区二区公司| 日韩视频精品在线| 国产免费不卡| 大波视频国产精品久久| 99国产精品免费视频观看| 91视频 -- 69xx| 国产成人综合精品三级| 亚洲精品成人av久久| 欧美日韩免费网站| 亚洲免费国产视频| 久久最新资源网| 久久xxx视频| 欧美理论一区二区| 999亚洲国产精| 亚洲av午夜精品一区二区三区| 国产精品久久久久aaaa樱花| 伊人中文字幕在线观看| 亚洲精品国产精品久久清纯直播| 99在线播放| 91精品视频在线| 999视频精品| 一区二区xxx| 中文字幕免费不卡在线| 日本久久综合网| 日韩精品视频在线免费观看| av今日在线| 国产亚洲一区二区三区在线播放| 在线一区免费| 99999精品| 亚洲人成网站在线| 国产喷水吹潮视频www| 久久精品电影网站| 色呦呦在线播放| 91天堂在线观看| 性欧美欧美巨大69| 亚洲黄色片免费看| 亚洲日本欧美天堂| 国产精品一区二区av白丝下载| 中文字幕亚洲情99在线| 国产福利一区二区三区在线播放| 欧洲精品一区色| 日日摸夜夜添夜夜添国产精品| 欧美熟妇一区二区| 日本道在线观看一区二区| 久草福利在线视频| 国产精品xxx视频| 国产欧美日韩在线一区二区| 一级特黄性色生活片| 国产日韩欧美a| 亚洲视频久久久| 久久精品在线播放| 亚洲三区欧美一区国产二区| 欧美国产日韩激情| 91视频国产资源| 自拍偷拍第9页| 欧美久久久久免费| h片在线观看网站| 国产精品乱码视频| 香蕉亚洲视频| 成人无码av片在线观看| 欧美美女激情18p| 欧美人与动牲性行为| 国产精品一区二区三区四区五区 | 野花视频免费在线观看| 亚洲成va人在线观看| 蜜桃视频在线观看网站| 国产美女久久久| 在线电影一区| 精品人妻互换一区二区三区| 欧美情侣在线播放| 国产天堂在线播放视频| 欧美日韩国产免费一区二区三区 | 亚洲性视频h| 亚洲天堂久久新| 欧美精品vⅰdeose4hd| 久草在线视频资源| 日本精品一区二区三区视频| 韩国欧美国产1区| 国产手机在线视频| 一本色道久久88精品综合| 欧美精品影院| 欧美一级片中文字幕| 亚洲激情男女视频| 欧美视频综合| 亚洲一区二区久久久久久| 欧美一级一区| 免费在线观看一级片| 亚洲色图综合久久| 日韩免费成人| jizz欧美激情18| 亚洲一区精品在线| 97在线观看免费观看高清 | 国产高清美女一级毛片久久| 亚洲一区国产精品| 久久婷婷影院| 欧美一级高潮片| 最新国产成人av网站网址麻豆| 成人av综合网| 亚洲免费999| 一本色道久久综合亚洲aⅴ蜜桃| 18+激情视频在线| 亚洲国产一区二区在线| 91丨porny丨国产入口|