《Gradle For Android (一) 基礎定義與依賴管理篇》
轉載請註明來自 傻小孩b(gold.xitu.io/user/57e089…喜歡的可以關注我,不定期總結文章!您的支援是我的動力哈!
用了Android Studio也一段時間了,花了很大時間在開發上,自己的Project上的Gradle配置過一次之後,之後的為了節省時間,也只是修改修改。所以呢,這次想做下記錄,總結下哈。當然也是想從最基礎的Gradle配置記錄起,有興趣的程式猿也可以看看~
基本配置
首先
在我們新建專案的時候如下圖,構成一個完整的gradle管理的Project
其次
這裡簡單描述下,這幾個檔案作用:
(1) /gradle/gradle-wrapper.properties
#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip複製程式碼
從檔名,我們可以大概猜測,這是gradle版本管理的配置檔案,這裡讀者比較好奇GRADLE_USER_HOME與“wrapper/dists”指的是什麼?這裡是告訴Project使用2.14.1版本的gradle,下載連結為distributionUrl的value,並且儲存在GRADLE_USER_HOME的“wrapper/dists”目錄中,一般GRADLE_USER_HOME指的是你pc使用者目錄,例如(C:Users(usename).gradle)
(2) /build.gradle (直接註釋說明)
buildscript {
repositories {
jcenter() // 告訴project 使用jcenter庫
}
dependencies {
classpath `com.android.tools.build:gradle:2.1.0`// 告訴project使用android提供的2.1.0版本gradle
}
}
// 配置所有的工程
allprojects {
repositories {
jcenter() //所有的project都是使用jcenter庫
}
}複製程式碼
首先這個build.gradle,是所有project的應用gradle(這裡我們可以做公共配置,後期示範如何使用)。
(3) /module/build.gradle (註釋說明)
apply plugin: `com.android.application` // module 型別 appllication -> app library -> 代表android library 或者 java library
android {
compileSdkVersion 24 //SDK編譯版本
buildToolsVersion "24.0.3"//構建工具版本 對應buildTool
defaultConfig {
applicationId "com.yuan.agradle" //配置包名
minSdkVersion 18 // 最小支援sdk版本
targetSdkVersion 24 // 目標sdk版本
versionCode 1//版本號
versionName "1.0" //版本名稱
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {//表示構建型別 一般有release debug 兩種
release { //release型別
minifyEnabled false
// 啟用混淆
proguardFiles getDefaultProguardFile(`proguard-android.txt`), `proguard-rules.pro`
}
}
}
dependencies {
compile fileTree(dir: `libs`, include: [`*.jar`])
compile `com.android.support:appcompat-v7:24.0.0-beta1`
testCompile `junit:junit:4.12`
}複製程式碼
(4) setting.gradle
include `:sample`複製程式碼
配置你的project有哪些module
(二)依賴管理
1. jar包
1.1 常規做法
dependencies {
compile fileTree(dir: `libs`, include: [`*.jar`])//即新增所有在libs資料夾中的jar
compile `com.android.support:appcompat-v7:24.0.0-beta1`//這是新增自己依賴jcenter庫的jar
}複製程式碼
1.2 引入其他遠端倉庫
如果想引入別人的庫,重寫repositories配置,例如
repositories {
//遠端倉庫地址
maven { url = `https://dl.bintray.com/yuancloud/maven/` }
}
dependencies {
compile fileTree(dir: `libs`, include: [`*.jar`])
compile `com.android.support:appcompat-v7:24.0.0-beta1`
testCompile `junit:junit:4.12`
compile `cn.yuancloud.app:superadapter:1.1`//遠端倉庫
}複製程式碼
2.so庫引入
2.1 常規做法
放入對於的資料夾,系統自動引入:
app
├── AndroidManifest.xml
└── jniLibs
├── armeabi
│ └── yuancloud.so
├── armeabi-v7a
│ └── yuancloud.so
└── x86
└── yuancloud.so複製程式碼
2.2 jinLib資源引入在libs中
這裡必須重新設定sourceSets
sourceSets {
main {
jniLibs.srcDirs = [`libs`]
}
}複製程式碼
3 aar檔案
aar相當於android library的輸出庫,其中包含資原始檔,類似(module),在library工程build/output/aar/下
如下依賴:
dependencies {
compile project(`:library名字`)
}複製程式碼
4.關於sourceSets
顧名思義,這是資源設定欄位,我們看下預設的配置,開發者當然也可以自定義資源載入的位置
sourceSets {
main {
manifest.srcFile `AndroidManifest.xml`
java.srcDirs = [`src`]
resources.srcDirs = [`src`]
aidl.srcDirs = [`src`]
renderscript.srcDirs = [`src`]
res.srcDirs = [`res`]
assets.srcDirs = [`assets`]
}
}複製程式碼
以上是分析了我們新建Android project的時候,預設的基礎配置,以及常見的一些依賴管理,純屬個人記錄。當然如果能夠幫助到剛剛瞭解的程式猿當然最好哈。
傻小孩b mark共勉,寫給在成長路上奮鬥的你