2016-06-12 66 views
4

我爲有離岸團隊開發的android移動應用程序的公司工作。我有權訪問GitHub存儲庫。模塊,庫,jar,庫項目,gradle項目,aar和jar之間的區別

我拼湊android應用程序塊,它是給我地獄。

如何區分模塊,庫,jar,庫項目,gradle項目,aar和jar。有人可以給我一個實際的定義。不是出於驚人的谷歌搜索。我也有Google。

PS是的我是一個noob,並不以此爲榮。

回答

2

我只是帶來有關它們的簡要說明。我希望我很清楚。

模塊:模塊是您的應用程序的一個組件,可以獨立構建/測試,如果需要可以在另一個應用程序中使用它。

庫: AAR文件,JAR文件等

JAR: Java庫

AAR:就像JAR,唯一的區別是,它也包含了像資源等的Android特定的文件

Gradle項目: Gradle只是一個構建系統,它被Android Studio用來構建android項目。與之前在Eclipse中使用的構建系統相比,它非常強大。

庫項目: Android庫項目與Android應用程序項目類似,它還在項目的根目錄中包含項目清單文件。此外,該目錄還包含src,res和其他目錄,這些目錄在構建應用程序項目時也會找到。 但是,有一個顯着的差異。您無法將庫項目編譯爲APK文件,因爲庫項目沒有描述應用程序。相反,當應用程序的項目和源代碼引用庫項目時,它提供了可重用的代碼和資源,這些代碼和資源對應用程序有貢獻。在構建時,此代碼和這些資源將合併到應用的APK文件中。

要更多地解釋這一點,讓我給你舉個例子: 說你要使用的網絡庫凌空製作API調用,現在因爲這是從谷歌的開放源代碼庫,你可以克隆它製作的定製根據您的要求。

您可以凌空庫爲您圖書館項目,獨立構建它,單元測試等

現在說你開始建立你需要做HTTP調用,所以你需要添加凌空庫的應用程序到你的項目。你有兩個選擇:

  1. 編譯你的庫項目齊射,生成aar文件,並將其添加到你的應用程序項目。

  2. 在項目中添加Volley作爲模塊。 (如果您選擇此選項,您可以更改在同一工作室項目抽射庫,因爲它會在你的項目中的組件行爲)

請讓我知道,如果事情是不明確的。

+1

在使用庫作爲.aar文件或模塊時是否存在任何性能或逆向工程相關的差異? – Srinivasan

1

1)模塊

一個module是源文件的集合,構建設置,讓您將項目劃分成獨立功能單位。您的項目可以有一個或多個模塊,一個模塊可以使用另一個模塊作爲依賴項。每個模塊都可以獨立構建,測試和調試。

有在Android Studio模塊4類型。

  • 電話&表模塊
  • Android Wear模塊
  • 的Android TV模塊
  • 玻璃模塊

2.)支持庫

Android支持庫提供了許多未構建在框架中的功能。這些庫提供了向後兼容的新功能版本,提供了不包含在框架中的有用UI元素,並提供了一系列應用程序可以使用的實用程序。

支持庫提供一個範圍的不同的特徵:框架組件的

3)Jar文件

JarFile用於讀取JAR條目,並從jar文件及其關聯數據。

的更多詳情,請這樣的:https://developer.android.com/reference/java/util/jar/JarFile.html

4)的Android庫項目

Android團隊推出了一款名爲new binary distribution format的Android 檔案(AAR)。 .aar包是Android庫項目的二進制分發。

AAR類似於JAR文件,但它可以包含資源以及編譯的字節碼。這允許一個AAR文件是一個Android應用程序的included in the build process類似於JAR file

5.)搖籃和搖籃項目

Gradle被一個自動構建工具包,其允許在哪些項目是的方式可通過一組構建配置文件進行配置和管理。這包括定義如何構建項目,需要滿足哪些依賴項以便項目成功構建以及構建過程的最終結果(或結果)應該是什麼。 Gradle的優勢在於它爲開發人員提供的靈活性。 Gradle系統是一個獨立的基於命令行的環境,可以通過使用插件集成到其他環境中。就Android Studio而言,通過適當命名的Android Studio插件提供Gradle集成。

的更多詳情,請這樣:http://www.techotopia.com/index.php/An_Overview_of_Gradle_in_Android_Studio

+0

@Ackman在下面看到我的答案。 – Ironman