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

7 個你應該知道的Gradle 實用技巧

移動開發 Android
Gradle在android開發中應用地十分廣泛,但相信有很多同學并不很了解gradle

 [[392607]]

前言

Gradle在android開發中應用地十分廣泛,但相信有很多同學并不很了解gradle

本文主要介紹了使用gradle的一些實用技巧,幫助讀者增進對這個熟悉的陌生人的了解

主要包括以下內容

  1. Gradle依賴樹查詢
  2. 使用循環優化Gradle依賴管理
  3. 支持代碼提示的Gradle依賴管理
  4. Gradle模塊化
  5. Library模塊Gradle代碼復用
  6. 資源文件分包
  7. AAR依賴與源碼依賴快速切換

1.Gradle依賴樹查詢

有時我們在分析依賴沖突時,需要查看依賴樹,我們常用的查看依賴樹的命令為

  1. gradlew app:dependencies 

不過這種命令行方式查看依賴樹出來的信息太多,看的有些費勁

所以官方又推出了Scan工具來幫助我們更加方便地查看依賴樹

在項目根目錄位置下運行gradle build \--scan即可,然后會生成 HTML 格式的分析文件的分析文件

分析文件會直接上傳到Scan官網,命令行最后會給出遠程地址

第一次跑會讓你在 Scan 官網注冊一下,郵件確認后就能看了

scan 工具是按照依賴變體挨個分類的,debugCompileClassPath 就是 dedug 打包中的依賴包了

如上,使用這種方式分析依賴樹更加方便簡潔

2.使用循環優化Gradle依賴管理

