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

蘇寧蛙測基于Instruments檢測iOS性能技術

原創
移動開發 iOS
在蘇寧智慧零售的戰略中,移動應用占據重要位置,線上應用的用戶體驗對于產品推廣有直接影響,而作為移動兩大重要陣營之一的iOS系統,應用上架前的性能指標顯得尤為重要。

【51CTO.com原創稿件】1.背景

在蘇寧智慧零售的戰略中,移動應用占據重要位置,線上應用的用戶體驗對于產品推廣有直接影響,而作為移動兩大重要陣營之一的iOS系統,應用上架前的性能指標顯得尤為重要。在不嵌入代碼的前提下,蛙測平臺需要獲得應用運行時的內存、CPU、FPS、冷啟動時間、熱啟動時間等數據,提供給開發部門,進行上線前優化。

蘇寧現有的iOS應用性能測試數據,基本都是開發人員在Mac環境下用Xcode工具,基于被測應用源碼或者特定簽名下通過原生的Instruments工具來獲取應用冷啟動時間、熱啟動時間、內存消耗、幀率等性能指標。

對于測試人員來說,首先沒有充足的Mac電腦提供,其次,出于代碼的保密性,無法為測試人員開發代碼權限,同時技術門檻也較高,為了讓測試人員也能進行iOS應用性能測試,基于代碼外黑盒方式獲取iOS應用性能數據,使用TraceUtility工具解析數據,在前端頁面用圖表方式為測試人員提供iOS應用性能測試服務。

2.技術選型和實現原理

2.1 Instruments工具組件介紹

Instruments是Xcode的一個工具集,為我們提供了強大的程序性能分析及測試能力。它是以一個獨立的 App 的形式存在的,你可以在 Xcode -> Open Developer Tool -> Instruments 中打開它。打開后功能組件頁面如下圖:

蘇寧蛙測基于Instruments檢測iOS性能技術

一、Time Profiler使用簡介:

  • TimeProfiler見名知意:時間分析工具,它會按照設定的時間間隔(默認1毫秒)來跟蹤每一線程的堆棧信息(stacktrace),并通過比較時間間隔之間的堆棧狀態,來推算出某個方法執行了多久,給出一個近似值。
  • 蘇寧蛙測基于Instruments檢測iOS性能技術

二、CPU Activity Log CPU活動日志工具簡介;

  • CPU Activity instrument工具給出了一個設備在做什么的記錄。
  • 蘇寧蛙測基于Instruments檢測iOS性能技術

三、Core Animation動畫渲染使用簡介:

  • Core Animation系要注意的一點是必須是真機調試,用于調試離屏渲染,繪圖,動畫,等操作,用于檢測FPS信息。
  • 蘇寧蛙測基于Instruments檢測iOS性能技術

四、Activity Monitor內存使用情況簡介:

1)Summary(Summary of data) :Process(進程)使用內存、CPU使用時長等摘要信息:

蘇寧蛙測基于Instruments檢測iOS性能技術

其中參數的含義如下:

  • process id ——進程id
  • process name ——進程名
  • user name——用戶名
  • %CPU——cpu占比
  • threads——線程
  • real mem——真正使用的內存
  • virtual mem——虛擬內存
  • architecture——架構
  • cpu time——CPU時間
  • sudden term——突然項(N/A:不適用)

2)Samples(a list of samples) ----一系列抽樣(即不同時間,CPU使用時間、內存使用情況的樣本值)

蘇寧蛙測基于Instruments檢測iOS性能技術

參數的含義如下:

  • Physical Memory Wired——操作系統占用的內存
  • Physical Memory Active——除操作系統外其他進程占用的內存
  • Physical Memory Inactive——最近被釋放的內存
  • Physical Memory Used——profiling當前進程時使用的總內存
  • Physical Memory Free——當前的可用內存
  • Total VM Size——虛擬內存的占用量

五、Energy Usage Level 簡介

查看應用的耗電量等級。電量使用level為0-20,1/20:表示運行該App,電池生命會有20個小時;20/20:表示運行該App,電池電量僅有1小時的生命。

蘇寧蛙測基于Instruments檢測iOS性能技術

2.2 instruments命令行調用方法

