前奏:之前一直在尋找各種打成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。