日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Gradle】配置详解(持续更正补充)

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Gradle】配置详解(持续更正补充) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、build.gradle?工程構建文件。?
頂級構建文件,為整個項目添加配置

// 聲明gradle腳本自身需要使用的資源,包括依賴項、第三方插件、maven倉庫地址等。 buildscript {// 聲明倉庫的源。之前這里用mavenCentral()repositories {jcenter() // jCenter可以理解成是一個新的中央遠程倉庫,兼容maven中心倉庫,而且性能更優}// 配置使用gradle所需要依賴的版本庫dependencies {classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0' } } // 為所有的工程的repositories配置為jcenters allprojects { repositories { jcenter() // 支持Java 依賴庫管理(maven/ivy) } } task clean(type: Delete) { delete rootProject.buildDir }

?

2、app/build.gradle?module構建文件

// 聲明要使用的插件??梢宰约憾ㄖ?apply plugin: 'com.android.application' // 說明該module的構建類型。如果該moudle是個庫,就寫com.android.library apply plugin: 'com.jakewharton.butterknife' // 注解插件 apply plugin: 'com.google.gms.google-services' // 谷歌服務插件 // 設置編譯android項目的參數 android { // SDK的一些聲明 compileSdkVersion 25 // 編譯使用的SDK版本(本地要有) buildToolsVersion "24.0.2" // 編譯使用的tools版本(在sdk目錄/build-tools/下) // 默認配置 defaultConfig { applicationId "com.neiliner.mymovie.xiaomi" // 安裝時依據該ID區分是否為同一個應用 minSdkVersion 14 //支持的最低版本 targetSdkVersion 25 //支持的目標版本 versionCode 1 // 版本號,用戶能看到的版本號 versionName "1.0" // 版本名,內部定義的版本名 // 單元測試相關的配置。擴展見<補充1> testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } //關閉Android Studio的PNG合法性檢查的 aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false // 指定資源的路徑。比如從Eclipse遷過來的代碼,和AS的文件位置不同,就需要手動設置 sourceSets { main { manifest.srcFile 'AndroidManifest.xml' //指定AndroidManifest文件 java.srcDirs = ['src'] //指定source目錄 resources.srcDirs = ['src'] //指定source目錄 aidl.srcDirs = ['src'] //指定source目錄 renderscript.srcDirs = ['src'] //指定source目錄 res.srcDirs = ['res'] //指定資源目錄 assets.srcDirs = ['assets'] //指定assets目錄 jniLibs.srcDirs = ['libs'] //指定lib庫目錄 } debug.setRoot('build-types/debug') //指定debug模式的路徑 release.setRoot('build-types/release') //指定release模式的路徑 } //簽名配置。需要與下面buildTypes配合使用 signingConfigs { //發布版簽名配置 release { storeFile file("fk.keystore") // 密鑰文件路徑 storePassword "123" // 密鑰文件密碼 keyAlias "fk" // key別名 keyPassword "123" // key密碼 } //debug版簽名配置 debug { storeFile file("fk.keystore") // 密鑰文件路徑 storePassword "123" // 密鑰文件密碼 keyAlias "fk" // key別名 keyPassword "123" // key密碼 } } // build類型 buildTypes { debug { applicationIdSuffix ".debug" //將包名設置為.debug,以便同時安裝debug和release版本。 signingConfig signingConfigs.release //設置上面signingConfigs的簽名配置 } release { minifyEnabled false // 是否進行混淆 zipAlignEnabled true //是否支持zip shrinkResources true // 移除無用的resource文件 debuggable false //是否支持調試 signingConfig signingConfigs.debug //設置簽名信息 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 設置混淆文件的位置。擴展見<補充2> } } // 打包時的相關配置。當項目中依賴的第三方庫越來越多時,有可能會出現兩個依賴庫中存在同一個(名稱)文件。如果這樣,Gradle在打包時就會提示錯誤(警告)。那么就可以根據提示,然后使用以下方法將重復的文件剔除。 packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/MANIFEST.MF' } // 程序在編譯的時候會檢查lint,有任何錯誤提示會停止build,我們可以關閉這個開關 lintOptions { abortOnError false // 有錯誤是否停止build checkReleaseBuilds false //打包release版本的時候是否進行檢測 } // multiDex的一些相關配置,這樣配置可以讓你的編譯速度更快 dexOptions { preDexLibraries = false incremental true // 讓它不要對Lib做preDexing // 開啟incremental dexing,優化編譯效率,這個功能android studio默認是關閉的。 javaMaxHeapSize "4g" // 設置java堆內存大小 } // 設置產品特性,即多渠道打包的東西,比如不同的應用名,圖標、AndroidManifest.xml // 配合manifest merger使用的時候就可以達成在一次編譯過程中產生多個具有自己特性配置的版本。 productFlavors { xiaomi { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"] // 渠道包配置 manifest.srcFile 'exampleapk/AndroidManifest1.xml' applicationId "com.abc.def.xiaomi" } googlePlay { applicationId "com.abc.def.googleplay" } } // productFlavors的批量方法,類似一個循序遍歷作用。 productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } // java版本 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } // 依賴。遠程本地都在這兒配置 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') // 編譯libs目錄下的所有jar包 testCompile 'junit:junit:4.12' // 編譯單元測試框架 compile project(':library') // 依賴本項目中名為library的庫 compile 'com.github.bumptech.glide:glide:3.7.0' // 編譯第三方庫 compile 'com.jakewharton:butterknife:8.4.0' // 編譯第三方庫 annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' // 指定處理Annotation的庫。AS2.2以前版本這里用 apt。 }

3、setting.gradle 工程配置

// 聲明需要加入gradle的module,即告訴gradle項目中有哪些module需要處理 include ':app', ':extras:ShimmerAndroid'

補充


1、JUnit是一個Java單元測試框架,相關教程?http://www.yiibai.com/junit/eclise-junit-simple-demo.html?
谷歌推薦用這個,使用教程?http://blog.csdn.net/zhuhaiyizhi/article/details/47403723


2、proguardFiles getDefaultProguardFile(‘proguard-Android.txt’), ‘proguard-rules.pro’?
前一部分代表系統默認的混淆文件,該文件包含了基本的混淆聲明,目錄在?/tools/proguard/proguard-android.txt?;?
后一部分是我們自定義的混淆文件,目錄在?app/proguard-rules.txt,在這里可以聲明一些第三方依賴的混淆規則;?
最終混淆的結果是這兩部分文件共同作用的。


3、相關推薦?
http://blog.csdn.net/cai_iac/article/details/51909307?
http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html

轉載于:https://www.cnblogs.com/fang1019/p/6163540.html

總結

以上是生活随笔為你收集整理的【Gradle】配置详解(持续更正补充)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。