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的代碼,那么應該使用方法一,而不應該使用方法二。
關於我
微信公眾號:infree6 或者直接掃碼