AndroidStudio工具使用、build.gradle配置介紹(二)
1:Project Structure 專案配置介紹
上面的配置都會在專案的build.gradle檔案中顯示出來
- Sdk Location中可以配置AS的SDK,NDK,JDK
2:build.gradle構建檔案介紹
構建檔案分為整個專案的和單個module的
**單個module的構建檔案**
apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount' //統計整個app方法數的外掛
android {
compileSdkVersion 25 //編譯版本號
buildToolsVersion '26.0.2' //構建工具版本
dexOptions {
// incremental true
javaMaxHeapSize "4g"
preDexLibraries = false
}
defaultConfig {
applicationId "com.app.xx" //包名
minSdkVersion 17 //手機最低系統版本
targetSdkVersion 25 //目標版本號
versionCode 2017122103 //app版本號
versionName "4.3.1" //app版本名稱
multiDexEnabled true //是否分包dex
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips" //
}
}
signingConfigs { //簽名配置
release {
keyAlias 'keyAlias ' //別名
keyPassword 'keyAlias ' //密碼
storeFile file('.\\keyAlias .keystore') //路徑一般放在module的根路徑下面
storePassword 'keyAlias '
}
}
buildTypes { //構建app
release { //正式版本
pseudoLocalesEnabled true //如果沒有提供混淆規則檔案,則設定預設的混淆規則檔案
// shrinkResources true // 移除無用的resource檔案
zipAlignEnabled true //Zipalign優化
minifyEnabled true //開啟關閉混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//引入混淆配置檔案
signingConfig signingConfigs.release //簽名
}
debug { //測試版本
pseudoLocalesEnabled true //如果沒有提供混淆規則檔案,則設定預設的混淆規則檔案
// shrinkResources true // 移除無用的resource檔案
zipAlignEnabled true //Zipalign優化
minifyEnabled false //開啟關閉混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//引入混淆配置檔案
signingConfig signingConfigs.release //簽名
}
}
sourceSets { //引入jar包 一般是在module根目錄建立一個libs資料夾儲存jar和第三方so
main {
jniLibs.srcDir 'libs'
}
}
}
dependencies { //引入引用的第三方庫
compile project(':commonlibs')//引入某個專案作為公用的
compile 'cn.yipianfengye.android:zxing-library:2.1'
compile 'com.qiniu.pili:pili-android-qos:0.8.+'
compile 'com.qiniu:qiniu-android-sdk:7.3.+'
compile 'com.daimajia.swipelayout:library:[email protected]'
compile 'com.daimajia.androidanimations:library:[email protected]'
}
android {
useLibrary 'org.apache.http.legacy'
}
1:module中配置的某些選項,在build.gradle中也會顯示出來(sdk版本,build tools等)
在module或者build.gradle修改配置都會生效
2:Compile Sdk Version:開發和編譯時用到的Sdk的版本號,這個就好比我們開發時選擇那個 級別的sdk進行開發和編譯。原則上是高版本開發,低版本編譯。這樣才能保證在我們支援 最低sdk版本的手機上不會出錯
Build Tools Version:安卓構建工具的版本號,選擇最新的即可
Min Sdk Version:支援安卓手機系統最低的版本
Max Sdk Version:支援安卓手機系統最高的版本
Target Sdk Version:app執行時系統是否以相容模式執行app,設定為最新sdk即可
這個是什麼意思呢?比如你指定target sdk version 為18,當系統執行時版本小於或者等於這個級別系統都預設不會相容的模式來執行您的app,但是當你的手機系統升級到23完全高於18的時候,系統則會開啟相容模式來執行您的app。這個相容簡單來說比23系統有了新的預設主題他就會運用到你的app中。
一般來說Target Sdk Version設定為最新穩定sdk,然後在這個級別上測試自己的應用
注意:總結—以前總誤會min sdk 就是開發時用到的最低sdk版本則完全不是,min sdk只是支援手機系統的最低級別,Compile Sdk Version才是我們開發和編譯時用到的sdk。至於target sdk可以理解成target sdk==max sdk。一般平時開發只是測試了min sdk,很少測試max sdk。以後開發中有條件還是測試下,一般來說谷歌的sdk相容還是不錯,一把低版本在高版本執行是不會出錯的。