原文鏈接:Android Studio多工程引用同一個library項目配置方法?
本文將會在原文上做一些擴展,解釋一些基本概念,幫助剛接觸Android Studio(以下簡稱AS)的朋友更好的理解。
本文所描述的是在本地共享,使用SVN,git,maven這些同樣可以實現,不在本文討論范圍。
如描述有誤,請多多指正!
Project
AS對Project的概念進行了重定義,概括起來講就是:APP以及它的依賴。
舉個例子:
你在Eclipse中創建了一個Project叫MyAPP,同時它依賴于另外兩個Library Project:Library1和Library2,在Eclipse中這是三個Project;當你把代碼遷移到AS后(遷移過程省略10000字),它們合起來才是一個Project,叫作MyApp,這個Project下面有三個Module:library1,library2以及myApp.
好了現在你已經把代碼遷移到了AS,這時你發現Library1是被原先多個項目所共享的,按照上面的做法,原先的N個項目獨立成N個工作空間,每個工作空間里都有一份Library的代碼。沒有人會愿意去維護這同樣的N份代碼對不對?即便修改了之后只是Ctrl+C,Ctrl+V.
New Library Module
先說下共享Library的思路:把所有的Library都作為Module放到一個Project里,然后讓APP去引用這個Library Project.
這里先簡單說下怎么在AS里創建一個Library Module。
這里新建了一個叫SharedLibrary的項目,默認情況下該項目包含一個Module叫作"app"。把項目呈現方式切換成"Android"。
在Gradle Scripts目錄下有兩個build.gradle文件,一個是整個Project的構建文件,一個是Module app的。打開Module app的構建文件。
現在要把"app"這個Module變成一個Library:
第一步,把第一行改成apply plugin:'com.android.library'
第二步,刪掉applicationId "com.test.qsjh"這一行。
Import Library Module
通過AS左上角File->New->Import Module導入你已經擁有的Library,在這里我導入androidLibrary和androidUIStyle兩個Library.
現在已經準備好Library Project了,接下來是怎么引用它。
這里新建了一個Project叫作FirstApp,同樣先切換到Android視角。
第一步:打開Gradle Scripts目錄下的settings.gradle,應該只有一行include':app',加上下面這些
第二步:打開Gradle Scripts下Module app的build.gradle文件,在dependencies{}中添加兩行
第三步:點擊AS上方菜單欄的Build->Clean Project,完成之后你會發現你的工作空間中多了兩個Module.
我們把視角切回Project
至此,我們就解決了在不維護多份代碼的情況下共享Library。