安卓修改jar包内容并重新打包使用

安卓修改jar包内容并重新打包使用

使用环信的即时通讯SDK的时候遇到一个问题,想要实现一个匿名的功能,但他们的jar包源码不符合我的预期,做了几个尝试(继承方法修改失败、重写方法发现里面的方法使用了protected又失败),最终选择了修改他们的jar包

1,首先,不要直接解压更改,因为源码一般都做了混淆,解压后你会发现都是乱码的,无从下手!

因此,用 Java Decompiler (JD-GUI、JD-Core)打开 JAR 包,然后找到待修改的文件

File -> Save,把它保存成 java


save

这个工具下载解压找到.exe打开就能使用,不用安装

工具下载地址


JD

2,用记事本或者sublime_text修改,然后使用 javac 命令将 JAVA 文件编译成 CLASS 文件,javac 语法如下:


命令


javac -cp json.jar;D:\Android\Sdk\platforms\android-27\android.jar;hyphenatechat_3.6.0.jar *.java

或者

javac -cp json.jar;D:\Android\Sdk\platforms\android-27\android.jar;hyphenatechat_3.6.0.jar EMBase.java


注意: 

(1) -classpath 可以用 -cp 简写 

(2)多个依赖的JAR包,LINUX下用“:”分割,WINDOW下用“;”分割 

(3)多个源文件用空格分隔,也可以使用诸如“*”之类的通配符

(4)android.jar是自己安装的sdk下的jar包,编译需要依赖的jar包都要具备,没有的话编译会报错


编译生成的class

3,最后用“压缩软件”打开 JAR 包,再编译好的 CLASS 文件替换到相应的位置即可

你可能感兴趣的:(安卓修改jar包内容并重新打包使用)