Android 生成aar以及 aar和jar 包互相转换

739 阅读2分钟

前言: 各位同学大家好 有段时间没有跟大家见面了 , 具体多久我也不记得了哈。最近公司有个需求 我是做手游SDK开发的 一般需要把我们编写的代码逻辑然后打包成aar

具体说明:

最早以前我们用eclipse开发的时候 我们是分开打包的 java代码打包成jar 然后资源文件复制出来的 但是来到android studio 的时候我们直接就java代码和资源文件打包到aar包 然后给需求方去接入即可 ,

如图

6865547-fddc1feeced0496e.png

我们在common 库工程里build目录里面将我们打包好的common-release.aar 文件复制出来

6865547-2a35fa15aa193c8d.png 这时候有些同学会说你这样我也会操作,是的这个不难 。但是如果是没有源码的情况下你要修改里面东西怎么修改呢 .

  • 解压aar

6865547-daaca7e548d95728.png 我们看到解压出来一个classes.jar 文件和一些资源文件 我们在 res目录下面可以看到我们之前库工程里面的打包的资源文件 资源文件都是图片和布局文件还有文本之类的资源文件 我们可以直接复制替换或者记事本编辑修改即可

  • 修改classes.jar

6865547-192ef35099e8fb03.png

  • 解压classes.jar。命令:$ unzip classes.jar -d tempFolderClasses

把第二步生成的.class文件放到tempFolderClasses文件夹下对应的地方替换掉以前的.class文件(大功即将告成)

  • 打包源码为 classes.jar
$ jar cvf newClasses.jar -C tempFolderClasses/ .(注意斜杠后面加空格与.)

再把这个newClasses.jar放回tempFolder并删除之前的,修改文件名为classes.jar 将资源文件和新的jar 再次打包成aar

$ jar cvf newAAR.aar -C tempFolder/ .

最后生成新的aar 就是我们需要的aar 。 这样我们就可以在没有源代码的情况下去修改aar内部东西 然后重新编译生成 aar 来带到我们偷天换日 瞒天过海的目的 哈哈哈 。

最后总结:

对于android 工程怎么生成aar 这个比较简单网上能也有很多博主讲过所以我这边就没有展开去讲 后面我会专门出一些关于安卓逆向的基础知识分享给大家 希望能帮助到各位的学习和工作 最后希望我的文章能帮助到各位解决问题 ,以后我还会贡献更多有用的代码分享给大家。各位同学如果觉得文章还不错 ,麻烦给关注和star,小弟在这里谢过啦!