如下所示,我們常常使用ext來管理依賴

  1. dependencies { 
  2.  
  3. implementation fileTree(include: ['*.jar'], dir: 'libs'
  4.  
  5. implementation rootProject.ext.dependencies["appcompat-v7"
  6.  
  7. implementation rootProject.ext.dependencies["cardview-v7"
  8.  
  9. implementation rootProject.ext.dependencies["design"
  10.  
  11. implementation rootProject.ext.dependencies["constraint-layout"
  12.  
  13. annotationProcessor rootProject.ext.dependencies["glide_compiler"
  14.  
  15. ... 
  16.  

這樣雖然實現了依賴的統一管理,但是隨著項目越來越大,依賴也會越來越多,常常會有幾十甚至上百行,導致build.gradle越來越長

有沒有一種好的方式不在 build.gradle 中寫這么多的依賴配置?

有,就是使用循環遍歷依賴。

示例如下,首先添加config.gradle

  1. ext{ 
  2.  
  3. dependencies = [ 
  4.  
  5. // base 
  6.  
  7. "appcompat-v7" : "com.android.support:appcompat-v7:${version["supportLibraryVersion"]}", 
  8.  
  9. ... 
  10.  
  11.  
  12.  
  13.  
  14. annotationProcessor = [ 
  15.  
  16. "glide_compiler" : "com.github.bumptech.glide:compiler:${version["glideVersion"]}"
  17.  
  18. ... 
  19.  
  20.  
  21.  
  22.  
  23. apiFileDependencies = [ 
  24.  
  25. "launchstarter" :"libs/launchstarter-release-1.0.0.aar" 
  26.  
  27.  
  28.  
  29.  
  30. debugImplementationDependencies = [ 
  31.  
  32. "MethodTraceMan" : "com.github.zhengcx:MethodTraceMan:1.0.7" 
  33.  
  34.  
  35.  
  36.  
  37. ... 
  38.  
  39.  
  40.  
  41. implementationExcludes = [ 
  42.  
  43. "com.android.support.test.espresso:espresso-idling-resource:3.0.2" : [ 
  44.  
  45. 'com.android.support' : 'support-annotations' 
  46.  
  47.  
  48.  
  49.  
  50.  
  51. ... 
  52.  

然后在build.gradle中配置如下:

  1. apply from config.gradle 
  2.  
  3. ... 
  4.  
  5. def implementationDependencies = project.ext.dependencies 
  6.  
  7. def processors = project.ext.annotationProcesso 
  8.  
  9. def implementationExcludes = project.ext.implementationExcludes 
  10.  
  11. dependencies{ 
  12.  
  13. // 處理所有的 xxximplementation 依賴 
  14.  
  15. implementationDependencies.each { k, v -> implementation v } 
  16.  
  17. // 處理 annotationProcessor 依賴 
  18.  
  19. processors.each { k, v -> annotationProcessor v } 
  20.  
  21. // 處理所有包含 exclude 的依賴 
  22.  
  23. implementationExcludes.each { entry -> 
  24.  
  25. implementation(entry.key) { 
  26.  
  27. entry.value.each { childEntry -> 
  28.  
  29. exclude(group: childEntry) 
  30.  
  31.  
  32.  
  33.  
  34. ... 
  35.  

這樣做的優點在于

1.后續添加依賴不需要改動build.gradle,直接在config.gradle中添加即可

2.精簡了build.gradle的長度

3.支持代碼提示的Gradle依賴管理

上面介紹了通過config.gradle管理依賴的方法

在我們添加Gradle依賴時,還有一些痛點

1.不支持代碼提示

2.不支持單擊跳轉

3.多模塊開發時,不同模塊相同的依賴需要復制粘貼

使用buildSrc+kotlin可以解決這個問題

效果如下:

由于buildSrc是對全局的所有module的配置,所以可以在所有module中直接使用

這里就不多介紹了,詳細開發及引入buildSrc的過程可見:

[譯]Kotlin + buildSrc:更好的管理Gadle依賴

buildSrc vs includeBuild

上面介紹的方法使用的是buildSrc,使用起來比較方便

不過它的缺點在于構建速度上會慢一些,使用includeBuild可以實現同樣的效果

兩者實現的最終效果是差不多的

詳細實現可見:【奇技淫巧】除了 buildSrc 還能這樣統一配置依賴版本?巧用 includeBuild

4.Gradle模塊化

我們在開發中,引入一些插件時,有時需要在build.gradle中引入一些配置,比如greendao,推送,tinker等

這些其實是可以封裝在相應gradle文件中,然后通過apply from引入

舉個例子,例如在我們使用greendao數據庫時,需要在build.gradle中指定版本

這種時候應該新建一個greendao-config.gradle

  1. apply plugin: 'org.greenrobot.greendao' 
  2.  
  3. //greenDao指定版本和路勁等 
  4.  
  5. greendao { 
  6.  
  7. //數據庫的schema版本,也可以理解為數據庫版本號 
  8.  
  9. schemaVersion 1 
  10.  
  11. //設置DaoMaster、DaoSession、Dao包名,也就是要放置這些類的包的全路徑。 
  12.  
  13. daoPackage 'com.example.ausu.big_progect.dao' 
  14.  
  15. //設置DaoMaster、DaoSession、Dao目錄 
  16.  
  17. targetGenDir 'src/main/java' 
  18.  

然后再在build.gradle中引入

  1. apply from 'greendao-config.gradle' 

這樣做主要有2個優點

1.單一職責原則,將greendao的相關配置封裝在一個文件里,不與其他文件混淆

2.精簡了build.gradle的代碼,同時后續修改數據庫相關時不需要修改build.gradle的代碼

5.Library模塊Gradle代碼復用

隨著我們項目的越來越大,Library Module也越建越多,每個Module都有自己的build.gradle

但其實每個build.gradle的內容都差不多,我們能不能將重復的部分封裝起來復用?

我們可以做一個 basic 抽取,同樣將共有參數/信息提取到 basic.gradle 中,每個 module apply,這樣就是減少了不少代碼量

  1. apply plugin: 'com.android.library' 
  2.  
  3. apply plugin: 'kotlin-android' 
  4.  
  5. apply plugin: 'kotlin-android-extensions' 
  6.  
  7. apply plugin: 'kotlin-kapt' 
  8.  
  9. android { 
  10.  
  11. // 指定用于編譯項目的 API 級別 
  12.  
  13. compileSdkVersion Versions.compileSDK 
  14.  
  15. // 指定在生成項目時要使用的 SDK 工具的版本,Android Studio 3.0 后不需要手動配置。 
  16.  
  17. buildToolsVersion Versions.buildTools 
  18.  
  19. // 指定 Android 插件適用于所有構建版本的版本屬性的默認值 
  20.  
  21. defaultConfig { 
  22.  
  23. minSdkVersion Versions.minSDK 
  24.  
  25. targetSdkVersion Versions.targetSDK 
  26.  
  27. versionCode 1 
  28.  
  29. versionName "1.0" 
  30.  
  31.  
  32. // 配置 Java 編譯(編碼格式、編譯級別、生成字節碼版本) 
  33.  
  34. compileOptions { 
  35.  
  36. encoding = 'utf-8' 
  37.  
  38. sourceCompatibility JavaVersion.VERSION_1_8 
  39.  
  40. targetCompatibility JavaVersion.VERSION_1_8 
  41.  
  42.  
  43. kotlinOptions { 
  44.  
  45. jvmTarget = JavaVersion.VERSION_1_8.toString() 
  46.  
  47.  
  48. lintOptions { 
  49.  
  50. // lint 異常后繼續執行 
  51.  
  52. abortOnError false 
  53.  
  54.  
  55.  
  56. dependencies { 
  57.  
  58. implementation fileTree(dir: 'libs', include: ['*.jar']) 
  59.  
  60. ... 
  61.  

然后在相應的模塊的build.gradle中引入即可

  1. apply from:"../basic.gradle" 
  2.  
  3. dependencies { 
  4.  
  5. api Deps.constraintLayout 
  6.  
  7. api Deps.retrofit 
  8.  

這樣是不是簡潔很多?讀者可根據項目實際情況判斷是否適合抽取basic.gradle使用

6.資源文件分包

隨著項目越來越大,項目中的資源文件也越來越大,比如layout與drawable文件夾下的文件數量常常可達幾百甚至上千個

我們能不能像代碼一樣,對資源文件進行分包呢?

答案是可以的,主要是利用gradle的sourceSets屬性

我們可以將資源文件像代碼一樣按業務分包,具體操作如下

1.新建res_xxx目錄

在 main 目錄下新建 res_core, res_feed(根據業務模塊命名)等目錄,在res_core中新建res目錄中相同的文件夾如:layout、drawable-xxhdpi、values等。

2.在gradle中配置res_xx目錄

  1. android { 
  2.  
  3. //... 
  4.  
  5. sourceSets { 
  6.  
  7. main { 
  8.  
  9. res.srcDirs( 
  10.  
  11. 'src/main/res'
  12.  
  13. 'src/main/res_core'
  14.  
  15. 'src/main/res_feed'
  16.  
  17.  
  18.  
  19.  

以上就完成了資源文件分包,這樣做主要有幾點好處

1.按業務分包查找方便,結構清晰

2.strings.xml等key-value型文件多人修改可以減少沖突

3.當刪除模塊或做組件化改造時資源文件刪除或遷移方便,不必像以前一樣一個個去找

7.AAR依賴與源碼依賴快速切換

當我們的項目中Module越來越多,為了加快編譯速度,常常把Module發布成AAR,然后在項目中直接依賴AAR

但是我們有時候又需要修改AAR,就需要依賴于源碼

所以我們需要一個可以快速地切換依賴AAR與依賴源碼的方式

我們下面舉個例子,以retrofit為例

假如我們要修改retrofit的源碼,修改步驟如下:

1.首先下載retrofit,可以放到和項目同級的目錄,并修改目錄名為retrofit-source,以便區分

2.在settings.gradle文件中添加需要修改的aar庫的源碼project

  1. include ':retrofit-source' 
  2.  
  3. project(':retrofit-source').projectDir = new File("../retrofit-source"

3.替換aar為源碼

build.gradle(android) 腳本中添加替換策略

  1. allprojects { 
  2.  
  3. repositories { 
  4.  
  5. ... 
  6.  
  7.  
  8.  
  9.  
  10. configurations.all { 
  11.  
  12. resolutionStrategy { 
  13.  
  14. dependencySubstitution { 
  15.  
  16. substitute module( "com.squareup.retrofit2:retrofit") with project(':retofit-source'
  17.  
  18.  
  19.  
  20.  

如上幾步,就可以比較方便地實現aar依賴與源碼依賴間的互換了

這樣做的主要優點在于

1.不需要修改原有的依賴配置,而是通過全局的配置,利用本地的源碼替換掉aar,侵入性低

2.如果有多個Module依賴于同一個aar,不需要重復修改,只需在根目錄build.gradle中修改一處

總結

本文主要介紹了幾個實用的Gradle技巧,如果覺得有所幫助,可以幫忙點贊

如果發現本文還有什么不足,歡迎在評論區指出~

 

責任編輯:張燕妮 來源: 程序員的那些事
相關推薦

2020-07-11 09:45:33

Python編程語言開發

2022-09-15 07:05:09

Windows電腦技巧

2022-09-20 11:58:27

NpmNode.js

2024-09-06 15:48:13

2020-04-10 16:35:58

GitHub數據網站

2011-03-25 15:56:58

2013-01-09 13:55:43

2018-12-25 08:58:46

2020-04-08 17:10:03

GitHub代碼開源

2022-06-29 10:06:27

Webpack優化技巧前端

2012-02-07 14:04:53

CSS

2023-10-30 09:10:05

DjangoQuerySet

2018-03-08 08:04:53

JavaScript反調試惡意軟件

2023-01-09 17:23:14

CSS技巧

2020-04-03 19:21:59

JavaScript編程語言開發

2021-10-25 14:55:38

Linux技巧命令

2011-06-21 10:02:29

Python

2012-03-07 14:46:29

2025-09-22 07:31:11

2024-05-22 09:29:43

點贊
收藏

51CTO技術棧公眾號

99精品一区| 亚洲最大成人| 成人免费高清在线观看| 97婷婷大伊香蕉精品视频| 在线免费看黄视频| 四虎在线精品| 亚欧色一区w666天堂| 日韩精品伦理第一区| 国产区精品在线| 国产日韩一区| 欧美成aaa人片免费看| 日韩免费高清一区二区| 精品176极品一区| 午夜精品一区二区三区三上悠亚| 另类欧美小说| 国产高清免费在线观看| 麻豆成人在线| 色综合久久88色综合天天看泰| 深爱五月激情网| 精品国产亚洲一区二区三区| 精品久久久久久中文字幕| 一区二区三区三区在线| 四虎成人免费在线| 国产最新精品免费| 国产成人精品国内自产拍免费看| 老女人性淫交视频| 教室别恋欧美无删减版| 精品国产91乱码一区二区三区| 亚洲 欧美 日韩系列| av今日在线| 亚洲精品国久久99热| 日韩欧美视频一区二区| 午夜小视频免费| 国产精品中文字幕欧美| 国产精品一区二区三区免费视频| 免费看日韩毛片| 欧美精品麻豆| 免费成人高清视频| 四虎地址8848| 日韩欧美网站| 精品伊人久久97| 色婷婷精品久久二区二区密| 久久99成人| 6080国产精品一区二区| 97xxxxx| www.8ⅹ8ⅹ羞羞漫画在线看| 亚洲欧美日韩一区二区三区在线观看| 视频一区视频二区视频| 黄色在线观看网| 久久综合九色综合欧美98| 国产一区二区精品免费| 亚洲精品一区二区三区不卡| 粉嫩蜜臀av国产精品网站| 亚洲mm色国产网站| 国产乱码一区二区| 国产另类ts人妖一区二区| 成人情趣片在线观看免费| 一女二男一黄一片| 国产真实乱对白精彩久久| 国产精品嫩草影院一区二区| 午夜精品免费观看| 日韩在线卡一卡二| 国产精品伦子伦免费视频| 中文字幕视频在线播放| 麻豆一区二区三| 国产美女被下药99| 91久久久久久久久久久久| 精品亚洲免费视频| 亚洲一区二区日本| 成人免费视频国产| 91丨九色丨蝌蚪丨老版| 任我爽在线视频精品一| yourporn在线观看中文站| 国产精品拍天天在线| 中文字幕一区二区三区四区五区六区 | 亚洲高清毛片| 欧美中文在线字幕| 欧美一区免费看| 奇米色一区二区| 91免费看网站| 亚洲 美腿 欧美 偷拍| 久久久久99精品国产片| 亚洲人体一区| 欧美高清另类hdvideosexjaⅴ | 香港三级日本三级a视频| 国产乱码在线| 在线观看中文字幕不卡| 视频免费1区二区三区| 亚洲日本va中文字幕| 国产视频精品一区二区三区| eeuss中文字幕| 欧美日韩免费| 欧美自拍大量在线观看| 亚洲中文字幕在线一区| 成人免费毛片a| 日韩欧美一区二区三区四区 | 亚洲国产毛片aaaaa无费看| 99999精品视频| 96视频在线观看欧美| 亚洲а∨天堂久久精品9966| 精品无码国产污污污免费网站 | 欧美肥老妇视频| 黄色片中文字幕| 国产在线国偷精品产拍免费yy| 久久久久se| 好吊日视频在线观看| 欧美日韩中文字幕在线| 国产精品久久久久久久99| 国产精品视屏| 日日狠狠久久偷偷四色综合免费| 日韩av一区二区在线播放| 日本午夜精品一区二区三区电影| av成人在线电影| 国产日本在线视频| 亚洲成人一区二区| 性生生活大片免费看视频| 性欧美lx╳lx╳| 欧美黄色成人网| 中文字幕网址在线| 99国产精品视频免费观看| 国产91av视频在线观看| 依依综合在线| 精品对白一区国产伦| 亚洲天堂网av在线| 日韩激情一二三区| 久久亚洲高清| 日本动漫理论片在线观看网站| 欧美综合久久久| 中文字幕影片免费在线观看| 亚洲小说欧美另类社区| 亚洲精品日韩av| 巨大荫蒂视频欧美另类大| 91黄色免费版| 中文字幕一区二区三区人妻| 亚洲大胆在线| 国产日韩欧美一区二区三区四区 | 亚洲老妇xxxxxx| 潘金莲激情呻吟欲求不满视频| 亚洲自拍电影| 日韩美女视频在线观看| 全色精品综合影院| 天天亚洲美女在线视频| 国产综合内射日韩久| 欧美午夜不卡| 国产精品加勒比| 中文字幕中文字幕在线十八区 | 国产系列电影在线播放网址| 欧美丝袜一区二区| 色综合久久五月| 黄色在线成人| 国内一区二区三区在线视频| 成人bbav| 国产手机视频精品| 日日摸天天添天天添破| 91麻豆.com| 欧美 国产 小说 另类| 在线日韩网站| 国产盗摄xxxx视频xxx69| 欧美扣逼视频| 欧美亚洲愉拍一区二区| 久久午夜精品视频| 久久er99精品| 国产一二三四五| 91在线一区| 7777精品视频| 国产永久免费高清在线观看视频| 在线观看亚洲精品| 女性裸体视频网站| 国产精品一区三区| 日韩视频免费播放| 九一亚洲精品| 国产玖玖精品视频| 污污网站在线看| 欧美精品一区二区三区很污很色的| www.youjizz.com亚洲| 99久久伊人精品| 黑森林精品导航| 午夜精品久久久久99热蜜桃导演 | 美日韩中文字幕| 国产精品偷伦视频免费观看国产 | 国产ts一区二区| 秋霞成人影院| 欧美精品一区二| 中文字幕一级片| 亚洲狠狠爱一区二区三区| 白白色免费视频| 国产一本一道久久香蕉| 国产69精品久久久久久久| 欧美亚洲精品在线| www.久久艹| 国产精品久久亚洲不卡| 欧美精品久久久久久久久| 欧美男男同志| 日韩欧美成人一区二区| 国产精品21p| 亚洲女人****多毛耸耸8| 日韩女优在线视频| 麻豆精品一区二区综合av| 欧妇女乱妇女乱视频| 国产精品最新| 国产另类第一区| 国产人与zoxxxx另类91| 日本精品va在线观看| 性xxxxfjsxxxxx欧美| 国产亚洲精品一区二555| 亚洲第一色视频| 欧美色图在线观看| 国产成人在线播放视频| 成人欧美一区二区三区小说| 亚洲人人夜夜澡人人爽| 国产成人av资源| 亚洲最大成人在线观看| 国产亚洲毛片在线| 青青青青在线视频| 日韩理论电影院| 欧美日本亚洲| 精品国产乱子伦一区二区| 成人观看高清在线观看免费| 欧美黑人疯狂性受xxxxx野外| 欧美激情va永久在线播放| 91青青在线视频| 亚洲人成网站在线播| 蜜桃视频在线观看www| 欧美日本视频在线| 亚洲av综合一区| 欧美性20hd另类| 国内免费精品视频| 夜夜精品视频一区二区| 老司机成人免费视频| 国产欧美视频一区二区三区| 国产制服丝袜在线| av男人天堂一区| 污污污www精品国产网站| 国产精品一区二区在线播放 | 国产欧美在线观看一区| 偷拍女澡堂一区二区三区| 99国产欧美另类久久久精品| 水蜜桃av无码| 99热这里都是精品| www国产视频| 成熟亚洲日本毛茸茸凸凹| 佐佐木明希电影| 国产高清精品在线| 久草福利在线观看| 国产乱人伦偷精品视频免下载| 激情图片中文字幕| 激情欧美一区二区| 激情成人在线观看| 国产精品原创巨作av| 国产一级二级av| 丰满亚洲少妇av| 少妇一级淫片免费放播放| 99久久夜色精品国产网站| 人妻丰满熟妇av无码久久洗澡 | 91丨九色丨尤物| 中国毛片在线观看| 国产亚洲一本大道中文在线| 色屁屁草草影院ccyy.com| 国产精品热久久久久夜色精品三区| 国产在线免费av| 亚洲人成网站色在线观看| 极品盗摄国产盗摄合集| 亚洲香蕉伊在人在线观| 国产成人无码精品久在线观看| 色美美综合视频| 一区二区三区精| 精品精品国产高清一毛片一天堂| 少妇精品高潮欲妇又嫩中文字幕| 亚洲精品美女在线观看| 国产系列在线观看| 蜜臀久久99精品久久久无需会员| 春色校园综合激情亚洲| 国产成人拍精品视频午夜网站| 日本一区二区电影| 亚洲一区二区少妇| 国产美女撒尿一区二区| 欧美一区二区三区在线播放 | 国产精品国产三级国产普通话对白 | 国产浮力第一页| 日韩av中文字幕在线免费观看| 成黄免费在线| 欧美高清不卡在线| 成人av观看| 91牛牛免费视频| 欧美91在线| 一区二区冒白浆视频| 一区在线免费观看| 午夜在线观看av| 成人综合婷婷国产精品久久| 欧美18—19性高清hd4k| 黄色av免费在线看| 欧美日韩中文字幕在线| 亚洲自拍第二页| 日韩电视剧在线观看免费网站| 成年人视频在线免费观看| 欧美精品18videos性欧| 日韩一区精品| 好吊色欧美一区二区三区| 青青草97国产精品麻豆| 激情五月宗合网| 国产九色精品成人porny| 能免费看av的网站| 亚洲一区二区高清| 一本大道伊人av久久综合| 日韩精品极品视频免费观看| 国产福利在线播放麻豆| 国产成人高清激情视频在线观看| 日韩精品免费视频一区二区三区| 欧美主播一区二区三区美女 久久精品人| 888久久久| 色综合天天色综合| 91视频免费播放| 久久综合亚洲色hezyo国产| 欧美日韩中文字幕一区| 亚洲色图21p| 欧美多人乱p欧美4p久久| 四虎影视精品永久在线观看| 日韩国产精品一区二区| 99av国产精品欲麻豆| 欧美xxxxxbbbbb| 国产aⅴ综合色| 免费在线观看黄色小视频| 欧美中文字幕一区二区三区| 欧美日韩免费做爰大片| 久久久久久久久久久免费精品| 成人乱码手机视频| 在线免费观看成人网| 蜜臀久久久久久久| 超薄肉色丝袜一二三| 在线视频欧美精品| 人成免费电影一二三区在线观看| 亚州精品天堂中文字幕| 成人h动漫免费观看网站| 日韩video| 国产麻豆视频精品| 亚洲二区在线播放| 在线不卡一区二区| 黄色在线免费| 一本色道久久加勒比精品| 中文字幕精品视频在线| 亚洲一区欧美一区| 精品久久国产视频| 欧美精品一二区| 亚洲经典视频| 妺妺窝人体色www看人体| 国产精品69毛片高清亚洲| 五月天婷婷色综合| 日韩区在线观看| 女人天堂av在线播放| 国产成人精品福利一区二区三区| 午夜激情一区| 日本一区二区在线免费观看| 午夜精品久久久久久久久久 | 国内外成人激情免费视频| 黑人巨大精品欧美一区| 破处女黄色一级片| 亚洲精品一区二区三区蜜桃下载 | 91九色国产社区在线观看| 99热在线成人| 青娱乐国产精品视频| 亚洲一区二区三区小说| 人妻一区二区三区四区| 欧美专区日韩视频| 欧美熟乱15p| 欧美在线a视频| 亚洲sss视频在线视频| 色中色在线视频| 国产精品一区久久| 亚洲影视一区二区三区| 稀缺小u女呦精品呦| 精品国产91乱高清在线观看| 欧美扣逼视频| 成人妇女淫片aaaa视频| 黄色av日韩| 精品无码人妻一区| 欧美日韩精品一区二区在线播放| 在线看av的网址| 99porn视频在线| 国产亚洲毛片在线| 三级黄色在线观看| 亚洲国产中文字幕在线观看| 最新欧美电影| 欧美中日韩在线| 亚洲国产经典视频| www.亚洲天堂.com| 国产成人精品久久二区二区91| 午夜精品一区二区三区国产| wwwxxxx在线观看| 在线视频国产一区| 手机在线免费观看av| 欧美日韩在线精品| 国产一区二区三区精品视频| 久久久精品免费看| 久久影视电视剧免费网站| 偷拍一区二区| gogo亚洲国模私拍人体| 色综合久久六月婷婷中文字幕| 亚洲卡一卡二| 亚洲制服中文| 91免费国产在线|