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

Gradle for Android第二篇( Build.gradle入門 )

移動開發 Android
我們現在討論的所有內容都是基于Android studio的,所以請先行下載相關工具。當我們創建一個新的工程,Android studio會默認為我們創建三個gradle文件,兩個build.gradle,一個settings.gradle,build.gradle分別放在了根目錄和moudle目錄下。

在這一章,我們將學習以下內容:

  • 理解Gradle文件
  • 編寫簡單的構建任務
  • 自制構建腳本

理解Gradle腳本

當然我們現在討論的所有內容都是基于Android studio的,所以請先行下載相關工具。當我們創建一個新的工程,Android studio會默認為我們創建三個gradle文件,兩個build.gradle,一個settings.gradle,build.gradle分別放在了根目錄和moudle目錄下,下面是gradle文件的構成圖:

  1. MyApp 
  2.   ├── build.gradle 
  3.   ├── settings.gradle 
  4.   └── app 
  5.       └── build.gradle    

setting.gradle解析

當你的app只有一個模塊的時候,你的setting.gradle將會是這樣子的:

  1. include ':app' 

setting.gradle文件將會在初始化時期執行,關于初始化時期,可以查看上一篇博客,并且定義了哪一個模塊將會被構建。舉個例子,上述setting.gradle包含了app模塊,setting.gradle是針對多模塊操作的,所以單獨的模塊工程完全可以刪除掉該文件。在這之后,Gradle會為我們創建一個Setting對象,并為其包含必要的方法,你不必知道Settings類的詳細細節,但是你***能夠知道這個概念。

根目錄的build.gradle