instruments命令

  1. usage: instruments [-t template] [-D document] [-l timeLimit] [-i #] [-w device] [[-p pid] | [application [-e variable value] [argument ...]]] 
  • -t是指定模板;
  • -D 指定生成的.trace文件;
  • -l 指定運行時間,此處單位為ms;
  • -w 指定設備id(把設備通過usb連接電腦后,設備id可通過system_profiler SPUSBDataType查看);

application 即待測試的App名;

如下示例:

 

  1. 在fcbba9b83bf99c97e5d4d56d99a264d083d5e2cd設備上啟動”Time Profiler”模板運行com.suning.XX錄制30000ms的Profiler.trace文件,輸出路徑為/Users/monky/Work  
  2. instruments -l 30000 -w fcbba9b83bf99c97e5d4d56d99a264d083d5e2cd -v -t “Time Profiler“ -D /Users/monky/Work/time Profiler.trace com.suning.XX 

自定義多模板.tracetemplate文件

有時候需要同時監控好幾個模板,這個時候可以導出一個自己需要的.tracetemplate文件。

  • a.首先打開instruments,在主界面選擇需要測試的模板,如下圖,通過右上角的+添加。
  • 蘇寧蛙測基于Instruments檢測iOS性能技術

  • b.選擇完所有需要的模板后,點擊Instruments -> file -> Save As Template 保存,記錄好保存的位置。
  • c.然后就可以用自己的模板進行測試

如下實例:

  1. Instruments -w fcbba9b83bf99c97e5d4d56d99a264d083d5e2cd -v -t "CustomTemplate" -D templateData.trace com.suning.XX 

2.3 instruments數據解析功能實現

我們生成一個自定義的數據模板MyTemplate.tracetemplate,根據instruments工具生成的trace文件,使用TraceUtility對文件進行解析,獲取存儲的信息。

Trace 文檔的基本結構

文檔結構的邏輯能從 Instruments 的交互邏輯看出來,一份文檔有一個目標設備,一個監測的進程和一組 profiling 模版,然后可以使用同一組模版進行多次 profile。而對應到 Instruments 的代碼中,一份文檔就是一個 XR Trace 對象,除了一些元數據,它還包含一個 XR Instrument 對象的數組,其中每一個,又包含了一個 XR Run 的數組。

所以接下去要做的事情就是,找到從不同模版的 XR Instrument 中讀取 XR Run 對象中的數據的方法,然后依次遍歷即可。

XR Instrument對象

數據讀取和保存的代碼主要在 InstrumentsAnalysisCore.framework 這個框架里,存儲格式也用了 SQLite,把各種讀取寫入查詢都抽象了出來,比如用戶在 Instruments 里用鼠標選了一段時間來看這段時間的數據,這樣的過濾操作就不需要在每個模版里單獨實現了。同時,因為數據的結構種類也比較有限,比如調用棧樹,樣本列表。

蘇寧蛙測基于Instruments檢測iOS性能技術

XRContext

蘇寧蛙測基于Instruments檢測iOS性能技術

在 Instruments 里,XRContext 就體現在模版列表下面的這個導航條。它是樹結構的,每次選中顯示一個 context,那從根結點到這個 context 就是一條 context path。XRContextContainer(通常是 view controller)保存著 context 的引用,叫做它的 contextRepresentation,而 XRContext 也引用一個真正展示它數據的 XRContextContainer(通常是 view),叫做它的 container。

不同的模版當然會有不同的 contexts,但是有時候一個模版也會包含多個不同的 contexts,所以在用戶選擇不同的模版查看數據,或者從那個導航條里切換當前模版的不同的數據視圖的時候,當前的 context 就會變化,新的 context 的 -[XRContext display] 方法被調用,然后這個 context 會通過 -[XRContextContainer displayContext:] 傳給相對應的 XRContextContainer,然后這個 container(通常是 view controller)就可以加載數據,刷新視圖了。

也就是說文檔中的大部分數據只有在真正需要顯示的時候才會被讀取,從 Instruments 用戶的角度來看很容易理解,不過對于 TraceUtility 的用戶來說,就是需要知道,如果自己讀取的數據都是 nil,或者空數組之類的,就可以看看是不是忘記調用這個 -[XRContext display]方法了。

蘇寧蛙測基于Instruments檢測iOS性能技術

每一種XRContextContainer對象存儲的結構層次各有不同,以下給出三種結構解析方法。

TimeProfiler模板解析實例:

蘇寧蛙測基于Instruments檢測iOS性能技術

CPU Activity Log模板解析實例:

蘇寧蛙測基于Instruments檢測iOS性能技術

Connections 模板數據解析實例:

蘇寧蛙測基于Instruments檢測iOS性能技術

Search Paths

雖然說要調用 Instruments 的代碼只需要鏈接上它的 framework 就可以了,不過這里還有幾個值得一提的地方。

首先是編譯器搜索我們要鏈接的 framework 的目錄。參考 Xcode 項目配置的 FRAMEWORK_SEARCH_PATHS 變量。

 

  1. /Applications/Xcode.app/Contents/SharedFrameworks  
  2. /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/Frameworks 

如果這個沒有設置對的話,鏈接的時候會報錯,沒法生成可執行程序。

然后是編譯好的程序在啟動過程中搜索這些動態鏈接的 framework 的目錄。參考 Xcode 項目配置的 LD_RUNPATH_SEARCH_PATHS 變量。

 

  1. /Applications/Xcode.app/Contents/SharedFrameworks  
  2. /Applications/Xcode.app/Contents/OtherFrameworks  
  3. /Applications/Xcode.app/Contents/Developer/Library/Frameworks  
  4. /Applications/Xcode.app/Contents/Developer/Library/PrivateFrameworks  
  5. /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/Frameworks 

如果這個沒有設置對的話,程序還是可以編譯,但是程序運行的時候會報錯。另外,這里不僅包含上一個配置里的目錄,還多了別的,是因為我們鏈接的 framework 還依賴了別的 framework,這些 framework 也需要在運行的時候由 dyld 一起加載。

最后是 Instruments 自己搜索 Packages 的目錄,這些目錄都在 Instruments.app 的安裝目錄下,而函數 NSString *PFTInstrumentsAppContents() 就是用來獲取這個安裝目錄的。它通過調用 +[NSBundle mainBundle] 來確定當前進程是 Instruments 的主 App 還是附加的命令行工具,然后返回正確的結果。

然而在我們的進程中,+[NSBundle mainBundle] 返回的結果并不能被這個函數正確識別和處理,所以我們需要 hook 這個方法來返回 Instruments.app 所對應的 bundle,從而使得 Instruments 能夠正確找到需要加載的包。

2.3解析后數據

Time Profiler解析出數據如下圖:

蘇寧蛙測基于Instruments檢測iOS性能技術

CPU Activity Log解析出數據如下圖:

蘇寧蛙測基于Instruments檢測iOS性能技術

Core Animation解析出數據如下圖:

蘇寧蛙測基于Instruments檢測iOS性能技術

Activity Monitor內存使用情況解析出數據如下圖:

蘇寧蛙測基于Instruments檢測iOS性能技術

Energy Usage Level解析出數據如下圖:

蘇寧蛙測基于Instruments檢測iOS性能技術

Connections解析出數據如下圖:

蘇寧蛙測基于Instruments檢測iOS性能技術

3.應用效果

蘇寧蛙測平臺將instruments檢測iOS性能技術應用在iOS穩定性測試中,將用戶提測的任務結果收集分析后制作成圖表展示,方便測試人員直接高效的獲得目標測試App在不同系統版本、機型上的性能表現,提高相關人員的產出效率。如下圖測試報告節選截圖:

蘇寧蛙測基于Instruments檢測iOS性能技術

蘇寧蛙測基于Instruments檢測iOS性能技術

蘇寧蛙測基于Instruments檢測iOS性能技術

4.總結

考慮到文章篇幅,本文僅介紹了蘇寧蛙測平臺在移動端性能檢測的冰山一角,有關于移動穩定性測試其他技術點將會在后續文章中進行分享。蛙測平臺會在大促期間力保每一個上線應用安全、穩定、健壯,站好第一班崗,為蘇寧軟件質量保駕護航。同時我們也會不斷成長,提升技術面,將“測試,原來可以如此簡單!”作為自己前進的目標,為蘇寧智慧零售戰略提供堅實保障。

作者:

錢夢奇,蘇寧易購IT總部數據云公司移動SDK工程師,主要從事測試工具與平臺的研發工作。專注于移動App開發、測試流程和測試工具開發,對移動端自動化測試、穩定性測試、性能測試、App開發技術和新理念實踐,積累了比較豐富的經驗。

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:未麗燕 來源: 51CTO.com
相關推薦

2018-05-09 14:45:50

蘇寧前端Nodejs

2013-02-20 10:07:29

蘇寧電器蘇寧云商云服務

2016-11-10 19:31:00

蘇寧雙11

2017-08-21 09:03:43

2018-11-12 12:45:19

2013-10-31 09:49:07

2019-01-08 09:34:05

蘇寧金融紅包流量

2018-11-14 10:48:52

蘇寧管理系統服務性能

2011-12-12 15:47:20

網宿科技蘇寧易購

2018-11-06 09:30:38

數據倉庫架構蘇寧

2020-02-27 08:00:41

混沌工程系統失控條件

2017-09-01 13:19:35

蘇寧無人店Biu

2013-10-29 10:41:06

SAP

2018-06-25 08:00:18

Spring Clou架構數據中臺

2018-05-25 22:56:14

AI技術短視頻蘇寧易購

2020-06-19 07:00:00

蘇寧數字孿生平臺

2019-12-24 09:30:59

蘇寧高可用高并發

2014-02-19 10:40:07

虛擬運營商

2014-02-19 10:36:47

虛擬運營商蘇寧

2017-11-16 09:22:00

物流電商快遞
點贊
收藏

51CTO技術棧公眾號

超碰在线网址| 一级做a爱片性色毛片| 麻豆精品av| 一本大道综合伊人精品热热| 亚洲成人第一| 99视频免费看| 欧美一级播放| www.亚洲一区| 小毛片在线观看| 成人国产精品入口免费视频| 亚洲美女偷拍久久| 精品在线视频一区二区三区| 最近中文字幕在线观看| 午夜久久久久| 亚洲男人的天堂网站| 欧美女同在线观看| 国产精品xx| 专区另类欧美日韩| 蜜桃传媒一区二区| 国产美女裸体无遮挡免费视频| 亚洲青涩在线| 久久综合国产精品台湾中文娱乐网| 亚洲日本久久久| 亚洲国产伊人| 色88888久久久久久影院野外 | 国产伦精品一区二区免费| 日韩毛片在线| 欧美视频在线观看免费| 男人草女人视频| av在线天堂| 久久久美女艺术照精彩视频福利播放| 亚洲一区亚洲二区| 最近中文字幕av| 六月婷婷一区| 久久久久国产精品免费网站| 91ts人妖另类精品系列| 国产中文精品久高清在线不| 亚洲国产精品悠悠久久琪琪| 国产伦精品一区二区三区妓女下载 | 久99九色视频在线观看| 极品尤物一区二区| 日韩黄色网络| 日韩大陆毛片av| 日本wwwwwww| 免费一级欧美片在线观看网站| 欧美伊人久久久久久午夜久久久久| 亚洲熟妇无码一区二区三区| 91麻豆免费在线视频| 国产精品无人区| 日韩欧美精品一区二区| 暖暖视频在线免费观看| 99久久精品免费| 国产精品中出一区二区三区| www.日日夜夜| 国产成人精品综合在线观看| 91香蕉国产在线观看| 91成人国产综合久久精品| 日本中文一区二区三区| 国产精品扒开腿做| 五月婷婷激情视频| 久久看片网站| 性亚洲最疯狂xxxx高清| 日产电影一区二区三区| 99国产精品久久久久久久| 久久久久久久国产精品视频| 久久久久久久久久99| 黄色成人在线网址| 97在线视频免费播放| av中文在线播放| 久久精品国产清高在天天线| 国产成人综合精品| 亚洲午夜在线播放| 美女视频网站黄色亚洲| 国产在线播放不卡| 99热在线只有精品| 成人污污视频在线观看| 狠狠色狠狠色综合人人| 欧美日韩国产综合视频| 国产免费观看久久| 伊人久久99| 羞羞的网站在线观看| 亚洲观看高清完整版在线观看 | 亚洲狠狠婷婷综合久久久| av在线免费观看网| 亚洲人成精品久久久久| www.日本少妇| 日韩和的一区二在线| 欧美日韩国产不卡| 激情av中文字幕| 深爱激情综合| 欧美成人h版在线观看| 国产亚洲精品成人| 久久aⅴ国产紧身牛仔裤| 国产一区在线播放| 色窝窝无码一区二区三区成人网站| 久久综合色婷婷| 亚洲午夜精品一区二区| 日本乱理伦在线| 色婷婷av一区二区三区gif| 性刺激的欧美三级视频| 大型av综合网站| 亚洲人在线视频| 国产大片免费看| 亚洲欧美日韩国产一区二区| 成人激情免费在线| 四虎影视在线观看2413| 国产亚洲污的网站| 人妻无码一区二区三区四区| 经典三级一区二区| 欧美一区二区啪啪| 免费污网站在线观看| 欧美福利在线| 国产精品久久久久久久久影视 | 亚洲图片在线综合| 欧美日韩一级大片| 全国精品久久少妇| 国内精品二区| 中文字幕在线观看网站| 欧美性猛交xxxx富婆弯腰| 6080国产精品| 欧美裸体在线版观看完整版| 欧美精品videosex极品1| 中文字幕精品一区二| 成人av综合一区| 视频一区二区视频| 蜜桃视频成人m3u8| 亚洲国产精久久久久久| 美女福利视频在线观看| 男人的j进女人的j一区| 久久久一本精品99久久精品66| 在线观看男女av免费网址| 欧美日免费三级在线| 亚州av综合色区无码一区| 亚洲蜜桃视频| 国产精品极品尤物在线观看| 天堂影院在线| 亚洲成人av一区| 先锋资源在线视频| 性欧美69xoxoxoxo| 国产日本欧美一区二区三区在线| 加勒比一区二区三区在线| 午夜久久久久久久久久一区二区| 性鲍视频在线观看| 婷婷综合亚洲| 成人福利视频在线观看| av大片在线观看| 欧美亚洲国产一区在线观看网站 | 亚洲天堂2014| 色婷婷综合网站| 久久网站免费观看| 国产精品视频中文字幕91| 理论在线观看| 色婷婷综合久久久中文一区二区| 国产肉体xxxx裸体784大胆| 亚洲天堂成人| 狠狠综合久久av| 综合毛片免费视频| 日韩精品日韩在线观看| 中文字幕视频网| 国产亚洲欧美在线| 久久久国产欧美| 999久久久亚洲| 91丨九色丨国产在线| 日韩三级电影视频| 精品国产一区a| 日韩特黄一级片| 久久综合九色欧美综合狠狠| 免费男同深夜夜行网站| 欧美日中文字幕| 91精品久久久久久久久久久久久| 老司机精品视频在线观看6| 欧美军同video69gay| 男女做暖暖视频| 粉嫩aⅴ一区二区三区四区五区| www.avtt| 欧美精品momsxxx| 国产精品免费久久久久久| 日本在线www| 日韩免费成人网| 日韩一区二区视频在线| 国产日韩三级在线| 中文字幕在线视频精品| 欧美日韩国产一区精品一区| 久久波多野结衣| 99久久综合国产精品二区| 久久久成人精品视频| 亚洲第一成年人网站| 岛国av一区二区| 91精品少妇一区二区三区蜜桃臀| 国产成人精品1024| 男女av免费观看| 国产精品久久观看| 精品一区二区三区视频日产| 日本成人一区二区| 欧美激情一区二区三级高清视频 | 中文字幕高清一区| 深夜做爰性大片蜜桃| 国产精品久久久久久久免费软件 | 无码h肉动漫在线观看| 美腿丝袜一区二区三区| 美女扒开大腿让男人桶| 国产精品午夜一区二区三区| 亚洲一区二区少妇| 88xx成人免费观看视频库 | 午夜影视一区二区三区| 中文字幕国内精品| 国产成人自拍一区| 欧美日韩久久不卡| 亚洲免费激情视频| 日韩理论片一区二区| 法国伦理少妇愉情| 国产成人免费在线| 日本在线一二三区| 免费看亚洲片| 久久精品xxx| 羞羞答答成人影院www| 玛丽玛丽电影原版免费观看1977 | 国产美女精品写真福利视频| 日韩在线观看av| 国产一级在线| 亚洲国产天堂久久综合| av中文在线观看| 欧美日韩日日骚| 日本韩国欧美中文字幕| 一区二区三区在线观看欧美| 美女av免费看| 国产日产欧美一区| 黄色a一级视频| 成人午夜在线播放| 日韩a一级欧美一级| 日韩av高清在线观看| 国产视频九色蝌蚪| 狠狠色综合网| 日韩精品手机在线观看| 99久久精品国产亚洲精品| 日韩精品伦理第一区| 无码日韩精品一区二区免费| 国产欧美日韩综合一区在线观看| 免费看一区二区三区| 91在线看www| 99精品在线免费观看| 国产主播精品在线| 啪啪av大全导航福利综合导航| 国产精品久久久久久久久久免费 | 日韩亚洲在线| 男女日批视频在线观看| 欧美影院一区| 欧美日韩dvd| 欧美日韩国产成人精品| 操bbb操bbb| 欧美在线三级| 国产成人艳妇aa视频在线| 欧美在线高清| 黄色特一级视频| 亚洲性人人天天夜夜摸| 久久精品xxx| 亚洲精品专区| 妺妺窝人体色www在线小说| 亚洲精品乱码久久久久久蜜桃麻豆| 每日在线观看av| 中日韩视频在线观看| 欧美黑人经典片免费观看| 国产精品普通话对白| 日本精品免费在线观看| 丝袜国产日韩另类美女| 日本888xxxx| 精品一区二区三区在线播放视频| 亚洲精品在线视频播放| 国产成人亚洲综合色影视| 丰满熟女人妻一区二区三区| av高清不卡在线| 丰满少妇高潮一区二区| 国产精品久久久久久久久免费相片| 亚洲女人毛茸茸高潮| 亚洲精品免费一二三区| 日韩黄色三级视频| 色香蕉久久蜜桃| 一区二区三区精| 精品欧美一区二区久久| 婷婷国产在线| 深夜福利国产精品| 污影院在线观看| 欧美在线播放视频| 欧美黄色网络| 国产精品一区二区三区观看| 欧美美乳视频| 欧美交换配乱吟粗大25p| 国产精品毛片在线| 亚洲激情在线看| av一二三不卡影片| 国产欧美一区二区三区在线观看视频 | 成人免费视频视频在| 亚洲警察之高压线| 桥本有菜av在线| 亚洲主播在线| 国产无遮挡猛进猛出免费软件 | 免费在线观看91| 2023国产精品久久久精品双| 黄色免费福利视频| 精品一区二区三区免费| 亚洲精品国产成人av在线| 国产日韩影视精品| 国产精品18p| 欧美欧美欧美欧美首页| 女人18毛片水真多18精品| 在线看日韩欧美| av免费不卡| 91老司机精品视频| 精品在线播放| 久无码久无码av无码| 麻豆一区二区99久久久久| 艳妇乳肉豪妇荡乳xxx| 中文字幕亚洲一区二区av在线 | 精品在线观看一区| 精品欧美国产一区二区三区| 国产精品怡红院| 亚洲片国产一区一级在线观看| 手机在线免费看av| 国产啪精品视频网站| 香蕉人人精品| 日韩激情视频一区二区| 久久爱另类一区二区小说| 国精品无码人妻一区二区三区| 亚洲影院在线观看| 136福利视频导航| 在线精品国产成人综合| 极品美女一区| 久久99蜜桃综合影院免费观看| 亚洲一区 二区 三区| 色婷婷综合网站| 国产精品―色哟哟| 亚洲欧美一二三区| 日韩二区三区在线| av资源在线看片| 成人动漫在线观看视频| 欧美一区国产在线| 日本特黄在线观看| 亚洲精品一二三四区| 亚洲中文字幕在线一区| 在线亚洲欧美视频| 精品欧美一区二区三区在线观看| 久久人人九九| 国产模特精品视频久久久久| a级一a一级在线观看| 亚洲第一久久影院| 日本黄色大片视频| 国模精品视频一区二区三区| 7777精品| 国产婷婷一区二区三区| 91小视频免费观看| 在线天堂中文字幕| 亚洲一二在线观看| 78精品国产综合久久香蕉| 色999五月色| 麻豆91在线看| 久久久精品视频免费观看| 欧美一区二区成人6969| 中文字幕有码在线观看| 99高清视频有精品视频| 精品91视频| 手机在线成人av| 色婷婷亚洲一区二区三区| 国产免费视频在线| 国产日韩欧美成人| 欧美影视一区| av网页在线观看| 色久优优欧美色久优优| jizz在线免费观看| 国产欧美最新羞羞视频在线观看| 亚洲视频电影在线| 熟妇高潮一区二区| 欧美日韩日本国产| 国模吧精品人体gogo| 国产免费一区视频观看免费| 亚洲影视一区二区三区| 午夜影院福利社| 在线影院国内精品| 黄色的网站在线观看| 成人片在线免费看| 久久精品一本| 男人av资源站| 亚洲国产三级网| 日韩大陆av| 男人的天堂狠狠干| 国产农村妇女毛片精品久久麻豆 | 成人高清免费观看| 午夜精品一区二| 久久的精品视频| 日韩人体视频| 国产探花在线观看视频| 婷婷综合另类小说色区| av在线资源网| 欧美一区二区视频在线观看 | 国产精品青青草| 亚洲综合日本| 婷婷在线精品视频| 精品视频在线播放免| 成人在线精品| 亚洲自偷自拍熟女另类| 亚洲欧洲美洲综合色网|