有什么不明白的地方,扫描右方二维码加我微信交流。
       

先看看jar包与aar包区别:

  • jar文件就是 Java Archive File,只包含class文件;
  • aar,即就是Android Archive,包含jar包,包含资源文件;
  • aar = jar包 + 资源文件。

选择jar包还是aar包根据视情况而定。

 

制作aar

为了方便制作与测试,我们把aar项目放在一个Android工程里面,制作步骤如下:

  1. 创建一个Android工程,用于测试我们的新aar包;
  2. 在Android工程里创建一个Module;
  3. 编写代码;
  4. 开启混淆并编写规则(如果想要保留方法名,类名,一定要写);
  5. 打包aar;
  6. 将aar包放在Android工程里,在gradle文件里引入,运行测试(或者自己进行单元测试)。

创建Android工程

在Android工程里创建Module

编写代码

开启混淆并编写混淆规则

注意:proguard-rules.pro给打包aar时使用(即给Module工程使用),consumer-rules.pro给打包后的aar使用(会打入aar包中,给Android工程使用)。

打包aar

双击命令,打出release版aar

测试

可以编写单元测试,也可以进行真机测试。下面介绍真机测试。

把打包好的aar文件放入app下的libs目录,在app下的的gradle文件中添加如下代码,将libs目录包含进去,意思是添加一个本地仓库,并把libs目录作为仓库的地址:

repositories {
    flatDir(
            dirs: 'libs'
    )
}

在app的gradle中引入aar文件,然后在app的MainActivity中编写测试代码,在真机上运行测试。

 

制作jar

aar包都制作出来了,jar包当然就更简单了,在gradle里添加如下代码:

//Copy类型
task makeJar(type: Copy) {
    //删除存在的
    delete 'build/libs/test.jar'
    //设置拷贝的文件
    // from('build/intermediates/bundles/release/')
    from('build/intermediates/aar_main_jar/release/')
    //打进jar包后的文件目录
    into('build/libs/')
    //将classes.jar放入build/libs/目录下
    //include ,exclude参数来设置过滤
    //(我们只关心classes.jar这个文件)
    include('classes.jar')
    //重命名
    rename ('classes.jar', 'test.jar')
}

makeJar.dependsOn(build)
//在终端执行生成JAR包

添加好以上代码后,在终端执行gradlew makeJar或者在如下图中双击makeJar命令,即可直接打出jar包。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注