打包jar文件,jar转dex,class转dex等各种转换整理
主模块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转dexsdk\build-tools\26.0.0目录下dx.bat命令
dx --dex --output=新dex.jar 当前jar.jar
class转dex1、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
JD-GUI:http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/JD-GUI.shtml
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。