Gradle
- Gradle支持多工程構建和局部構建
- Gradle支持遠程或本地依賴管理:
- 從遠程maven倉
- nexus私服
- ivy倉庫以及本地倉庫依賴
- Gradle與Ant、Naven兼容
- Gradle適用靈活
- Gradle可輕鬆前一:適用任何結構的工程,可以在同一個開發平臺平行構建原工程和Gradle工程
- Gradle可以更容易的集成到自動花構建系統
local.properties
該文件位於項目根目錄,一般用來配置本地環境屬性,如sdk!
sdk.dir=/Users/zhangsan/Library/Android/sdk
settings.gradle
該文件位於項目跟目錄,其中包含項目所包含的Module
include ':app'
include ':library'
build.gradle
該文件位於項目根目錄,用於定義適用項目所有模塊的構建配置
buildscript { //定義項目中所有哦模塊公用的Gradle 存儲區和依賴區
repositories {//依賴庫的路徑
google()
jcenter()
}
dependencies {//添加插件
classpath 'com.android.tools.build:gradle:3.2.0'
}
}
allprojects {
repositories { //項目中依賴庫的路徑
jcenter()
google()
mavenCentral()
}
}
//打包錢執行clean任務
task clean(type:Delete){
delete rootProject.buildDir
}
app Module下的buil.gradle
該文件位於項目的Module目錄下,用於配置適用於所在模塊的構建配置
//插件
apply plugin: 'com.android.application'//這標表示此module是一個可運行的應用程序,可以直接run的
apply plugin:'com.android.library'//這表示此module是個依賴庫的工程,不可直接run
apply plugin:'java'//表示此module是一個java項目,在此module中只能適用java的api
apply from: 'xxx.gradle'//引用gradle
android {
compileSdkVersion 27 //編譯sdk版本
buildToolsVersion "27.0.1" //編譯時採用的構建工具版本
//defaultConfig閉包參數,可以覆蓋Manifest.xml文件,配置應用的版本
defaultConfig {
applicationId 'com.example.demo' //唯一應用ID<至少包含兩段,即一個圓點;字母數字下劃線;字母開頭> 一般情況下和包名相同,但也可以修改報名,和manifest文件保持一致就行
minSdkVersion 19 // 可運行的最小系統版本
targetSdkVersion 26 // 可運行的最高系統版本
versionCode 1 // 版本號
versionName "1.0" // 版本名
multiDexEnabled true //方法數超過64k ,minsdk>=21 只需配置這裏,否則還要添加依賴包如下;然後配置文件重命名MultiDexApplication;或者繼承MultiDexApplication;或者在自己的application中重寫attachBaseContext,然後MultiDex.install(this);
ndk { //ndk過濾so包(以下爲只支持v7包);如果error,在gradle.properties文件中添加Android.useDeprecatedNdk=true
abiFilters "armeabi-v7a"
}
//buildTypes閉包參數說明,默認有release和debug兩種,默認只顯示release方式,一般是正式發佈的包
buildTypes{
release{
minifyEnabled false //混淆開關
//指定混淆文件及混淆文件規則配置文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}
dependencies{
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])//編譯文件樹(編譯依賴libs目錄下所有jar)
implementation project(':Name') //是將另一個module進行編譯並打包
implementation (name:'xxx', ext:'jar')
implementation 'androidx.appcompat:appcompat:1.0.2'
}