打包jar文件,jar转dex,class转dex等各种转换整理

打包jar文件

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

task makeJar(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

猜你喜欢

转载自blog.51cto.com/13952501/2169865