Android开发中jar只包含了class和清单文件,并不包含res文件夹下的文件,例如一些图片和布局文件等。
aar是包含jar以及这些图片和布局啥的,所以在studio的开发中,共享带资源的lib非常方便,同时aar也可以给eclipse使用,只是要麻烦一点。
生成AAR
aar在studio中以library形式存在的,所以我们需要在项目中创建一个library。
File--New--NewModel--Android Library
这样一个新的Library(Model)就新建出来了,这时候就像是平常开发一样往这个Lib写代码就好了。
写好之后需要build,点击build按钮之后,在Model模块下会多出一个build的文件夹,build/outputs/aar目录下会有一个模块名称-debug.aar的文件,这就是传说中的aar文件了。
在Eclipse中使用
1、首先需要解压这个aar文件(可以改名然后用压缩软件解压)
tar -xzf xxxx.aar
2、解压之后,会有一堆的文件夹,这时候我们关心的就2个,一个是res文件、另一个是classes.jar
3、在eclipse中新建一个空的Android项目,在libs文件放入classes.jar和其它用到的lib,这里需要注意的是由于很多情况下eclipse并不使用gradle,所以如果开发用到的jar包可以通过maven下载jar包放进去。
4、放入res的文件资源
5、设置本项目为lib项目
右击项目--Propeties--Android--isLibrary打勾
6、修改menifest的包名,让其和studio开发过程中的包名一样,然后build,让其生成R文件
7、在调用的主项目menifest注册lib的activity server还有一些权限等
在Studio中使用
1、拷贝aar文件到项目中的libs文件夹下
2、gradle添加一下代码(假设这个aar的文件名叫做myLib.aar)
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile(name:'myLib', ext:'aar')
}
3、在主项目添加activity、service的声明,但是user-permission可以不用再次声明。