Android Library和Android APP、Java Library的區別

  • Android Library在目錄結構上與Android App相同,它能包含構建APP所需的一切(如源代碼、資源文件、Android Manifest)。

  • Android App最終被編譯打包成能在Android設備上運行的APK文件,但是Android Library被編譯成供其它Android App依賴的Android Archive (AAR)文件。

  • Java Library最終被編譯打包成Java Archive(JAR)文件,它不能打包Android資源文件,但是Android Library不僅能打包Java文件還能打包Android資源文件。

Android Library的使用場景

  • 當你需要向其它APP提供一個通用模塊時。例如:你需要向其它APP提供通用的賬戶管理模塊。

  • 當你需要構建不同的APK,但這些APK有共同核心功能時。例如:你的APP有免費版和付費版,但是它們有相同的核心功能。

在這兩種情況下,只需將要重用的文件移動到Android Library中,然後將library添加爲每個APP模塊的依賴項,APP就能直接調用library中的功能,而不需要關心library的具體實現。

如何把App Module轉換成Android Library Module

如果你的App Module的全部代碼都可以重用,那麼你可以把這個App Module轉換成Android Library Module,步驟如下:

1、 打開App Module的build.gradle文件。

2、 刪除applicationId這一行。只有App Module才需要定義applicationId。

3、 把文件頂部的 apply plugin: 'com.android.application'
改爲 apply plugin: 'com.android.library'

4、 保存文件,點擊Tools > Android > Sync Project with Gradle Files。

這樣就完成了App Module到Android Library Module的轉換。
轉換後Module的整個結構不變,但是它已經是一個Android Library Module了,編譯後將生成AAR文件,而不是APK文件。

在Project面板中選中Library Module,然後點擊Build > Build APK,就能編譯生成對應的AAR文件到build>outputs>aar目錄。

如何添加依賴Android Library

在其它App Module中使用Android Library中的代碼的步驟如下:

方法一

添加編譯生成的AAR文件到Project。

a、 點擊File > New > New Module。

b、 點擊Import .JAR/.AAR Package,然後點擊Next。

c、 輸入AAR文件的路徑,然後點擊Finish。

方法二

Import Android Library到Project(library的源代碼就成了Project的一部分)。

a、 點擊File > New > Import Module。

b、 輸入library的目錄地址,然後點擊Finish。

這樣library就被copy到Project,且你可以編輯library的代碼。

如果你想只維護一份library的代碼,那麼應該使用方法一,而不應該使用方法二。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章