注:该文章只适用于对 Application Plugin 的 module 进行打包 Jar 或 Library 析出的 Jar 有多余的 class
Android Studio 打 Jar 包一直是一个麻烦的事,按照网上现有的教程,打包一个混淆的 jar 需要完成下列步骤:
- 将 plugin 修改为
library
(有指定 applicationId 情况下还需要注释对应代码),运行命令gradle bundleRelease
,等待完成 - 找到对应 module 的
build/intermediates/bundles/debug or release/classes.jar
(感谢 @ZefanXie 指出) - 使用 jarjar 等工具剔除多余的 class
这一个过程要改的东西比较多,于是花了些时间研究了下 Gradle 打 Jar 包。
代码
废话不多说,先上代码(注:只在 Gradle Android Plugin 1.5.0 测试过)
|
|
使用方法
不需要混淆则运行命令
gradle buildJar
或
./gradlew buildjar
需要混淆则运行
gradle proguardJar
或
./gradlew proguardJar
最后
buildJar 这部分相对比较简单,很多内容网上都有教程。关键在于混淆,由于团队每个人都有自己的安装习惯,JDK、Android SDK 路径不一定一致,并不能直接写死 runtime 的路径,最后直接看 Android Plugin 源码才写出了 proguardJar task。
至于想更多个性化的朋友,建议从源码入手。
文章相关代码放置于 Github。