亚洲精品国产精品乱码视色,下载应用成人电影AVapp,成人影院下载视频

      <track id="gfhue"><i id="gfhue"></i></track><input id="gfhue"></input>

      1. 更多精彩內(nèi)容,歡迎關(guān)注:

        視頻號
        視頻號

        抖音
        抖音

        快手
        快手

        微博
        微博

        當(dāng)前位置:首頁 科技百科 java build.gradle

        java build.gradle

        文檔

        java build.gradle

        Gradle是用了一種基于Groovy的領(lǐng)域的特定語言來聲明項目設(shè)置,摒棄了XML(如ANT和Maven)的各種繁瑣配置。另外在項目中一般會出現(xiàn)2個或者多個build.gradle文件,一個在根目錄下,一個在app目錄下。
        推薦度:
        導(dǎo)讀Gradle是用了一種基于Groovy的領(lǐng)域的特定語言來聲明項目設(shè)置,摒棄了XML(如ANT和Maven)的各種繁瑣配置。另外在項目中一般會出現(xiàn)2個或者多個build.gradle文件,一個在根目錄下,一個在app目錄下。

        java build.gradle是什么,讓我們一起了解一下?

        Gradle是用了一種基于Groovy的領(lǐng)域的特定語言來聲明項目設(shè)置,摒棄了XML(如ANT和Maven)的各種繁瑣配置。另外在項目中一般會出現(xiàn)2個或者多個build.gradle文件,一個在根目錄下,一個在app目錄下。

        我們來逐個分析:

        1、根目錄下的build.gradle。

        buildscript?{
        ????
        ????repositories?{??//repositories閉包
        ????????google()
        ????????jcenter()?//代碼托管庫:設(shè)置之后可以在項目中輕松引用jcenter上的開源項目
        ????}
        ????dependencies?{??//dependencies閉包
        ????????classpath?'com.android.tools.build:gradle:3.0.0'?聲明gradle插件,插件版本號為3.0.0
        ????????//gradle是一個強(qiáng)大的項目構(gòu)建工具,不僅可以構(gòu)建Android,還可以構(gòu)建java,C++等
        ????????//此處引用android的插件
        ????????//?NOTE:?Do?not?place?your?application?dependencies?here;?they?belong
        ????????//?in?the?individual?module?build.gradle?files
        ????}
        }
        ?
        allprojects?{
        ????repositories?{
        ????????google()
        ????????jcenter()?//代碼托管庫:設(shè)置之后可以在項目中輕松引用jcenter上的開源項目
        ????}
        }
        ?
        task?clean(type:?Delete)?{
        ????delete?rootProject.buildDir
        }

        2、app目錄下的build.gradle。

        //?聲明是Android程序,
        //com.android.application?表示這是一個應(yīng)用程序模塊,可直接運行
        //com.android.library?標(biāo)識這是一個庫模塊,是依附別的應(yīng)用程序運行
        apply?plugin:?'com.android.application'
        ?
        android?{
        ????//程序在編譯的時候會檢查lint,有任何錯誤提示會停止build,我們可以關(guān)閉這個開關(guān)
        ????lintOptions?{
        ????????//即使報錯也不會停止打包
        ????????abortOnError?false
        ????????//打包release版本的時候是否進(jìn)行檢測
        ????????checkReleaseBuilds?false
        ????}
        ?
        ????//編譯sdk的版本,也就是API?Level,例如API-19、API-20、API-21等等。
        ????compileSdkVersion?26
        ????//build?tools的版本,其中包括了打包工具aapt、dx等等。
        ????//這個工具的目錄位于你的sdk目錄/build-tools/下
        ????buildToolsVersion?'26.0.2'
        ?
        ????//關(guān)閉Android?Studio的PNG合法性檢查
        ????aaptOptions.cruncherEnabled?=?false
        ????aaptOptions.useNewCruncher?=?false
        ?
        ????defaultConfig?{??//默認(rèn)配置
        ????????applicationId?"com.hebbe.espressotest"?//應(yīng)用程序的包名
        ????????minSdkVersion?22??//最小sdk版本,如果設(shè)備小于這個版本或者大于maxSdkVersion將無法安裝這個應(yīng)用
        ????????targetSdkVersion?26?//目標(biāo)sdk版本,充分測試過的版本(建議版本)
        ????????versionCode?1??//版本號,第一版是1,之后每更新一次加1
        ????????versionName?"1.0"?//版本名,顯示給用戶看到的版本號
        ?
        ????????archivesBaseName?=?"weshare-$versionName"?//指定打包成Jar文件時候的文件名稱
        ????????ndk?{
        ????????????moduleName?"hebbewifisafe"???????????????????//設(shè)置庫(so)文件名稱
        ????????????ldLibs?"log",?"z",?"m",?"jnigraphics",?"android"
        ????????????//引入庫,比如要用到的__android_log_print
        ????????????abiFilters?"armeabi",?"x86",?"armeabi-v7a"??????//,?"x86"??顯示指定支持的ABIs
        ????????????cFlags?"-std=c++11?-fexceptions"????????????????//?C++11
        ????????????stl?"gnustl_static"
        ????????}
        ?
        ????????//當(dāng)方法數(shù)超過65535(方法的索引使用的是一個short值,
        ????????//而short最大值是65535)的時候允許打包成多個dex文件,動態(tài)加載dex。這里面坑很深啊
        ????????multiDexEnabled?true
        ?
        ????????//Instrumentation單元測試
        ????????testInstrumentationRunner?"android.support.test.runner.AndroidJUnitRunner"
        ????}
        ?
        ????//默認(rèn)的一些文件路徑的配置
        ????sourceSets?{
        ????????main?{
        ????????????manifest.srcFile?'AndroidManifest.xml'//指定清單文件
        ????????????res.srcDirs?=?['res']//指定res資源目錄
        ????????????assets.srcDirs?=?['assets']????//asset資源目錄
        ????????????jni.srcDirs?'src/main/jni'?????//jni代碼目錄
        ????????????jniLibs.srcDir?'src/main/jniLibs'?//jni庫目錄
        ????????????java.srcDirs?=?['src']//指定java源代碼目錄
        ????????????resources.srcDirs?=?['src']//指定resource目錄
        ????????????aidl.srcDirs?=?['src']//指定aidl目錄
        ????????????renderscript.srcDirs?=?['src']//指定source目錄
        ????????}
        ????????debug.setRoot('build-types/debug')//指定debug模式的路徑
        ????????release.setRoot('build-types/release')//指定release模式的路徑
        ????}
        ?
        ????//multiDex的一些相關(guān)配置,這樣配置可以讓你的編譯速度更快
        ????dexOptions?{
        ????????//讓它不要對Lib做preDexing
        ????????preDexLibraries?=?false
        ????????//開啟incremental?dexing,優(yōu)化編譯效率,這個功能android?studio默認(rèn)是關(guān)閉的。
        ????????incremental?true
        ????????javaMaxHeapSize?"4g"?????//增加java堆內(nèi)存大小
        ????}
        ?
        ????signingConfigs?{//簽名配置
        ????????release?{//發(fā)布版簽名配置
        ????????????storeFile?file("fk.keystore")//密鑰文件路徑
        ????????????storePassword?"123456"http://密鑰文件密碼
        ????????????keyAlias?"fk"http://key別名
        ????????????keyPassword?"123456"http://key密碼
        ????????}
        ????????debug?{//debug版簽名配置
        ????????????storeFile?file("fk.keystore")
        ????????????storePassword?"123456"
        ????????????keyAlias?"fk"
        ????????????keyPassword?"123456"
        ????????}
        ????}
        ?
        ????//指定生成安裝文件的配置,常有兩個子包:release,debug,注:直接運行的都是debug安裝文件
        ????buildTypes?{
        ????????//release版本的配置,即生成正式版安裝文件的配置
        ????????release?{
        ????????????zipAlignEnabled?true??//是否支持zip
        ????????????shrinkResources?true??//?移除無用的resource文件
        ????????????minifyEnabled?false?//是否對代碼進(jìn)行混淆,true表示混淆
        ????????????//指定混淆時使用的規(guī)則文件;
        ????????????//?proguard-android.txt指所有項目通用的混淆規(guī)則,proguard-rules.pro當(dāng)前項目特有的混淆規(guī)則
        ????????????//release的Proguard默認(rèn)為Module下的proguard-rules.pro文件
        ????????????proguardFiles?getDefaultProguardFile('proguard-android.txt'),?'proguard-rules.pro'
        ????????????debuggable?false??//是否支持調(diào)試
        ????????????//ndk的一些配置
        ????????????ndk?{
        ????????????????//?cFlags?"-std=c++11?-fexceptions?-O3?-D__RELEASE__"?//?C++11
        ????????????????//?platformVersion??=?"19"
        ????????????????moduleName?"hebbewifisafe"?//設(shè)置庫(so)文件名稱
        ????????????????ldLibs?"log",?"z",?"m",?"jnigraphics",?"android"
        ????????????????//引入庫,比如要用到的__android_log_print
        ????????????????abiFilters?"armeabi",?"x86",?"armeabi-v7a"http://,?"x86"
        ????????????????cFlags?"-std=c++11?-fexceptions"?//?C++11
        ????????????????stl?"gnustl_static"
        ????????????}
        ????????????//采用動態(tài)替換字符串的方式生成不同的release.apk
        ????????????applicationVariants.all?{?variant?->
        ????????????????variant.outputs.each?{?output?->
        ????????????????????def?outputFile?=?output.outputFile
        ????????????????????if?(outputFile?!=?null?&&?outputFile.name.endsWith('release.apk'))?{
        ????????????????????????def?timeStamp?=?new?Date().format('yyyyMMddHH');
        ????????????????????????def?fileName?=?"WeShare-${defaultConfig.versionName}"?+?"-"?+?timeStamp?+?"-lj-"?+?".apk";
        ????????????????????????output.outputFile?=?file("${outputFile.parent}/${fileName}")
        ????????????????????}
        ????????????????}
        ????????????}
        ????????????jniDebuggable?false??//關(guān)閉jni調(diào)試
        ????????}
        ????????debug?{//debug版本的配置
        ????????????minifyEnabled?false
        ????????????zipAlignEnabled?true
        ????????????shrinkResources?true?//?移除無用的resource文件
        ????????????proguardFiles?getDefaultProguardFile('proguard-android.txt'),?'proguard-rules.pro'
        ????????????debuggable?true
        //??????????jniDebuggable?true
        ????????????ndk?{
        ????????????????cFlags?"-std=c++11?-fexceptions?-g?-D?__DEBUG__"?//?C++11
        ????????????}
        ????????????jniDebuggable?true
        ????????}
        ????}
        ?
        ????packagingOptions
        ????????{
        ????????????exclude?'META-INF/ASL2.0'
        ????????????exclude?'META-INF/LICENSE'
        ????????????exclude?'META-INF/NOTICE'
        ????????????exclude?'META-INF/MANIFEST.MF'
        ????????}
        ????
        ????compileOptions?{
        ????????//在這里你可以進(jìn)行?Java?的版本配置,
        ????????//以便使用對應(yīng)版本的一些新特性
        ????}
        ????productFlavors?{
        ????????//在這里你可以設(shè)置你的產(chǎn)品發(fā)布的一些東西,
        ????????//比如你現(xiàn)在一共軟件需要發(fā)布到不同渠道,
        ????????//且不同渠道中的包名不同,那么可以在此進(jìn)行配置;
        ????????//甚至可以設(shè)置不同的?AndroidManifest.xml?文件。
        ????????hebbe?{
        ????????}
        ????????googlePlay?{
        ????????}
        ????????solo?{
        ????????}
        ????}
        ????productFlavors.all?{
        ????????flavor?->?flavor.manifestPlaceholders?=?[UMENG_CHANNEL_VALUE:?name]
        ????}
        ????//所謂ProductFlavors其實就是可定義的產(chǎn)品特性,
        ????//配合?manifest?merger?使用的時候就可以達(dá)成在一次編譯
        ????//過程中產(chǎn)生多個具有自己特性配置的版本。
        ?
        ????//上面這個配置的作用就是,為每個渠道包產(chǎn)生不同的?UMENG_CHANNEL_VALUE?的值。
        }
        ?
        //指定當(dāng)前項目的所有依賴關(guān)系:本地依賴、庫依賴、遠(yuǎn)程依賴
        //本地依賴:可以對本地Jar包或目錄添加依賴關(guān)系
        //庫依賴:可以對項目中的庫模塊添加依賴關(guān)系
        //遠(yuǎn)程依賴:可以對jcenter庫上的開源項目添加依賴
        //標(biāo)準(zhǔn)的遠(yuǎn)程依賴格式是?域名:組織名:版本號
        dependencies?{
        ????implementation?fileTree(dir:?'libs',?include:?['*.jar'])?//本地依賴
        ????//遠(yuǎn)程依賴,com.android.support是域名部分,appcompat-v7是組名稱,26.1.0是版本號
        ????implementation?'com.android.support:appcompat-v7:26.1.0'
        ????implementation?'com.android.support.constraint:constraint-layout:1.0.2'
        ????implementation?project(':hello')//庫依賴
        ????testImplementation?'junit:junit:4.12'?//聲明測試用列庫
        ????androidTestImplementation?'com.android.support.test:runner:1.0.1'
        ????androidTestImplementation?'com.android.support.test.espresso:espresso-core:3.0.1'
        }
        ?
        //聲明是要使用谷歌服務(wù)框架
        apply?plugin:?'com.google.gms.google-services'
        ?
        //第三方依賴庫的本地緩存路徑
        task?showMeCache?<

        以上就是小編今天的分享了,希望可以幫助到大家。

        文檔

        java build.gradle

        Gradle是用了一種基于Groovy的領(lǐng)域的特定語言來聲明項目設(shè)置,摒棄了XML(如ANT和Maven)的各種繁瑣配置。另外在項目中一般會出現(xiàn)2個或者多個build.gradle文件,一個在根目錄下,一個在app目錄下。
        推薦度:
        為你推薦
        資訊專欄
        熱門視頻
        相關(guān)推薦
        java bundle java bytebuffer java byte取值范圍 java calculate 蘋果13怎么開機(jī) java calendar獲取當(dāng)前時間 java callback java ceiling 平板如何錄屏 java cglib iPad怎么重啟 java channel java charat java charsequence java charset java cipher java class java class.forname java classloader java clob java bufferedoutputstream java bufferedimage wps怎么求和 java break java blob java bit 如何清理win10電腦c盤 java binlog win10c盤滿了怎么清理 java binder java binary excel表格怎么合并單元格 java bigdecimal java benchmark java beanutils 手機(jī)充電發(fā)熱發(fā)燙是什么原因 手機(jī)充電時可以玩手機(jī)嗎 java bean java base64decoder java base64
        Top