2015-11-04 177 views
6

在Android Studio IDE中,您可以添加一個.jar文件。您還可以添加'圖書館項目'的整個項目。還有Android庫(來自Gradle)添加爲外部庫圖書館與圖書館項目與外部圖書館的區別

的.jar Jars

圖書館項目 Library Project

外部庫 External Libraries

我得到的.jar文件是正義的。但是,如何添加其他庫(庫項目)需要添加自己的完整構建文件(如gradle,res,src等)。並且使我的理解更加複雜,Gradle下載的文件被添加爲「外部庫」,並且它們具有.jar文件和res文件夾。

您能否解釋爲什麼庫可以添加爲.jar,整個項目或外部庫?

回答

3

您能否解釋爲什麼庫可以添加爲.jar,整個項目或外部庫?

你有不同的可能性,因爲你可以有不同的情況。通常圖書館是由其他團隊建立的,你不能決定它是如何分配的。

  • 您可以有一個自己的庫或本地叉。在這種情況下你的代碼,你可以作爲一個模塊

添加該庫在這種情況下,只需添加在module/build.gradle

apply plugin: 'com.android.library' 

,並添加在主項目的依賴像:

dependencies{ 
    compile project(':module') 
} 
  • 可以使用maven dependency。在這種情況下,某人將該庫上載到Maven存儲庫中。
    目前這是我認爲最好的解決方案。

在這種情況下,只需添加一個依賴於你的項目

dependencies{ 
    compile 'group:name:version' 
} 

這種依賴關係可以是AAR文件,也罐子文件。
你也可以在公共或私人maven發佈自己的圖書館。

  • 您可以在您的項目

在這種情況下添加一個AAR文件定義平庫:

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

,並添加依賴:

dependencies { 
    compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar') 
} 
  • 你可以在這種情況下,您的項目

添加jar文件通常你可以把所有罐子libs文件夾中,並添加依賴:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 
+0

所以沒有什麼區別什麼他們一旦編譯完成,它的純粹如何被添加到項目中? – Aggressor

+0

@Aggressor如果你有嵌套的依賴關係有一些區別。 Gradle使用Maven模塊處理它,而您必須使用aar和jar文件來管理自己。 –

+0

@GabrieleMariotti你能告訴我,當aar lib有一個像retrofit這樣的依賴項時會發生什麼情況,這是否包含了aar文件所鏈接的模塊/項目所需的改造?我認爲這不足以讓我對這個疑問提出一個獨立的問題 – user2450263