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

提高 Android 代碼質量的4個工具

開發 開發工具
在這篇文章中,我將通過不同的自動化工具如CheckStyle,FindBugs,PMD以及Android Lint來介紹(如何)提高你的安卓代碼質量。通過自動化的方式檢查你的代碼非常有用,尤其當你在一個團隊中工作,為了在你的代碼中保持嚴格的語法格式以 及避免很多壞習慣和錯誤。

在這篇文章中,我將通過不同的自動化工具如CheckStyle,FindBugs,PMD以及Android Lint來介紹(如何)提高你的安卓代碼質量。通過自動化的方式檢查你的代碼非常有用,尤其當你在一個團隊中工作,為了在你的代碼中保持嚴格的語法格式以 及避免很多壞習慣和錯誤。我將仔細地介紹如何在你空閑的時候直接運用這些工具通過Gradle構建腳本以及如何配置它們。

[[140431]]

Fork該示例

我強烈建議你拷貝下這個項目工程,盡管我將介紹的案例都是來自它。與此同時,你將能夠測試下自己對這些工具的了解情況。

關于Gradle任務

Gradle任務的概念(在Gradle中的含義)是理解該篇文章(以及如何以一種通用的方式寫Gradle腳本)的基礎。我強烈建議你去看下這兩篇關于Gradle任務的文檔(這篇這篇)。這個文檔包含了大量的例子,因此它非常容易開始學習。現在,我假定你拷貝了我的Repo,你導入這個工程到你的Android Studio,并且你熟悉Gradle任務。如果不是,別擔心,我將盡我***的努力讓我的講解更有意義。

關于示例項目的層次結構

你可以將gradle腳本文件分割成很多文件,我現在已經有3個gradle文件:

  • 根文件夾中的文件,這些文件或多或少都是關于這個項目的配置的(用的哪個Maven Repos,用的哪個版本的Gradle)。

  • App子文件夾中的文件,這些文件是典型的用于創建安卓應用的gradle文件。

  • config子文件夾中的文件,這里的文件才是我們關系的重點,因為我用這里的文件保存和配置項目中的所有工具。

Checkstyle

簡介

“Checkstyle是一個開發工具用來幫助程序員編寫符合代碼規范的Java代碼。它能自動檢查Java代碼為空閑的人進行這項無聊(但重要)的任務。”

正如Checkstyle的開發者所言,這個工具能夠幫助你在項目中定義和維持一個非常精確和靈活的代碼規范形式。當你啟動CheckStyle,它會根據所提供的配置文件分析你的Java代碼并告訴你發現的所有錯誤。

Gradle的形式

