jar和aar在Android Studio中的生成和使用

jar和aar在Android Studio中的生成和使用


当前环境

Android Studio3.0
jdk1.8

认识jar和aar

jar:java application resource 只包含class文件和清单文件
aar:Android application resource 包含class文件和其他所有的资源文件
如此便一目了然了,如果你的库需要资源文件的话,jar是满足不了的,只能使用aar。

生成jar和aar

  1. 新建工程
  2. 新建moudle(library类型)
    新建之后我们看下moudle的目录,主要是在build-intermediates这层目录下!
  3. 编译一下项目,此时再来看moudle的目录

经过以上简单的三步,已经看到了我们的jar和aar的生成过程和存放目录。是不是很简单,继续往下看!
4. 用jd-jui打开我们的jar,如图:

哈哈,我们什么也没写。接下来我们在myLibTest这个moudle里边编写一个文件JarTest,再编译得到jar,继续打开这个jar
编写的内容是:
再次打开jar后是这样的:

这次终于看到内容了,但或许你又会说,BuildConfig这是干嘛的,都没用,不想要。我们再来看一个目录:

编译之后,所有的文件都会生成对应的.class文件,我们的jar包也就是将这些class文件都打进去了。
问题1:像R.class和BuildConfig.class这些没用的不需要打进去。那么能否设置过滤。
问题2:这个jar的名字能否自己指定,以及存放的路径能否自己指定
针对以上问题,我们来了解一下修改gradle来生成jar包
gradle代码示例:

    //Copy类型
    task makeJar(type: Copy) {
        //删除存在的
        delete 'build/libs/myLib.jar'
        //设置要拷贝的文件的目录。debug or release
        from('build/intermediates/bundles/debug/')
        //拷贝到的那个目录
        into('build/libs/')
        //将classes.jar放入build/libs/目录下
        //include ,exclude参数来设置过滤
        include('classes.jar')
        exclude('**/R.class')
        exclude('**/BuildConfig.class')
        exclude { it.name.startsWith('R$')}
        //重命名
        rename ('classes.jar', 'myLib.jar')
    }
    //生成jar
    makeJar.dependsOn(build)

接下来在我们的命令终端Terminal输入gradlew makeJar执行一下就ok了。然后再来看我们的目录结构:

如代码中所述,在build下多出了libs目录,我们重新命名后的jar包就在这个目录下。

jar和aar的使用

  1. jar的使用

    方法1:将jar拷贝到app中的libs,右键add as library选择app即可。然后在你的gradle中会增加上依赖的那句话。

    方法2:通过studio的试图添加,步骤自行百度谷歌
  2. aar的使用
    同样,还是拷贝到app的libs下。然后在gradle中配置如下

//指定在libs目录下的文件
repositories {
     flatDir {
      dirs 'libs'
     }
}
//添加依赖
dependencies {
    compile(name: 'aar的名字', ext: 'aar')
}




ps:如果有引入其他的第三方lib,是打不进aar中的。所以如果有引用的话,app中除了aar外的其他第三方库也需要拷贝过来引用上!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值