修改aar中代码

一、概述

有时候使用了三方sdk,但是三放sdk是aar的形式,但是aar中的代码跟自己的需求有一点淡差别,这时候我们可以通过修改aar中的代码进行实现。

二、步骤

  • 解压.aar文件
  • 使用jd-gui查看源码并定位到代码再修改
  • 解压.aar文件解压后产生的classes.jar文件
  • 打包源码为classes.jar
  • 打包所有文件(res文件、classes.jar、AndroidManifest.xml等)为xxx.aar

解压.aar文件

$ unzip myLib.aar -d tempFolder

使用jd-gui查看源码并定位到代码再修改

  1. 进入tempFolder把里面的classes.jar复制出来
  2. 再使用jd-gui(mac版下载地址:https://github.com/parcool/resources/blob/master/jd-gui-1.4.0.jar windows自行下载)打开classes.jar找到需要修改的地方,把这个类的代码copy出来,在android studio中新建项目,把这个.aar放到新建libs文件夹里再引用它,把之前copy出来的代码新建一个.java后粘贴到里面(注意包名也得一样,部分报错的代码需要手动修改一下。比如:this关键字之类的删掉),改好后build一下,从/build/intermediates/classes/debug/对应包名找到修改的.class文件。

解压.aar文件解压后产生的classes.jar文件

  1. 解压classes.jar。命令:$ unzip classes.jar -d tempFolderClasses
  2. 把第二步生成的.class文件放到tempFolderClasses文件夹下对应的地方替换掉以前的.class文件(大功即将告成)

打包源码为classes.jar

$ jar cvf newClasses.jar -C tempFolderClasses/ .(注意斜杠后面加空格与.)
再把这个newClasses.jar放回tempFolder并删除之前的,修改文件名为classes.jar

打包所有文件(res文件、classes.jar、AndroidManifest.xml等)为xxx.aar

$ jar cvf newAAR.aar -C tempFolder/ .

完成!!!!

三、参考文档

https://blog.csdn.net/findsafety/article/details/84974927

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容