給Android工程添加依賴

前言

前一篇博客詳細講了怎樣建立一個安卓工程,見從零構建Android工程,今天在它的基礎上演示怎樣對主工程添加依賴。java

進入主題以前,先聲明下,build版本3.x以上已不在支持compile指令,使用implementationapi。假設有兩個 module A 和 B,而且 A 依賴 B。若是在 B 中使用implementation依賴了jar、aar或module,那麼 A 中沒法獲取到被依賴庫的 api。所以,api 指令誕生了。git

依賴jar

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 fileTreemaven

依賴aar

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依賴,在工程目錄中顯示效果更友好些。

依賴module

從零構建Android工程,已經描述了怎樣建立並依賴module

依賴外部module

一般狀況下,咱們依賴的module同主module在同一個工程目錄下,用上述方式依賴便可。可是,AndroidStudio還支持依賴其餘位置文件夾的module

首先製造如圖的目錄結構,libraryDemo工程目錄同級。

其次在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'
複製代碼

上述遠程庫名稱由三部分構成,groupidartifactidversion

  • groupid:前半部分,com.google.code 表示該庫隸屬的組織或公司,後半部分gson表示該公司的項目名稱。
  • artifactid:表示模塊名稱。
  • version:版本

此處是廣告Flueky的技術小站

相關文章
相關標籤/搜索