打jar、aar包

参考
二者区别:
    jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
    aar: 包含jar包和资源文件,如图片等所有res中的文件。
    个人觉得还是用as提供的aar包比较好,编译完就生成了aar了,不用担心资源问题
一、生成jar
1、创建一个类库
2、类库工程下的build.gradle中加上:

//修改jar名字+将指定jar生成的地方
task makeJar(type: Copy){
    //删除存在的
    delete "build/libs/dlBle.jar"
    //设置拷贝文件
    from('build/intermediates/bundles/debug/')
    //打井jar包的目录
    into('build/libs/')
    //将classes.jar放入build/libs/目录下
    //include,exclude参数来设置过滤
    //(我们只关心classes.jar这个文件)
    include('classes.jar')
    //重命名
    rename('classes.jar','dlBle.jar')
}

makeJar.dependsOn(build)

3、确保项目工程下有gradlew可执行文件
在Terminal 运行 ./gradlew makeJar
构建成功就会在build/libs/下生成一个dlBle.jar

二、混淆Jar
方式一,使用Android Studio打包混淆的Jar(有时更改混淆文件没生效,推荐用方式二)
参考
方式二,使用androidsdk-tools-proguard-bin-proguardgui.sh
打开终端,使用命令: sh XXX/proguardgui.sh
参考
混淆时出错提示Unsupported class version number [52.0] (maximum 51.0, Java 1.7))
参考
Version 5.0 以后才支持java8,建议下载最新的。
官网下载


三、生成aar和使用
1、将工程改为库工程(将apply plugin: ‘com.android.application’改为apply plugin: ‘com.android.library’
注释掉applicationId,)
2、build一下工程,会生成aar文件
3、注释掉主入口Activity(否则运行带aar的主工程会出现两个应用图标,要保证一个apk只有一个入口)
4、将aar复制到主工程的lib目录下,并增加

repositories{
    flatDir{
        dirs 'libs'
    }
}
compile(name: 'app-debug', ext: 'aar') //依赖

5、sync project就可以调用aar里面的类了,如果调不到,查看项目的External Libraries里面的这个aar包是否有包含需要的类,如果没有,需要删除aar包再clean生成aar包。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值