下面的代碼向你展示了在你的項目中使用Checkstyle的最基本的配置(如Gradle任務):

  1. task checkstyle(type: Checkstyle) { 
  2. configFile file("${project.rootDir}/config/quality/checkstyle/checkstyle.xml"// Where my checkstyle config is... 
  3. configProperties.checkstyleSuppressionsPath = file("${project.rootDir}/config/quality/checkstyle/suppressions.xml").absolutePath // Where is my suppressions file for checkstyle is... 
  4. source 'src' 
  5. include '**/*.java' 
  6. exclude '**/gen/**' 
  7. classpath = files() 

所以,基本上這個任務會根據checkstyle.xml和suppressions.xml分析你的代碼。通過Android Studio執行它僅僅需要從工具面的CheckStyle來啟動它。

啟動CheckStyle之后,你講收到一個報告用于展示在你項目中發現的每個錯誤。這是非常直接的方式。

如果你想在checkstyle上做更多的配置,可以參考這篇文檔

Checkstyle的使用技巧

Checkstyle會發現大量的問題,特別是在你運用了大量的規則配置,如同你設置了一個非常精確的語法。盡管我通過Gradle使用 checkstyle,例如在我進行推送之前,我仍然推薦你為IntellJ/Android Studio使用checkstyle插件(你可以通過Android Studio的工作面板文件/設置/插件直接安裝插件)。這種方式下,你可以根據那些為Gradle配置的相同文件在你的工程中使用 checkstyle,但是遠不止這些,你可以直接在Android Studio中獲取帶有超鏈接結果,這些結果通過超鏈接在你的代碼中對應,這是非常有用的(Gradle的這種方式仍然很重要的,因為你可以使用它自動構 建系統,如Jenkins)。

Findbugs

簡介

Findbugs是否需要一個簡介呢?我想它的名稱已經讓人顧名思義了。“FindBugs使用靜態分析方法為出現bug模式檢查Java字節 碼”。FindBugs基本上只需要一個程序來做分析的字節碼,所以這是非常容易使用。它能檢測到常見的錯誤,如錯誤的布爾運算符。FindBugs也能 夠檢測到由于誤解語言特點的錯誤,如Java參數調整(這不是真的有可能因為它的參數是傳值)。

Gradle的形式

下面的代碼向你展示了在你的項目中使用Findbugs的最基本的配置(以Gradle任務為例):

 

  1. task findbugs(type: FindBugs) { 
  2. ignoreFailures = false 
  3. effort = "max" 
  4. reportLevel = "high" 
  5. excludeFilter = new File("${project.rootDir}/config/quality/findbugs/findbugs-filter.xml"
  6. classes = files("${project.rootDir}/app/build/classes"
  7.  
  8. source 'src' 
  9. include '**/*.java' 
  10. exclude '**/gen/**' 
  11.  
  12. reports { 
  13. xml.enabled = false 
  14. html.enabled = true 
  15. xml { 
  16. destination "$project.buildDir/reports/findbugs/findbugs.xml" 
  17. html { 
  18. destination "$project.buildDir/reports/findbugs/findbugs.html" 
  19.  
  20. classpath = files() 

它是如此的像一個Checkstyle任務。盡管Findbugs支持HTML和XML兩種報告形式,我選擇HTML形式,因為這種形式更具有可讀 性。而且,你只需要把報告的位置設置為書簽就可以快速訪問它的位置。這個任務也會失敗如果發現Findbgus錯誤失敗(同樣生成報告)。執行 FindBugs任務,就像執行CheckStyle任務(除了任務的名稱是“FindBugs”)。

Findbugs的使用技巧

由于Android項目是從Java項目略有不同,我強烈推薦使用FindBugs過濾器(規則配置)。你可以在這一個例子(例如項目之一)。它基 本上忽略了R文件和你的Manifest文件。順便說一句,由于(使用)FindBugs分析你的代碼,你至少需要編譯一次你的代碼才能夠測試它。

#p#

PMD

簡介

這個工具有個有趣的事實:PMD不存在一個準確的名稱。(所以)在官網上你可以發現很有有趣的名稱,例如:

  • Pretty Much Done

  • Project Meets Deadline

事實上,PMD是一個工作有點類似Findbugs的強大工具,但是(PMD)直接檢查源代碼而不是檢查字節碼(順便說句,PMD適用很多語言)。 (PMD和Findbugs)的核心目標是相同的,通過靜態分析方法找出哪些模式引起的bug。因此為什么同時使用Findbugs和PMD呢?好吧!盡 管Findbugs和PMD擁有相同的目標,(但是)他們的檢查方法是不同的。所以PMD有時檢查出的bug但是Findbugs卻檢查不出來,反之亦 然。

Gradle的形式

下面的代碼向你展示了在你的項目中使用PMD的最基本的配置(以Gradle任務為例):

 

  1. task pmd(type: Pmd) { 
  2. ruleSetFiles = files("${project.rootDir}/config/quality/pmd/pmd-ruleset.xml"
  3. ignoreFailures = false 
  4. ruleSets = [] 
  5.  
  6. source 'src' 
  7. include '**/*.java' 
  8. exclude '**/gen/**' 
  9.  
  10. reports { 
  11. xml.enabled = false 
  12. html.enabled = true 
  13. xml { 
  14. destination "$project.buildDir/reports/pmd/pmd.xml" 
  15. html { 
  16. destination "$project.buildDir/reports/pmd/pmd.html" 

就PMD來說,它幾乎與Findbugs相同。PMD支持HTML和XML兩種報告形式,所以我再次選擇HTML形式。我強烈建議你使用自己的通用配置集文件,正如同我在這個例子(check this file)中一樣。所以,你當然應該去看下這些通用配置集文件。 我建議你,因為PMD可比FindBugs更有爭議的很多,例如:如果你不聲明”if statement”或”if statement”為空,它基本上會給你警告信息。如果這些規則是正確的,或這對于您的項目(來說是正確的),我真的認可你和你隊友的工作。我不希望程 序因為”if statement”崩潰,我認為這樣程序的可讀性很差。執行PMD任務,就像是(執行)CheckStyle任務(除了任務的名稱是“PMD”)。

PMD的使用技巧

我建議你不要使用默認的規則配置集,你需要添加這行代碼(已經加上):

ruleSets = []

否則,因為默認值是這些基本的規則配置集,基本的規則配置集會和你定義的規則集一起執行。所以,如果你的自定義規則集不在那些基本配置集中,他們仍然會執行。

Android Lint

簡介

“Android lint工具是一個靜態代碼分析工具,它能檢查安卓項目源文件的潛在缺陷和優化改進的正確性,安全性,性能,可用性,可訪問性和國際化。”

正如官方網站所說,Android Lint是另一種靜態分析工具,專門為Android服務。它是非常強大的,能給你大量的建議以提高你的代碼質量。

Gradle的形式

 

  1. android { 
  2. lintOptions { 
  3. abortOnError true 
  4.  
  5. lintConfig file("${project.rootDir}/config/quality/lint/lint.xml"
  6.  
  7. // if true, generate an HTML report (with issue explanations, sourcecode, etc) 
  8. htmlReport true 
  9. // optional path to report (default will be lint-results.html in the builddir) 
  10. htmlOutput file("$project.buildDir/reports/lint/lint.html"

我建議你使用一個單獨的文件來定義哪些配置需要使用和不使用。這個網站根據***的ADT版本定義了全部的配置。我的演示項目中的lint文件包含所有這些規則(ADT 21),包含等級為”ignore”的”severity”:

  • IconDensities:這個規則配置確保你定義每個圖像資源中的(分辨率)密度(除了ldpi)。

  • IconDipSize:這個規則配置確保你為每個dip定義合適的資源(換句話來說,如果你沒有為每個density設置相同的圖片資源,則不需要重新設置圖片大小)。

所以你可以重用這個lint文件并激活你想要的所有規則。執行Android Lint任務,就像執行CheckStyle任務(除了任務的名稱是”lint”)。

Android Lint的使用技巧

對于Android Lint沒有什么特別的技巧,只需要牢記Android Lint會測試所有配置規則,除了那些等級為“ignore”的“severity”的配置。因此如果發布了新版本ADT下的新配置規則,他們將被檢查,而不是忽視。

實例演示

現在,你有所有的方法為您的項目使用這四個工具。顯然,如果我們能同時使用這四個工具會更好。你可以添加你的gradle任務之間的依賴,比如當你 執行一個任務,其他任務則是***個完成后執行。通常在Gradle中,通過讓工具具有“check”任務來達到工具之間的相互關系:

check.dependsOn ‘checkstyle’, ‘findbugs’, ‘pmd’, ‘lint’現在,當執行“check” 任務的時候,Checkstyle, Findbugs, PMD, and Android Lint將會同時執行。在你執行/ commiting / pushing / ask merge request 之前進行質量檢查是一個很棒的方式。

你可以在這個Gradle文件中找到所有任務的一個完整例子。你可以把所有的質量配置文件和Gradle文件從你看到的演示實例中分開,這些演示的實例把一起都放在“config/quality” 文件夾下。

總結

在這篇文章中,利用Gradle對Android使用代碼質量檢查工具是非常容易。比使用質量工具局部檢查您的項目在您自己的計算機上,這些工具可 以用于自動構建如Jenkins/Hudson這樣的平臺,讓你自動進行質量檢查,同時自動建立過程。執行所有我從CLI展現的測試,如同在 Jenkins/Hudson上執行,簡單地執行:

gradle check請隨時對這篇文章發表評論,或者問任何有關Android的問題。

責任編輯:王雪燕 來源: devtf
相關推薦

2024-05-24 09:57:34

2023-01-06 18:31:46

準確命名

2022-08-04 09:01:45

TypeScriptMicrosoft

2015-07-23 10:25:27

android代碼質量

2023-03-16 08:01:56

TypeScript開源編程語言

2021-05-18 15:41:15

開發工具編程

2009-06-03 15:31:40

Eclipse插件提高代碼質量

2016-02-23 11:03:03

代碼質量編寫函數

2012-04-09 15:40:31

PHP

2016-02-24 16:03:34

代碼質量編寫函數

2012-07-30 13:15:18

代碼

2012-11-07 09:48:26

2024-05-21 10:40:09

開發前端裝飾器

2015-08-11 09:39:25

重構提高代碼質量

2015-07-22 09:44:07

Android開發Web工具

2010-05-20 09:07:30

jQuery

2024-02-19 14:50:42

編碼原則軟件開發

2010-08-20 17:55:55

軟件質量生命周期管理軟件開發

2012-05-22 00:28:21

JavaJava開源開源工具

2015-05-06 09:20:34

代碼質量代碼審查實踐
點贊
收藏

51CTO技術棧公眾號

久久不射电影网| 欧美精品丝袜中出| 日本一区免费在线观看| 中文字幕人妻一区二区在线视频 | 裸体一区二区| www.国产一区| 网站免费在线观看| 深夜福利亚洲| 欧美日韩性生活视频| 亚洲欧美日韩精品久久久 | 国内精品伊人久久久久av影院 | 是的av在线| 国产精品国产馆在线真实露脸| 91精品国产高清久久久久久91裸体| 日本中文字幕在线免费观看| 日韩www.| 亚洲精品二三区| 国产欧美精品一二三| 亚洲少妇视频| 亚洲一区二区欧美日韩| 午夜欧美性电影| 无码国产伦一区二区三区视频| 麻豆精品视频在线观看视频| 91国语精品自产拍在线观看性色 | 一级日本不卡的影视| 日韩欧美国产二区| 香蕉视频国产在线| 国产精品一区2区| 国产日韩中文字幕| 国产女主播喷水视频在线观看| 欧美日韩在线大尺度| 在线精品播放av| 双性尿奴穿贞c带憋尿| 久久精品九色| 欧美精品在线观看播放| 国内自拍视频一区| 中文字幕在线看片| 视频一区二区不卡| 国产精品免费网站在线观看| 国产成人一区二区三区免费看| 中文字幕手机在线视频| 影音先锋亚洲电影| 久久综合免费视频| 少妇的滋味中文字幕bd| 九九免费精品视频在线观看| 精品剧情v国产在线观看在线| 亚洲免费999| 成人在线网站| 日本精品视频一区二区| 又粗又黑又大的吊av| 丰满诱人av在线播放| 亚洲欧美激情在线| 色呦呦网站入口| 色的视频在线免费看| 日本一区二区高清| 无码免费一区二区三区免费播放 | 亚洲午夜小视频| 老牛影视av老牛影视av| 欧美国产极品| 日韩精品免费在线观看| 中文字幕在线免费看线人| 女同另类激情重口| 亚洲激情第一页| 添女人荫蒂视频| 亚洲最好看的视频| 亚洲日韩第一页| 丁香激情五月少妇| 色婷婷色综合| 久久久999国产精品| 国产老头老太做爰视频| 在线一区电影| 欧美夫妻性生活xx| 日韩精品乱码久久久久久| 日韩午夜精品| 国产成人精品亚洲精品| 瑟瑟视频在线免费观看| 精品一区二区在线观看| 粉嫩av四季av绯色av第一区| 五月婷婷丁香六月| 久久精品欧美一区二区三区不卡| 日韩欧美一区二区在线观看| 黄色一级片在线观看| 一区二区久久久久| 国产精品333| 99久久亚洲国产日韩美女| 欧美丰满美乳xxx高潮www| 亚洲性图第一页| 亚洲福利网站| www.亚洲免费视频| 欧美极品视频在线观看| 亚洲一区二区动漫| 国产区精品在线观看| www.国产欧美| 久久久久久久综合色一本| 亚洲蜜桃在线| free性欧美16hd| 欧美亚洲国产bt| 亚洲精品无码一区二区| 欧美欧美黄在线二区| 欧美成年人视频网站| 精品成人av一区二区在线播放| 日本亚洲天堂网| 4444kk亚洲人成电影在线| 香蕉久久国产av一区二区| 国产精品久久久久久久裸模| 久久人人爽人人爽人人av| 成人午夜一级| 亚洲经典中文字幕| 成人免费精品动漫网站| 亚洲欧美日韩在线观看a三区| 国产色视频一区| 亚洲人成色777777精品音频| 中文字幕日韩一区二区| 日本黄色三级大片| 视频一区在线| 中文字幕日韩在线观看| 在线观看国产亚洲| 国产成人免费视频网站高清观看视频| 精品日本一区二区三区| 99福利在线| 在线欧美日韩精品| 午夜视频在线观看国产| 中文精品电影| 国产精品最新在线观看| 青青草在线播放| 一区二区三区国产| 国产无遮挡猛进猛出免费软件| 天天操综合520| 欧美国产精品人人做人人爱| 国产一区二区小视频| 久久精品视频免费观看| 日本在线xxx| 榴莲视频成人app| 日韩在线视频网| 狠狠狠狠狠狠狠| 久久色中文字幕| 欧美一区二区三区爽大粗免费| 91久久偷偷做嫩草影院电| 久久精品美女视频网站| 成人黄色免费网| 国产视频一区二区在线观看| 欧美在线观看成人| 天堂网av成人| 欧美自拍视频在线| 色就是色亚洲色图| 五月天中文字幕一区二区| 在线中文字日产幕| 欧美午夜不卡| 国产精品v欧美精品∨日韩| 主播国产精品| 日韩精品中文字幕在线一区| 久草视频手机在线| 韩日av一区二区| 色呦呦网站入口| 精品一区二区三区亚洲| 久久视频免费观看| 国产理论视频在线观看| 亚洲视频狠狠干| 乳色吐息在线观看| 欧美先锋影音| 国产伦精品一区二区三区视频免费 | 日本视频一区在线观看| 色尼玛亚洲综合影院| 亚洲视频专区在线| 又污又黄的网站| 一区在线播放视频| 亚洲精品中文字幕乱码无线| 在线精品视频在线观看高清| av一区二区三区四区电影| heyzo在线| 亚洲视频axxx| 亚洲中文一区二区三区| 亚洲精品五月天| 岛国av免费观看| 亚洲在线免费| 亚洲狠狠婷婷综合久久久| 91麻豆精品一二三区在线| 欧美精品第一页在线播放| 无码国产精品一区二区色情男同 | 久久韩剧网电视剧| 国产精品九九九九| 亚洲在线观看免费视频| 日本japanese极品少妇| 日韩电影在线免费看| www.亚洲一区二区| 欧美一区自拍| 国产综合福利在线| 久草免费在线色站| 亚洲女人天堂视频| 国产又黄又爽视频| 亚洲www啪成人一区二区麻豆| av黄色免费网站| 国产精品一卡二| 草草久久久无码国产专区| 日韩毛片视频| 国产日韩欧美精品| 国产成人精品一区二区三区视频| 九九九久久久久久| 青青草免费观看免费视频在线| 欧美日韩黄色一区二区| 国产精品18p| 国产精品污网站| 稀缺小u女呦精品呦| 老牛影视一区二区三区| 青青草视频国产| 欧美精品一区二区久久| 国产精品久久7| 国产美女久久| 2019中文字幕在线| 在线你懂的视频| 国产一区二区三区网站| 亚洲爆乳无码一区二区三区| 欧美色综合天天久久综合精品| 福利一区二区三区四区| 18成人在线观看| 一区二区精品免费| va亚洲va日韩不卡在线观看| 天天操精品视频| 日本在线不卡视频一二三区| 久在线观看视频| 欧美一区精品| 亚洲精品影院| 国产伦精品一区二区三区视频| 91中文精品字幕在线视频| 韩国美女久久| 97不卡在线视频| 香蕉成人app免费看片| 一区二区三区美女xx视频| 天堂网在线播放| 亚洲成人激情在线观看| 精品久久久无码中文字幕| 欧美日高清视频| 精品久久久久久久久久久国产字幕| 午夜av一区二区| 国产一级视频在线观看| 亚洲欧美经典视频| 男人av资源站| 国产精品美女久久久久久久久久久| 一二三不卡视频| 成人av手机在线观看| 杨幂一区二区国产精品| 国产毛片精品视频| 国产精品嫩草影视| 激情都市一区二区| gai在线观看免费高清| 久久99精品网久久| 黄色一级片免费的| 麻豆中文一区二区| 天天色综合社区| 久久99国产精品麻豆| 中文字幕 91| 久久9热精品视频| 手机av在线免费| 国内精品久久久久影院一蜜桃| 欧美一级小视频| 国产精品香蕉一区二区三区| 中文字幕乱码在线人视频| 国产成人精品一区二区三区四区| 色诱av手机版| 不卡一区中文字幕| 亚洲精品理论片| 欧美国产国产综合| 免费成年人视频在线观看| 亚洲一区二区视频在线观看| 日本在线观看视频网站| 精品日本高清在线播放| 亚洲熟女综合色一区二区三区| 色婷婷国产精品久久包臀 | 亚洲制服av| 欧美日韩中文在线视频| 免费视频一区二区| 91在线第一页| 99国内精品久久| jizz中文字幕| 亚洲日本青草视频在线怡红院| 欧美毛片在线观看| 午夜a成v人精品| 曰批又黄又爽免费视频| 日韩视频免费观看高清完整版 | 国产成人无码一区二区在线播放| 在线观看av一区| 国产喷水福利在线视频| 亚洲成人精品久久久| 波多野结衣在线影院| 欧美成人h版在线观看| 色网在线免费观看| 成人精品在线观看| 国产伦理久久久久久妇女| 日韩福利视频| 欧美a级片网站| 东京热加勒比无码少妇| 久久超碰97中文字幕| 在线观看成人动漫| 欧美国产1区2区| 奇米影视第四色777| 欧美在线观看一二区| 亚洲av无码乱码国产精品| 亚洲男人的天堂网站| h片在线播放| 国产aaa精品| 综合欧美亚洲| 蜜桃999成人看片在线观看| 亚洲国产日韩欧美在线| 99精品免费在线观看| 国产精品一级二级三级| 少妇精品无码一区二区免费视频| 一卡二卡欧美日韩| 亚洲综合免费视频| 日韩风俗一区 二区| 99热国产在线| 国产欧美精品在线播放| 三级精品视频| 亚洲中文字幕无码一区二区三区| 日本不卡高清视频| 国产性生活毛片| 亚洲精品视频在线观看网站| 无码人妻精品一区二区| 精品电影一区二区| 黄色网页在线播放| 国产精品久久久久久av| 日韩美女精品| 成人性生活视频免费看| 国内精品免费**视频| 国产一二三av| 日本道色综合久久| 涩涩视频在线观看免费| 欧美精品成人在线| 日本99精品| 在线无限看免费粉色视频| 久久综合中文| mm131美女视频| 黑人精品xxx一区| 熟妇高潮一区二区高潮| 欧美黑人一级爽快片淫片高清| 日韩在线激情| 亚洲v日韩v欧美v综合| 美女视频一区免费观看| 免费黄色三级网站| 亚洲v精品v日韩v欧美v专区| 性做久久久久久久| 久精品免费视频| 亚洲精品影片| cao在线观看| 不卡的看片网站| 中文字幕一区二区三区手机版 | 国产精品视频xxxx| av资源久久| wwww.国产| 国产精品久久久久三级| 国产又粗又黄又爽的视频| 精品国产一区av| 亚洲日本免费电影| 色乱码一区二区三区熟女| 激情成人综合网| 久久精品www| 亚洲国产精品小视频| 秋霞伦理一区| 日韩在线电影一区| 美女在线观看视频一区二区| 很污很黄的网站| 91精品一区二区三区在线观看| 成人影院www在线观看| 91久久偷偷做嫩草影院| 亚洲网址在线| 久久人人爽人人爽人人片| 欧美性xxxx极品高清hd直播| 极品白浆推特女神在线观看| 国产精品美女www爽爽爽视频| 99精品视频精品精品视频| 无套白嫩进入乌克兰美女| 亚洲激情在线激情| 天天操天天舔天天干| 人人做人人澡人人爽欧美| 欧美亚洲高清| 亚洲av毛片在线观看| 亚洲成av人在线观看| 青春草在线观看| 成人激情视频在线播放| 欧美日韩福利| 一本色道久久综合亚洲精品图片| 在线观看日韩高清av| 黄网站在线播放| 国产精选一区二区| 日韩国产欧美在线观看| 伊人在线视频观看| 日韩av在线免费播放| 88xx成人网| 欧美日韩不卡在线视频| 国产视频一区不卡| 亚洲免费成人在线| 国产精品va在线| 国模一区二区三区| 亚洲码无人客一区二区三区| 欧美一区二视频| 免费观看亚洲| www.亚洲成人网| 中文字幕成人网| 日韩中文字幕综合| 成人精品视频在线| 麻豆成人在线|