Android修改aar并重新打包

news2024/11/24 4:22:18

目录

一.修改 aar 需要用到的工具(就一个工具,使用方式非常简单,别担心)

二.修改 aar 代码层业务逻辑

三.修改 aar layout 布局文件

四.附上recyclerview aar修改工程源码


一.修改 aar 需要用到的工具(就一个工具,使用方式非常简单,别担心)

注:(下面工具,点击名称可进入下载链接,如果链接失效,请百度搜索下载)

  1. Bandizip,一款非常好用的解压缩工具,安装的时候,请记住安装目录,后面可能会用到。如果有其他解压缩工具也可以使用。

二.修改 aar 代码层业务逻辑

  1. 代码定位:
    1.1 方式一:在开发工具中,根据代码跳转到 aar 中你想修改的类
    1.2 方式二:在 Android Studio 中,将目录结构从 Android 改为 Project,然后在 External Libraries 中找到对应的 aar 和 想要修改的类,如下图

                                         

  2. 找到 aar 中想要修改的类,并在你的项目中建立一个同包名,同类名的类。
    例如:你想要修改 aar 中的androidx.recyclerview.widget
     包名下类名为 RecyclerView 的类,则你需要在你的项目中新建一个包androidx.recyclerview.widget,然后再建一个类名为 RecyclerView 的类(注意如果跟项目默认引入的recyclerview1.1.0冲突的话,可以重命名包名,比如新建的包名为xx.androidx.recyclerview.widget,但是widget下面的代码得都复制过去)。
  3. 将 aar 中类 RecyclerView  的内容全都复制到你新建的类 RecyclerView 中(注:有些内容是编译器反编译生成的,不符合代码开发规范,会报错,需要你自行修改),并在类 RecyclerView  中,编写你想实现的逻辑代码。
  4. 修改完成后,clean 项目,在重新build 项目,编辑器会报错 Program type already presentMore than one file was found with OS independent path 等包重复或冲突等问题,不用理会(编译不过,可以用compileOnly files('libs/recyclerview-1.2.0-alpha04.aar')。
    1. 进入项目文件夹,项目根目录/build/intermediates/javac/debug/对应包名 (不同的 Android Studio 版本路径可能不同,需要自行查找),将你修改的 类名开头.class 文件全都复制,如下图(注:必须从文件夹路径查看,不要从Android Studio 下查找该路径复制类,因为从 Androi Studio 路径下查看,内部类文件未显示)

  5. 接下来会根据 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 布局文件

  1. 有的时候,需要修改 aar 中某个布局文件,例如:想在 aar 中的 activity_layout_login 布局文件增加一个 Button 按钮。
  2. 接下来会根据 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MKS SERVO4257D 闭环步进电机_系列8 CAN通讯示例

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈&a…

AD19操作注意事项及信息

直接在PCB编辑界面添加差分对(差分布线) 1.PCB边界界面Panels菜单调出PCB界面 2.选择框中信息,点击添加差分对即可,然后利用交互式差分对布线命令进行布线操作。(前提设置好差分布线规则) 过孔&#xff1a…

7年经验之谈 —— 如何进行渗透测试以提高软件安全性?

对于各种规模的企业和组织来说,软件安全是一个至关重要的问题。随着网络攻击越来越复杂,软件中的漏洞越来越多,确保你的软件安全比以往任何时候都更重要。提高软件安全性的一个有效方法是渗透测试(penetration testing&#xff09…

6月9号软件资讯更新合集....

Vivaldi 6.1 发布,可绕过微软限制使用 Bing Chat 最新版本的 Vivaldi 可在桌面端伪装成 Edge,使其用户受益,并为工作空间和标签增加了更多的功能。 支持微软 Bing Chat Vivaldi 是建立在 Chromium 开源项目之上的。它与 Edge 和 Chrome 使用…

Android kotlin序列化之Parcelable详解与使用(二)

一、介绍 注解序列化篇:Android kotlin序列化之Parcelize详解与使用_蜗牛、Z的博客-CSDN博客 通过上一篇注解序列化,我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题,注解虽好,但是存在一些问题。 一般在大型商业…

【Flutter】如何更改 Flutter 应用的启动图标

文章目录 一、前言二、什么是启动图标三、为什么我们需要更改启动图标四、如何更改启动图标五、注意事项六、总结 一、前言 欢迎来到 Flutter 的世界!在这篇文章中,我们将探索 Flutter 的一些基础知识。但是,你知道吗?这只是冰山…

爬虫一般怎么解决加密问题?

① 对于网页端来说通常加密的算法是写在 js 代码里的,所以首先你要对 js 语言有所了解。 至少知道 js 基础的内容,其次找到对应 js 加密代码,然后找出关键的函数。 把 js 代码在 node.js 环境进行调试,最后在 Python 环境下利用…

Goby 漏洞发布|maxView Storage Manager 系统 dynamiccontent.properties.xhtml 远程代码执行漏洞

漏洞名称:maxView Storage Manager 系统 dynamiccontent.properties.xhtml 远程代码执行漏洞 English Name:maxView Storage Manager dynamiccontent.properties.xhtml RCE CVSS core: 9.8 影响资产数:1465 漏洞描述: maxVie…

C++debug-centos-ubuntu-vscode

1.centos下安装VSCODE 在linux系统(centOS7)中安装VSCode(Visual Studio Code)_centos vscode安装_沈醉不知的博客-CSDN博客 pacman -S code2.ubuntu下安装VSCODE 与windows下一样。 3.windows 调试 下载安装vscode cmake https://cmake.org/download GDB:UNIX及UNIX-…

php7.4生产环境压力测试CPU占用100%解决方案

最近开发了一个项目,客户要求压力测试,测试时发现并发量大时php-fpm占用cpu一直100%,调整了php的最大进程数pm.max_children,优化了程序效果不明显。后面使用了opcache,cpu使用率一下降到20%左右。 什么是opcache?下面…

网络渗透攻击与加固

目录 一、内网渗透模拟攻击 1.1 综合扫描工具 1.1.1 X-scan 1.1.2 Zenmap 1.2 内网渗透模拟流程 二、Net命令 2.1 net user 2.1.1 功能 2.1.2 用法 2.2 net localgroup 2.2.1 功能 2.2.2 用法 2.3 net share 2.3.1 功能 2.3.2 用法 2.4 net use 2.4.1 功能 2…

Lecture 20 Topic Modelling

目录 Topic ModellingA Brief History of Topic ModelsLDAEvaluationConclusion Topic Modelling makeingsense of text English Wikipedia: 6M articlesTwitter: 500M tweets per dayNew York Times: 15M articlesarXiv: 1M articlesWhat can we do if we want to learn somet…

8寸Windows 10/Android 4.4系统三防平板电脑

8寸Windows 10/Android 4.4系统三防平板电脑是一款功能强大的工业平板电脑,能够在恶劣的工业环境中工作,并能够满足各种生产应用需求。该平板电脑采用了三防设计,能够防护尘土、水等物质的侵入,同时也能够抵抗震动,保证…

openGauss社区五月运作报告

前言 五月,openGauss社区在北京举办了一年一度的开发者大会,汇报社区最新的技术创新进展、生态进展与商业实践成果,同期社区开展了多个闭门会议,SIG工作组会议,规划未来社区工作治理方向,社区工作事项分…

实战案例|黑灰产肆虐,腾讯ACE一键打造清朗游戏世界

随着游戏行业的快速发展,相关黑色产业链的问题日益严重,各种外挂、违规内容、非法交易现象的出现破坏着游戏的生态,为行业带来诸多安全挑战,也影响着玩家们的游戏体验。越来越多游戏厂商开始重视游戏安全问题,并探索全…

RocketMQ5.x版本延迟消息被重放问题调查

一、问题 由于目标计划是将集群从4.9.x逐步升级至5.x,故目前先对一些不重要的集群进行升级测试。 但是在4.x的broker陆续升级至5.x的过程中,发现了延迟消息被重放的问题。 具体如下: 在升级时刷新后台监控,发现竟然有写入量: 即…

日撸java三百行day61-62

文章目录 说明Day61 决策树1.什么是决策树2.什么是熵3.什么是信息增益4.详细例子1. weather样本2.第一次决策3.第二次决策4.最终决策树 4. 代码理解4.1 变量理解4.2 代码中主要方法理解 说明 闵老师的文章链接: 日撸 Java 三百行(总述)_minf…

深入源码分析RecyclerView缓存复用原理

文章目录 前言四级缓存 源码分析缓存一级缓存(mChangedScrap和mChangedScrap)二级缓存(mCachedViews)三级缓存四级缓存(mRecyclerPool)缓存池mRecyclerPool结构理解四级缓存简单小结 缓存流程图 复用复用流…

分布式项目15 用户注册,单点登陆dubbo来实现

分析:当用户填写完成注册信息之后,将请求发送给前台服务器.之后前台消费者利用dubbo框架实现RPC调用。之后将用户信息传递给jt-sso服务提供者.之后完成数据的入库操作。 01.页面url分析 02.查看页面JS $.ajax({ type : "POST", url : "/user/doRe…

MMPose安装及推理验证

MMPose安装 依赖环境 1.创建虚拟环境并激活 conda create --name openmmlab python3.8 -y conda activate openmmlab2.安装pytorch conda install pytorch torchvision torchaudio pytorch-cuda11.7 -c pytorch -c nvidia报错: InvalidArchiveError(‘Error wit…