逆向编程 - 手动合并2个或2个以上第三方AAR文件(详细步骤)

使用工具:

1、android studio 3.4.1

2、Beyond Compare

3、windows 需要一把趁手的命令行工具

比如项目用到了两个第三方AAR文件,如图:

项目中用到了两个jar

1、首先来了解一下AAR文件的结构

- 通过命令进行AAR文件解压

 unzip account-util.aar -d account-util

 unzip log_util.aar -d log_util

解压两个aar文件是这样的

解压后看到以下内容是必须包含的:

/AndroidManifest.xml

/classes.jar

/res/

/R.txt

此外,根据打包的 Library Module 情况不同,打包出来的 AAR 文件也可能包含以下内容:

/assets/

/libs/名称.jar

/jni/abi 名称/名称.so(其中 abi 名称 是 Android 支持的 ABI 之一)

/proguard.txt

/lint.jar

2、手动合并AAR(新建目录将对应文件进行合并)

将两边的文件放入新建的目录里面,需要注意的是 AndroidManifest.xml 与 R.txt 文件以及 res中的value.xml文件需要Beyond Compare工具进行对比合并如下图:


合并文件

3、合并classes.jar

命令进行解压两个aar中的classes.jar文件

jar -xvf classes.jar

并进行合并到一个目录下,如下图


合并classes.jar内容

命令进行打包成一个新的jar(注意后面的符号.

jar -cvfM classes.jar .


生成新的classes.jar

4、将新的jar合并到之前的大目录里面,并进行打包新的aar文件


合并两个aar完毕

命令进行打包aar(注意后面的符号.

jar cvf aar_util.aar -C aar_util/ .


打包出新的aar文件

5、引入项目使用


成功引用,oye

一切顺利,success!下节讲如何修改classes.jar中的二进制内容!

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

友情链接更多精彩内容