build.gradle配置參數(shù)詳解
//聲明是Android程序
apply plugin: 'com.android.application'
android {
//程序在編譯的時候會檢查lint态鳖,有任何錯誤提示會停止build浆竭,我們可以關(guān)閉這個開關(guān)
lintOptions {
abortOnError false
//即使報錯也不會停止打包
checkReleaseBuilds false
//打包release版本的時候進行檢測
}
compileSdkVersion 23
//編譯sdk的版本,也就是API Level删窒,例如API-19顺囊、API-20、API-21等等特碳。
buildToolsVersion '23.0.2'
//build tools的版本,其中包括了打包工具aapt站宗、dx等等益愈。
//這個工具的目錄位于你的sdk目錄/build-tools/下
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
//關(guān)閉Android Studio的PNG合法性檢查的
defaultConfig {
applicationId "com.xiaopao.activity"
//應(yīng)用包名
minSdkVersion 15
//最小sdk版本,如果設(shè)備小于這個版本或者大于
//maxSdkVersion(一般不用)將無法安裝這個應(yīng)用
targetSdkVersion 22
//目標(biāo)sdk版本或辖,如果設(shè)備等于這個版本那么android平臺
//就不進行兼容性檢查枣接,運行效率會高一點
versionCode 15
//版本更新了幾次缺谴,第一版應(yīng)用是1,以后每更新一次加1
versionName '1.411'
//版本信息湿蛔,這個會顯示給用戶,就是用戶看到的版本號
archivesBaseName = "weshare-$versionName"
//指定打包成Jar文件時候的文件名稱
ndk {
moduleName "xiaopaowifisafe" //設(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"
}
multiDexEnabled true
//當(dāng)方法數(shù)超過65535(方法的索引使用的是一個short值察迟,
//而short最大值是65535)的時候允許打包成多個dex文件,動態(tài)加載dex扎瓶。這里面坑很深啊
}
//默認的一些文件路徑的配置
sourceSets {
main {
assets.srcDirs = ['assets'] //資源文件
jni.srcDirs 'src/main/jni' //jni文件
jniLibs.srcDir 'src/main/jniLibs' //jni庫
}
}
//multiDex的一些相關(guān)配置概荷,這樣配置可以讓你的編譯速度更快
dexOptions {
preDexLibraries = false
//讓它不要對Lib做preDexing
incremental true
//開啟incremental dexing,優(yōu)化編譯效率,這個功能android studio默認是關(guān)閉的。
javaMaxHeapSize "4g" //增加java堆內(nèi)存大小
}
buildTypes {
release { //release版本的配置
zipAlignEnabled true //是否支持zip
shrinkResources true // 移除無用的resource文件
minifyEnabled true //是否進行混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//release的Proguard默認為Module下的proguard-rules.pro文件.
debuggable false //是否支持調(diào)試
//ndk的一些配置
ndk {
// cFlags "-std=c++11 -fexceptions -O3 -D__RELEASE__" // C++11
// platformVersion = "19"
moduleName "xiaopaowifisafe" //設(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
}
}
compileOptions {
//在這里你可以進行 Java 的版本配置叠殷,
//以便使用對應(yīng)版本的一些新特性
}
productFlavors {
//在這里你可以設(shè)置你的產(chǎn)品發(fā)布的一些東西林束,
//比如你現(xiàn)在一共軟件需要發(fā)布到不同渠道稽亏,
//且不同渠道中的包名不同,那么可以在此進行配置截歉;
//甚至可以設(shè)置不同的 AndroidManifest.xml 文件。
xiaopao {
}
googlePlay {
}
solo {
}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
//所謂ProductFlavors其實就是可定義的產(chǎn)品特性咸作,
//配合 manifest merger 使用的時候就可以達成在一次編譯
//過程中產(chǎn)生多個具有自己特性配置的版本宵睦。
//上面這個配置的作用就是,為每個渠道包產(chǎn)生不同的 UMENG_CHANNEL_VALUE 的值桐智。
}
//一些依賴的框架
dependencies {
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.github.pwittchen:reactivenetwork:0.1.3'
compile 'de.hdodenhof:circleimageview:2.0.0'
compile 'com.android.support:design:23.4.0'
compile 'pl.tajchert:waitingdots:0.2.0'
}
//聲明是要使用谷歌服務(wù)框架
apply plugin: 'com.google.gms.google-services'
//第三方依賴庫的本地緩存路徑
task showMeCache << {
configurations.compile.each { println it }
}
//使用maven倉庫烟馅。android有兩個標(biāo)準(zhǔn)的library文件服務(wù)器,一個jcenter一個maven郑趁。兩者毫無關(guān)系。
//jcenter有的maven可能沒有捆憎,反之亦然悦穿。
//如果要使用jcenter的話就把mavenCentral()替換成jcenter()
repositories {
mavenCentral()
}
【轉(zhuǎn)】androidStudio中build.gradle配置文件詳解
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來融蹂,“玉大人弄企,你說我怎么就攤上這事【辛欤” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵洽瞬,是天一觀的道長业汰。 經(jīng)常有香客問我菩颖,道長,這世上最難降的妖魔是什么晦闰? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮跪妥,結(jié)果婚禮上声滥,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好罐韩,可當(dāng)我...
- 文/花漫 我一把揭開白布污朽。 她就那樣靜靜地躺著,像睡著了一般矾睦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顷锰,一...
- 文/蒼蘭香墨 我猛地睜開眼待牵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了偎行?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站验烧,受9級特大地震影響又跛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜慨蓝,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弧满。 院中可真熱鬧,春花似錦谱秽、人聲如沸洽蛀。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鲫寄,卻和暖如春吉执,著一層夾襖步出監(jiān)牢的瞬間戳玫,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 使用AndroidStudio的過程中固额,對build.gradle文件配置以及導(dǎo)入支持包的問題的一些總結(jié)斗躏,在此記錄...
- 整個項目中的build.gradle文件 AndroidStudio 3.0版本之前: 一般效果如圖: 2 bui...
- 原文地址 Gradle打包的文件名添加svn版本信息 為了獲取SVN版本號捏浊,我們要引入一個第三方的庫,這個庫可以獲...
- Android Studio是采用Gradle來構(gòu)建項目的金踪,一個Android項目中包含兩個build.gradl...
- http://mp.weixin.qq.com/s/bUv4UNFnwTuSjL04G7Oq9w