1、build.gradle 工程構(gòu)建文件捺檬。
***頂級構(gòu)建文件叼架,為整個項目添加配置***********
// 聲明gradle腳本自身需要使用的資源柠逞,包括依賴項青瀑、第三方插件璧亮、maven倉庫地址等。
buildscript {
// 聲明倉庫的源斥难。之前這里用mavenCentral()
repositories {
jcenter() // jCenter可以理解成是一個新的中央遠程倉庫枝嘶,兼容maven中心倉庫,而且性能更優(yōu)
}
// 配置使用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構(gòu)建文件
apply plugin: 'com.android.application' // 說明該module的構(gòu)建類型躬络。如果該moudle是個庫,就寫com.android.library
apply plugin: 'com.jakewharton.butterknife' // 注解插件
apply plugin: 'com.google.gms.google-services' // 谷歌服務(wù)插件
// 設(shè)置編譯android項目的參數(shù)
android {
// SDK的一些聲明
compileSdkVersion 25 // 編譯使用的SDK版本(本地要有)
buildToolsVersion "24.0.2" // 編譯使用的tools版本(在sdk目錄/build-tools/下)
// 默認配置
defaultConfig {
applicationId "com.neiliner.mymovie.xiaomi" // 安裝時依據(jù)該ID區(qū)分是否為同一個應(yīng)用
minSdkVersion 14 //支持的最低版本
targetSdkVersion 25 //支持的目標版本
versionCode 1 // 版本號搭儒,用戶能看到的版本號
versionName "1.0" // 版本名穷当,內(nèi)部定義的版本名
// 單元測試相關(guān)的配置。擴展見<補充1>
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
//關(guān)閉Android Studio的PNG合法性檢查的
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
// 指定資源的路徑淹禾。比如從Eclipse遷過來的代碼馁菜,和AS的文件位置不同,就需要手動設(shè)置
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 {
//發(fā)布版簽名配置
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" //將包名設(shè)置為.debug汪疮,以便同時安裝debug和release版本。
signingConfig signingConfigs.release //設(shè)置上面signingConfigs的簽名配置
}
release {
minifyEnabled false // 是否進行混淆
zipAlignEnabled true //是否支持zip
shrinkResources true // 移除無用的resource文件
debuggable false //是否支持調(diào)試
signingConfig signingConfigs.debug //設(shè)置簽名信息
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 設(shè)置混淆文件的位置毁习。擴展見<補充2>
}
}
// 打包時的相關(guān)配置智嚷。當項目中依賴的第三方庫越來越多時,有可能會出現(xiàn)兩個依賴庫中存在同一個(名稱)文件纺且。如果這樣盏道,Gradle在打包時就會提示錯誤(警告)。那么就可以根據(jù)提示载碌,然后使用以下方法將重復(fù)的文件剔除猜嘱。
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/MANIFEST.MF'
}
// 程序在編譯的時候會檢查lint,有任何錯誤提示會停止build嫁艇,我們可以關(guān)閉這個開關(guān)
lintOptions {
abortOnError false // 有錯誤是否停止build
checkReleaseBuilds false //打包release版本的時候是否進行檢測
}
// multiDex的一些相關(guān)配置朗伶,這樣配置可以讓你的編譯速度更快
dexOptions {
preDexLibraries = false
incremental true // 讓它不要對Lib做preDexing
// 開啟incremental dexing,優(yōu)化編譯效率,這個功能android studio默認是關(guān)閉的步咪。
javaMaxHeapSize "4g" // 設(shè)置java堆內(nèi)存大小
}
// 設(shè)置產(chǎn)品特性论皆,即多渠道打包的東西,比如不同的應(yīng)用名猾漫,圖標纯丸、AndroidManifest.xml
// 配合manifest merger使用的時候就可以達成在一次編譯過程中產(chǎn)生多個具有自己特性配置的版本。
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'
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者