继上篇修改jar包名之后再写一篇修改源码的,过程比较麻烦但是不难
以修改eventbus某个文件举例
第一步:把你要修改的eventbus-3.2.1.jar 复制到libs下面(记得Add As Library)
第二步:我这里以修改event.jar里面AndroidLogger.class为例,打开源文件,如下图所示:
第三步:查看AndroidLogger.class所在的包名是啥,复制包名
第四步:将在第三步复制的包名拿过来,在自己的项目下新建一个命名为org.greenrobot.eventbus.android包名,如下图
完事后如图
第五步:在org.greenrobot.eventbus.android
新建AndroidLogger.java (一定要跟修改的源文件同名):如下如所示:
第六步:将 AndroidLogger.classs复制到你第五步新建的AndroidLogger.java 里面,这个时候你可以在自己的AndroidLogger.java,随意修改了,(源文件不能修改,但可以复制里面的代码)如下图所示:
第七步:在AndroidLogger.java 类里面修改你自己的需求,修改之后,编译,编译之后查看自己的AndroidLogger.class 文件,(编译之后才会有xxx.class文件),在哪查看,\build\intermediates\classes
androidstudio 3.x 之后 编译后的.class文件在\build\intermediates\javac\debug\compileDebugJavaWithJavac\classes
看图,发现没有两个
AndroidLogger.class文件了,且都是.class ,现在就要把新的AndroidLogger.class替换jar里旧的AndroidLogger.class即可。
第八步:将修改修改的eventbus-3.2.0.jar 解压出来,然后找到对应的类AndroidLogger.class替换
jar怎么解压?简单 修改后缀jar为rar然后解压,复制AndroidLogger.class替换
然后在文件夹里压缩所有文件压缩成功之后修改rar为jar如图,名字可以随便取
最后就是导入要AS去验证了
完事