1. 程式人生 > >AndroidStudio匯入第三方開源庫

AndroidStudio匯入第三方開源庫

AndroidStudio還是0.8的版本的時候下載下來看了一下,都推出三年左右的工具了,我竟然沒有用過,昨天打算好好研究一下以便以後轉向AS,畢竟google出的這麼好的IDE,不用都對不起自己。不過真心很好用,尤其黑色的主題風格很舒服,但對於一直使用eclipse的我還是有點不習慣,主要是導包的方式和eclipse差異是在很大,於是在網上各種搜尋,研究了很久才弄明白,根據別人的資料加上自己的理解做了一點記錄。

匯入jar包

比如匯入volley.jar,只需要將jar檔案拷貝到libs目錄下,由於已經有了compile fileTree(dir: 'libs', include: ['*.jar'])行,於是只需要syncproject即可

或者選中該jar檔案,右鍵-> add as library,或者直接在模組的build.gradle中新增依賴

dependencies {
   compile files('libs/volley.jar')
}

匯入帶資源的aar包

通過倉庫匯入的方式是通用的,jar包也可以通過本地或者倉庫來匯入,方式是一樣的,只是從本地匯入jar和aar的方式是不太一樣。實際上jar和arr都是一種壓縮包,區別在於是不是隻包含資原始檔。

從倉庫匯入

在eclipse上我們一般是通過add Library將一個庫工程新增進來,這裡所說的aar其實也是一種壓縮檔案,不同於普通的jar包,它還包含了資原始檔,相當於對庫工程的打包,可以認為arr檔案就是來代替整個工程作為library而存在的。這裡只討論如何匯入這種包。

這種包的匯入最好是能從倉庫匯入,在模組的build.gradle檔案中新增依賴,這樣在build的時候就會自動去下載,比如引入sliding-menu庫

開啟專案結構,這裡只需要搜尋關鍵字即可,點選ok就會自動從倉庫下載,然後sync project


下載完後就會發現已經匯入了該庫,可以在External Libraries下面看到


同時也會在build.gradle檔案裡面新增這條依賴,平時我們會看到一些開源專案的readme檔案裡面都會告訴你怎麼新增依賴,所以直接新增在這裡,然後sync也是可以的。、

可以看到已經成功的匯入了SlidingMenu庫。

 

這個庫是通過Gradle自己去倉庫下載到的,他的位置在User\.gradle\caches\modules-2\files-2.1\com.github.itsmechlark\android-sliding-menu\...去倉庫下載後就會快取在本地,下次需要依賴該庫時就不需要再次下載。

從本地匯入

當然也可以本地匯入這個aar包,首先刪除前面新增的對sliding-menu的依賴,然後只把android-sliding-menu-1.0.1.aar拿出來放在lib目錄下,在build.gradle檔案新增如下內容再次同步專案,即可達到同樣的目的。


可以看到在External Library裡面有了Sliding-Menu庫,並且後面還有個短橫線,表示是本地匯入的?


同時可以在module/build/intermediates/exploded-arr目錄下看到匯入的arr包的內容


新增本地aar在不同版本表現不太一樣,我使用的是AndroidStudio2.1.1,參照stackoverflow上的回答How to manually include external aar package using new Gradle Android Build System

dependencies {
    compile 'package.name.of.your.aar:[email protected]'
}

repositories{
    flatDir{
        dirs 'libs'
    }
}

測試發現冒號前面的package.name.of.your.aar省略也是可以的

使用Android Support Library

使用google的support Library,作為相容包的一系列庫,首先需要通過SDK Manager下載,這些內容會下載到sdk/extras/…./support/目錄下,官網給的新增依賴的步驟就是在模組的build.gradel檔案新增依賴,比如想使用百分比佈局庫,只需要新增如下依賴即可

dependencies {
compile 'com.android.support:percent:23.4.0'
}
當然也可以通過引用jar包或aar的方式,具體視當前需要引入的支援庫是否僅包含類檔案而定。還是以引入這個百分比佈局的庫為例,在目錄sdk\extras\android\m2repository\com\android\support\percent裡面找一個版本的包如percent-23.4.0.aar,然後和上面新增本地aar一樣的方法,將其拷貝到lib目錄下,新增依賴即可。


依賴模組

將第三方開源專案以模組的方式匯入,這種方式和eclipse中匯入庫工程是類似的,這裡還是以slidingmenu為例,雖然這個專案我只用過一次可能以後都沒有人使用了,但我想找個例子的時候首先想到了這個,將該專案SlidingMenu下載到本地,解壓後得到library資料夾就是我們要用到的庫,點選File->New->Import Moudle…

選中庫所在位置,點選Finish


此時可以在專案的settings.gradle檔案裡面看到已經包含了兩個模組。

 

再為android程式新增模組依賴,選中模組slidingmenu-library點選Ok即可匯入成功。


其實就是添加了如下依賴,所以直接新增這句也是可以的。


接下來就可以使用這個庫提供的類和資源了。

注:

1、匯入之後可能會出現一些錯誤,比如我的AS只下載了API 23,而slidingmenu的build.gradle檔案裡面可能使用其他的API級別。

2、apply plugin: 'android-library'的意思是這個模組作為庫模組存在,可以理解為eclipse中將專案的is Library勾選。可以看到上面有橫線,表明被遺棄,應該是舊的寫法,新的寫法是’com.android.library’,當將模組配置為library時,build後在build/outputs/arr目錄下可以看到輸出的arr檔案,只使用這個aar包也是可以的,如同上面匯入本地的aar的方式即可。