Android Studio 打包及引用 aar

作者: 97690CE50CC872D | 来源:发表于2017-11-28 20:53 被阅读452次

Android Studio 打包及引用 aar

1.简述:

Android 项目的开发中,我们经常会遇到工程、jar 包等等之间相互引用的方式。一般我们通过在 gradle 文件中配置依赖来解决,比如:


image

Gradle 的一些基本依赖配置方式如下:

  • compile fileTree(dir: 'xxx', include: ['.jar', ".xxx"]):将某个目录下所有符合扩展名的文件作为依赖;
  • compile 'com.xx.xx:ProjectName:Version'
    :配置Maven` 库作为依赖;在 Maven 库中心 可以搜索自己想用的库进行依赖;
  • compile project(':AnotherModule'):配置另一个 Module 作为本 Module 的依赖,被依赖的 Module 必须被导入到当前工程中;
  • compile files('xxx.jar'):配置某个 jar 包作为依赖。

2.aar文件生成

要输出 aar 文件,必须将 Module 配置为 library,在 gradle 文件中如下:

  • 输出 aar : apply plugin: 'com.android.library';
  • 输出 apk :apply plugin: 'com.android.application'

将 Module 配置为 library 后,构建输出一个 aar 文件,根据渠道和 BuildType 的不同,在相应的目录下可以找到。比如对 BuildType 为 debug 的配置,输出为:[ModuleName]/build/outputs/aar/[ModuleName]-debug.aar。一份 aar 文件其实就是一份 zip 包,和 jar 不同的是,它将一些资源文件、第三方库文件、so 文件等等都打包在内,而代码文件编译后压缩在在 classes.jar 中。比如:


image

3.aar的引用

  • 方法一:
    这种方式比较简单,打开 Project Structure,添加一个新 Module,然后选择 Import *.JAR or *.AAR Package 的方式导入:


    image

    导入后,在你的工程下面,会生成一个文件夹,里面是 aar 文件以及 Android Studio 的配置文件。


    image

缺点:
被依赖的 aar 无法 F3 跟进去,无法看到资源文件内容以及目录层级等等缺陷

  • 方法二:配置依赖的方式引用

    compile(name: 'xxx', ext: 'aar')

和一般的 jar 文件类似,首先需要将 aar 文件放入引用 Module 的 libs 目录下,然后在 gradle 配置文件中把 libs 目录加入依赖:

android {
    ...  //以下为添加内容
    repositories {
        flatDir {
            dirs 'libs' ////就是你放aar的目录地址
        }
    }
    ...//以上为添加内容
}

在Module的build.gradle里面添加依赖(dependencies )

注意:SMSSDK-<verison>,是随着版本变化的;eg:3.0.0的版本则需要改成:compile name:’SMSSDK-3.0.0′,ext:’aar’

dependencies {
    ....//你的其他依赖
    compile name:'SMSSDK-<version>',ext:'aar'
    compile name:'SMSSDKGUI-<version>',ext:'aar'
}

最终,你的build.gradle看起来应该像这样:
[图片上传失败...(image-870506-1511873576851)]

依赖即可关联完毕。构建一下工程,在 Module 的 build/intermediates/exploded-aar 目录下,可以看到有一些临时文件生成:

image
看起来完全是引用 aar 的解压版本。Android Studio 安装反编译插件后,可以通过 F3 跟进到 class 文件里面,如果你有被依赖 Module 的源代码的话,还可以 Attach Source 关联源代码查看。另外,可以很方便的查看 aar 中的资源文件。

相关文章

网友评论

    本文标题:Android Studio 打包及引用 aar

    本文链接:https://www.haomeiwen.com/subject/jatybxtx.html