打包jar文件

主模块build.gradle根路径加入任务

taskmakeJar(type:org.gradle.api.tasks.bundling.Jar){//指定生成的jar名称baseName'fixclass'//从哪里打包class文件from('build/intermediates/classes/debug/cn/xxx/hotfixtest/')//打包到jar后的目录结构into('cn/gowild/hotfixtest/')////include,exclude参数来设置过滤//去掉不需要打包的目录和文件exclude('MainActivity.class','FixEngine.class','BuildConfig.class','R.class','BuildConfig.class')//去掉R$开头的文件exclude{it.name.startsWith('R$')}}

命令执行gradlew makejar

build/intermediates/classes/debug/cn/xxx/hotfixtest目录下自动生成jar包

jar转dex

sdk\build-tools\26.0.0目录下dx.bat命令

dx --dex --output=新dex.jar 当前jar.jar

class转dex

1、build --> make project 后,在build\intermediates\classes\debug\..下得到要操作的.class文件

2、创建目录,层级与.java文件包名一致,把.class文件移到该目录下(如果路径名与包名不一致,转dex操作会报错)

3、用jdk/bin目录下的jar命令或者上方的gradle脚本,jar cvf destFile.jar source.class,得到jar文件

4、用Android sdk/build-tools下的命令dx --dex --output=destFile_dex.jar destFile.jar得到包含.dex类型的jar包

dex转jar

工具:https://sourceforge.net/projects/dex2jar/?source=typ_redirect

命令:d2j-dex2jar classes.dex


.class 转 java

JD-GUI:http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/JD-GUI.shtml