AndroidStudio下的依賴管理

來源:互聯網
上載者:User

標籤:

 

在開發中用第三方庫是很常見的事,如何在AndroidStudio下管理這些依賴呢?這就是這篇文章的目的。

目錄
  • Maven/Ivy倉庫依賴
  • Module依賴
  • aar檔案依賴
  • jar檔案依賴
  • 例子完整代碼
一、Maven/Ivy倉庫依賴

這中依賴在AndroidStudio中應用最廣泛,也是相比於Eclipse+ADT開發來說的閃光點之一。先給出一個例子:

dependencies {  //省略了一下預設配置    compile ‘com.android.support:appcompat-v7:23.4.0‘    compile ‘com.jakewharton:butterknife:7.0.1‘  //其他依賴項}

上面就是一個Maven倉庫依賴的例子,項目依賴於相容包和jakewharton大大的‘黃油刀’,為了突出重點省略了其他類型的依賴項(後面會講到)。

1)配置倉庫

(這段這是基礎概念,可以選擇略過)在配置Maven依賴之前我們得明白一下什麼是倉庫(repositories)和如何配置倉庫,那什麼是倉庫呢?倉庫說白了就是存放代碼的地方,它能很好的進資料列版本設定和訪問。應用廣泛的倉庫類型有兩種:Ivy和Maven,Ivy在以Ant為構建的系統中應用比較廣;相比於Ivy,Maven倉庫就比較出名了。現在為廣大程式員所知的Maven倉庫有Jcenter和Maven Central,它們都是Maven倉庫的實現。而這兩種類型的倉庫在以Gradle為構建工具的AndroidStudio中都能使用,且使用很簡單,只需要在相應的設定檔中添加幾行代碼就行。

a.配置Maven倉庫

這AndroidStudio下建立的項目,在項目根目錄下的build.gradle裡又這樣一段代碼:

allprojects {    repositories {        jcenter()    }}

這指定了所有module(包括appilcation module和library module,關於module的概念後面會將到)的預設倉庫是Jcenter。這就有疑問了,同樣是maven倉庫為什麼AndroidStudio預設指定不是Maven Central呢?Jcenter和Maven Central都是maven庫沒錯,但是Jcenter是Maven Central的超集,也就是說你能在Maven Central中找到的依賴在Jcenter中也能找到,反之則不然。如果你非要用Maven Central也行,只要把 jcenter() 換成 mavenCentral()就行,但不建議在項目的build.gradle中修改,而是去你的module中修改,這樣就能將影響範圍控制到單個module。

b.匯入依賴

配置好倉庫後就可以匯入依賴了,同樣建議到module的build.gradle檔案中匯入需要的依賴庫,而不是在項目的build.gradle中匯入。講要匯入的倉庫寫進dependencies代碼塊內就行,類似於開篇的例子。 說說倉庫是如何區分不同的庫已經同一庫的不同版本的,主要通過三個元素來區分:組別:庫名:版本號碼

  • 組名:一般表明了庫的開發人員,常用倒置的網域名稱來表示,如com.jakewharton
  • 庫名:說明了這個庫的名稱,如butterknife
  • 版本號碼:庫的版本號碼

這三者用:分隔,一起組成了庫的唯一標識,所以我們匯入庫依賴的格式就是: compile ‘組名:庫名:版本號碼‘ 起始不一定得是compile,也可能是provided、apk、testCompile,androidTestCompile,它們說明了把庫加到那部分編譯中去,具體是什麼,自己google。

#### c.動態版本匯入 什麼叫動態版本匯入呢?就是讓Gradle去給你下載最新的庫,而不是每次都是自己修改版本號碼。如下

 dependencies {   compile ‘com.android.support:support-v4:22.2.+‘   compile ‘com.android.support:appcompat-v7:22.2+‘   compile ‘com.android.support:recyclerview-v7:+‘}

這裡面涉及到版本號碼的命名規則:主要版本號.次版本號碼.debug版本號碼,不同版本號碼什麼意思也自己google。解釋一下上面三個依賴的意思:

  • 要求是最新的debug版本
  • 要求次版本至少大於2
  • 最新的庫
2)其他Maven/Ivy倉庫的配置

非Jcenter和Maven Central倉庫怎麼maven倉庫怎麼配置?Ivy怎麼配置?如下:

repositories {  maven {    url "http://baidu.com"//這裡填寫倉庫地址    credentials {         //這裡填認證資訊      username ‘user‘      password ‘secretpassword‘    }    }}

Ivy配置類似,只要把maven改成ivy就行了,再次申明為了將影響範圍保持到最小,要將這項配置寫到module的build.gradle檔案中。

二、Module依賴

在AndroidStudio上,一個應用是由一個或多個Module組成,其中一個application module,零個或多個library module。application module最後可以打包成apk,library module就是每打包的庫,它最後可以打包成jar或者aar(兩者區別自己google)。這一節我們來講講如何匯入自己或者別人寫的module,下一節講如何匯入打包好的aar。 完成module依賴只需要完成三步:

  • 拷貝庫到項目的根目錄下,和app module同級
  • 在項目的setting,gradle中加入module名。如下
  include ‘:app‘, ‘:volley‘

經過這個步驟,就就可以在項目導航的Android視圖下看到匯入的項目了

其中app是Android產生的application module,volley是我匯入的library module。但這隻是告訴了Gradle去管理者兩個module,並不能再app中應用volley中的API,需要完成下面一個步驟才能使用。

  • 添加dependencies聲明
dependencies {    //為了突出重點,省略其他    compile project(‘:volley‘)}

這樣一來匯入module就成功了。 最後再說一下,如何在Android Studio中建立application module 和 library。File->new->new module 在彈出的對話方塊中選擇module類型,module的類型起始是根據它的build.gradle中的外掛程式類型決定的。 application module:

apply plugin: ‘com.android.application‘

library module:

 apply plugin: ‘com.android.library‘
三、arr檔案依賴

arr檔案是打包好的library module,在說明如何將aar檔案引入到項目中,先說說如何打包module產生aar檔案,Build->Make Module (module name)等Gradle構件完成後,會在所示的路徑中產生aar檔案

開始講如何將aar檔案加入到項目中,同樣需要三個步驟:

  • 拷貝aar檔案到module目錄下,可以拷貝到libs檔案中,或者任何建立的檔案夾中

    我這裡建立了一個叫aars的檔案夾,然後把之前產生的aar檔案放了進去
  • 添加檔案倉庫 在module的build.gradle中添加代碼塊
repositories{    flatDir{        dirs ‘aars‘    }}
  • 添加依賴
dependencies {    //忽略其他    compile(name:‘volley-debug‘, ext:‘aar‘)}

至此添加aar檔案依賴完成。

四、jar檔案依賴

Android Studo檔案依賴很簡單,把jar包往libs檔案裡一放就ok了。這得益於AndroidStudio的預設配置:

 compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])

這句話就是將libs目錄下所有的jar包一次全倒過來。如果換成compile file(jar檔案路徑)可以一次只匯入一個jar包。

五、例子完整代碼

Github-fallblank

AndroidStudio下的依賴管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.