一個Android Library結構上與Android app子產品相同。它可以包含建構一個app需要的所有東西,包括圓滿,資源檔案和AndroidManifest.xml。然而,并非編譯成運作在裝置上的APK,一個Android Library編譯成其他Android app子產品可以用作以來的AAR檔案。
一個Library子產品在以下情形中是有用的:
1、 當你建構多個使用相同元件,比如activity、service或者UI布局,的APP。
2、 當你建構的APP存在多個APK檔案。比如免費版和付費版APK。
在這些案例中,簡單的移動你想複用的檔案到Library子產品中,添加Library作為APP子產品的依賴。
為了建立一個新的Library子產品到你的項目中,遵循如下步驟:
1、 單擊File > New > New Module
2、 在Create New Module視窗出現時,點選Android Library。然後點選Next。
這裡同樣有一個建立Java Library的可選項,可以建構一個傳統的JAR檔案。JAR檔案在很多項目中都是可用的。特别是你想與其他平台分享代碼,它不允許包含Android資源檔案或者AndroidMainfest.xml,,這個在Android項目中是非常有用的,是以我們專注建立Android Library。
3、 為你的Library設定一個名稱并且選擇一個最小的SDK,然後點選Finish。
一旦Gradle項目同步完成。Library子產品顯示在Project左邊的面闆中。如果你沒有看到新的子產品檔案夾,確定适應的是Android視圖。
如果你有一個已經存在的app子產品所有的代碼你都想複用,你可以通過以下幾部将其轉化成Library子產品。
1、 打開build.gradle檔案,你可以看到如下語句:
apply plugin: ‘com.android.application’
2、 更改成如下:
apply plugin: ‘com.android.library’
3、 點選Sync Project with Gradle Files
就這麼簡單,整個子產品無需改動。但是現在就可以作為Library并且生成AAR檔案而不是APK。
為了在其他app子產品中使用你的Android Library代碼,操作如下:
1、 有兩種方式添加library到你的項目中。
添加編譯後的AAR(或者JAR)檔案:
1) 單擊 File > New Module。
2) 單擊 Import .JAR/.AAR Package 然後點選Next。
3) 輸入AAR或者JAR檔案的位置,然後點選Finish。
導入你的Library子產品到你的項目:
1) 單擊 File > New > Import Module
2) 輸入Library 子產品的位置點選Finish。
Library子產品被複制到你的項目中是以你可以編輯Library代碼。
2、 確定Library 列在setting.gradel檔案的頂部。
include ‘:app’, ‘:my-library-module’
3、 打開app子產品的build.gradle檔案添加一個新的依賴到dependencies中:
dependencies {
compile project(“:my-library-module”)
}
4、 單擊Sync Project with Gradle Files。
現在,你的Android Library中的任何代碼和資源都是可以被你的app子產品通路,Library的AAR檔案将會在你的APK打包的時候加入進去。
1、 資源合并可能導緻沖突
2、 Library子產品可以包含JAR 包。
3、 Library子產品不能使用 raw資源
4、 App子產品的最小SDK版本必須等于或高于Library中的版本。
5、 每個Library子產品建立它自己的R類。
本文作者:宋志輝