android studio library module导出为jar

两个studio module,一个模块是另一个模块的library,现在需要将这个library module导出为jar供另一个module使用:

1:先配置混淆,需要在library module的build.gradle文件中启用混淆:

 buildTypes {
        release {
            minifyEnabled true
            proguardFiles 'proguard.cfg'
        }
    }
monifyEnabled表示启用混淆,proguradFiles表示混淆配置文件

2:在library module模块中的build.gradle文件中增加task:

task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
// 未混淆的jar
    injars 'build/intermediates/bundles/release/classes.jar'
// 混淆后的jar路径
    outjars 'build/outputs/library.jar'
// 具体需要keep住的类
    configuration 'proguard.cfg'
}

其中injars表示未混淆的jar,outjars表示混淆后生成的jar,configuration表示混淆文件cfg文件。

然后make,如果发现相应目录下有injars,可以右键makeJar,选择  run 'gradle:makeJar',也可以在上面快捷绿三角形按钮左边选择gradle:makeJar之后,点击绿三角形执行。

然后任务执行完成后,在outputs目录下便有了library.jar混淆后的jar包,可以用反编译工具jd-gui工具查看编译效果,如果不满意,可以修改proguard.cfg文件来达到更好的效果。

3:将此jar包拷贝到主module的libs下,然后选择add as library,此时gradle文件变自动增加依赖,增加的一行为:

dependencies {
    compile files('libs/library.jar')
}

表示上述jar添加成功。

你可能感兴趣的:(android studio library module导出为jar)