Android Studio开发趟过的坑之aar的使用

来源:互联网 发布:windos系统删除mac系统 编辑:程序博客网 时间:2024/05/18 15:04

很多时候我们需要使用第三方的库,如果这些库是以Module的形式集成到工程里,不仅工程的体积庞大,而且还严重影响编译速度!


这时候我们就会考虑将第三方库打包成aar文件进行引用,引用的方法还是网上的老套路:

1、将打包的aar放到libs目录;

2、在你主程序的Module(没改的话一般是app)的build.gradle文件增加:

allprojects {    repositories {        jcenter()        flatDir { dirs 'libs' }//定义本地库目录,引用aar用到    }}
说明:jcenter()不是引用aar必须的,得看dependencies{}中依赖的第三方库是否需要该方式。

3、dependencies{}中添加aar的引用,如果打包aar的Module的build.gradle文件中也依赖第三方库,则必须在你主程序的Module的build.gradle文件中增加依赖,否则即使编译通过,在运行时也会提示找不到库中的类,例如:

dependencies {    compile fileTree(include: ['*.jar'], dir: 'libs')    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:25.2.0'    //引用aar    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'    compile 'com.nineoldandroids:library:2.4.0'//spinnerwheel-release.aar需要依赖这个库     compile 'com.github.barteksc:pdfium-android:1.5.0'//android-pdf-viewer-release需要依赖这个库,并且需要repositories中声明jcenter()    compile(name: 'spinnerwheel-release', ext: 'aar')    compile(name: 'mpchartlib-release', ext: 'aar')    compile(name: 'android-pdf-viewer-release', ext: 'aar')}


以上面的3个库为例总结一下效果:

1. 占用空间:Module总共200M,打包成aar后总共不到500KB;

2. 编译时间:Module首次编译时间大约2分钟,重复编译8秒左右;改用aar后首次编译时间大约半分钟,重复编译3秒左右。

原创粉丝点击