前一篇博客詳細講了怎樣建立一個安卓工程,見從零構建Android工程,今天在它的基礎上演示怎樣對主工程添加依賴。java
進入主題以前,先聲明下,build版本3.x以上已不在支持compile
指令,使用implementation
或api
。假設有兩個 module A 和 B,而且 A 依賴 B。若是在 B 中使用implementation
依賴了jar、aar或module,那麼 A 中沒法獲取到被依賴庫的 api。所以,api
指令誕生了。git
在app
目錄下新建libs
文件夾,並將須要的jar
文件拷貝到libs
目錄下。github
方式一:spring
逐個jar
文件添加依賴。json
implementation files('libs/json_simple-1.1.jar')
複製代碼
方式二:api
依賴整個libs
目錄app
implementation fileTree(include: '*.jar', dir: 'libs')
複製代碼
兩種方式能夠共存。若是被依賴的module
中有jar
要傳遞依賴,則能夠單獨使用api
指令聲明。不推薦使用api fileTree
。maven
aar是Android專用的庫形式,aar文件不只包含java代碼(class.jar文件),還能夠包含asset目錄和res目錄的資源。同jar同樣,有兩種依賴方式,而且都放在libs
目錄。gradle
方式一:ui
逐個aar
文件添加依賴。
implementation(name: 'fbcore-1.5.0', ext: 'aar')
複製代碼
若是出現提示Failed to resolve: :fbcore-1.5.0:,那麼還須要添加:
repositories {
flatDir {
dirs 'libs'
}
}
複製代碼
該配置能夠放在module的build.gradle文件,還能夠放在項目的build.gradle文件中。
allprojects{
repositories{
jcenter()
google()
flatDir {
dirs 'libs'
}
}
}
複製代碼
方式二:
依賴整個libs
目錄
implementation fileTree(include: '*.aar', dir: 'libs')
複製代碼
同jar同樣,兩種方式能夠共存。
可是,下面兩張圖中,第一張是逐個aar
依賴的,第二張是依賴整個libs
目錄的。
所以仍是建議逐個aar
依賴,在工程目錄中顯示效果更友好些。
見從零構建Android工程,已經描述了怎樣建立並依賴module
。
一般狀況下,咱們依賴的module
同主module
在同一個工程目錄下,用上述方式依賴便可。可是,AndroidStudio
還支持依賴其餘位置文件夾的module
。
首先製造如圖的目錄結構,library
同Demo
工程目錄同級。
其次在settins.gradle
文件夾中添加:
include 'libModule'
project(':libModule').projectDir = new File(settingsDir, "../library")
複製代碼
構建後,工程結構如圖
使用implementation project(':libModule')
與主項目關聯。
Gradle已經支持三個maven
庫地址。已經包含了大多數經常使用的開發庫。
repositories{
jcenter()
google()
mavenCentral()
}
複製代碼
一般咱們使用本身開發的maven
庫或使用別人的maven
庫不在上述的三個倉庫中,那麼須要指定maven
庫地址。
repositories {
maven { url "http://maven.springframework.org/release" }
maven { url "https://maven.fabric.io/public" }
}
複製代碼
上面的地址僅供參考,並不是實際的倉庫地址,須要修改爲庫的實際地址。
配置好maven庫地址後,接下來就能夠直接引用遠程庫。
implementation 'com.google.code.gson:gson:2.8.5'
複製代碼
上述遠程庫名稱由三部分構成,groupid
,artifactid
,version
。
此處是廣告:Flueky的技術小站