【Gradle】配置详解(持续更正补充)
1、build.gradle?工程構建文件。?
頂級構建文件,為整個項目添加配置
?
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】配置详解(持续更正补充)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode: Convert BS
- 下一篇: 深入理解JSON对象