Android 將被依賴的庫項目打包成aar(非jar)文件


前奏:之前一直在尋找各種打成jar包的方式,該方式只能把class文件打成jar包,並不能

把項目中的資源文件(比如res目錄下的文件,assets目錄下的文件)也打到jar包里面

就算可以打到jar包里面,我們的項目也不能使用。

 

主題:后來更新ADT的時候看到SDK的\extras\android\m2repository\com\android\support目錄下

有好多后綴為aar的文件,解壓工具打開可以看到里面赫然包含着assets、res、AndroidManifest.xml、classes.jar

和R.txt等文件,然后通過測試發現直接將aar文件放到項目的libs目錄下,可以調用里面的資源文件和類文件。

 

下面說說aar的生成方法和使用方法:

生成方法:必須通過AndroidStudio工具(需要使用它的Gradle構建方式,低版本的估計不行,我使用的最新版本1.1.0),創建一個非庫項目A,再創建一個庫項目B,並且使得A依賴於B,然后運行項目A,這時在庫項目B的\build\outputs\aar目錄下可以看到B-debug.aar和B-release.aar兩個文件,該文件就是一會提供給項目A使用的。

使用方法:

現在讓A項目去掉對B的依賴關系,將上面生成的B-debug.aar或者B-release.aar拷貝到項目A的libs目錄下,修改A項目的build.gradle配置文件,如下

repositories{
    flatDir{
        dirs 'libs'
    }
}

dependencies {
  // compile fileTree(dir: 'libs', include: ['*.jar'])
  compile (name:"B-release",ext:"aar")
  compile 'com.android.support:appcompat-v7:22.0.0'
}

然后等Gradle構建完成,即可運行項目A。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM