安卓修改jar包内容并重新打包使用
使用环信的即时通讯SDK的时候遇到一个问题,想要实现一个匿名的功能,但他们的jar包源码不符合我的预期,做了几个尝试(继承方法修改失败、重写方法发现里面的方法使用了protected又失败),最终选择了修改他们的jar包
1,首先,不要直接解压更改,因为源码一般都做了混淆,解压后你会发现都是乱码的,无从下手!
因此,用 Java Decompiler (JD-GUI、JD-Core)打开 JAR 包,然后找到待修改的文件
File -> Save,把它保存成 java
这个工具下载解压找到.exe打开就能使用,不用安装
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包都要具备,没有的话编译会报错
3,最后用“压缩软件”打开 JAR 包,再编译好的 CLASS 文件替换到相应的位置即可