目录
一.修改 aar 需要用到的工具(就一个工具,使用方式非常简单,别担心)
二.修改 aar 代码层业务逻辑
三.修改 aar layout 布局文件
四.附上recyclerview aar修改工程源码
一.修改 aar 需要用到的工具(就一个工具,使用方式非常简单,别担心)
注:(下面工具,点击名称可进入下载链接,如果链接失效,请百度搜索下载)
- Bandizip,一款非常好用的解压缩工具,安装的时候,请记住安装目录,后面可能会用到。如果有其他解压缩工具也可以使用。
二.修改 aar 代码层业务逻辑
- 代码定位:
1.1 方式一:在开发工具中,根据代码跳转到 aar 中你想修改的类
1.2 方式二:在 Android Studio 中,将目录结构从Android
改为Project
,然后在External Libraries
中找到对应的 aar 和 想要修改的类,如下图 - 找到 aar 中想要修改的类,并在你的项目中建立一个同包名,同类名的类。
例如:你想要修改 aar 中的androidx.recyclerview.widget
包名下类名为 RecyclerView 的类,则你需要在你的项目中新建一个包androidx.recyclerview.widget,然后再建一个类名为 RecyclerView 的类(注意如果跟项目默认引入的recyclerview1.1.0冲突的话,可以重命名包名,比如新建的包名为xx.androidx.recyclerview.widget,但是widget下面的代码得都复制过去)。 - 将 aar 中类 RecyclerView 的内容全都复制到你新建的类 RecyclerView 中(注:有些内容是编译器反编译生成的,不符合代码开发规范,会报错,需要你自行修改),并在类 RecyclerView 中,编写你想实现的逻辑代码。
- 修改完成后,clean 项目,在重新build 项目,编辑器会报错
Program type already present
或More than one file was found with OS independent path
等包重复或冲突等问题,不用理会(编译不过,可以用compileOnly files('libs/recyclerview-1.2.0-alpha04.aar')。- 进入项目文件夹,
项目根目录/build/intermediates/javac/debug/对应包名
(不同的 Android Studio 版本路径可能不同,需要自行查找),将你修改的类名开头.class
文件全都复制,如下图(注:必须从文件夹路径查看,不要从Android Studio 下查找该路径复制类,因为从 Androi Studio 路径下查看,内部类文件未显示)
- 进入项目文件夹,
- 接下来会根据
Bandizip
解压缩工具讲解,请根据图片进行操作:
6.1 在文件夹中右键选中aar
包,选择打开方式,选择Bandizip
(如果没有,则从更多应用里选择,然后从刚才安装的 Bandizip目录找到 Bandizip.exe 即可 ),如下图
6.2 在打开的窗口中,按下图进行操作
6.3 找到修改的类的包名,将步骤 5 修改生成的 .class 类文件(包含内部类文件)复制进去
6.3 然后将 aar 包重新导入项目(导入之前,先将原先的 aar 删除,clean 后再build,然后导入新的 aar 包,再 build ,不然项目会使用旧的 aar 包,修改recyclervie直接把新aar放在libs文件下,接着在build应用级文件夹下引用即可 implementation files('libs/recyclerview-1.2.0-alpha04.aar')
)
6.4 至此,aar 修改业务代码步骤结束。
三.修改 aar layout 布局文件
- 有的时候,需要修改 aar 中某个布局文件,例如:想在 aar 中的
activity_layout_login
布局文件增加一个Button
按钮。 - 接下来会根据
Bandizip
解压缩工具讲解,请根据图片进行操作
2.1 在文件夹中右键选中aar
包,选择打开方式,选择Bandizip
(如果没有,则从更多应用里选择,然后从刚才安装的 Bandizip目录找到 Bandizip.exe 即可 ),如下图
2.2 点击编辑,修改布局文件,新增或修改资源 id 后,请记住 id 名称,后面会用到,保存关闭(也可以在 Android Studio 中编辑并预览,然后将内容复制到这个布局文件中)。
2.3 修改aar
包中的R.txt
,(一定要修改,不然在项目中无法使用刚才新增或修改的资源 id),右键R.txt
,选择编辑,并保存退出,如下图:
2.4 然后将 aar 包重新导入项目,就可引入新的资源(导入之前,先将原先的 aar 删除,clean 后再build,然后导入新的 aar 包,再 build ,不然项目会使用旧的 aar 包)
2.5 至此,aar 修改业务代码步骤结束。
四.附上recyclerview aar修改工程源码
链接:https://pan.baidu.com/s/1x0zmXD_uQqw_7OVdF3HJ5Q?pwd=ab7d
提取码:ab7d