該gradle文件是定義在這個工程下的所有模塊的公共屬性,它默認包含二個方法:

  1. buildscript { 
  2.      repositories { 
  3.          jcenter()  
  4.      } 
  5.       dependencies { 
  6.           classpath 'com.android.tools.build:gradle:1.2.3' 
  7.       } 
  8. allprojects { 
  9.      repositories { 
  10.           jcenter()  
  11.      } 
  12.  

buildscript方法是定義了全局的相關屬性,repositories定義了jcenter作為倉庫。一個倉庫代表著你的依賴包的來源,例如maven倉庫。dependencies用來定義構建過程。這意味著你不應該在該方法體內定義子模塊的依賴包,你僅僅需要定義默認的Android插件就可以了,因為該插件可以讓你執行相關Android的tasks。

allprojects方法可以用來定義各個模塊的默認屬性,你可以不僅僅局限于默認的配置,未來你可以自己創造tasks在allprojects方法體內,這些tasks將會在所有模塊中可見。

模塊內的build.gradle

模塊內的gradle文件只對該模塊起作用,而且其可以重寫任何的參數來自于根目錄下的gradle文件。該模塊文件應該是這樣:

  1. apply plugin: 'com.android.application' 
  2.   android { 
  3.       compileSdkVersion 22 
  4.       buildToolsVersion "22.0.1" 
  5.       defaultConfig { 
  6.           applicationId "com.gradleforandroid.gettingstarted" 
  7.           minSdkVersion 14 
  8.           targetSdkVersion 22 
  9.           versionCode 1 
  10.           versionName "1.0" 
  11.       } 
  12.       buildTypes { 
  13.           release { 
  14.               minifyEnabled false 
  15.               proguardFiles getDefaultProguardFile 
  16.                ('proguard-android.txt'), 'proguard-rules.pro' 
  17.           } 
  18.        }  
  19.    } 
  20.    dependencies { 
  21.       compile fileTree(dir: 'libs', include: ['*.jar']) 
  22.       compile 'com.android.support:appcompat-v7:22.2.0' 
  23.     }    

插件

該文件的***行是Android應用插件,該插件我們在上一篇博客已經介紹過,其是google的Android開發團隊編寫的插件,能夠提供所有關于Android應用和依賴庫的構建,打包和測試。

Android

該方法包含了所有的Android屬性,而唯一必須得屬性為compileSdkVersion和buildToolsVersion:

  • compileSdkVersion:編譯該app時候,你想使用到的api版本。
  • buildToolsVersion:構建工具的版本號。

構建工具包含了很多實用的命令行命令,例如aapt,zipalign,dx等,這些命令能夠被用來產生多種多樣的應用程序。你可以通過sdk manager來下載這些構建工具。

defaultConfig方法包含了該app的核心屬性,該屬性會重寫在AndroidManifest.xml中的對應屬性。

  1. defaultConfig { 
  2.        applicationId "com.gradleforandroid.gettingstarted" 
  3.        minSdkVersion 14 
  4.        targetSdkVersion 22 
  5.        versionCode 1 
  6.        versionName "1.0" 
  7.  

***個屬性是applicationId,該屬性復寫了AndroidManifest文件中的包名package

name,但是關于applicationId和package

name有一些不同。在gradle被用來作為Android構建工具之前,package

name在AndroidManifest.xml有兩個作用:其作為一個app的唯一標示,并且其被用在了R資源文件的包名。

Gradle能夠很輕松的構建不同版本的app,使用構建變種。舉個例子,其能夠很輕松的創建一個免費版本和付費版本的app。這兩個版本需要分隔的標示碼,所以他們能夠以不同的app出現在各大應用商店,當然他們也能夠同時安裝在一個手機中。資源代碼和R文件必須擁有相同的包名,否則你的資源代碼將需要改變,這就是為什么Android開發團隊要將package name的兩大功能拆分開。在AndroidManifest文件中定義的package name依然被用來作為包名和R文件的包名。而applicationid將被用在設備和各大應用商店中作為唯一的標示。

接下來將是minSdkVersion和targetSdkVersion。這兩個和AndroidManifest中的<uses-sdk>很像。minSdkVersion定義為最小支持api。

versionCode將會作為版本號標示,而versionName毫無作用。

所有的屬性都是重寫了AndroidManifest文件中的屬性,所以你沒必要在AndroidManifest中定義這些屬性了。

buildTypes方法定義了如何構建不同版本的app,我們將在下一篇博客中有所介紹。

依賴包

依賴模塊作為gradle默認的屬性之一(這也是為什么其放在了Android的外面),為你的app定義了所有的依賴包。默認情況下,我們依賴了所有在libs文件下的jar文件,同時包含了AppCompat這個aar文件。我們將會在下一篇博客中討論依賴的問題。

讓我們開始tasks吧

如果你想知道你多少tasks可以用,直接運行gradlew tasks,其會為你展示所有可用的tasks。當你創建了一個Android工程,那么將包含Android tasks,build tasks,build setup tasks,help tasks,install tasks,verification tasks等。

基本的tasks

android插件依賴于Java插件,而Java插件依賴于base插件。

base插件有基本的tasks生命周期和一些通用的屬性。

base插件定義了例如assemble和clean任務,Java插件定義了check和build任務,這兩個任務不在base插件中定義。

這些tasks的約定含義:

  • assemble: 集合所有的output
  • clean: 清除所有的output
  • check: 執行所有的checks檢查,通常是unit測試和instrumentation測試
  • build: 執行所有的assemble和check

Java插件同時也添加了source sets的概念。

Android tasks

android插件繼承了這些基本tasks,并且實現了他們自己的行為:

  • assemble 針對每個版本創建一個apk
  • clean 刪除所有的構建任務,包含apk文件
  • check 執行Lint檢查并且能夠在Lint檢測到錯誤后停止執行腳本
  • build 執行assemble和check

默認情況下assemble tasks定義了assembleDebug和assembleRelease,當然你還可以定義更多構建版本。除了這些tasks,android 插件也提供了一些新的tasks:

  • connectedCheck 在測試機上執行所有測試任務
  • deviceCheck 執行所有的測試在遠程設備上
  • installDebug和installRelease 在設備上安裝一個特殊的版本
  • 所有的install task對應有uninstall 任務

build task依賴于check任務,但是不依賴于connectedCheck或者deviceCheck,執行check任務的使用Lint會產生一些相關文件,這些報告可以在app/build/outputs中查看: 

 

 

 

android studio的tasks

你根本不必要去執行gradle腳本在命令行中,Android studio有其對應的工具: 

 

 

 

在這個界面,你要做的就是雙擊了。當然你也可以在Android studio中打開命令行,執行相關命令,具體操作就不介紹了。 

 

 

 

自定義構建

當你在Android studio中自定義了gradle文件,需要更新project: 

 

 

 

其實該按鈕,執行了generateDebugSources tasks,該任務會生成所有必要的classes文件。

BuildConfig和resources

  1. android { 
  2.     buildTypes { 
  3.         debug { 
  4.             buildConfigField "String""API_URL"
  5.                "\"http://test.example.com/api\"" 
  6.                buildConfigField "boolean""LOG_HTTP_CALLS""true" 
  7.      } 
  8.        release { 
  9.             buildConfigField "String""API_URL"
  10.                 "\"http://example.com/api\"" 
  11.                buildConfigField "boolean""LOG_HTTP_CALLS","false" 
  12.      }  
  13.  }  

類似這些定義的常量,當定義了這些屬性后,你完全可以在代碼中使用:BuildConfig.API_URL和BuildConfig.LOG_HTTP

最近,Android tools team也讓其里面定義string變為可能:

  1. android { 
  2.        buildTypes { 
  3.            debug { 
  4.                resValue "string""app_name""Example DEBUG" 
  5.            } 
  6.            release { 
  7.                resValue "string""app_name""Example" 
  8.             }  
  9.        } 
  10.  

你可以在代碼中使用這些string。其中“”不是必須得。

全局設置

如果你有很多模塊在一個工程下,你可以這么定義你的project文件。

  1. allprojects { 
  2.        apply plugin: 'com.android.application' 
  3.        android { 
  4.            compileSdkVersion 22 
  5.            buildToolsVersion "22.0.1" 
  6.        } 
  7.  }   

這只會在你的所有模塊都是Android app應用的時候有效。你需要添加Android 插件才能訪問Android的tasks。更好的做法是你在全局的gradle文件中定義一些屬性,然后再模塊中運用它們。比如你可以在根目錄下這么定義:

  1. ext { 
  2.       compileSdkVersion = 22 
  3.       buildToolsVersion = "22.0.1" 
  4.     

那么你在子模塊中就可以使用這些屬性了:

  1. android { 
  2.        compileSdkVersion rootProject.ext.compileSdkVersion 
  3.        buildToolsVersion rootProject.ext.buildToolsVersion 
  4.  }   

Project properties文件

上述方法是一種辦法,當然還有很多辦法:

  • ext方法
  • gradle.properties文件
  • -p參數
  1. ext { 
  2.      local = 'Hello from build.gradle' 
  3.    task printProperties << { 
  4.      println local        // Local extra property 
  5.      println propertiesFile        // Property from file 
  6.      if (project.hasProperty('cmd')) { 
  7.        println cmd        // Command line property 
  8.      } 
  9.  

當然你可以在gradle.properties中定義:

  1. propertiesFile = Hello from gradle.properties 

你也可以輸入命令行:

  1. $ gradlew printProperties -Pcmd='Hello from the command line' 
  2. :printProperties 
  3. Hello from build.gradle 
  4. Hello from gradle.properties 
  5. Hello from the command line   

總結

在這篇博客中,我們細致的查看了Android studio生成的三個gradle文件,現在你應該能夠自己去創建自己的gradle文件,我們還學習了最基本的構建任務,學習了Android 插件以及其tasks。

在接下來的幾年里,Android開發生態將會爆炸性增長,很多有趣的依賴庫將會讓每個人去使用,在下一篇博客里面,我們將看看我們能有幾種方式添加我們的依賴庫,這樣我們才能夠避免造輪子。

責任編輯:龐桂玉 來源: Android開發中文站
相關推薦

2014-03-28 13:30:36

2017-04-10 13:43:34

AndroidGradleAS

2011-06-21 10:28:49

Oracle

2022-08-02 10:26:09

網絡層網絡網絡協議

2011-03-14 16:05:17

2017-11-27 13:09:00

AndroidGradle代碼

2017-04-11 09:07:55

AndroidGradle構建變體

2017-04-10 17:35:54

AndroidGradle依賴管理

2017-09-06 12:42:45

AndroidGradle開發技巧

2016-12-28 10:37:46

AndroidGradleApache Ant

2021-07-10 07:39:38

Node.js C++V8

2021-07-21 15:33:03

鴻蒙HarmonyOS應用

2017-04-13 14:55:07

AndroidGradle多模塊構建

2017-03-02 14:35:33

Androidgradle常用配置

2013-07-18 17:00:12

Gradle構建AndAndroid開發Android學習

2019-11-25 09:45:27

IBMIBM Cloud P多云

2023-10-18 15:25:29

數據源數據庫

2017-03-14 19:18:56

AndroidGradle實踐

2022-11-09 08:16:18

AntJava工具

2019-11-26 16:31:22

IBM
點贊
收藏

51CTO技術棧公眾號

欧美第一页在线| 一区二区三区中文字幕在线观看| 57pao国产成人免费| 魔女鞋交玉足榨精调教| 国产经典一区| 亚洲乱码中文字幕| 久久精品综合一区| 艳妇乳肉豪妇荡乳av| 综合视频在线| 亚洲精品日韩欧美| 亚洲无在线观看| h片在线观看视频免费免费| 久久久亚洲欧洲日产国码αv| 国产欧美在线播放| 久久精品美女视频| 欧美a级成人淫片免费看| 精品欧美一区二区在线观看| 日本在线观看a| 亚洲第一图区| 国产欧美日韩在线| 国产一区二区三区四区五区在线| 最近中文在线观看| 影音先锋久久| 亚洲第一二区| 91视视频在线观看入口直接观看www | 精品日韩免费| 精品99一区二区| 不卡的av中文字幕| 涩涩涩在线视频| 一区二区三区四区中文字幕| 色噜噜狠狠一区二区三区| 国产91久久久| 国产一区二区三区香蕉 | 久久久久黄色| 黑人欧美xxxx| 免费看毛片的网址| 成人在线播放免费观看| 欧美国产综合一区二区| 久久精品五月婷婷| 欧美一级性视频| 国产精品原创巨作av| 国产精品扒开腿做爽爽爽视频| 国产真实夫妇交换视频| 亚洲一级淫片| 久久久国产成人精品| 日本一道本视频| 综合伊思人在钱三区| 精品成人a区在线观看| 黄色三级视频在线播放| 欧美伊人亚洲伊人色综合动图| 国产精品av一区二区三区| 麻豆一区二区99久久久久| 欧洲日本亚洲国产区| 日韩特黄一级片| 国产一区亚洲| 欧美国产视频一区二区| 欧美日韩中文字幕在线观看| 久久久久久久久国产一区| 中文字幕欧美日韩在线| 亚洲黄色免费视频| 久久不见久久见免费视频7| 亚洲国产免费av| 国产在线不卡av| 国产精品18hdxxxⅹ在线| 日韩美女一区二区三区四区| 美女被爆操网站| 一区二区精彩视频| 亚洲国产精品资源| 巨胸大乳www视频免费观看| 亚洲欧美日本伦理| 伊人伊人伊人久久| 国精品人伦一区二区三区蜜桃| 精品国产成人| 中文字幕亚洲欧美日韩2019| 久久人妻无码aⅴ毛片a片app| 99精品视频在线观看播放| 精品国内自产拍在线观看| 国产中文av在线| 欧美日韩免费观看一区=区三区| 久久99国产综合精品女同| 国产一级中文字幕| 亚洲欧美日韩视频二区| 国产精品v日韩精品| 一区二区三区亚洲视频| 国产ts人妖一区二区| 国产亚洲精品久久飘花| 美州a亚洲一视本频v色道| 久久久久国产精品人| 伊人久久大香线蕉精品| 四虎亚洲精品| 欧美丝袜一区二区| www.日本一区| 国产主播性色av福利精品一区| 日韩精品久久久久久久玫瑰园| 免费看91的网站| 亚洲欧美色图| 6080yy精品一区二区三区| 这里只有精品免费视频| 爱情岛论坛亚洲品质自拍视频网站| 国产mv日韩mv欧美| 蜜桃网站成人| 国产午夜精品久久久久免费视| 亚洲国产毛片aaaaa无费看| 国产第一页视频| 精品视频在线观看网站| 亚洲精品中文字| 亚洲综合图片一区| 国产欧美91| 91九色视频导航| 丝袜+亚洲+另类+欧美+变态| 国产精品美女一区二区| 91动漫在线看| 9999精品视频| 日韩精品免费看| 黄色一级大片在线免费观看| 一区二区三区四区五区精品视频 | 欧美视频精品| 亚洲国产精品国自产拍av秋霞 | 亚洲av无码乱码国产麻豆| 久久久久久久综合色一本| 欧美美女黄色网| 欧美日韩女优| 日韩精品在线影院| 免费中文字幕视频| 麻豆精品一区二区av白丝在线| 国产自产在线视频一区| 国产黄大片在线观看画质优化| 色综合一区二区| 绯色av蜜臀vs少妇| 久久一区二区三区喷水| 日本午夜人人精品| 黄色美女一级片| 亚洲精品午夜久久久| 日本xxxx黄色| 国产一区二区三区网| 欧美精品xxx| 国产免费黄色网址| 国产精品免费av| 爱情岛论坛vip永久入口| 日韩高清影视在线观看| 伊人狠狠色j香婷婷综合| 中文字幕亚洲无线码在线一区| 日本三级午夜理伦三级三| 国产精品亚洲成人| 亚洲精品偷拍视频| 在线免费观看亚洲| 日日狠狠久久偷偷四色综合免费| 免费看污视频的网站| 久久天天做天天爱综合色| av在线com| 一区二区免费| 欧美精品videos| 丰满人妻妇伦又伦精品国产| 一区二区久久久久久| 黄色片免费网址| 中文字幕免费精品| 亚洲最大激情中文字幕| av在线下载| 欧美一区二区在线播放| 久艹在线观看视频| 国内成人精品2018免费看| 中文字幕一区二区三区5566| 免费成人高清在线视频| 色婷婷久久一区二区| 国产精品视频第一页| 亚洲欧美一区二区不卡| 久久久久久国产精品日本| 欧美午夜一区| 国产免费一区二区| 午夜伦理福利在线| 亚洲香蕉成视频在线观看| 亚洲 国产 日韩 欧美| 中文字幕第一区二区| 中文字幕亚洲影院| 欧美激情精品久久久六区热门| 5g国产欧美日韩视频| xxxx在线视频| 亚洲热线99精品视频| 中文字幕人妻色偷偷久久| 亚洲三级在线看| 欧亚乱熟女一区二区在线| 久久婷婷丁香| 伊人久久大香线蕉av一区| 我要色综合中文字幕| 7777精品视频| aiai在线| 日韩精品一区二区三区在线观看 | 久久av免费观看| 国产伦精品一区二区三区视频金莲| 尤物yw午夜国产精品视频明星| 97人妻一区二区精品免费视频| 亚洲影院免费观看| 国产精品无码久久久久久| 卡一卡二国产精品| 日韩精品视频在线观看视频| 久久99蜜桃| 91网免费观看| 国产精品专区免费| 色综合男人天堂| 激情在线视频| 精品三级在线观看| 久久久国产免费| 一区二区三区不卡在线观看| 国产精品20p| 国产丶欧美丶日本不卡视频| 国产成人久久婷婷精品流白浆| 久久精品国内一区二区三区水蜜桃| 国产一级精品aaaaa看| 精品女同一区二区三区在线观看| 久久久久久久久国产| 91免费在线| 欧美精品一区男女天堂| 亚洲中文字幕在线一区| 日韩欧美a级成人黄色| 中文字幕无码日韩专区免费 | 五月婷婷婷婷婷| 成人av中文字幕| 免费成年人高清视频| 亚洲三级毛片| 午夜啪啪福利视频| 成人嘿咻视频免费看| 狠狠色伊人亚洲综合网站色| 国产精久久一区二区| 国产精品久久久久久亚洲调教| 俺来俺也去www色在线观看| 色婷婷**av毛片一区| 精品美女视频在线观看免费软件| 欧美成人精品1314www| 一区二区视频免费| 欧美日韩综合视频| 精品小视频在线观看| 国产精品国产三级国产aⅴ原创| 捆绑裸体绳奴bdsm亚洲| 国产乱子伦视频一区二区三区| 岛国av一区二区| 国产高潮呻吟久久| 99re6这里只有精品视频在线观看| 亚洲国产综合av| 久久精品国产久精国产| 茄子视频成人免费观看| 亚洲精品在线二区| a级黄色片免费| 99久久精品网站| 欧美在线日韩精品| 人妖一区二区三区| 黄色99视频| 成人动漫视频| caoporen国产精品| 欧美高清一级片| 亚洲最大成人网色| 精品国产亚洲一区二区三区在线| 国产精品影院在线观看| 素人啪啪色综合| 国产精品欧美一区二区三区奶水| 成人黄色免费短视频| 日本成人免费在线| 在线成人av观看| 国产91色在线免费| 成人网ww555视频免费看| 日本久久91av| 电影一区二区| 成人免费网站在线看| 日韩午夜电影免费看| 国产色综合天天综合网| 97视频精彩视频在线观看| 国产精品美女久久久久aⅴ国产馆| 一卡二卡三卡四卡| 国产亚洲精品7777| 久久国产柳州莫菁门| 国产日韩精品一区二区三区在线| 精品人妻一区二区三区蜜桃视频| 国产色产综合色产在线视频| 国产第一页精品| 亚洲欧美在线观看| 国产免费无码一区二区视频| 亚洲午夜精品久久久久久久久| 日产亚洲一区二区三区| 欧美日韩午夜视频在线观看| 神马久久久久久久| 欧美日韩综合在线| 精品国产伦一区二区三| 欧美精品一区视频| 免费黄色在线视频网站| 最近2019中文字幕第三页视频| 师生出轨h灌满了1v1| 另类国产ts人妖高潮视频| 九一精品在线观看| 国产一区二三区| 99精品一区二区三区无码吞精| 日本中文字幕久久| 亚洲精品v日韩精品| 精品91久久久| 欧美怡红院视频| 国产黄色一级大片| 日韩av在线精品| 日本电影全部在线观看网站视频| 欧美精品手机在线| 免费看男女www网站入口在线| 国产精品久久久久免费a∨| 国产精品久久免费视频| 国产一区免费视频| 青青草国产成人a∨下载安卓| 嫩草影院中文字幕| 丝瓜av网站精品一区二区| 黄色a级三级三级三级| 92精品国产成人观看免费| 操她视频在线观看| 亚洲va在线va天堂| 一级黄色片免费看| 日韩电影视频免费| 国产精品久久久久久福利| 欧美成年人视频网站| 少妇视频在线观看| 91日韩久久| 精品久久久久久久| 很污的网站在线观看| 美国av一区二区| 黄色性生活一级片| 亚洲男同性视频| 青青国产在线视频| 精品偷拍各种wc美女嘘嘘| 在线观看操人| 国产日韩精品在线| 精品国产一区二区三区香蕉沈先生| www插插插无码免费视频网站| 免费看日韩精品| 成人无码www在线看免费| 亚洲精品视频在线观看网站| 免费看av在线| 日韩av在线免费| 国产精品高颜值在线观看| 亚洲精品免费一区二区三区| 精品国产一区二区三区噜噜噜| 男人用嘴添女人下身免费视频| 国产成人在线观看免费网站| av片在线免费看| 日韩欧美在线观看| 天天干天天草天天射| 欧美国产日本高清在线| 成人免费91| 一区二区冒白浆视频| 日韩 欧美一区二区三区| 黄瓜视频污在线观看| 午夜免费久久看| 丰满人妻一区二区| 欧美黄色小视频| 日韩成人在线观看视频| 无码毛片aaa在线| 99精品国产九九国产精品| 日韩av日韩在线观看| 亚洲精品进入| 在线日韩日本国产亚洲| 精品国产www| 在线看日韩欧美| 91天天综合| 亚洲国产欧美不卡在线观看| 日韩成人av影视| 久久久久亚洲AV成人无在| 欧美三区免费完整视频在线观看| 春暖花开成人亚洲区| 国产精品免费看久久久香蕉 | 精一区二区三区| 天堂av网手机版| 欧美裸体bbwbbwbbw| 久久99精品久久| 18成人在线| 亚洲欧洲一级| 实拍女处破www免费看| 在线视频观看一区| 婷婷免费在线视频| 成人性生交大片免费观看嘿嘿视频| 久久久精品久久久久久96| 男人午夜视频在线观看| 亚洲综合在线免费观看| 春日野结衣av| 羞羞色午夜精品一区二区三区| 四虎国产精品免费| 午夜精品国产更新| 九色在线视频蝌蚪| 国产日本欧美视频| 欧美精品91| 国产精品无码在线| 欧美色图片你懂的| 日本三级在线观看网站| 国产欧美亚洲日本| 日韩有码一区二区三区| 日本一级片免费| 亚洲大胆美女视频| 91国内外精品自在线播放| 中文字幕精品在线播放| 波多野洁衣一区| 一区二区小视频| 欧美风情在线观看| 九九综合在线| 免费黄色av网址| 色噜噜狠狠色综合中国| 深夜国产在线播放| 日韩和欧美的一区二区| 国产精品影视在线| 国产乱码77777777|